평소 즐겨 보던 개발 유튜버들의 영상과 다른 여러 블로그를 통해 추천받아온 리팩토링 2판! 궁금증이 생겨 작년 6월 즈음 책을 구매했다. 그리고 약 5개월간 방치했다..
어느날 문득 시선을 돌리다 발견한 책에 쌓인 먼지를 보고 심한 죄책감이 들어, 급하게 사내에서 스터디를 구성했다. 급조한 스터디는 약 두달간의 여정 끝에 성황리에 종료되었다! 🙌 그리하여 작성하게 된 후기 글.
첫주에 대강 타임라인을 담은 계획표를 작성하였는데, 다행스럽게도 큰 딜레이 없이 마무리 되었다. 적고 보니 5장이 없다. 5장은 어디로 갔을까? 마틴 파울러 아저씨의 카탈로그 편지 분명 읽었는데...
여튼, 스터디는 매주 진행자를 선정하여 진행자가 미리 내용을 정리하고, 정리한 내용을 같이 보며 리뷰하는 식으로 진행했다. 종종 잡담이 많이 섞여 한시간 짜리 토론이 두시간이 되기도 했지만 꽤 괜찮은 진행 방식 이었던 것 같다.
스터디 진행 방식은 만족스러웠지만, 솔직히 책 내용은 조금 아쉬웠다. 저자인 마틴 파울러는 리팩토링 외에도 클린 코드, 클린 아키텍처 등 많은 명서를 쓰신 분이다. 다른 책들을 읽어 본 적은 없지만 이 분이 쓴 모든 책이 명서로 유명하기에 이 책도 내심 기대를 많이 하고 읽었는데, 기대한만큼 좋지는 않았다.
아쉬웠던 부분을 꼽아보자면, 저자가 책에서 소개한 리팩토링 기법 중 대부분이 평소에 클린 코드나 리팩토링에 대해 관심이 있어서 관련 아티클이나 컨텐츠들을 봐왔던 사람들은 익숙할 법한 내용이라고 느껴졌다. 내가 미리 접해왔던 정보들의 소스가 이 책이었을 수도 있겠지만.. 무튼 그랬다.
갑자기 글을 적다 생각난건데, 리팩토링이라는 당연한 행위에서 특별한 내용을 기대하는것 자체가 역설적인 것이었나? 싶기도 하다.
두번째는 예시로 사용된 코드들이 설명을 위해 작성된 느낌이 드는 경우가 더러 있었다. 책은 저자가 리팩토링 방식을 제시하고 이를 실제 코드를 통해 설명하는 방식으로 진행된다. 이렇게 예시로 작성된 코드 중 해당 상황에서만 적용할 수 있는 다소 억지스러운 코드들이 꽤 많다고 느꼈다.
그래도 아쉬웠던 부분만 있었던 건 아니고, 좋았던 부분도 있다. 책에서는 다양한 주제의 리팩터링을 다루었지만 전반적으로 데이터의 소유 주체와 책임에 관련된 이야기가 많았던 것 같다.
예를 들면 다양한 객체 혹은 클래스에서 공통적으로 사용되는 필드는 어떻게 관리돼야 하고, 접근의 범위를 어떻게 제한할 수 있는지, 그렇게 해야 하는 이유는 무엇인지와 같은 정보의 소유 범위와 관리 주체에 대한 내용이 많았다. 이는 평소에도 개발하며 많이 고민했던 내용이라 재미있게 읽을 수 있었다.
아직 경험이 부족하고 내공이 부족해서 많은 것을 느끼지 못한지도 모르겠다. 시간이 조금 흐른 뒤 기회가 되면 다시 한번 읽어 봐도 좋을 듯!
최근에는 이펙티브 타입스크립트라는 책을 같이 읽고 있다. 다음 독서 포스팅은 이 책의 후기가 될 것 같다!
끝!