TDD를 하는가? 안 해도 부끄러울 건 없다.

회사나 개인이 TDD(Test-Driven Development, 테스트 주도 개발)을 얼나마 잘 써먹는지 알아보는 설문조사가 있었는데, 그 결과가 발표됐다. 물론 이 설문 조사의 신뢰성이란 의심스러울 수밖에 없다. 개인 블로그의 구독자를 대상으로 설문한 탓에 총 9명만 참여했을 뿐이다. 그리고 아무래도 블로그 주인과 성향이 비슷한 나 같은 사람이 참여했을테니 결과가 고무적이지 않으면 되려 이상할 것이다. 진작에 이런 걱정을 했는데 역시나! 였다. 블로그 주인은 응답해 주신 분들은 그래도 TDD 등에 관심있는 분들이었을텐데도 TDD를 적용하고 있는 개인/팀의 비율이 매우 낮다는 점을 보면 TDD가 현실적으로 도입하기 (도입해서 이득을 보기가?) 쉽지 않은 모양입니다라고 했는데 결론은 같지만, 문제의 해석에 있어 나는 TDD를 적용한다는 개인이나 팀이 생각보다 많았다고 생각한다.

어쨌거나 TDD라는 게 그 유명세에 비해 현업에 널리 퍼지지 못했다는 점은 확실하다. TDD가 아니라 단위 테스트를 적용하는 개인이나 회사가 얼마나 많은지 조사했더라면 좀더 나은 결과가 나왔을지 모른다. 솔직히 선코딩 후테스트조차 힘든 마당에 선테스트 후코딩을 할만한 개발자가 얼마나 될까? 테스트를 짜도록 강제하는 회사나 팀의 방침이 없다면, 줄곧 해오던 사람만 테스트를 짠다. 그렇다고 강제하자니 이게 또 부작용을 걱정해야 한다.

TDD는 정의의 편인가?

도서관전쟁(圖書館戰爭) - 정의의 편이야!

시도해보면 알지만, TDD는 개발 능력이 상당 수준되어야 가능하다. 객체가 앞으로 어떤 식으로 쓰일지, 어떻게 하면 직관적일지 단번에 판단할 수 있어야 한다. 그러려면 디자인 패턴을 숙지하고 개발 경험도 많이 쌓아야 한다. 학부생 앉혀놓고 자, TDD로 개발하게!, 이러면 결과물이 어떻게 나올지, 과연 결과물이 나오기는 할지 참 의문이다. 책에선 TDD가 정의의 편마냥 멋있게 나와도 실제론 디자인 패턴, 단위 테스트 등 모든 걸 섭렵한 고수만의 향유물이라 하겠다. 하긴 무엇보다 팀 구성원 모두가 해보려는 의지를 갖지 않고선 단위 테스트든 TDD든 시작조차 안 되니, 이 설문 조사에 응한 사람들은 확실히 수준이 높다고 봐야겠다.

최 재훈

블로그, 페이스북, 트위터 고성능 서버 엔진, 데이터베이스, 지속적인 통합 등 다양한 주제에 관심이 많다.
Close Menu