현실 세상에서 TDD는 가능하지 않다거나 효율이 너무 떨어져 쓸모없다는 주장은 지겹도록 들어왔지만 여전히 안타깝다. 나는 2018년에 이런 답답함을 조금이라도 풀어보고자 페이스북을 통해 5개월간 약 60명을 대상으로 ‘TDD 참관’이라는 행사를 진행했다.

방식은 간단했다.

  • 일주일에 한 번 퇴근시간 이후 사무실로 2명을 초청해 90분간 TDD를 사용한 개발을 보여준다.
  • 나는 행사를 위해 별도로 뭔가 준비하지 않고 회사 업무를 그대로 평소처럼 수행한다.
  • 참석자는 일주일 내에 페이스북에 후기를 작성해 공유한다. 분량과 내용에는 제한이 없다.

나는 당시 호텔 비즈니스를 위한 클라우드 서비스를 개발하고 있었고 메시지 중심 분산 아키텍처와 이벤트 소싱, CQRS 등의 설계 기법을 적용했다. 개발팀은 신입 2명, 2년차 주니어 1명, 나를 포함한 시니어 2명으로 구성되어 있었고 모두가 TDD를 사용했으며 나를 제외한 모두는 팀 합류 후 나에게 설계 기법과 TDD를 배웠다. 그 중 둘은 이후 함께 이직해 지금도 내 팀에서 배우는 중이다.

테스트 케이스는 약 3000개 정도에 95% 정도는 단위 테스트 케이스, 나머지는 기능 테스트 케이스였다. 지속 배치(Continuous Deployment) 환경이 만들어져 있었고 많은 경우 하루 30회 정도 새로운 코드가 배치되었다. 그러니까 빌드 서버는 하루 최대 9만 번 테스트 케이스를 실행했다. 이를 통해 프로그래머는 안정감을 얻었고 안정감을 바탕으로 개발 속도를 꾸준히 유지했다.

이런 개발 환경이 절대 상상속의 유니콘이 아니며 현장의 소프트웨어 개발에 기여함을 직접 보여주는 것이 TDD 참관 행사의 목적이었다.

다음은 참석자 분들의 소중한 후기다.