October 02, 2022
이 책은 어디서부터 시작할지 모르겠는 디자인 패턴에 대해 알려준다. 궁금은 한데 수많은 종류에 어디서부터 시작해야할지 잘 모르겠는 디자인 패턴 말이다.
한국어 초판은 2005년에, 그 이후로 개정판이 2022년에 나왔는데 표지가 인상적이어서 읽어보기 전부터 조금은 친숙한 책이었다.
개정판이 올해에 따끈따끈하게 나온 영향인지 오래된 느낌은 전혀 없이, 꼭 필요한 지식들에 대해 대화체로 아주 자세하고 친절하고 재미있게 알려준다.
‘2005년에 초판이 발행된 책이니까 그래도 조금은 오래된 느낌이 있지 않을까’라는 우려는 아마 책장을 세네장만 넘겨도 바로 사라지는 것을 알게 될 것이다.
이 책에는 ‘chapter 0. 이 책을 읽는 방법’이 준비되어 있다. 그만큼 이 책의 설명 방식이 다른 책과는 차별화될 정도로 자신있다는 의미일 것이다.
책을 보면서 다른 사람들의 회의에 몰래 참석하는 느낌을 받았다.
‘몰래 참석’이라고 한 이유는 나는 내용을 듣기만 하면 되어서 부담감이 없는 상황이고, 그 회의에 참석하는 구성원들은 모두 뛰어난 실력의 소유자여서 내가 닮고 싶어하는 사람들인 것 같았기 때문이다.
예를 들어 A와 B가 참석하는 회의라고 가정할 때,
A: OO이기에 XXX한 방식으로 진행하면 될 것 같아요!
(책을 읽고 있는 나: 오 저도 그렇게 생각해요!)
B: XXX는 +++한 문제가 있지 않을까요?
(책을 읽고 있는 나: 맞네..그런 문제가 있었네. 그럼 어떻게 하지?)
와 같이 A가 생각한 방식에 동의했는데, 이에 대해 B가 합당한 변론을 제기하고, 수정 방안을 맞춰 나가는 방식으로 책의 수많은 대화가 구성되어 있기 때문이다. 처음부터 ‘이 패턴에서는 이렇게 하면 된다’라고 답만 알려주고 끝내는 것이 아니라, 그렇게 하는 것이 가장 합리적인 이유와 그러한 결론이 유도된 사고와 배경에 대해 자세히 이야기해 준다.
마치 아래처럼 말이다.
그렇게 도출된 결론을 코드로 설명함으로써 한결 분명한 이해를 돕는다!
그래서 이 책은 654페이지라는 두께임에도 부담감은 줄이고, 내용에만 집중할 수 있도록 돕는다.
이 책을 읽기 전까지는 ‘그래서 디자인패턴이라는 것을 왜 하는 것일까? 그 수많은 패턴의 장단점을 어떻게 다 알고 적재적소에 적용을 할까?’라는 질문이 있었다.
이 책에서는 그러한 점들에 대해 아래처럼 자세히 설명을 한다.
딱딱한 문장이 아니라 소설을 읽는 것처럼 궁금한 패턴들에 대해서 하나하나 학습해 나가면 엄청나게 도움이 될 책이다.
책의 화법이 전반적으로 친근한 것과 동시에 예시들도 무척 이해가 잘 가는 주제들로 구성되어 있다.
오리 클래스를 이용하여 꽥꽥 우는 오리, 하늘을 나는 오리들을 구현하기도 하고
피자 가게를 운영하면서 신메뉴 출시도 하고, 각 지역의 특성을 반영한 체인을 내기도 하는 방식으로 말이다.
이런 경우 너무 pseudocode로만 작성되어 이해는 되더라도 코드로의 실제 적용이 어려운 경우도 종종 있는데 이 책은 자세한 설명과 함께 코드의 구현을 돕는다.
한 챕터에서 학습한 내용에 대해서 ‘쓰면서 제대로 공부하기’. ‘낱말 퀴즈’등으로 확인을 하는 것 이외에도 중요한 개념들에 대해서는 여러 번 반복하면서 자유롭게 사용할 수 있도록 돕는다.
앞으로 디자인 패턴에 대해 궁금한 점이 생기면 그 특정패턴에 대해 알아보고 친근하게 다가갈 친구가 생겨서 기쁘다.
디자인 패턴을 알고 싶은 모든 분들께 이 책을 강력하게 추천한다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.