실전 코드로 배우는 실용주의 디자인 패턴 (앨런 홀럽, 2006) 독후감

1 minute read

GoF 디자인 패턴이 어떻게 실제로 쓰이는지 예제로 설명하는 책이다. 책 서문에서 밝히듯이 패턴을 다 쓰려고 남발했지만 적절하게 사용해서 소스 코드를 보는 것만 해도 많은 공부가 됐다.

소스 코드도 훌륭하지만, 무엇보다 자기주장이 확실한 게 좋았다. GoF 디자인 패턴을 쉽게 풀어쓴 책들은 명성 때문인지 저자 자기주장을 고이 접어놓는데, 이 책을 쓴 홀럽 아저씨는 그런 거 없다. 자바 월드에 이 책에 실린 1장, 2장 초안을 공개했다가 공격을 많이 받았다고 하던데, 그 정도로 자기주장이 확실한 책이다. 요즘 나름 자기 스스로 고수라고 생각하는 사람들은 왜 그리 묻는지 지겨웠다. 난 진짜 그런 사람들이 어떻게 생각하는지 궁금하다. 스스로 보여주기는커녕 묻기만 하는데, 그런 차에 고수가 자기주장을 확실히 하는 이 책을 만나서 얼마나 반가웠는지 모른다.

setter/getter에 대한 이야기도 기억에 남는다. 누구나 기능 추가나 수정을 하면서 setter/getter가 많을 때 얼마나 변경이 괴로운지를 느끼게 된다. 그래서 setter/getter를 안 쓰려고 하는데, 말이 쉽지 이게 쉽나. 익숙하지 않으니(OOP 헛 배웠나 봐) 설계하는데 시간도 더 들게 되고 UI나 유저 입력 등을 생각해보면 이거 어떻게 해야 할지 감이 안 잡히기도 한다. 이런 걸 디자인 패턴을 사용해 해결하는 걸 보여준다. 종종 인터넷 게시판에서 setter/getter를 쓰면 안 된다는 걸 주장하기는 하는데, 너무 간단한 예제를 들어 설득력이 하나도 없어 안타까운 상황이 보인다. 너무 간단하지 않은 어느 정도 규모가 있는 소스가 필요한데, 그럴 때 걍 이 책을 추천하고 싶다.

설명도 꼼꼼하게 한다. 멀티 쓰레드일 때 singleton, observer 구현 이슈도 빼놓지 않고 설명한다. 게다가 command 패턴을 ’무엇을 어떻게’로 정의하고 strategy 패턴을 ’어떻게’로 정의하는 식으로 패턴을 정의하는데, 이런 단순한 요약 정의도 마음에 든다. 그리고 안티 패턴도 간간이 소개. MFC는 맨날 까이는거지 뭐. Java도 까이고.

정말 많은 걸 생각하게 하고 많이 배운 좋은 책.

PS : Holub on Patterns가 원래 제목이 아닌가? 이 단어로 검색하니 원서밖에 안 나온다.

PS : 지나치게 많은 역자 참여(중간중간 요약정리를 많이 했는데, 옛날 참고서 생각이 났다.)는 좋아하는 사람도 있고 싫어하는 사람도 있을 것 같다. 난 읽는데 방해돼 이런 건 완전 반대.

Update <2017-10-31 Tue> 표지 사진 교체