로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
서평보기
프리팩토링
켄푸 | 한빛미디어 | 번역서 | 2006-10-20
종합평점
도서수준
극단적인 추상화, 극단적인 분할, 극단적인 가독성 2007-01-06 오후 9:43:56 
평점
도서수준
조회수 (1578)
공감 (0)
박재성 님의 블로그
어느 순간부터 우리 주위에 "극단적인(Extreme)"이라는 말을 종종 들을 수 있다. Extreme Sports, Extreme Programming.. 이제는 극단화를 책의 한 주제로까지 다루는 책까지 등장하고 있다. "극단적인 추상화, 극단적인 분할, 극단적인 가독성".. 개발자들을 혹하게 만들 수 있을 만큼의 낚시성 멘트이지 않는가?
 
이 책을 산지는 책이 번영되자마자였다. 나 또한 지난날의 리팩토링에 대한 감동이 아직까지 여운으로 남아있기 때문에 그 때의 감동을 새삼 느낄 수 있지 않을까하는 기대감으로 이 책을 잡게 되었다. 그러나 읽어야할 책이 너무 많은 관계로(개인적인 습관이 책을 시작하면 끝까지 읽어야 된다.) 한참이 지난 후에 이 책을 잡게 되었다. 출퇴근 하는 중간 중간 책 읽는 재미가 쏠쏠했는데 최근 이사 후 자전거를 이용하여 출퇴근을 하기 때문에 개인적으로 노력하지 않으면 책을 읽을 시간이 많지 않다. 그러나 이 책으로 인해서 책 읽는 재미를 다시 한번 느끼지 않을까 생각한다.
 
이 책은 개발자들이 개발을 하면서 자신만의 원칙들을 만들어가는 과정을 보여주고 있다. 책에서 이야기하고 있는 많은 지침들 중에 이미 우리들 나름대로의 원칙을 가지고 지켜나가는 부분이 있다. 이 책은 각각의 개발자들이 가져야할 지침들을 정리한 책이다. 그러나 지금까지 우리들이 알지 못했던 새로운 지침들을 얻을 수 있다는 것이 가장 큰 소득이다. 얇은 책에도 불구하고 하나의 프로젝트를 완성해가면서 각각의 지침들을 이끌어 내는 모습이 상당히 만족스러운 내용이다. 그러나 각각의 지침들을 이끌어 내고 설명하는데 있어 설득력이 부족하거나 예제가 충분하지 않은 부분들도 많이 보인다. 사실 어떤 지침에 있어서는 좀 더 많은 예제와 설명이 있었으면 하는데 빠르게 넘어가버리는 것이 하나의 아쉬움이다.
 
이 책을 읽으면서 개인적으로 가장 많은 생각을 가지도록 한 부분은 극단적인 추상화이다. 클래스의 각 속성에 해당하는 부분까지 Primitive Type이나 String, Integer를 직접 사용하지 말고 Dollar, ZipCode, Name과 같이 Abstract Data Type(ADT)을 만들어 추상화하라는 내용이다. 물론 이 같은 ADT도 남용할 경우 복잡도를 증가시키고 클래스의 수만 증가시켜는 결과를 가져올 것이다. 아무리 극단적이라고 하지만 적절히 추상화가 필요한 부분에 ADT를 활용했을 때 그 진정한 가치를 느낄 수 있을 것이다. 한 예로 DTO나 VO의 남용으로 인해 대부분의 개발자들이 DTO와 VO의 사용을 꺼려하고 있다. 그러나 DTO, VO도 반드시 필요한 존재이며, 적절하게 사용할 경우 좋은 애플리케이션을 만들어 낼 수 있다.
 
이 책이 극단적인 부분들에 대하여 다루고 있다고 해서 책에서 다루고 있는 예제 소스가 극단적이라고 할 수 없다. 이 책의 예제 소스는 적절한 곳에 ADT를 사용하고 있으며, DTO도 적절하게 사용하고 있는 것이 독자들에게 새로운 느낌을 주고 있다. 물론 샘플 프로젝트에 비해서 클래스의 수가 많다고 생각할 수 있지만 이 책의 지침들을 설명하기 위하여 좋은 예제 소스 코드라고 생각한다. 이 예제 소스를 통하여 그 동안 고민하고 있었던 OOP의 많은 부분들에 대하여 새롭게 느낄 수 있는 계기가 되었다.
 
이 책은 저자가 지금까지 프로젝트를 진행하면서 몸소 체득한 지침들을 정리해나가고 있다. 따라서 이 지침들이 책을 읽는 모든 개발자들과 일치하는 지침들은 아닐 것이다. 저자도 이야기하고 있듯이 이 책을 통하여 각각의 지침들에 대하여 고민해보고 자신의 새로운 지침들로 만들어가는 것이 더 중요하다. 이 책에서 다루지 않고 있는 부분들에 대한 문제점을 해결하기 위하여 자신만의 해결책을 찾아 하나의 지침으로 만들어 나간다면 개발자에게는 큰 의미가 되지 않을까?

 
코멘트 0   공감 0
코멘트작성
 
이메일주소수집거부