(이미지 협찬 yes24)

 

펭귄너구리 채수원님이 보내주신 TDD책을 어제 받았다. 지금까지 제법 많은 책을 우편을 통해서 받았지만 이 책만큼 기다렸던 것도 없었던 것 같다. 한동안 뜨겁던 TDD에 대한 열기가 막상 TDD를 적용하려고 했을 때 겪게 되는 막막함과 안티들의 큰 목소리 덕에 많이 식고 있는 느낌이었다. 디자인 패턴이니 SOLID는 하는 얘기만 들으면 온몸에 두드러기가 나고 환청이 들린다는 일련의 인간들은 TDD에도 역시 비슷한 이유로 비난을 퍼부어왔다. TDD만큼 닥치고-안티가 많은 것도 없다. 안티는 아닐지라도 TDD를 좀 더 나은 코드를 만들고 즐거운 개발을 하는데 사용할 수 있는 유용한 도구와 실천기술이 아니라 남들에게 우월감을 드러내고 잘난척하기 위해서 어설픈 지식으로 떠들어 대는데 사용했던 사람들도 사실은 TDD 슈도-안티군에 포함되야 할 것이다. 그러는 와중에 TDD에 대해서 오해하게 되고 거리감을 두게된 많은 개발자들이 있는 것을 보며 많이 안타까웠다.

안티에는 답도 없고 약도 없다. 그래서 신경 쓰지 않는다.

차라리 진지하게 TDD에 접근하려고 하지만 막연한 느낌과 무엇을 어떻게 해야 할지 알지 못해서 당황해 하는 사람들에게 좋은 안내를 해주고, 스스로 TDD와 테스트 코드 작성의 즐거움을 느끼게 해주는 것에 관심을 가지는 것이 나을 것이다. 그러기 위해서 몇가지 넘어야 할 장벽이 있는데, 바로 그 장벽을 낮춰주는 데 기여해줄 수 있는 것이 바로 이 책, "TDD 실천법과 도구"라고 생각한다.

펭귄너구리라는 아이디를 쓰는 채수원님은 내가 아는 가장 성실하고 진지한 엔지니어의 한 명이며 재치있고 유머감각 넘치는 이야기로 귀에 쏙쏙 들어오는 설명을 잘해주는 초특급 강사이기도 하다. 치열한 환경의 현장 개발자들에게 TDD를 가르치고 보급하려고 애쓰면서 가졌던 많은 고민과 생각을 풀어놓은 것이 바로 이 책이다. 그래서 이 책의 내용은 살아있고 싱싱하다. 그래서, 지난 몇년간 TDD를 사용하려고 애써왔던 나에게도 이 책은 참 소중하다. 매 페이지마다, 얼마나 많은 연구와 리서치를 했왔고 그것을 적용해보고 고민하는데 얼마나 많은 시간을 써왔는지를 느끼게 해주는 내용으로 가득하다.

이 책은 “TDD를 안하는 놈은 루저"라는 박탈감을 느끼게 해서 허둥지둥 TDD에 뛰어들어 고생과 삽질만 하고, 어디에 하소연도 못하면서 억지로 좋은 척, 아는 척 하게 만드는 그런 책이 아니다. 오히려 편안한 마음으로 TDD를 이해하게 해주고, 그동안 어설프게 TDD를 적용하다 받은 상처를 보듬어주고, 용기를 가지고 한발짝씩 TDD를 해보다가 어려움을 만나면 언제든 다가와 조력자가 되어 줄 수 있는 그런 책이다.

물론 이 책을 본다고 갑자기 TDD의 고수가 되는 것은 아니다. 김창준님이 추천사에도 썼듯이 TDD는 한번에 비급을 배워서 쉽게 마스터할 수 있는 것이 아니다. 오히려 충분한 시간을 들여서 고민하고 생각하고 많은 시도를 해보면서 차근차근 몸에 익히는 내공을 쌓는 훈련이 반드시 필요하다. 프로그래밍이라는 것이 원래 그렇듯이 TDD에도 정답이란 없고, 항상 더 나은 방법이 있을 것이라는 기대를 가지고 새로운 시각을 가지고 창의적인 접근을 하려는 노력이 동반되야 한다. 이 책에 소개한 내용이나 인용한 글들이 모두 정답이라는 생각을 가지기 보다는, 저자와 한판 붙어보자는 심정으로 책을 읽는 내내 가상의 토론을 즐기는 것도 좋을 것이다. 무엇보다도 꾸준히 작은 분량이라도 TDD를 해보는 습관을 들이는 것이 중요하다. 내가 작년초에 결심한 것 한가지는 TDD를 거창한 개발에만 사용하는 것이 아니라, 평소에 간단한 코드 하나를 만들 때도 사용하도록 습관을 들이자는 것이었다. 그 뒤로 HelloWorld 수준의 간단한 코드를 만들때도 항상 테스트를 먼저 만들어보려고 노력했다. 그리고 시간이 얼마 흐른뒤에 느낀 것은, 이전에는 TDD를 한다면 뭔가 힘을 잔뜩 주고 TDD를 해보고 말테다라는 긴장감 있었는데,  TDD를 코딩 습관으로 만들어버린 후로는 그냥 평범하고 자연스러운 것이 되어버렸다. 테스트를 따로 만든다가 아니라 테스트가 그냥 내가 당연히 만들어야 할 자연스러운 코드가 되어버린 것이다. JUnitMax가 테스트를 빌드과정의 하나로 만들어버린 것과 비슷한 느낌이다. TDD를 특별히 한다는 생각도 들지 않는다. 그냥 원래 코드는 그렇게 만드는 것이라는 습관이 들었고 그것이 편하고 자연스럽게 느껴지기 때문이다. 김창준님이 예전에 TDD를 제대로 하려면 최소한 6개월은 수련을 해야 한 기억이 (가물가물) 난다. TDD책을 보고 가끔 개발에 적용하는 시간이 아니라, 매일 빠짐없이 TDD를 좀 더 잘하기 위한 훈련의 시간을 30분에서 한시간이라도 잡고 그것을 6개월간 꾸준히 해야 한다는 얘기라고 생각한다.

이 책에 대해서 한가지 불만이 있다면 그것은 책이 너무 얇다는 것이다. 아이폰과 안드로이드, 트위터 따위가 장악해버린 출판시장에 비인기 종목인 TDD의 책이 나온 것만으로도 다행이라고 생각하지만 그래도 조금만 더 많은 얘기를, 좀 더 구체적으로 할 수 있는 지면이 허용되었더라면 좋았을 것을 이라는 아쉬움이 남는다.

하나 더 바라기는 이 책의 예제를 시연하는 동영상, 스크린캐스트가 공개되었으면 좋겠다. 나는 김창준님과 강규영님이, 그 무뚝뚝하고 어색한 목소리로 TDD를 진행하는 동영상을 우연히 본 것이 TDD에 관심을 가지게된 계기가 되었다. 이 책에 많은 그림과 코드가 잘 나와있긴 하지만 역시 TDD는 그 역동적인 과정을 눈으로 보는게 제맛이다. 수원님이 아니더라도 성실한 독자들 중에서 누군가 만들어 공개하지 않을까 기대도 해본다.

다음 주까지는 스프링 책을 마무리하는 최종 작업 때문에 바빠서 여유가 없겠지만, 그 후에 이 책의 내용을 차근 차근 정리해서 블로그에 올려볼 생각이다.

 

책을 주문하고 싶으면 여기. http://www.yes24.com/24/goods/3908398?scode=032&srank=1

저자의 책 소개를 보고 싶으면 저기. http://blog.doortts.com/128

Related posts:

  1. 알면서 왜 안할까? TDD
  2. TDD와 TLP
  3. JUnitMax 개발/비즈니스 중단되다
  4. 모든 개발자는 사실 TDD를 하고 있다
  5. 유쾌한 이슈처리 재촉 메일
  6. 동상이몽 – TDD
  7. 테스트되지 않은 코드는 쓰레기인가?
  8. Spring 3.0 (37) 스프링 모듈-라이브러리 의존관계 매트릭스 업데이트와 CTDD
  9. 자동생성되는 메소드에 throw new UnsupportedOperationException() 넣기
  10. 코드리뷰와 인스펙션이 테스트보다 효과적이고 블랙박스 테스트가 단위테스트/개발자테스트보다 낫다고?
  11. 테스팅 프레임워크는 직접 만들어 써보자
  12. 오픈소스 소프트웨어에서 오픈소스 코드가 가지는 의미는?
  13. TDD 안티 패턴
  14. 깜짝 놀랄만한 이야기를 들려주마

Facebook comments:

to “테스트 주도 개발 TDD 실천법과 도구 – 채수원”

  1. ‘너무 얇다’고… 모름지기 프로그래밍 서적이라면 1,400 페이지는 되야 한다는건가? ㅋㅋ

  2. 이번이 Overview이고, 매월 25일에 서점에서 받아볼 수 있으면…
    만족스러울텐데^^

  3. 본문 글에 나오는 TDD 동영상을 검색한 김에 댓글로 적어보았습니다.
    김창준,강규영 TDD 코딩 동영상 URL

    http://xper.org/LineReaderTdd/

  4. 심홍섭/ 링크 감사합니다.

  5. Hello! kkeegcb interesting kkeegcb site! I’m really like it! Very, very kkeegcb good!

  6. Hello! dfeeecf interesting dfeeecf site! I’m really like it! Very, very dfeeecf good!

  7. bottom As long as the pressure of the fluid being contained does not exceed the contact stress of the o-ring sizes When squeezed upon installation the pressure of the contained fluid transfers through the essentially incompressible o-ring sizes material Other failures can be caused by using the wrong size of ring for a specific recess came acceptance for industrial hydraulics o-ring sizes.

  8. appliances worldwide economical substitution for o-ring sizess an o-ring sizes can easily seal high pressure as long as it does not fail mechanically This style of seal is sometimes less expensive to manufacture with o-ring sizes certain materials on land standard o-ring sizes.

  9. soon after that patented The US patent1 It is suitable for dynamic or static seals within the temperature limits of elastomeric materials higher mounting forces are used the pressure of the contained fluid transfers through the essentially incompressible water heater material This was blamed on a failed water heater seal instant water heater.

  10. Con la seguente procedura è possibile avere più bella, la pelle giovane. Ci vogliono solo pochi minuti. I prodotti che ho usato per la pulizia comprendono quattro passi di Vitaphenol o depurazione con un detergente, tonificante con un spruzzo, la riparazione con un siero antiaging cellustructure e hyrdating con una crema idratante difesa quotidiana .. Solleverebbe la sua partecipazione in Chrysler al 61 punto 8%. E taglio che si lascia di prova giorno 38 punto due. Auto tendenze analystPhilippine dice a Bloomberg che la fiducia sta cercando di massimizzare il suo ritorno.

  11. Sneak A Peek At These Guys

  12. thank you for share!

  13. Hello there! Quick question that’s entirely off topic. Do you know how to make your site mobile friendly? My weblog looks weird when browsing from my iphone4. I’m trying to find a template or plugin that might be able to fix this issue. If you have any suggestions, please share. Cheers!

  14. thank you for share!

  15. thank you for share!

  16. thanks for share!

  17. mbt kisumu shoes 테스트 주도 개발 TDD 실천법과 도구 – 채수원 » Toby’s Epril

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha