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

  • Post author:
  • Post category:
  • Post comments:9 Comments
  • Post last modified:February 8, 2020

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

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

TDD는 정의의 편인가?

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

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

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
tetris
16 years ago

제가 고수가 아니라서 그런지, TDD 는 어떻게 적용해야 할지 감이 잘 안오더군요.
그래도 궁극적인 목표로 정해놓긴 했는데 말이죠-_-;

최재훈
16 years ago

당장은 단위테스트를 많이 짜서 테스트 적용범위(Test Coverage)를 넓히는 연습부터 하시면 됩니다.

Francis
Francis
16 years ago

음.. TDD 하면 또 항상 같이 붙어 다니는게 리팩터링이 아닌가 싶습니다. 리팩터링도 Extract Method니 Extract Interface니 하는 저수준 리팩터링도 있지만, 말씀하신 디자인 패턴도 리팩터링에 상당히 자주 활용되기 때문에 공부해야 하고..

그뿐만이겠습니까.. 단위테스트 하나 짤려고 하면 사전 작업도 많이 들어가다보니, Mock Object도 필요해지고 그러다보니 Mock Object Framework도 공부해야 하고.. 하하..

그래도 즐겁게 시도하고 연습 해보고 있습니다. ^^;

최재훈
16 years ago

하나 빼먹은 게 있다 싶은데 떠오르지 않았는데 리펙터링이군요. 큭.

멤피스
16 years ago

회사에서 그 test coverage 를 넓히기 위해 측정부터 시작했는데 참 진행이 어렵습니다.

다른 보다 중요한(중요하다고 간주되는) 일때문에 늘 측정이나 coverage 높이는 일을 다들 그저 숙제정도로만 생각하는 터라 늘 찬밥 신세라 쉽지 않네요.

최재훈
16 years ago

테스트 코드가 오히려 시간을 절약해준다는 사실은 꾸준히 경험을 쌓아야 깨닫는 법이죠. 책에서 읽은 걸론 금새 망각합니다.

최재훈
16 years ago

흠, 곰곰이 생각해보니 처음 여기 오는 사람은 잘난 척 한다고 생각하게 글을 쓴 듯 한데, 저런 과정을 다 겪어봤기 때문에 경험담이라 생각해주면 좋겠네요.

한주영
16 years ago

안녕하세요. 좋은 해석 감사합니다. 앞으로 우리 회사를 포함한 더 많은 조직에서 TDD를 적용했으면 하는 것이 개인적인 바람이랍니다. 하지만 지적하신 것처럼 현실적인 문제들과 자주 부딪치다보니 다른 분들은 잘 하고 계신데 나만, 우리 조직만 그런가 싶어서 불현듯 설문을 해봤답니다. ^^;;

최재훈
16 years ago

저는 TDD를 하는 게, 또는 하려는 게 어딘가 싶은데요.  cheese