본문 바로가기

Books

테스트 주도 개발 : 고품질 쾌속개발을 위한 TDD실천법과 도구

오랜 기간 공을 드렸던 책이 저번 주에 수요일에 발매 되었습니다.


테스트 주도 개발 : 고품질 쾌속개발을 위한 TDD실천법과 도구
(줄여서 '고품질 쾌속개발을 위한 TDD')

- 책에 대한 기본 소개 -

1. 목차 및 '미리보기'를 볼 수 있는 책 소개
http://www.yes24.com/24/goods/3908398

2.TDD 책을 쓰게 된 동기가 된 이야기
http://blog.doortts.com/122

3.물류창고 갔던 이야기
http://blog.doortts.com/127

4.책 공식 사이트
http://tddbook.com

--------------------------

이렇게 말하면 어떻게 생각하실지 모르겠지만, 이 책은 집필 초기부터 몇 가지 뚜렷한 목표를 가지고 만들어진 책입니다.

  • 켄트벡의 TDD책(TDD by Example)만으로는 프로젝트 적용이 힘들다. TDD를 실제 프로젝트에 적용하고자 할 때 발생하는 상황에서의 다양한 해법을 담을 것!
  • TDD를 적용할 발생하는 개발지연을 최소한으로 감소시킬 수 있는 기법을 알려주어야 한다.
  • TDD는 목적이 아니라 수단이 되어야 한다. 무엇의? 더 나은 소프트웨어와 보다 더 나은 개발자의 삶을 위한 활동의 하나로써의 TDD가 되어야 한다.
  • 책이 지루해서는 안된다.
  • 내용이 지나치게 어려워서도 안된다. 하지만, 너무 쉬워서 도전할 주제 자체가 없어서도 안된다.
  • 독자는 책에 투자한 시간과 돈을 보상받을 수 있어야 한다. (정제된 내용을 담을것!)
  • 단순히 TDD에 대한 지식증가 만이 아니라, 책을 읽었을 때 성장감을 느낄 수 있어야 한다.

또한 제 자신이 책을 좋아하는 사람이고, '책'이라는 것 자체를 아끼기에 사소하지만 신경을 놓지 않았던 부분도 있습니다.

  • 책이 지나치게 크거나 두껍지 않을 것!
  • 폰트가 미려하고 가독성이 높을 것!
  • 종이질!
  • 내지 디자인이 보기 편해야 한다.
  • 책 가격이 비싸지 않아야 한다.
[보기만 해도 피곤해 지는 까탈스런 느낌..-_-]

특히 위와 같은 부분은 담당 편집자와의 긴밀한 협력이 없었으면 논의 자체가 불가능 했을겁니다. 다행히 의기투합되었어서 최대한 목표대로 진행되었습니다. 시대적 상황(=안드로이드,아이폰이 세상을 덮치고 있고 모두가 그에 집중하느라 다른 부분에는 관심과 지원이 약한 상황)에서 힘든 점이 사실 한 두가지 아니었습니다. 편집자 분께서도 수 년간 만든 책 중에서도 이 책 처럼 힘들었던 책이 없다고 하시더군요. (사연을 다 이야기 하자면 밤 샙니다.-_-);

긴 글은 지루할 가능성이 높으니 이후에는, 궁금해 하실만한 이야기 몇 가지 적어보는 걸로 마치도록 하겠습니다.

Q> 와! 이제 책을 출간했으니 인세를 받아서 부자되시는 거죠?
네. 빌딩하나 사려고요. ... 노.. 농담입니다. 책 쓰는게 돈은 안된다는 이야기는 이전에도 많이 들었는데, 정말 그런것 같습니다. 제가 책을 쓰기 위해 투자한 시간을 GX25 아르바이트 시간당 비용하고 따져보니, GX 아르비쪽이 2배쯤 더 남는것 같습니다. -_-;; 뭐, 앞으로야 모르겠지만, 당분간은 계속 그럴 겁니다. 게다가 제가 무슨 켄트벡이나 마틴파울러가 아니잖아요? 첫 책이기도 하고, 요즘 책이라는 매체에 대한 느낌이나 국내 IT 상황도 그렇고 말입니다. 다만, 책으로 인해 좀더 많은 사람들과 교류할 수 있는 계기가 되었으면 하는 바램입니다. 물론 책 쓰는 중간에도 지식 외적으로도 많은 걸 배웠습니다. 또, 고마운 분들도 많이 알게 되었고요. 그건 돈으로 가치매길 수 있는 부분이 아니니까요.

Q> 책 쓰는데 얼마쯤 걸렸나요?
준비기간이나 중간에 쉰 기간을 빼놓고 1년쯤 걸린것 같습니다. 집필에 8개월, 베타리딩부터 시작된 교정에 4개월. 중간에 힘들어서 마음속으로 몇 번 울었습니다. 담당 편집자님도 마찬가지로 몇 번 우셨을 겁니다. :)

Q> 출판사와는 어떻게 인연이 닿으셨나요?
한빛 출판사의 짤막 번역물을 몇 개 번역한 인연을 계기로 메일로 제안을 드려 시작하게 되었습니다.

Q> 회사일을 하면서 작업하는 것에 대해 어려움은 없었나요?
물론 많았습니다. 특히 혹시라도 생길지 모를 곤란한 문제를 피하기 위해 일과중 회사내에서는 작업을 하지 않는 걸 원칙으로 삼았기 때문에 시간 내기가 쉽지 않았습니다. (물론 가끔 살짝 살짝 보는 것과 프린트 하는 것 정도는 예외로 하고요^^) 집필은 퇴근시간 이후와 주말을 최대한 사용했습니다. 정 급할때는 중간에 휴가를 쓰기도 했습니다.

Q> TDD관련 국내서로는 처음인데요, 어쩔수 없이 관련 외국 서적을 많이 참고 하셨겠죠?
책을 쓸 때 어려웠던 점 중 하나가 바로 이점입니다. 처음에는 TDD관련 미번역 외국 책들(JUnit in Action을 비롯하여 JUnit Recipe, xUnit Test Patterns등)을 목록에 넣고 참고 차원에서 읽고 시작하려고 했었습니다. 그런데, 얼마 지나지 않아 그만두었습니다. 알게 모르게 그 책들을 옮겨 적는 일을 저지를까 두려웠기 때문입니다. 눈부신 불빛 앞에서는 다른걸 못 보거든요. 그 책들이 너무 훌륭하다던가, 제가 작성하려는 부분에 대한 더 나은 해답을 제공하고 있다던가 한다면 제 책을 포기하던가, 아니면 번역으로 돌어서던가 해야 했을 겁니다. 그리고 어떤식으로든 그 책들에게 영향을 받아 쓰여진다면, 어느날 그 책들이 번역되어서 나오게 되면 제 책이 가치를 잃어 버릴수도 있습니다.

그래서 읽는걸 중지했습니다.

프레임워크의 레퍼런스를 본다던가, 외국의 포럼이나 블로그 글은 참조할지언정 책을 보진 않았습니다. 이 부분이 굉장히 갈등을 겪으면서도 고통스러웠던 부분 중 하나입니다. 대신에, 실제 경험했고, 가이드 했던 부분들을 중심으로, 실 프로젝트에 TDD를 할 때 어떤 점이 고민이고, 어떤 부분에서 시행착오를 겪게 되는지에 대해 정리하는 쪽으로 집중했습니다. 2005년에 켄트벡의 책이 국내에 소개된 이후로 이렇다할 TDD관련 책이 나오지 않았던 이유도 아마 비슷한 이유가 포함되어 있어서가 아닐까 생각합니다. 

어쨌든 관련 서적을 최대한 참고하지 않았기, 미번역 외국 책에서 설사 비슷한 내용이 나오더라도 그건 가는 길이 같아서 마주친 것이지, 시침뚝 떼고 참고한 것은 아니라는 점에서, 좀 더 떳떳할 수 있을 것 같습니다. 다만, 제가 생각하지 못했던 부분이나, 미처 알지 못했던 다른 방식의 기법이 담겨져 있을 수는 있을 거라 생각합니다.

Q> 책이 출간된 현재 기분은 어떠신가요?
우선 떨립니다. 과연 독자들이 어떻게 받아들여 줄런지도 궁금하고요. 제가 원체 쑥스럼을 잘 타는 성격입니다만, 당분간은 용기를 내서 여기저기 책 홍보를 해보려고 합니다. 아무리 좋은 책도 읽혀야 좋은 책이니까요. 아. 제 책이 좋은 책이라고 바보처럼 자찬하는 건 아닙니다. 다만, 업계 구성원들이 그들만의 리그처럼 양분되어 있는 현재상황(= 중상급 개발자와 초급 개발자 사이에 다리가 끊어져서 서로 교류가 힘들고, 끌어 당겨주려는 노력을 하거나 매달려 보채는 일이 없는 상황)에서 가교가 될 수 있었으면 하는 마음이 책에도 담겨져 있습니다.

Q> 마지막으로 하고 싶은 말이 있다면?
여러 분들의 도움으로 인해 책이라고 하는 부끄러운 작업물을 공개하게 되었습니다. 제가 이 분야의 최고라서 책을 쓴것이 절대 아닙니다. 다만, 시장을 넓히고 영역을 넓혀서 함께 나아가고 싶은 마음에 씨앗이 되는 계기가 되었으면 싶었습니다. 그래서 서로서로 멘토가 되고 멘티가 되어 함께 격려하고 배우며 더 나은 세상을 만들어 갔으면 합니다. 아직 부족한 점이 많습니다. 많이 도와주세요. 저도 좀 더 열심히 나누며 살수 있도록 하겠습니다. 감사합니다!