로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
서평보기
Head First Design Patterns
에릭 프리먼 외 | 한빛미디어 | 번역서 | 2005-09-04
종합평점
도서수준
프로그래머들의 비급 : 디자인 패턴 2007-05-03 오후 3:41:43 
평점
도서수준
조회수 (2266)
공감 (0)
김충지 님의 블로그
  코딩을 어느정도 하다보면 알게 모르게 무언가 반복적인 코드 패턴이 계속 나온다는 것을 느끼게 된다. 처음에는 그러려니 하고 넘어가지만 그런 코드의 패턴이 계속 나오고, 급기야 그런 패턴으로 인해 짜증이 날 정도가 되면 그 패턴을 체계화하여 좀더 쉽게 쓰려 한다. 하지만 왠걸... 그렇게 똑같아 보였던 패턴이 정리를 하려 하면 쉬운 일이 아니다. 될듯 말듯 한대 그 패턴을 정리하기가 쉽지 않다. 만일 정리만 할 수 있다면 다시 이런 패턴이 나올 때 문제없이 같다 쓸 수 있을 듯 한대 말이다.
 
  하지만 다행히도 이런 고민은 나만 한게 아니었다. 코딩이란게 시작된 이래 수많은 선배들이 이미 이런 고민을 해왔고 나보다 수십배는 더 이 문제에 대해 성찰해 왔다. 그리고 그들은 마침내 그런 패턴들을 체계화 할 수 있는 방법을 발견했다. 이 혁명적인 발견은 흔히들 GoF로 통칭되는 책으로 세상에 나오면서 프로그래머들 사이에 한 줄기의 빛이 되었다. 그리고 그런 체계적으로 정리된 패턴을 디자인 패턴이라 칭했다.
 
  당신이 초보개발자이든 이미 뛰어난 능력을 가진 개발자이든 상관이 없다. 혹시나 디자인패턴에 대해 모르고 있거나, 막연히 알고 있다면 당장 서점으로 달려가 GoF를 집어 들어라. 그리고 읽어라. 하지만 여기에 결정적인 문제가 있으니 GoF는 읽기가 쉽지 않다. 내용이 어렵다기 보다 그 구성자체가 상당히 지루하게 짜여져 있다. 읽고 있으면 마치 사전을 읽고 있는 듯한 느낌이 된다. 그냥 가볍게 어떤건지 감을 잡기위해 읽어보기에는 책의 내용이 너무나 지루하다. 하지만 걱정할 것이 없다. GoF대신 "Head First Design patters"를 집어들면 되기 때문이다.
 
  "스토리가 있는 패턴 학습법"이란 부제처럼 이 책은 여러 디자인 패턴은 단순히 열거하는대 그치지 않고 하나의 디자인 패턴을 설명하기 위해 재미있는 상황을 곁들이고 있다. 말그대로 하나의 스토리가 있고 그 스토리를 따라가면서 한개의 패턴을 설명해준다. 덕분에 사전식 구성의 GoF에 비해 훨씬 재미있게 읽을 수 있다. 그리고 화면 곳곳에 배치된 익살스러운 사진과 흥미로운 화면 편집등은 이 책을 읽는 재미를 더해준다. 물론 사람에 따라서는 이런 구성이 산만하게 느껴질 수도 있다. 하지만 분명한 것은 적어도 이 책이 GoF보다는 더 읽기 쉽다는 것이다.
 
  책은 모든 패턴을 설명하기 보다는 가장 많이 쓰이고 중요한 패턴을 중심으로 설명하고 설명되지 않은 패턴들은 간단하게 요약하는 방식으로 되어 있다. 설명은 알기 쉽게 되어있고 설명에 사용된 예제또한 만족 스럽다. 그리고 배운 패턴을 잊어버리지 않도록 책 전반에 걸쳐 각 패턴의 차이점과 장단점을 인터뷰형식으로 설명해 주고 있다.
 
  아마도 현재 까지 나온 디자인 패턴 책들 중에서 입문서로서는 최고의 책이 아닐까 한다. 여기서 중요한 것은 입문서로서 최고라는 것이다. 이 책을 다 읽은 후 결국 다시 GoF로 돌아와야 한다. 물론 그때는 GoF를 완독할 필요가 없다. 필요에 따라 디자인 패턴을 선택한 후, 다시 한번 헤드퍼스트로 감을 잡고 GoF로 그 패턴을 심화학습 하는 방법을 추천한다. 이 책을 읽은 후 무턱대고 다시 GoF를 처음부터 공부하는 것은 어느정도 시간 낭비인 듯 싶다.
 
  사실 디자인 패턴을 익히는 것보다 더 힘든 것은 바로 위에 말한 필요에 따라 디자인 패턴을 선택하는 것이다. 이 부분은 공부보다는 노우하우가 더 필요한 부분이다. 헤드퍼스트에서도 무작정 디자인 패턴을 적용하는 것에 대해 반대하지 않는다고 쓰고 있다. 그렇게 적용하다 보면 어느정도 경험과 노하우가 쌓이고 디자인패턴을 적용해야 하는 시점을 파악할 수 있다는 것이다. 나도 이런 이론에 어느정도 공감한다. 중요한 것은 디자인 패턴을 사용해 보는 것이다. 사용해 보지 않고 여기가 오르다 아니다를 판단할 수는 없다. 잘 모르는 상태에서 사용하지 않는 것 보다는 한번 사용해 보는 것이 더 도움이 될 것이다.
 
  디자인 패턴을 하나의 과학기술로 본다면 모든 과학기술이 그렇듯이 디자인 패턴 또한 양면성이 있다. 잘쓰면 이보다 더한 도구는 없지만 잘못쓰면 자신의 프로젝트 전체를 망치는 독이 될수도 있다. 하지만 디자인 패턴을 알고 있다는 것은 어떤 상황이 닥쳤을 때 그에 대응할 수 있는 하나의 연장을 더 가진 것이다.

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