2007년 한해를 마무리 하면서 무슨책을 볼까 하면서 손에 잡힌책이 "생각을 바꾸는 패턴"이다.
영어에서 문법을 알면 영어가 고급스러워지는것 처럼 패턴 역시 그러한 현격한 영향을 가져다 주기에
2007년을 패턴으로 마무리 지어보려 읽어보게 되었다.
책은 무척이나 가벼우면서도 깊이 파고들면 한없이 무거움이 느껴지는 책이다.
그도 그럴만한것이 책은 GoF의 에릭감마가 이야기한 23개의 패턴을 지지하는 내용이 샘플 소스코드와
함께 소개되어있기 때문일 것이다.
책을 찬찬히 보게 되면 알겠지만 매 단락마다 GoF의 인용을 뺴놓지 않고 하고 있다.
처음 책을 봤을때 생각을 바꾸는 패턴이라는책은 내 생각을 180도 다른 패턴에 임하는 그런 책은 아니다.
(역시 이번에도 제목만 보고 안티페턴처럼 선입견을 가지고 열여봐버렸답니다.)
책은 일반적인 현상이나 생활속에서 발생하는 우리의 생각을 Program적으로 어떻게 진화시킬 수
있는지를 GoF의 패턴을 이용하여 진화시켜주는 책이다.
개인적으로 책에서 가장 맘에 드는 한부분을 인용해보면 다음과 같다.
버거가게를 만드는 패턴!!
이해가 되는가? 햄버거를 만드는데 별다른 패턴이 필요하지 않을것 같은데 버거가게에서도 패턴이
도입이 되는게 바로 이책안에서 생각을 바꿔주는 일에 해당한다.
버거를 만드는데는 양파, 치즈, 살사소스, 토핑 등이 필요하고 이것들이 조합되어 맛있는 햄버거를 만들어진다.
자 그럼 어떻게 이런 조합들을 프로그램 적으로 어떻게 설명할 수 있을까? 그리고 어떻게 하면
가장 유지보수 하기 편하게 만들수 있을까? (아주 아주 깜찍한 발상이죠. ^^)
내용은 SandWich라는 라는 basic Class를 생성하고 SendWichDecorator 라는 Class가 SandWich를
상속받고 getPrice()가 내용물을 감싸는 샌드위치의 getPrice()를 호출하게 된다.
getPrice()는 ChooseDecorator 라는 Class에 선언되어있는데 ChooseDecorator 는 다양한 토핑정보를
가지고 있게 되는것이다.
나의 설명이 다소 어렵게 느껴질 수도 있다.
하지만 책에서는 UML로 이해하기 쉽게 잘 설명되어있으니 궁금하면 한번 찾아보는것도 좋을것 같다. (95Page)
이렇게 언급한 버거가게 패턴은 GoF의 "Decorator패턴"을 이해하기 쉽도록 설명해 놓고 있다.
그밖에도 책안에는 제품구성, 패턴시스템 개발 등과 같은 다양한 실습예제가 들어가 있고 또 책 초반에는
UML대해 짧은 소개도 들어가 있다(책이 UML로 소개되어있어 그런것 같습니다.)
얼마나 패턴이 쉽게 다가올지는 소비자의 이해도에 따라 다르겠지만
우리가 알고있는 에릭감마의 GoF의 딱딱한 하드커버가 쉽게 감동이 되지 않는다면 한번 이책을 보고
다시 GoF로 이동하는것도 좋은 방법이라 생각한다.
끝으로 이책을 총평하자면 생각을 바꾸는게 아니라 생각을 진화시켜 패턴에 도달케하는 책이라고 말하고 싶다.