[도서리뷰] 헤드퍼스트 디자인패턴

안녕하세요 괴짜 개발자 namedboy 입니다.

오늘은 아는 사람은 다 아는 디자인패턴에 대해 얘기를 조금 해볼까 합니다.

헤드퍼스트 디자인패턴은 굉장히 오래된 책입니다. 한국어로 번역된 초판이 무려 2005년에 나왔으니까 한국어로 번역된 책이 나온지도 20년이 넘은셈이죠.

이 책은 일반적인 개발 서적과 조금 다릅니다. 코드만 나오는 것도 아니고, 그렇다고 줄글로만 주구장창 쓰여져 있지도 않지요. 이 때문에 책을 읽으면서 여행하는 느낌이 나기도 합니다.

책에는 총 16가지의 패턴을 다루게 됩니다. 물론 여러 패턴들 얘기하기 전에 예제를 통해 전체적인 패턴을 사용하는 방식에 대해 얘기합니다.

옵저버, 데코레이터, 팩토리, 싱글턴, 커맨드, 어댑터, 퍼사드, 템플랫 메소드, 반복자, 컴포지트, 상태, 프록시 등의 패턴을 얘기해봅니다. 물론 이 모든 패턴에 대해 익숙해지면 좋겠지만 모든 것이 그렇듯 필요할 때 적재 적소에 쓰는 것이 중요합니다.

중요도에 따라 더 많이 쓰이는 패턴이 있기도 하고 상대적으로 덜 사용되는 패턴도 있지요. 저는 오히려 이 책에서 얘기하는 내용 중에는 패턴도 중요하지만 유연하게 개발하는 것에 대해 생각할 수 있도록 얘기하는 것도 정말 중요하다고 생각합니다.

  • 디자인 패턴은 만병통치약이 아닙니다.
  • 패턴이 정말 필요한가?
  • 무조건 패턴을 적용해야 하는가?

등의 질문을 통해 패턴을 적용하는 것에 대해 생각해보게 되는 것. 이 패턴이 정말 필요한 것인가? 같은 생각들을 하는 것을 통해 점점 더 나은 개발을 해야 하는 것이죠.

디자인패턴이라는 것은 선배 개발자들의 경험과 노하우를 녹인 일종의 전래동화 같은 것이라고 생각합니다. 그러한 이유로 경험을 공부하고 학습하면서 왜 이런 패턴이 나오게 되었는지 확인하고 그 상황이 되었을 때 내가 더 자연스럽게 비슷한 형태의 패턴을 사용한다면 디자인 패턴에 대해 제대로된 학습을 했다고 생각이 들 것 같습니다.

무턱대고 디자인 패턴이 좋으니까 적용하자! 또는 사용할 곳이 명확하지도 않은데 이걸 사용해야 해! 같은 것은 하지 않았으면 하는 바램입니다.

이 리뷰 내용은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 책의 내용이 궁금하다면 이곳을 통해 확인할 수 있습니다.