Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

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

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

테스트 주도 개발 : 고품질 쾌속개발을 위한 TDD 실천법과 도구 - 10점
채수원 지음
한빛미디어

TDD라는 말을 들으면 누구나 가장 먼저 떠오르는 사람은 창시자인 켄트 벡(Kent Beck)일 것이고 그 다음은 명저중의 하나인 TDDBE(Test Driven Development: By Example)라는 책일 것입니다. 물론 TDDBE에서는 TDD에 대한 소개부터 어떻게 TDD를 이용해서 개발을 하는지 예제와 함께 다양하게 설명해 주고 있기는 하지만 책을 일고 TDD 해야겠다라는 생각이 들더라도 막상 실제 개발에 써먹으려면 어디서부터 어떻게 적용을 해야할지 막막한 것이 사실입니다.(저같은 경우가 그랬습니다. TDD의 사상은 공감하지만 정작 적용까지는 쉽지 않은...)

현재 국내에는 일부 테스트관련 툴에 대한 책이나 테스트 패턴관련 책들은 있지만 TDD에 대한 책은 TDDBE가 거의 유일한 상황에서1 이 책은 가뭄속에 단비와 같은 책이 아닌가 생각합니다. 운좋게 이 책의 베타리더로 참여를 하게 되면서 미리 읽을 기회를 가질 수 있었는데 베타리팅때의 거친 느낌에 비해서 전체적으로 학습하기에 좋은 깔끔한 흐름으로 완성이 된 듯 합니다.

책의 내용은 TDD의 소개와 함께 간단한 예제를 통해서 어떻게 TDD로 어떻게 개발을 해야하는 가에 대한 설명부터해서 TDD를 더 쉽게 적용하고 극대화할 수 있도록 하는 JUnit과 Matcher라이브러리 Hamcrest를 이용하는 방법들, 그리고 의존성을 없애고 테스트를 할 수 있는 Mock에 대한 설명 및 Mock 프레임워크들, 데이터베이스 테스트를 위한 DBUnit과 단위 테스트 라이브러리 Unitils까지 실무에 적용할 수 있는 아주 넒은 범위에 대해서 설명을 해 주고 있습니다. 또한 이번에 출시된 책된 책 답게 JUnit 3,4를 모두 설명해 주는 등 최신 버전의 라이브러리에 대해서 설명을 해주고 있기 때문에 바로 적용을 해보는데 큰 어려움이 없을 것으로 보입니다.



개인적인 생각으로는 이 책은 초중급정도를 타게팅으로 하고 있다고 생각합니다. 기본적으로 TDD에 대해서 전혀 모르는 사람도 적용할 수 있도록 자세하게 설명을 해주고 있으며 단순히 TDD에 대한 부분 뿐만 아니라 실제 개발에 적용할 때 도움이 될 수 있도록 이클립스를 기준으로한 상황별 어떤 기능 및 단축키를 이용하면 되는지까지 친절하게 알려주기 때문에 초급자라도 어렵지 않게 예제를 따라하면서 많은 것을 배울 수 있을듯 합니다. (사실 이클립스 사용법에 부분만으로도 이클립스가 익숙치 않은 사람들에게는 많은 도움이 되리라고 생각됩니다.)

너무 친절하게 설명하는 것은 자칫 초급을 벗어난 개발자들에게는 지루한 내용이 될수도 있는데 아무래도 TDD에 대한 관심을 갖게 되는 것이 약간 개발경험을 갖은 뒤인 경우많아서(처음부터 TDD로 습관이 들어있는 축복받으신 분이 아니라면) TDD자체가 약간 중급자를 위한 내용인데다가 책이 커버하고 있는 영역역이 꽤 넓기 때문에 친절하고 자세하게 설명하고 있는 부분에 대해서 초급자타게팅이라는 얘기를 한 것이지 책이 다루고 내용자체를 보면 중급(급을 나누는것 자체가 모호하긴 하지만요)개발자에게 더 적합하다고 생각합니다.



그리고 무엇보다 좋은 점은 단순히 라이브러리의 사용법과 TDD에 대한 가이드만 제공하는 것이 아니라 오랫동안 애자일 및 TDD에 힘써온 저자의 경험이 책에 그대로 묻어나있기 때문에 각 설명마다 장단점을 알려주고 현업에서의 문제점과 한계점에 대해서도 알려주고 있기 때문에 책을 읽으면서 여러가지로 생각해 볼만한 부분 많았다는 것입니다. TDD라는 것 자체가 방법을 알고난 뒤에라도 실제 적용까지는 어느 정도의 수련이 필요한 부분이고 각 상황마다 정답이라고 할 만한 방법은 없기 때문에 TDD와 리펙토링을 하는 방법에만 너무 집중하지 않고 현실적으로 스스로 고민해 볼만한 여러가지 화두들을 던져주어 생각해보게 하고 어느정도의 대안과 경험을 제시해 주는 것은 상당히 좋은 접근이라고 생각하고 있습니다.

문체는 약간 블로그스러운 편한 문체로 되어 있어서 호불호는 있겠지만 저는 오히려 읽기가 좀 편했던 것 같고 지면한계상 어쩔수 없었지만 뒷부분의 실습예제가 좀 더 자세하게 나왔었으면 하는 아쉬움은 있습니다만 TDD를 적용하고 싶은데 어떻게 해야할 지 감이 잘 안오는 개발자들에게는 충분한 도움이 되리라고 생각됩니다.
  1. 거의라는 표현을 쓴 이유는 모든 책을 다 아는 것은 아니기 때문입니다. [Back]
2010/07/02 04:38 2010/07/02 04:38