디자인 패턴 책으로 유명한 Head First design patterns 책을 읽고 리뷰를 남기려고 합니다. 해당 책에 대해 간단히 소개하고 제가 읽고 느낀 부분을 말씀드리겠습니다.
Head First design patterns 소개
Head First design patterns 책은 이름에서 알 수 있듯이 디자인 패턴에 대해 다룬 책입니다. 부록까지 포함하면 아래 리스트와 같이 총 14장으로 구성되어 있습니다. 아래의 목차를 보면 알 수 있듯이 1장 디자인 패턴 소개에서는 왜 디자인 패턴을 배워야 하는지에 대한 설명을 합니다. 그 외 장들은 각 패턴에 대해 소개와 예제를 실습해 보는 구성입니다.
- 디자인 패턴의 세계에 오신 것을 환영합니다: 디자인 패턴 소개
- 객체들에게 연락망을 돌립시다: 옵저버 패턴
- 객체 꾸미기: 데코레이터 패턴
- 객체지향 빵 굽기: 팩토리 패턴
- 세상에서 단 하나뿐인 특별한 객체: 싱글턴 패턴
- 호출 캡슐화: 커맨드 패턴
- 적응시키기: 어댑터 패턴과 퍼사드 패턴
- 알고리즘 캡슐화: 템플릿 메소드 패턴
- 잘 관리된 컬렉션: 이터레이터와 컴포지트 패턴
- 객체의 상태: 스테이트 패턴
- 객체 접근 제어: 프록시 패턴
- 패턴들로 이루어진 패턴: 컴파운드 패턴
- 실전에서의 디자인 패턴: 패턴과 함께 하는 행복한 삶
- 부록: 기타 패턴
기억에 남는 장
책을 읽으면서 기억에 남거나 도움에 되었던 패턴에 대해 소개하겠습니다.
📌 1 장 디자인 패턴의 세계에 오신 것을 환영합니다: 디자인 패턴 소개
해당 장에서는 다른 개발자들이 해결한 문제를 왜 활용해야 하는지 알아봅니다. 사실 디자인 패턴을 왜 배워야 하는가 의문이 있었는데 유지 보수를 쉽게 할 수 있을 뿐만 아니라 개발자들과 의사소통이 쉬워졌으며 디자인에 집중할 수 있다는 것을 배우게 되었습니다.
다른 개발자들과의 의사소통 가치를 극대화시킬 수 있는 전문 용어 역할을 합니다.
📌 12 장 패턴들로 이루어진 패턴: 컴파운드 패턴
우선 컴파운드 패턴을 간단히 소개하자면
복합체라는 의미로 여러 패턴(두 개 이상의 패턴)을 함께 결합하여 다양한 디자인 문제를 해결하는 것을 말합니다.
해당 장에서는 이전 장에서 배웠던 패턴들을 다양하게 사용해서 결합해서 문제를 해결하는 예제가 나옵니다. 이전에는 계속 한 개의 패턴만 배워 어떤 식으로 패턴을 결합해야 하나 고민을 하였는데 해당 장을 학습하고 어떤 식으로 패턴을 합쳐야 하는지 알게 되어 더욱 기억에 남았습니다.
추가로 각 장에서 패턴을 학습할 때 대부분 한 개의 예제로만 진행해서 이해하기에 어려움이 있었습니다. 그런데 해당 장을 보고 이전 패턴들을 다시 보니 이전에 적용하기 어렵던 패턴을 적용할 수 있게 되었습니다.
해당 책을 학습할 때 해당 컴파운드 패턴도 같이 보면 이해하기에 더 쉬울 것 같습니다.
이 책으로 느낀 점은?
디자인 패턴에 대해 간단한 지식만 있었는데 해당 책으로 학습하고 직접 적용하니 리팩토링하기에도 좋았습니다. 그리고 위에서 말했듯이 개발자들과 의사소통 시에도 패턴으로 이야기하여 패턴에만 집중할 수 있게 되었고요.
위에 기억에 남는 장들 외에도 팩토리 패턴이나 템플릿 패턴 등 도움 되는 패턴도 많이 있었습니다. 패턴을 적용해서 개발하니 유지 보수도 쉬워지고 다른 개발자가 소스를 볼 때도 이해하기 좋을 것 같습니다.
아쉬운 점은?
이 책이 읽으면서 아쉬운 점을 간단하게 세 가지만 말하고자 합니다.
1. 와닿지 않는 예제로 가끔 흥미가 떨어진다.
해당 책은 회사에서 일을 받아 패턴으로 문제를 해결하는 방식으로 진행됩니다. 그런데 오리 시뮬레이션 게임과 같은 예제는 저한테는 흥미가 생기지는 않아서 약간 지루할 때가 있었습니다.
2. 패턴에 대한 정의가 마지막에 나오는 구성이라 참을성이 필요하다.
이 책은 예제를 진행하다가 문제를 해결하고 나중에 결과가 나오는 구성이다. 예제가 너무 길 때는 그래서 결과가 뭐야? 하며 지루할 때가 종종 있었다. 그래서 패턴 정의부터 보고 예제를 읽을 때가 있었다.
3. 가끔 이상한 유머?을 해서 흥미가 떨어진다.
가끔 책에서 어이없는 농담을 할 때가 있어 흥미가 떨어진다. 예를 들어 가끔 패턴들끼리 싸울 때가 있다. 그중 스트래티지 패턴과 스테이트 패턴이 싸울 때 스트래티지 패턴이
나는 1장에 나와 있고, 너는 겨우 10장이나 되어서야 등장했잖아. 여기까지 읽는 사람이 몇 명이나 될까?
이런 어이없는 유머가 나올 때가 있다. 가끔 어이없어서 웃기긴 하지만…🤣
총평
해당 책만으로 학습하기보다는 다른 책이나 사이트와 함께 학습하는 것을 추천합니다. 이 책에 나오는 예제만으로 패턴을 이해하기 어려울 수 있다고 생각합니다.
같이 보면 좋은 사이트
아래 사이트들은 패턴 설명과 예제 등 다양한 설명이 있습니다. 그리고 여러가지 언어로 패턴을 작성되어 있습니다.