본 서적에서 언급하는 실용주의는 무엇인가?
'Pragmatic' 이란 단어는 "업무에 능한" 이라는 뜻의 라틴어 'pramaticus' 에서 나왔고 또
라틴어는 '(무엇인가를) 하기' 를 의미하는 그리스어에서 파생된 말이다.
바로 이책은!!! ~하기에 관한 실행을 동반한 개발자 개몽 서적이다.
junit 책을 처음 접했을 당시 상황이 그려진다.
서점 수많은 책꼿이에 반드하게 꼿혀진 하얀색 책~~
그냥 그 하얀 다자인이 맘에 들었는데 내용 역시 junt를 간략하게 소개하는것이 참 맘에 들었다.
CVS, Junit, ANT(?) (기대하는 3번째책) 을 가름해봄 으로써 pramaticus의 추구하는 바를
짐작 할 수 있게 한다.
실행을 동반한 서적!!
바로 이책이 추구하는 목표인듯 하다.
본서적을 읽는데 있어서 TDD와 마찬가지로
"역자 주"를 간과하지 말기바란다. 바로 이 역자주는 번역자 이용원님의 기술이 녹아있는 부분 이기도 하기 떄문이다.
대부분의 개발자들이 역자를 담당하게 되는데 본 Junit의 역자 이용원님께서도 다양한 필드에서 연구를 하셨을 것이 분명하다.
(이러한 이유는 책의 뒷부분에 나오는 Eclipse에서 junit를 사용하는 매뉴얼이 착실히 수록되어 있음을 볼 수 있다.)
원서와는 사뭇 다른 번역서가 한국개발자를 배려한 역자의 노력이 옅보이는 부분이다.
책의 내용을 보도록 해보자..
본 책은 어떻게 읽어야 하는가??
● 구독 방법
1. 편안한 책상에 등받이가 쿠션기능이 있는 의자에 앉는다.
2. 모니터와 키보드 그리고 본 서적을 놓고 작업자가 앉는다 (책은 배위에나 다리위에 있다)
3. 컴퓨터는 Eclipse를 띄워놓고 Junit의 처음시작을 타이핑 하며 읽도록 한다.
처음단계가 넘어가면 다음 단계부터는 "오른쪽 알통" 에 대해 깊이 깊이 생각해보도록 한다.
본 책은 순수 실행을 위한 가장 컴팩트한 교과라 봐도 무방할 정도이다.
군더더기는 없으며 그냥 ~하기를 위한 실행을 도모하기 위한 설명이다.
jUNIT에 대해 잔뜩 기대한 사람이라면 다소 실망 할 지 모르나 서평자와 같이 짧고 굵에 읽어 사용하기를
중심으로하는 개발자라면 추구하고 읽어볼 필요가 있다고 본다.
● 서평자 생각..
project에 있어 가장 큰 복병은 개발자가 자신이 짠 코드의 오류에서 혹은 다른 팀원이 만들어 놓은 소스코드 속에 빠져
도무지 문제가 어디서 발생되었는지 찾아가는 문제일 것이다.
junit은 이런 복병을 숨을 수 없도록 요소 요소에 터랫을 박아 놓은 것 이라 볼 수 있다.
junit은 잘 구동되던 소스코드를 항상 잘 구동될 수 있도록 신선한 상태를 유지하고 있으며
junit은 곳곳에 숨어져 있는 메소드단위 최척화 test in/out값을 가지고 있기에 개발자는 과거를 잊어도 된다. (좀심했나??)
단 5개의 명령어 (assertEquals(), setup(), testEnd() , assertTrue(), assertFalse()) 만으로 이토록 훌륭한
프로젝트 맨토를 구할 수 있다고 알려준다면 본 서적의 임무는 다한것이다.
모두가 행복해졌으면 한다.
이책을 읽음으로써 개발자 모두가 여유있는 시간속에서 개발이 이뤄졌으면 한다.
Kent Beck이 지필한 본 서적을 번역하기에 김창준님께서 수고하셨다.
그냥 원문에 의한 번역을 꾀하였다면 이책은 2년 넘게 잡고있을 만큼의 번역 분량이 아니다.
하지만 김창준님께서 긴 시간 그리 오랜동안 이책을 잡게된 이유에 대해 생각 해 볼 사항이다.
TDD (Test Driven Developement) 는 테스트 주도 개발을 말하고 있다.
본 책의 결말을 미리 말을 하자면 TDD는 테스트 기술이 아니라 분석기술 설계기술을 말하고 있다.
이는 프로젝트 문제의 접근에 있어 단순 테크닉적 접근이 아닌 보다
입체적인 접근을 요구하고 있음을 이야기 하고 있는것이다.
보다 쉽게 설명하자면 간트차트형태의 일의 추진에서 TDD 일의 happyEnding에서 부터 시작한다.
행복하게 잘 되어져야 하는 전재하에 개발되는 까닭에 역자는 그 오랜시간동안 Kent Beck의
사상과 철학을 이해하려 했던것 같다.
이를 뒷받침 하듯 TDD 책은 원문보다 다양한 "역자 주"가 첨부되어있다.
"역자 주"를 간과하지 말기바란다. 바로 이 역자주가 원서와 번역서의 차별을 극대화 시킨 이유이면서 하커버의 본 서적이 다소 비싸게 팔리는 이유이기도 할테니 말이다.
그래서 서평을 쓰는 필자는 본 서적을 TDD 한국어판이라고 소개하고 싶다.
책의 내용을 보도록 해보자..
본 책은 어떻게 읽어야 하는가??
● 구독 방법
1. 편안한 책상에 등받이가 쿠션기능이 있는 의자에 앉는다.
2. 모니터와 키보드 그리고 본 서적을 놓고 작업자가 앉는다 (책은 배위에나 다리위에 있다)
3. 컴퓨터는 Eclipse를 띄워놓고 1부부터 차근차근 타이핑 하며 읽도록 한다.
4. 가끔 타이핑이 필요없는 부분이 있는데 그런 부분은 꼭! 색깔있는 탭을 이용해서
북마킹하면서 읽도록 한다.
● 코딩을 다 하고 나서 접근방법
우선 전 코드를 어떻게 만들어 갔는가 되새김질 해볼 필요가 있다.
코드는 자신도 모른사이에 리팩토링이 되어있기 때문에 이 과정을 거치지 않으면 Kent beck이
겪었던 본 서적의 노하우를 찾기 힘들것이다.
● 서적을 띄엄띄엄 읽으면 나타나는 증상.
>> 남들앞에서 TDD만을 운운하는 사람.
- 우습게도 TDD만을 운운하는 사람은 책의 표지만 본 사람이다. 그와 더 이상 논하지 말라!!
>> TDD 맹신주의에 빠진듯해 보이는 사람
- 분석과 설계기술은 RUP,나 카타르시트, 마르미와 같은 다양한 방법론들이 있다.
방법론끼리는 경쟁이 아니다.. 방법론은 소비자인 우리들에게 있어선 상호 보안이다.
● 서평자 생각..
Kent Beck이 본 TDD를 지필했을때 환경은 IDE툴이 없는 시대에 개발했다.
그에 놀라운 선구자성을 인정하고 우선 본 서적을 비평없이 답습했으면 한다.
XPI에서도 언급했듯이 무슬에 경지에 이르기전까지는 교본에 충실함이 수반되어야
본인의 응용력이 발휘 될 수 있다.
책에서 보면 Kent Beck과 마틴파울러(리펙토링)과 잘 알고 지낸다는것도 알 수 있다.
결국 고수는 고수끼리의 통하는 맥락이 있음을 간파할 수 있는 대목이다.
또한 kent Beck은 TDD서적을 통해 자신의 TDD개발에 앞서 영감을 얻은 방법론이 하나 있다.
무척 재미있는 방법론이고 이 방법론은 우리에게 가장 필요한 지혜가 아닌가 생각해 본다.
그 방법론은 휴식을 기반하고 있으며
본 서적 255페이지에 있음을 힌트로 밝힌다.