Book

[Review] 헤드퍼스트 디자인패턴 개정판

Linuxias 2022. 10. 2. 00:09
반응형

디자인패턴은 원래 건축학에서 유래되었다 한다. 오랜 시간동안 다양한 건물을 건축하면서 마주했던 문제들을 정리하다 보니 많은 건축학자들이 다양한 방법으로 문제를 해결하기 위해 노력하였고 그 결과물들은 몇 가지 패턴을 보이게 된다. 그러한 내용을 정리하고 건축학에서 공유를 하며 점점 보완해가고 발전하였다고 한다.

가우디 성당 (출처 : 나무위키)

(가우디는 어떻게 저런 건물을 설계 및 건축할 수 있었을까.)

건축학과 동일하게 소프트웨어 분야에서도 시스템, 서비스 등을 설계하는 과정에서 다양한 문제를 접목하게 되었고, 해당 문제들을 많은 개발자들이 어떻게 해결하였는지 살펴보다 보니 건축학과 유사하게 특정 문제들을 동일한 패턴으로 해결해 나아가는 과정을 보이게 된다.

이러한 패턴들은 암암리에 개발자들끼리 공유가 되고 사용되었던 것을 네 명의 개발자(a.k.a GoF)가 공식화하였다. 그 공식화한 책이 그 유명한 `GoF의 디자인패턴` 이다. 이 책과 함께 디자인패턴 계의 바이블로 불리울 책이 자바 기반의 언어로 출시된다. 그 책이 헤드퍼스트 디자인패턴 이다.

 

다루는 내용

다루는 내용은 개정판 이전과 거의 동일하다.

  • 14가지 GoF 핵심 패턴의 사용 시기와 이유!
  • 즉시 디자인에 적용하는 방법!
  • 쓰지 말아야 하는 상황!
  • 패턴의 근간이 되는 객체지향 디자인 원칙!
  • 그 밖에 알아 두면 좋은 9가지 패턴의 정의와 사용법!

 

헤드 퍼스트 디자인 패턴(개정판) 에서 달라진 점

이 개정판은 새로운 한국어 판으로 개정되어 출시되었다. 조금 더 한국 개발자들에게 친숙하도록 수정되고 구성되었다. 물론 새로운 패턴이 추가되거나 삭제되거나 하는 큰 변경은 존재하지 않는다. (당연하다, 수십년동안 쌓여온 지식의 패턴이 쉽게 변경되진 않을 것이다.)

  • 보편적으로 사용하는 자바 8부터 최신 버전인 자바 16 이상에서 무리 없이 동작할 수 있게 예제 코드 수정
  • 부가 설명과 Q&A 질문 추가
  • 한국 독자만을 위한 새로운 삽화와 한글 친화적인 구성

 

헤드퍼스트를 추천하는 이유

헤드퍼스트는 전 세계의 개발자들에게 찬사를 받은 책이다. 디자인패턴 계의 고전이자 바이블로도 불리우는 책은 그 이유가 있을 것이다.

패턴에 대해 설명하고 코드만을 제시하는 것이 아니다. 왜 이러한 패턴이 필요하게 되었는지 많은 개발자들이 마주했던 여러 문제들을 실제로 책에서 제시한다.

1) 기본에 충실한 지침서

헤드퍼스트 디자인 패턴 개정판은 기존의 헤드퍼스트 디자인패턴에서 보았던 우수한 내용들이 그 이상으로 향상되어 포함되어 있다고 생각하면 된다. 당연히 많은 초보개발자들이 선택했던 이유는 고스란히 담겨있다. 기본에 가장 충실하면서도 재밌게 공부할 수 있는 요소들은 그대로라는 의미이다.

2) 딱딱하지 않은 지침서

다른 도서와 동일하게 UML, 코드, 예시 프로젝트를 제공한다. 하지만 가장 큰 차이는 다양한 일러스트를 통한 이미지 친화적인 도서일 것이다.

이미지 친화적인 도서는 글로만 읽고 이해하는 것보다 더욱 따른 이해도를 제공한다. 또한 서술식이 아닌 등장인물을 통한 대화식은 더욱 가볍게 지식을 습득할 수 있도록 제공한다.

3) 연습문제

도서에서 제공하는 내용만으로는 단편적인 부분만 이해할 수 밖에 없다. 스스로 문제를 겪어 부딪히며 생각하면서 더욱 성장할 수 있는데, 초보 개발자들은 그런 과정과 기회를 접하기 어렵다. 하지만 해당 도서는 90가지 이상의 연습문제를 제공한다. 해당 문제를 가벼운 빈칸 채우기부터 많은 고민이 필요한 상황 제시까지 문제로 제공한다.

가장 추천하는 문제는 '뇌단련' 문제들이다. 고민의 고민을 거듭해볼 것을 추천한다. 문제가 너무 쉽다고 넘어가지 말고 해당 문제를 다시 한번 고민해보자. 그리고 코드 작성이 필요하다면 꼭 작성해보고 나의 솔루션에 빈틈은 없는지도 다시 한번 체크해보자.

 

어떻게 공부하면 좋은가

헤드퍼스트는 여러 문제들을 책에서 제시한다고 설명하였다. 그 문제들을 읽고 해결책을 보는 것이 아니라 책을 잠시 덮고 해당 문제를 해결하기 위한 솔루션을 고민하고 제시하고 코드로 작성해보자. 해당 코드가 실제로 객체지향적으로 구현되었고, SOLID 원칙을 잘 준수하고 있는지 확인해보자. 그리고 해답을 보는 것을 추천한다.

이러한 과정을 통해 설계하는 생각하는 힘과 객체지향에 대한 이해도가 한층 높아질 것이다. 그리고 책에서 제시해준 패턴과 본인의 솔루션을 꼭 비교 분석해보자. 왜 나의 솔루션보다 책에서 제시한 해결책이 나은지 비교를 하는 습관을 들이자. 이 습관과 고민의 시간과 과정들이 더 나은 개발자가 될 것이라 믿는다.

 

결론

무슨 말이 필요할까. 헤드퍼스트 디자인패턴 이라는 도서 제목 하나만으로 모든 설명이 다 되었다고 생각한다. 초보 개발자, 처음 디자인패턴을 접하게되는 개발자라면 무조건 입문서로 추천한다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

반응형