코드에서 나는 악취
·
Programming/Refactoring
마틴 파울러는 "언제 리팩터링을 해야하는가"에 대한 대답으로 코드에서 "냄새"가 나는 시점이라고 말하다. ( 정확히는 켄트벡의 표현을 빌린 것이다 ) 이들은 많은 코드를 봐왔고, 대체로 리팩토링이 필요한 코드들은 일정한 패턴을 가지고 있다고 한다.  본 장에서는 그 악취나는 패턴들에 대한 소개와 간단한 해결방법을 언급한다. 자세한 해결방법은 뒷장에 자세히 서술되어 있기에, 어떤 패턴이 악취인지에 조금 더 중점을 두고 내용을 정리해보았다. 1. 기이한 이름함수, 모듈, 변수, 클래스 등은 이름만 보고도 각각이 무슨 일을 하고 어떻게 사용해야 하는지 명확히 알 수 있게 이름을 지어야 한다.마땅한 이름이 떠오르지 않는다면 설계에 더 근본적인 문제가 숨어 있을 가능성이 높다. 2. 중복코드코드가 중복되면, 중복..
리팩터링: 첫 번째 예시
·
Programming/Refactoring
리팩터링 (2판) 1장에서는 앞으로 배울 리팩터링 기법을 한 데 모은 예시에 대해 소개한다. 다양한 공연을 외주 받아서 운영하는 극단의 충성도 프로그램이 소개된다. 이 프로그램에서는 연극의 장르와 관객의 규모에 따라 비용을 책정하는 비즈니스 로직이 존재하며, 이를 리팩터링하는 것이 이 장의 핵심 내용이다.  코드의 변화 과정을 훑으면서, 여기서 어떤 기법을 통해 바꾸었는지를 확인해보면 된다. 읽으면서 기억에 남는 부분들을 몇 가지 기록해보고자 한다. 나는 수백 줄 짜리 코드를 수정할 때면 먼저 프로그램의 작동 방식을 더 쉽게 파악할 수있도록 코드를 여러 함수와 프로그램 요소로 재구성한다.프로그램의 구조가 빈약하다면 대체로 구조부터 바로잡은 뒤에 기능을 수정하는 편이 작업하기 훨씬 수월하다. 프로그램이 새..
리팩터링 2판 공부를 시작하며
·
Programming/Refactoring
실무를 하다보면, 좋은 설계의 중요성을 알면서도 지키지 못할 때가 생긴다. 정말 촉박하게 개발을 해야하는 상황이거나, 긴급히 수정이 필요한 경우라면 더욱 그렇다. 비단, 이 경우들이 아니더라도 앞으로 새롭게 추가될 기능의 방향성을 미리 예측하고 이를 모두 고려한 설계를 하는 것이란 쉽지 않다. 때로는 그런 설계가 오버 엔지니어링 취급을 받기도 한다. 설령 내가 좋은 설계를 할 수 있는 개발자더라도, 좋은 설계가 된 코드만을 마주하리라는 법도 없다. 중요한 것은 주어진 코드를 "현재 상황"에 맞게 코드를 재설계하고 구조화할 수 있는 능력이 아닐까 싶다. 그런 의미에서 "리팩터링"은 나에게 좋은 방향성을 제시하는 교안이 되지 않을까 싶다.  앞으로의 학습 방향성에 대해 생각해보면.. 그간 여러 개발 서적을 ..