|
한빛미디어 출판사에서 출간된 에릭 프리먼, 엘리자베스 롭슨 저/서환수 역의 <헤드 퍼스트 디자인 패턴> 구매 후 작성하는 후기입니다. 객체지향 프로그래밍에 대해 공부하기 위해 구매하였는데 많은 도움이 되었습니다. 특히 한국인을 위해 예제 코드를 수정하고 부가적인 설명도 되어있어 이해하며 적용하기에 좋았습니다. |
|
'헤드 퍼스트 디자인 패턴'은 초급 개발자에게 매우 유용한 책입니다. 디자인 패턴의 개념을 실생활 예시와 함께 설명하여 이해를 돕고, 각 패턴의 사용 시나리오와 장단점을 명확하게 제시합니다. 또한, 퀴즈와 연습 문제를 통해 학습 효과를 높이며, 실제 코드 예제를 통해 실무 적용 능력을 향상시킬 수 있습니다. 이 책은 디자인 패턴을 처음 접하는 개발자에게 친절하고 효과적인 가이드를 제공합니다. |
| 친구가 추천해줘서 샀는데 너무 좋은 책입니다. 일단 디자인 패턴을 공부하다보면 이게 다 추상적인 개념이다 보니 직관적으로 와닿지 않은 케이스가 많은데 해당 책은 많은 삽화들을 이용해서 정말 이해하기 쉽게 설명을 해주는 것 같습니다. 굳이 단점을 꼽자면 자세하게 다루는 디자인 패턴들이 좀 기초적이고 대표적인 패턴들이라 세부 내용을 좀 줄이더라도 좀 더 다양한 패턴들을 다뤘으면 어떨까 싶습니다. 그래도 후반부에 다양한 패턴들을 짧게나마 다루기는 합니다! |
|
디자인패턴에 대한 이야기를 듣기 시작하며 정말 추천을 많이 받은 책이다. 실제로 책을 받고 왜 그렇게 추천했는지 조금은 이해가 되었다. 다만 책 앞부분에도 나와있듯 처음 자바 또는 객체지향을 접하는 사람에게는 이해에 어려움이 있을 수 있다, 현직자를 대상으로 한다는 것이 실제 업무 상황을 예시로 두고 리팩토링 하는 과정과 그 과정에서의 의사소통 과정 전반에 대한 이해를 단편적으로나마 할 수 있도록 하는 책이다. 하지만 초보자라도 단순한 예제와 상황, 그림을 바탕으로 하는 설명은 디자인패턴에 대한 기본적인 이해를 하는 데에 있어 도움을 받을 수 있을 것으로 보인다. |
|
최고입니다. 디자인 패턴에 대한 설명 뿐만 아니라 객체지향 언어를 어떤 관점에서 바라봐야 하는지 근본적으로 짚어주고 있습니다. 객체지향 언어 사용하면 그냥 이거 무조건 보세요. 중간 중간에 말풍선, 만화, 상황극 등등 독자에게 재밌게 풀이해주는 부분이 꽤 많습니다. 하지만 그 내용 하나하나가 버릴 내용 하나 없이 모두 중요한 내용들이었습니다. 디자인 패턴에 대한 설명만 하는 것이 아니라, 어떻게 객체지향적으로 설계할지 원칙들을 하나씩 짚어주고 객체지향 원칙과 디자인 패턴을 조합하여 설명해주고 있습니다. |
|
한줄 요약 : 프로그래머라면 반드시 가지고 있어야 할 교과서
디자인 패턴 관련 책으로 가장 유명한 것은 'GoF의 디자인 패턴' 일 것이다. 그러나 회사 선배에게도 들었지만 대부분 '헤드퍼스트 디자인 패턴' 책을 더 추천해주신다. 책의 첫 챕터에서는 디자인 패턴을 왜 배워야하고 알아야 하는지를 상황과 코드를 통해 설명해준다. 디자인 패턴 공부를 위해 이 책을 접했다면 옮긴이의 말을 반드시 읽어야 한다. 프로그래머들 중에서 디자인패턴 공부를 숙제처럼 여기고 반드시 해야되는 숙제처럼 여기는 사람들이 종종 있다. 알아두어야 하기는 하지만 의무감을 가질 필요는 없다. 옮긴이의 말에서는 아래와 같이 설명한다.
디자인 패턴이 만병통치약은 아닙니다! 디자인 패턴은 코드를 재사용하고 더 효율적으로 문제 해결을 하기 위한 수단일 뿐니다. 이 사실을 망각해서는 안 된다. '모든 도구는 용도에 맞게, 적절하게 쓰일 때 그 위력을 발휘합니다. 파리를 잡을 때 파리채를 쓰는 게 기관총과 수류탄을 쓰는 것보다 더 나은 것처럼, 디자인 패턴도 어울리지 않는 상황에서 남용하면 역효과만 납니다.' 옮긴이의 말에도 적혀있지만, 디자인 패턴은 이미 프로그래머 선배님들께서 비슷한 문제를 해결하려고 시간과 노력을 투자해서 이것저것 시도해 보고, 그 중에서 가장 효과적이라고 알려진 방법에 이름을 붙여 자리잡은 것이다.
프로그래밍 공부를 하다보면 당연한 것에 용어를 붙여 어렵게 보이는게 종종 있다. 예를 들어, 영화관에서 표를 사기 위해서는 줄을 서야한다. 이 때 먼저 줄을 선 순서대로 표를 구입할 수 있다. 당연한 사실이며 자명하다. 즉, 먼저 들어온 순서대로 데이터를 처리한다. 이걸 컴퓨터공학에서 큐(queue)라는 자료구조로 불린다. 큐와 스택을 알아야 하고 어쩌고 저쩌고 등등. 디자인 패턴도 이와 마찬가지다. 개체가 하나만 존재했으면 좋겠는데 어떻게 해야할까? 프로그래밍 배운대로 생성자에 static을 붙이면 되지 않을까?! 이렇게 여러 곳에서 호출하더라도 개체는 하나만 존재하네! 그러나 다른 개발자들에게 이렇게 구현할걸 줄줄이 말하는 건 시간 낭비다. 간단하게 '싱글턴 패턴'을 사용했다! 로 끝낼 수 있는 것이다.
정리하자면, 디자인 패턴은 문제 해결을 위한 수단 중 하나다. POCU에서는 디자인 패턴을 배운다고 해서 바로 적용하지 말라고 가르친다. 내 코드가 어떻게 동작하는지 확실하게 알고 난 이후에 적용하라고 한다. 문제를 직면하면 해결 방법을 고민하고 다시 비슷한 문제를 마주치면, 같은 해결 방법을 적용할 때 나만의 해결 도구가 나오기 시작하는 상황에서 디자인 패턴을 봐야지만 도움이 된다고 한다. 디자인 패턴은 정리하는 개념이지 가르치는 것이 아니기 때문이다.
책의 장점은 그림과 상황 설명이 많아서 이해하기 쉽다는 것이다. 언어는 자바로 되어있지만 그렇게 어려운 문법을 사용하거나 그런 점을 없다. 따라서 디자인 패턴을 공부해야되는 수준이라면 누구나 쉽게 이해할 수 있을 정도다. 일부 디자인 패턴 책에서는 대충 코드를 보여주면서 '이 패턴을 이런거니 이렇게 쓰면 됩니다' 라고 하는데, 언제 어떻게 적용해야되는지 막막한 감이 있다. 그러나 헤드퍼스트 책에서는 확실히 어떠한 상황에서 효율적으로 적용할 수 있는지 문제와 고민 상황, 한계를 잘 알려준다.
구현 뿐만 아니라 자바 라이브러리도 소개하면서 어디에 어떻게 사용되고 있는지도 자세히 알려준다. 기본적으로 패턴 설계할 때에는 UML을 사용하면서 보여준다. 전체 그림을 보여준다는 점에서 기존과 어떻게 다른지를 한 눈에 파악할 수 있어서 좋다.
![]()
자바를 잘 모르더라도 코드 한줄한줄 설명해주면서, 해당 챕터에서 설명하는 디자인 패턴을 사용했을 때 어떻게 동작하는지 매우 친절하게 적혀있다. 비록 자바를 모르기 때문에 다른 언어를 사용하면 구현 방식에는 약간의 차이가 있을지라도 전체적인 큰 틀에서는 동일한 구조와 동작을 하게 될 것이다. 위의 사진들처럼 책은 그림과 구조 설명으로 페이지 수가 엄청나게 많다. 예시 문제도 약 90개나 되기 때문에 방대한 양을 다루기 위해서 쪽수가 많을 수 밖에 없는 것이다. 이 책은 한 번 쭉 정독하고 그만볼 책이 아니다. 한 번씩 생각날 때마다 꺼내서 비슷한 문제에 대해 어떻게 해결하는지 두고두고 봐야되는 책이다. 그렇기 떄문에 프로그래머라면 반드시 가지고 있어야할 교과서라고 정의한 것이다. 디자인 패턴을 효율적으로 사용하기 위해서는 많은 문제들을 접해봐야 하는데 책에서 그런 예제들을 많이 다루기 때문에 이 책 한권으로 대부분의 디자인패턴 책을 대체할 수 있을 것이라 생각한다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |