Head First  시리즈는 읽기 쉽고 가볍고 날렵하다는 이야기를 많이 한다.
실제로  Head First java의 경우에는 나에게 있어 쉽고 재미있게 다가왔다.
하지만 이번에는 다른 녀석이 나타났다!
바로 Head First Design Patterns 이 바로 그녀석이다.

깔끔하고 재미있는 표지는 "어서 날 잡아들고 펼쳐봐" 라고 유혹하기에 충분했다.
디자인 패턴에 대한 다양한 경험도 점검해보고 싶은 터라 내가 주로 이용하는 패턴 이외에
것을 보고자 책을 펼쳐 들었다.
그것도 할일많은 프로젝트 기간에.. 그것도 한참 바쁜와중에 겁없이 말이다.

책은 Head First 시리즈가 다 그렇듯 매우 익살맞고 재미있게 내용이 전개 된다.
언급한 디자인 패튼 15가지에 대해 다양한 예를 들어 책을 읽는 독자의 머리속에 쏙쏙 들어갈줄 알고 설명하고 있다.
물론 예제들은 잘 이해가지만 역시나 UML을 보고 소스코드를 그려내는 과정에서는 과자먹듯 쉽지는 않다.

책에서 등장하는 패턴 (15개)
 - 스트래티지 패턴 : Duck라는 오리를 날려보고 , 모형오리를 만들어보고, 로켓 오리도 만듭니다.
 - 옵져버패턴 : 기상예보 시스템을 모바일에다 쏴주는 예를 들어줍니다.
 - 데코레이션 패턴 : 커피숍에서 커피에 올라갈 토핑을 놓고 패턴을 설명을 합니다.
 - 팩토리 패턴 (추상) : 피자를 굽는데요. 피자를 얼마나 효과적으로 토핑하는지 가지고 설명하네요
 - 팩토리 패턴 (팩토리매서드) : 피자가게가 번성해서 지역 채인망을 만들어냅니다.
 - 싱글턴 패턴 : 초콜릿 만드는 공장에서 500겔런이나 되는 시럽을 망친 이야기를 해주네요.
 - 커맨더 패턴 : 똑똑한 웨이트레이서가 등장합니다.
 - 어뎁터 패턴 : 역시나 모두가 예상하는 돼지코가지고 이야기를 하네요.
 - 퍼사드 패턴 : 어뎁터에 조금더 기능을 확장합니다.
 - 템플릿 메소드 패턴 : 커피만들기와 홍차만들기 차이가 뭐가 있다고!! 이걸 합해봅니다.
 - 이터레이터 패턴 : 훌륭한 웨이트레이서가 또 등장합니다. next(), hasNext()
 - 컴포지트 패턴 : 웨이트레이서가 살짝 나오지만 중요한것은 객체를 tree형태로 관리한다는거죠
 - 스테이크 패턴 : 왕뽑기 게임 ㅋㅋ (그냥 좀 특이합니다)
 - 원격프록시 패턴 : 여기서는 일반프록시를 위해 RMI를 이야기 하고 가상프록시도 다룹니다.
 - 컴파운드 패턴 : 지금하는 WEB의 MVC가 여기에 해당한다고 하는군요
 
 물론 용어적 차이는 있겠지만 내가 살펴보고 알아본것은 이렇게 15개에해당한다. (더 숨어있긴 합니다만..)
 모두들 적당한 예를 들어주고 적당한 이해를 위해 다양한 등장인물들이 나타나 디자인 패턴을  이야기 한다.

책을 소비하는 다양한 계층을 위해 좀 힌트를 주려한다.
책을 공부할 사람은
http://www.wickedlysmart.com/HeadFirst/HeadFirstDesignPatterns/HeadFirstPatternsIndex.html
에서 코드를 받아다가 실행해보거나 타이핑 해가면서 했으면 한다.
때로는 소스코드를 먼저 보고 패턴을 이해해 역발상의 학습방법도 효과적이니 말이다 .

내경우 스트래티지 패턴에서는 타이핑해가며 추상객체가 interface를 만나게 되면
얼마나 재미있는 일이 벌어지는지를 봤었기 때문에 적어도 타이핑 하기 쉬운 몇장은 해봤으면하는
가이드를 주고 싶다. 
아! 옵져버패턴까지만 타이핑 했다. 이후부터는 녹녹치 않은 양이 기다리고 있어 그냥 책만 보게 되었다.

하지만 책을 이렇게 갈아마시고 뇌속에 흡수시키실 분이 아니라면 (누군지는 아시겠죠?)
그냥 자신의 입담으로 적당히 책을 봤다고 이야기 하고 싶은 사람이라면 617페이지부터 보시길
바란다.

그곳에는 디자인 패턴에 대한 고상한 용어들과 GoF 4인방의 맴버들 이름이 언급되어있다.
(실제로 이들의 이름을 알고 있고 이들이 GoF라는것 가지고 마치 자신이 IT를 잘 아는적! 훌륭한척 하는
못봐줄 분들 참 많습니다. 님들! 제발 좀~!!)(에릭감마도 기막혀서 웃을꺼에요)

개인적으로 이렇게 가볍게 봤다 진진하게 본 책은 몇권 안되는데
Head First Design Patterns은 정말이지 신선하게 다가 왔다.
IT책들이 딱딱하고 부드럽지 않아서 잘 이해가 되지 않는다고 말하지만
내경우에 이책은 부드럽지만 쉽게 갈아마시기에는 결코 가벼운 책은 아니였다고 말하고 싶다.

책 추천자들은 화장실에서 봤다는둥 하루만에 봤다고 하지만 나는 아직도 배워는 중이라 좀 시간이 걸렸다.
중요한것은 책을 몇일만에 봤다는게 아니다.
책을 이해하고 얼마나 실전에 잘 이용하는냐가 중요할것으로 보인다.

끝으로 이책에서 말하는 진짜 디자인 패턴의 정의를 다시 언급하려고 한다.
"패턴이란? 특정컨텍스트 내에서 주어진 문제의 해결책이다. " (617Ppage)
 > 특정컨텍스트 : 반복적인 일을 줄여냄
 > 해결책 : 누구든지 적용해서 일련의 제약조건 내에서 목적을 달성하는것

모두가 패턴 황재가 되라는게 아니다.
모두가 이해하는 효율적인 코드.. 그것이 디자인 패턴이 바라는 궁극적인 해답이라고 생각한다.

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!