너무도 유명한 책. 하지만 읽기엔 상당히 까다로운 책
책의 원저는 다음과 같다. < agile principles patterns and practices in c# >
저자는 개발자 생태계에서 매우 유명한 Robert C Martin으로 별칭으로 엉클 밥이라고도 불린다.
아마존에서 찾아보니 1판은 2006년도에 나온 것 같다.
책에서 언급한 실제 설계에 참여한 프로그램들은 대부분 1990년대의 이야기들로 구성된다.
책에 대한 평가
★★★★★☆☆
📅 : 2020년 8월 3일 ~ 9월 17일
개인적으로 7점 만점에 5점을 주고 싶다.
책의 가치가 5점이라는 것이 절대 아니다. 해당 책은 추천도가 매우 높은 책이며 소프트웨어 공학에서 자주 언급되는 책이다. [ 특히 엉클밥의 SOLID 설명과 관련해서 말이다. ]
개인적으로 해당 책의 가치는 매우 높게 생각하지만, 패턴과 객체지향 용어가 설명에 범벅되어서 읽는 게 좀 까다로워 이렇게 점수를 주었다. [ 객체지향에 대한 기본적인 이해가 뒷받침되지 않으면 이해하기가 어려운 부분들이 많다. ]
디자인 패턴에 대해선 훌륭하고 높게 생각하는 편은 아니다.
그렇다고 싫어하는 개념도 아니다.
개인적으로 패턴은 유용한 곳에서는 정말 훌륭하게 쓰인다고 생각하는 편.
[ 모른다고 해가 되는 개념은 아니고, 또 안다고 큰 도움을 주는 개념이라.. 꼭 공부해야 하는지에 대하여 말하기가 애매하다. ]
패턴을 좋아하는 사람이 이 책을 읽으면 만족감이 들겠지만, 이 책에서 사용하는 용어들은 패턴 지향적이지 않은 사람들에게는 너무도 더부룩한 느낌을 줄 수 있다고 생각한다. 입문서로는 절대적으로 비추하고 싶다.
객체지향과 관련된 문화에 있는 경험있는 개발자가 보기엔 최적일 수 있다.
그렇다 보니 나에겐 은어로 범벅된 문장을 읽는 느낌을 준다.
그들만의 생각이고 그들만의 세상 같아 보이는 것.
해당 책이 나온 시점에서는 정말 좋은 평가를 받았을 것이라 생각되지만, 이 책의 가치는 시간이 갈수록 좋지 않을 것이라 조심스럽게 예측해본다.
왜 이 책을 읽게 되었나...
소프트웨어 업계에서 특히 프레임워크 개발이나, 거대한 프로젝트를 수주해서 개발해야 하는 사람들에게 "엉클 밥"이라는 호칭은 낯설지 않다.
밑바닥부터 쌓아온 지식과 경험으로 장인에 경지에 오른 사람.
그는 여러 명저를 남기기도 하였다. [ 인사이트의 프로그래머 시리즈에 3권이나 등재해 있다. ( 클린 애자일도 추가될 듯하다) ]
명성 때문인지
내가 속한 연구실에서는 연구실에 들어오면 곧바로 읽어햐 하는 책이 바로 이 책이었다. [ 날 정말 괴롭게 했다 ㅠ ]
연구실에서는 객체지향 공부 -> 원칙 공부 -> 패턴 공부 -> 설계 순서로 공부한다.
이 책은 4가지의 단계를 모두 넣어버린 책이다.
워낙 유명한 책이고 읽어야 하는 책이라 의무감으로 읽게 된 책이다.
그 외에도 다른 책들에서 추천되는 책이기에 넘어가야 할 산처럼 느끼는 책이다.
[ 실용주의 프로그래머에서도 엉클 밥의 존재는 언급되며 여타 객체지향과 관련된 책이라면 이 책은 꼭 언급된다. ]
호기심 반 + 해야 했던 일에 대한 책임감으로 읽게 되었다.
책에 대한 개인적인 생각
읽으면서 속이 너무 답답했다. [ 패턴을 설명하는 장으로 넘어간 이후에 ]
한 문장을 친절한 설명으로 늘어버린다면 한 페이지도 가득 찰 그런 문장들이 너무 많다.
특히 패턴을 설명할 때는 더더욱 그렇다.
속이 거북했다. 그냥 그게 개인적으로 너무 별로였다.
왜 디자인 패턴이 다른 한쪽에서 욕을 먹는지 알 것 같은 기분이다.
아쉬움
1. 패턴을 설명함에 있어서 그들만의 용어로 범벅하기에 은어를 듣는 거북한 느낌이 들 수 있다.
원저를 읽어도 이런 부분은 사라지지 않는다.
2. 패턴을 설명한다면 적어도 패턴을 모르는 사람도 이해할 수 있도록 설명했어야 했다.
3. 너무나도 많은 원칙을 일반적으로 대입하면서 설명했다.
4. 책의 예제들은 너무도 구시대적이다. ( GUI에 대한 설명, ETS 프레임워크 등등)
UML을 이해하기엔 도메인 지식이 도와주질 않고, UML 자체의 합리성을 이해하기도 너무 까다로웠다.
그런 점에서 이 책은 설계를 직접 경험해본 사람 혹은 프레임워크를 제작해본 사람에게 정말 큰 도움이 될 수 있을지도 모른다. [ 방대한 UML을 다뤄보았던 경험이 있다면... ]
수련생에게는 버거운 책이다.
수련생에게는 이 책의 초반부인 애자일과 SOLID 정도만 진행해도 될 것이다.
그리고 엉클 밥의 패턴에 대한 생각(장점, 비용, 어떤 상황에 필요한지)만 엿보아도 괜찮을 듯하다.
클린 코더 이후로의 클린 소프트웨어..
다음은 클린 코드이다.
그다음은 클린 아키텍처인데 클린 코더와 클린 소프트웨어는 개인적으로 그리 큰 도움이 되지 않아서 아쉬웠다.
[ 클린 코드와 클린 아키텍처는 어떨런지.. ]
한 달 반 동안 매일 1시간 정도를 투자한 책이지만 시간이 조금 아깝다는 생각이 들 정도로 아쉬웠다.
훗날 회사에서 일하게 되어 큰 프로젝트에 참여한다면 참고서로 쓰기로는 괜찮을 듯한 책.
이 책을 읽고 난 후 명심하게 된 사안이 생겼다.
패턴을 얘기하거든, 상대방의 패턴에 대한 지식이 나와 동급이라고 생각할 때만 패턴을 얘기할 것.
그게 아니라면 어떻게 해서든 풀어서 상대방을 이해할 수 있도록 단계별로 설명하도록 하자.
'소프트웨어,IT,컴퓨터공학 도서리뷰 > 개념 서적: (Conceptual Books): TDD, OOP, DDD' 카테고리의 다른 글
테스트 주도 개발 시작하기(TDD) 가메출판사. -최범균 저자- [6/7] [TDD입문에 good!] [2021] (0) | 2021.06.24 |
---|---|
클린코드(Clean Code) - 로버트 C 마틴 [ 4~5/7] [전세계 개발자들에게 좋은 습관을 제시해준 책] [엉클밥] (0) | 2021.06.04 |
Professional 소프트웨어 개발 -스티브 맥코넬 -[ 7/7! ] 소프트웨어 공학 강력 추천 책! (0) | 2021.02.01 |
스프링 입문을 위한 자바 객체지향의 원리와 이해 -김종민- 2015년 작 [5/7] (0) | 2020.07.30 |
객체지향의 사실과 오해: 역할, 책임, 협력관점에서 본 객체지향 -조영호 지음- [6/7] (0) | 2020.07.29 |