저의 돈으로 직접사서 직접 완독해본후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할것이며, 단점은 단점대로 언급할 것 입니다.
<읽은기간>
2021/8/14 ~ 2021/09/08
<리뷰 순서>
1) 책의 표지
2) 단원별 구성
3) 읽은소감
우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 3가지에 대해 답해보겠습니다.
Q 이 책을 읽기 전에 필요한 수준/ 지식은?
=> JAVA 언어정도는 어느정도 알아야 읽을 수 있습니다. 막 문법을 익히신 분들께는 내용이 추상적이라 어려울수도 있을것 같습니다.
Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?
=> 자료구조 만큼 중요한것이 있다면 바로 디자인패턴일 것 이다. 예전부터 디자인 패턴의 중요성은 인식하고 있었지만, Java를 공부한 후 배우기 위해 아껴두고 공부안하고 있었던(..응?) 내용이였다. 이번 기회에 공부할수 있어 다행이였다.
디자인 패턴은 자바를 넘어선 객체지향적 개발을 할때 많이 사용되는 검증된 패턴들의 집합이다.
기존에 검증된 패턴들을 익혀두면 같이 일하는 사람들간에 소통이 원활하다는 장점이 있다. 또한 오랫동안 사용되어 온 만큼이나 중요하단 증거이다.
Q 이 책을 읽은후 추후 공부는?
=> 객체지향적 시각을 넓히기 위해 조영호 님의 오브젝트 라는 책을 읽어볼 예정이다.
아! 혹시 너무 오래된책이라 자바 문법이 다를까 걱정되는 분들 있으시죠?
=> 걱정안하셔도 됩니다. 문법 사항이 문제가 되는 경우는 한번도 없었습니다.
구조를 배우는 공부이지, 문법사항이 주를 이루는 책이 아닙니다.
1. 책의 표지
누가봐도 해드퍼스트 시리즈 인거 인식이 된다.
이런점에서 책들이 공통된 디자인을 갖고 시리즈 물로 만들었다는 점이 대단한 것 같다. 하나의 상징과 같은 표지 디자인은 대단한것 같다.
2. 단원별 구성
책 초반부에서 찍은 부분이다. 이 책에서 배우는 전체 목록을 알수 있다.
원래 바이블에 해당되는 GoF의 디자인 패턴책을 보면 위의 13가지 이외의 추가적인 패턴이 더 있다.
하지만 해드퍼스트 에서는 더 많이 사용되는 위주로 선별하여 설명한다고 했었다. 위의 패턴을 공부하고 나면 나머지 패턴들은 스스로 찾아보면서 공부하면 된다고 하였다.
또한 책의 내용을 내가 쳅터별로 요약 정리해논 글들이 있다. 궁금하다면 다음 링크를 들어가서 읽어보길 권장합니다!
(제목 클릭시 해당 글로 이동)
1. 전략 패턴
2. 옵저버 패턴
3. 데코레이터 패턴
4. 팩토리 패턴
5. 싱글턴 패턴
6. 커맨드 패턴
7. 어댑터 패턴
8. 퍼사드 패턴
9. 템플릿 메소드 패턴
10. 이터레이터 패턴
11. 컴포지트 패턴
12. 스테이트 패턴
13. 프록시 패턴
14. 컴파운드 패턴
리뷰를 인상깊게 공부했었던 4장 팩토리 패턴을 기준으로 작성하겠다. 여기서 DIP를 배웠었는데 정말 뇌리에 깊게 박히는 내용이였다.
3. 팩토리 패턴
보통 쳅터가 시작하는 부분마다 삽화와 그 밑에 해당 패턴에 대한 간략한 소개가 있다.
이책의 경우 대부분의 설명이 친근한 어조 이며, 뭘라까 친구가 말거는 듯한 느낌을 자주 받았다. 또한 유머러스 한 부분들도 포함한 노력이 많이 보인다.
또한 가볍개 예기하다가도, 중요한 부분에서는 정확한 다이어그램을 보여주며 설명해 준다.
위의 사진에서 보듯 책에서 한페이지의 구성이 우리가 자주보던 책과는 많이 다르다.
보통 우리가 생각하는 기술 서적은 한페이지에 글 가득, 직사각형에 가까운 사진들 의 조합, 딱 떨어지는 코드 부분 의 구성으로 된 책들이 대부분이다.
하지만 이책은 이런부분에서 완전하게 다른점을 볼수있다. 최대한 그림과 설명을 같이하는 부분이 많다.
책 앞부분에 저자가 말했었는데, 그림과 설명을 분리하는 것 보단, 한부분에 포함시켜야 우리의 뇌가 더 잘 기억한다고 했다.
또한 딱딱한 대회 스타일이 아닌, 진짜 대회를 주고 받는듯한 글도 있다.
저기서 등장하는 인물들 책 끝날때까지 자주 나오신다. 에단 하고 조엘 이라는 사람인데 이름도 기억한다. (고정으로 나오시는 분들 더 있다..)
이럼점이 이책이 다른책과 다른 특별한 장점이라 생각한다.
또한 글을 읽다보면 코드상에서 순차적으로 과정을 생각해야 하는 부분은 필연적으로 있기 마련이다.
이런 부분에서 바로 직전 사진의 오른쪽에 보이듯, 그 과정과 더불어 시각화 시키는 그림과, 첨부된 코드를 한번에 보여 학습의 능률을 올려준다
사진 설명을 입력하세요.
또한 필요한 실행 결과는 항상 결과값을 보여준다. 또한 이미 전체 코드가 깃허브에 올라와 있기 때문에 책의 지면상 생략한 부분들을 코드를 받아 보면 된다.
또한 항상 해단 단원의 핵심을 언급하기전 문제가 될만한 상황으로 스토리를 만들어 시작하는데, 이렇게 문제점을 보여준 후 마치 구원자 처럼
"xxx 패턴을 만나볼까요?" 와 같은식으로 해결책을 던져주면 정말 확 들어온다.
항상 해당 패턴이 끝나면 전체적으로 설명하는 부분과 더불어 정리하는 부분이 있다.
이부분이 정말 좋다고 생각한다. 갑자기 배웠던 부분이 생각이 안나면 이부분으로 돌아와 읽으면 다시 기억이 떠오르곤 한다.
또한 오른쪽에서 보이듯 좋은 질문들이 이미 그 답과함께 나와있다.
뭘라까? 독자가 궁금할만한 내용들은 선수쳐서 보여준달까? 이책은 정말 2005년도 쯤에 나왔지만 21년도에 사는 내가 뜨끔할때가 많았던 책이다... 이책의 선견지명이 와...
또한 이책에서 패턴과 더불어 가장 중요한 부분이다!
바로 객체지향 설계의 원칙들 이다.
흔하게 언급되는 OCP, DIP, SRP, 등등 SOLID원칙애 해당되는 내용들과 KISS의 원칙등, 진짜 중요한 객체지향원칙을 한번씩 다 설명해 준다.
이책이 왜 2005년도쯤 나와서 long run하는지 알것같다.
오른쪽 사진에 보이듯 디자인 도구상자 라고 해서 배웠던 디자인 원칙들을 모두 열거하는 부분들이 있다.
마지막 챕터에 가면 모든 원칙들이 상자에 담겨있는 모습을 볼 수 있다.
4. 읽은 소감
소감 자체는 위에서 언급한대로 좋은책 한권 잘 읽었다는 느낌이 든다.
물론 기존의 기술서적과는 그 느낌이 상당하게 다르다. 책의 성격이 약간 장난이 많이 있고, 독자가 읽는동안 지겹지 않게 한 부분들이 많다.
기존의 기술서적과는 진짜 너무 다르다.
이는 장점이자 단점(?) 이라 할 수 있다.
일부 다른 블로그 리뷰를 보면 오히려 정신사납다고 하시는 분들이 있었다.
이해는 간다. 책이 뭐랄까 막 깔끔한 느낌이 아니다. 일부러 정신사납게, 안지겹게, 이 내용에만 집중하게 하는 부분들이 읽다보면 느껴진다.
하지만 오히려 이또한 장점이 된다. 기존의 책 방식에서 벗어나볼 좋은 기회이며, 또한 나처럼 처음 해드퍼스트 시리즈를 읽는다면 내용이 잘 잊혀지지 않을것 이다. 책의 서술방식이 나는 너무 마음에 들었다.
나같은 경우 솔직하게 정신사납다는 느낌을 받은적이 없다. 어짜피 글이다. 모든 부분을 다읽어가면 똑같이 책을 읽는느낌이다.
다만 중간에 사진과 여러 유머들이 있어 "정신사납다는" 의견이 나온것 같다.
● 장점
1) 좋은 설명 (과하지 않음, 디자인 패턴 입문자가 읽기 좋은 내용의 책)
2) 뇌를 깨워주는듯한 사진과 설명들
3) 중간중간 있는 퀴즈들
4) 친절한 문체의 글작성
5) 쳅터마다 핵심요약 정리
6) 쳅터별 십자 난말풀이 문제 (위에서 언급을 안했는데 다음과 같이 난말풀이 게임도 항상있다)
사실 뭔가 배우면서 부정적인 부분을 잘 못느끼는 지라... 대부분의 처음 공부하는 사람들은 다들 좋아할만한 책이라 생각합니다.
● 단점
단점 없다.
'Life > Book Record' 카테고리의 다른 글
[서평] 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 (0) | 2022.01.31 |
---|---|
[서평] SQL 첫걸음 (2) | 2022.01.30 |
[서평] 처음 해보는 Servlet & JSP 웹 프로그래밍 (4) | 2022.01.28 |
[서평] 데이터베이스 개론 (0) | 2022.01.28 |
[서평] 명품 JAVA Programming (0) | 2022.01.27 |
댓글