개발자 블로그
켄트벡의 구현 패턴 - 켄트 벡 지음 본문
켄트 벡의 구현 패턴, 부제는 "읽기 쉬운 코드를 작성하는 77가지 자바 코딩 비법" 이다.
실제 저자가 개발을 하면서 쌓인 경험을 토대로 어떻게 코딩을 해야 그 코드를 쉽게 읽을 수 있는지에 대해서 설명하고 있다.
구현 패턴이라 함은.. 코딩 규칙(code convention)과 디자인 패턴의 중간정도라고 봐야될까? 글쎄,, 내가 이 책을 100% 이해했으면 조금 더 자세한 이야기를 쓸 수 있을 것 같은데 1/4도 이해 못 한것 같다...
일단 이 책은 자바언어로 되어있다. 나는 학부생 때 이후로는 자바를 이용해본적은 거의 없지만 이 책을 이해하는데 있어서 문법적인 부분은 크게 문제가 안된다. 다만 어떤 개념을 설명할 때 자주 예시로 언급되는게 "JUnit"인데 나는 이 "JUnit"이 뭔지 자세히 몰라서 - 그냥 테스트와 관련된 프레임워크라는 정도만 안다 - 저자가 설명하는 걸 제대로 이해할 수 없었다.
초급자가 볼만한 책은 당연히 아니고 실무 경험이 꽤 있는 중급이상이 대상자가 될 것 같다. 자바를 했던 분들은 어떻게 받아들일지 모르겠지만 난 나름 중급실력은 된다고 생각했는데 이해해기 쉽지 않았다. 이 책을 제대로 이해하지 못한 원인은 아래 이유 때문일 것 같다.
- 나의 내공 부족
- 설명 부족
- 번역
2번에 내가 자바를 잘 모르기 때문일 수 도 있는데, 한가지 예를 들면 "외재상태"라는 파트가 있다. 꽤 여러권의 자바책을 봤다고 생각하는데 나는 외재상태라는 용어를 처음 들어본다. 용어에 대한 상세한 설명이 있다면 이해하기 조금 수월할텐데.. 용어에 대한 설명이 없다. (그냥 패턴에 대한 설명만..)
메서드, 함수, 메세지 등도 비슷하다. 누가 나한테 저 단어들을 정확하게 구분지어서 설명하라고 하면 글쎄,, 어느정도 내 나름의 기준에서 설명은 할 수 있겠지만 100% 정확한 설명은 자신없다. 근데 책에는 저 용어들이 정확하게 분리되어서 패턴으로 설명을 하는데 일단 용어정의가 깔끔하게 되어있지 않은상태에서 읽다보니깐 역시나.. 제대로 이해하는데 한계가 있다.
그리고 번역. 기본적으로 직역으로 번역이 되어있다. 텍스트만 한글일 뿐이지 원서를 읽고 있는듯한 기분이 들 정도다. 거기다 굳이 번역하지 않아도 될 용어들까지 한글로 번역된 부분이 있다. getter 메소드는 취득 메소드로 번역이 되어있고, setter 메소드는 설정 메소드로.. 뭐 이런식이다. 멤버에 대한 접근 제한하는 키워드인 private, protected, public 이런 것도 모두 한글로 번역이 되어있다. 그래서 "보호 필드"를 읽고 머리속으로 '아, protected 필드를 말하는거구나..' 하고 한번 필터링을 거쳐야 된다. 근데 또 재미있는건 '메타포'는 그대로 '메타포'로 옮겨져있다. 개인적인 생각으로는 좋은 점수는 주기 힘든 그런 번역.
책에 대한 평가는 여기까지 하고,,
책을 보면서 인상적이었던 부분이 있는데,
일단 내 경우 어떤 함수를 만든다고 했을 때, 코드를 작성하다보면 처음 생각했을 때 빠트린 부분도 있고 어떤 부분은 다시 별도의 함수로 나누는게 낫겠다 싶기도 하고.. 한번에 깔끔하게 작성하지 못하는 경우가 대부분이다. 이래저래 한참 수정을 하고 난 뒤 처음 생각했던 모습과 거리가 멀어진 최종 결과물을 보면서, '아.. 왜 처음부터 이렇게는 생각을 하지 못했을까..?'하고 약간의 자책(?) 같은걸 하게 되는 경우가 많다.
근데 이 책의 저자 역시도 나와 같은 경우를 많이 겪었나보다. 그래서 함수를 작성할 때 그냥 하나의 함수에 모든 코드를 작성하고 그 뒤에 별도의 함수로 분리할 코드를 나누고.. 하는 방식으로 코드를 작성한다고 한다.
뭐랄까,, '아,, 나만 그런게 아니었구나..' 하는 안도감(?) 같은게 들었다. 저 대단한 분도 그렇게 하는걸 보면 내가 부족한게 아니라 원래 그 정도가 사람의 한계인가 보다.
그 외 책 뒤 부분에 부록으로 저자가 유용하게 읽은 책들이 소개되는데 시간이 된다면 한 번 읽어보면 좋을 것 같다. 내가 본 책도 있고, 가지고 있는 책도 있고. 그런 책이 나오면 또 괜히 속으로 뿌듯하고 그런다,,^^;;
프레임워크를 개발하는 사람한테는 적극 추천해주고 싶다. 프레임워크를 개발하면서 생각해야 되는 부분에 대한 설명이 괜찮은 것 같다.
그 외 개발자들은 글쎄,, 책의 내용을 다 이해할 수 있다면 좋은 책이 될텐데,, 나도 제대로 이해를 못해서 솔직히 이 부분은 내가 뭐라고 함부로 이야기를 못하겠다. 쉬운책은 아니다.
'IT도서리뷰' 카테고리의 다른 글
웹 엔지니어의 교과서 - 조금은 애매한 책 (2) | 2016.05.21 |
---|---|
웹 기획자가 알아야 할 서비스 글쓰기의 모든 것 - NHN (0) | 2016.04.04 |
만들면서 배우는 Git GitHub 입문 - 한빛미디어 (2) | 2016.02.07 |
리눅스 서버를 다루는 기술 - 우분투 서버 구축하기 (2) | 2016.02.03 |
그림으로 공부하는 IT인프라 구조 (2) | 2016.01.12 |