본문 바로가기

리팩토링17

리팩토링 스터디 #6.5 - 내용 미리보기 2021년의 첫 리팩토링 스터디입니다. 새해에도 어김없이 스터디는 쭉 진행되고 있습니다. 이번 시간에는 데이터 조직과 조건부 로직을 정리하는 내용이 주를 이룹니다. 데이터 조직에서는 어떠한 대상을 호출할때 어떤 형태로, 어떻게 호출할 것인지를, 조건부 로직에서는 if문과 같은 조건문을 최대한 간결하고 명확하게 보이도록 하는 몇 가지 기법들을 알아보게됩니다. 데이터 조직을 다루는 방법부터 시작하겠습니다. 파생 변수를 질의 함수로 바꾸기 서로 다른 코드들을 결합하는 가변 데이터는 종종 문제의 원인이 됩니다. 한쪽에서 수정한 값이 다른쪽에서 문제를 일으킬 수도 있기 때문에 최대한 지양하는 것이 좋지만, 현실적으로 그건 어렵습니다. 그래서 우리가 할 수 있는 최선의 방법은 유효 범위를 최소한으로 줄이는 것입니다.. 2021. 1. 8.
리팩토링 스터디 #6 - 리팩토링 준비하기 오랜만의 리팩토링 스터디 포스팅입니다. 이번 회차에서는 실제 리팩토링을 준비하는 과정을 주제로 작성해보려고 합니다. 6주차 스터디에서 나온 내용만으로 한 포스팅을 채우기 살짝 부족한 느낌이 있어 7주차의 특정 부분을 덧붙여 함께 작성하였는데, 마침 이 내용이 적절해보였습니다. 스터디 구성원들과 이야기를 하던 중 지금까지 리팩토링을 어느정도 공부했으니, 실제로 리팩토링을 한 번 해보면서 공부한 내용들을 복습해보는것이 어떨까에 대한 이야기가 나왔습니다. 좋은 기회라는 생각이 들어 4주차쯤부터 적절한 라이브러리를 찾기 시작했습니다. 적절한 라이브러리의 조건으로는 어느정도 유지가 되어 구조적인 결함이 생겼을 확률이 높고, 실제 사용자가 많아 오픈소스 컨트리뷰팅을 하기 좋은 라이브러리 정도로 목표를 잡았습니다. .. 2020. 12. 22.
리팩토링 스터디 #5.5 - 내용 미리보기 개인적인 사정으로 지난 스터디 당일에 참여하지 못했습니다. 스스로 공부했던 내용을 되짚어보는 것으로 해당 챕터를 마무리 지었고, 따로 리팩토링 스터디 #5는 업로드 하지 않을 예정입니다. 아쉽지만 다음 스터디를 더 알차게 진행하는 것으로 만족해야겠습니다. 이번 주제는 지난번에 이어 캡슐화에 관련된 리팩토링 기법들입니다. 기본형을 객체로 바꾸기 Replace Primitive with Object 첫 번째로 살펴 볼 기법은 기본형을 객체로 바꾸기입니다. 우리는 보통 단순한 정보를 표기할때 이러한 기본형으로 많이 표현합니다. 그러나 개발이 진행되다보면 처음엔 생각하지 못했던 추가적인 동작을 해야할 일이 생깁니다. 예를 들면 단순한 전화번호를 문자열로 표현했었는데 나중에 보니 지역 번호를 따로 추출해야 한다던.. 2020. 11. 14.
리팩토링 스터디 #4.5 - 내용 미리보기 2주 동안의 휴식기를 두고 리팩토링 스터디가 재개되었습니다. 오랜만의 스터디 준비가 어색하게 느껴지지만 차근히 읽어가다보면 내용을 이해하는데에는 그리 오랜 시간이 걸리지 않을 것 같습니다. 이번 주 스터디 범위는 6.10 여러 함수를 변환 함수로 묶기부터 7.2 컬렉션 캡슐화하기까지 약 40페이지 가량입니다. 많지 않은 양이니 가벼운 마음으로 시작해보겠습니다. 여러 함수를 변환 함수로 묶기 Combine Functions into Transform 공통 데이터를 중심으로 엮여서 작동하는 함수들은 하나의 클래스로 묶는 것이 편합니다. 이렇게 하면 각 함수들이 공유하는 공통된 환경을 표현하기가 명확하고, 함수에 전달되는 인수를 줄여서 객체 안에서의 함수 호출을 간결히 만들 수 있습니다. 이런 객체를 시스템의.. 2020. 11. 4.
리팩토링 스터디 #4 - 기본적인 리팩터링 2주만에 쓰는 리팩토링 포스트입니다. 스터디 자체는 정상적으로 진행했었지만, 시험기간이 겹치다보니 정리 후 업로드하는데 다소 시간이 걸렸네요. 오랜만에 읽는 포스트라 기억이 흐릿할 수 있으니 챕터의 자세한 내용은 리팩토링 스터디 #3.5 - 내용 미리보기를 참고해주세요. 성능 이슈 첫 시간에 올렸던 궁금했던 점 중 하나인 성능 이슈에 대한 이야기가 있었습니다. "우선 리팩토링부터 하고, 개선은 나중에 하면 된다!" 라고 하던 저자의 말이 있었는데 이번 시간에서 그 이유가 어느정도 설명되었습니다. 최적화의 법칙(당신이 전문가가 아니라면 최적화는 하지 마라. 만약 당신이 전문가라면, 그래도 하지 마라.) 에 나와있는 것처럼 생각보다 우리가 만든 프로그램에선 최적화가 필요하지 않다는 의미인데, 함수 한 두 단.. 2020. 11. 3.
리팩토링 스터디 #3 - 테스트 구축하기 & 리팩토링 카탈로그 보는 법 3주차 리팩토링 스터디에서는 테스트의 중요성과 구축 방법에 대해 알아보았습니다. Mocha.js와 같은 테스트 프레임워크를 통해 어떻게 테스트를 구성하는지, 어느 부분에서 테스트를 추가하는지 등의 주된 내용입니다. 본문에선 책의 내용보단 스터디를 진행하며 나왔던 곁들이면 좋을 내용들을 위주로 포스팅합니다. 책에 실려있던 내용들은 리팩토링 스터디 #2.5 - 내용 미리보기를 참고해주세요. 테스트 코드 챕터의 주제가 테스트인 만큼 어느때보다 테스트 자체에 대한 이야기가 많이 나왔습니다. 필요성에 대해서는 크게 의견이 갈리지는 않았습니다만, TDD(Test-Driven Development, 테스트 주도 개발) 에 대해서는 호불호가 꽤 나뉘었다고 합니다. 필드에서는 책에서의 예들이 완전히 적용되지않는 다양한 .. 2020. 9. 29.