
취준생일때 헤드퍼스트 시리즈를 처음 알게되었다. 당시 헤드퍼스트 Java 원서를 구해서 세 번정도 읽고 정리를 했는데 기본적으로 알아야 하는 내부적 원리를 머릿속으로 쉽게 그릴 수 있게 해주었다.
이 글의 주인공인 헤드퍼스트 디자인패턴을 구매한지 오랜시간이 지났지만 완독하기 쉽지 않았다. 다행히 매주 일요일 아침마다 참석하고 있는 북스터디에 의견을 내서 다같이 읽게 되어 지난주 (25년 7월 19일)에 마무리할 수 있었다. 벌써 8개월째 매주 일요일 아침에 모임을 갖고 있는데 평소라면 의미없이 흘러갔을 시간인데 스터디라는 목적으로 강제적으로 모여 책을 하나씩 읽어나가는 것은 나름 보람찬것 같다.
이 책은 디자인패턴의 입문서로 많은 추천 받았고, 현재 회사에 첫 입사 후 아키텍처와 패턴에 관심이 많아지게 되어 "클린 아키텍처", "가상 면접 사례 어쩌구저쩌구" 책에 이어 읽게 되었다.

헤드 퍼스트 시리즈는 많은 삽화가 들어가며 필기를 한듯한 글자들을 배치하는것이 특징이다. 일부는 학습에 도움될 수 있지만 정신없게 느껴질때가 있어서 읽기가 어렵다고 느꼈던것 같다. 스터디로 함께 읽지 않았다면 아직도 책장에서 나를 괴롭히고 있지 않았을까?
책은 무슨 내용인가?
입문서적에 맞는 내용을 담고 있다.
전략패턴 부터 시작해서 옵저버 패턴, 상태패턴, 커맨드 패턴 그리고 MVC 패턴으로 마무리 한다. 스프링의 기본이 되는 전략패턴과 프록시 패턴을 다루는데 실무에서 실제로 가장 빈번하게 사용되는 패턴들을 우선적으로 보여준다고 느꼈다. 이중에서 단연코 전략패턴이 가장 유용했다.
전략패턴과 유사한듯 다른 상태패턴은 내가 속한 HR 도메인에 적용을 해볼 수 있지 않을까 하는 PoC를 작성해보기도 했는데 워낙 맡는 일들이 우선순위들에 의해 수행되기 때문에 실제로 실무에 적용할 기회는 아직 없어서 아쉬웠다.
HR 시스템에 상태패턴에 적용 아이디어
이러한 패턴들의 기초를 학습하고 패턴 카탈로그를 소개해준다. 패턴 카탈로그는 일종의 패턴 모음집인데, 언제 이 패턴을 써야할지 그리고 장점과 단점에 대해 서술한다고 생각하면 된다. 가장 유명한 패턴 카탈로그는 GoF 디자인패턴 이다.

아마 이 책부터 읽기 시작한다면 왜 이렇게 작성 되어있는지 이해하지 못했을 것이다.
책을 추천하는가?
디자인 패턴과 관련된 학습 자료들은 많이 있다. "얄코의 떠먹여주는 객체지향 디자인 패턴" 이라는 인프런 강의도 학습을 했었는데, 상태 패턴을 설명해주는 예시 강의를 보고 구매를 결정했었다. 결론적으로 돈 낭비였지만. 나머지 강의들은 AI를 이용해서 제작한 느낌의 강의였다. 앞으로 강의를 구매할 일은 없을것 같다.
개인적으로는 헤드퍼스트 디자인 패턴책을 읽어보는것을 추천한다. 디자인 패턴이 어떤 내용인지, 무엇을 알아야하는지 메타인지를 확보하고 디자인 패턴 카탈로그 라는 GoF의 디자인 패턴을 그 다음 단계로 읽어보는게 어떨까? 나도 계획으로만 세웠지 아직은 학습할게 너무 많아서 우선순위에 해당되지 않아 실행하지 못하고 있다.
알라딘에 가면 1만원도 안되는 가격에 판매중이니 나중에 저렴하게 업어와야겠다. 예전에는 몇십년된 논문들 (말해보니 별로 오래되지 않았네?)을 클래식이라고 부르는데, 이러한 논문들을 읽어보는것도 나름 재미가 있었다. 여러 논문에 인용하면서 똑똑한 척을 했던것 같은데 GoF가 이런 느낌이 아닐까? 디자인 패턴의 클래식.
다음 스터디 책은 HTTP완벽가이드다. 아무래도 비전공자라서 네트워크에 대한 지식이 많이 부족하게 느껴졌다. 대학교에서 배웠다면 웹서버를 C로 구현하기 뭐 이런 과제를 해보지 않았을까? 그러한 차이가 그 당시 기계공학과를 선택했던것에 후회를 하게 하는데 지금 후회해봤자 무슨 의미가 있나.