TDD(테스트 주도 개발)는 그 어느 때보다 중요해졌다
TDD (Test Driven Development) is more important now than it's ever been
핵심 요약
AI 코딩 시대에 코드 작성 비용이 낮아진 만큼, 확장성과 유지보수를 위해 TDD의 중요성이 더욱 커졌다는 의견입니다.
- TDD의 현실 — 관리자와 개발자 모두 성과 지표에 쫓겨 제대로 된 TDD를 수행하기 어려움
- 코딩 비용 하락 — AI의 등장으로 코드 작성은 쉬워졌으나 QA와 배포가 새로운 병목 구간이 됨
- TDD의 가치 — LLM으로 코드를 생성할 때 테스트 요구사항을 포함해야 나중에 확장할 때 고생하지 않음
- 실무 적용 — 많은 개발자가 에이전트 설정이나 프로젝트에 TDD를 강제하여 안정성을 확보 중
전직 시니어 엔지니어이자 대기업 기술 리드(TL)로서 말하자면, 내 경험상 대부분의 팀은 제대로 된 TDD를 진정으로 강제한 적이 없음:
- 관리자나 TL로서, 당신은 항상 제품을 출시해야 한다는 압박을 받음. 이미 "과도하게 엔지니어링한다"는 소리를 들을까 봐 걱정하는 상황에서, 팀원들에게 테스트 규율을 지키라고 닦달할 수는 없음.
- 개별 기여자(IC)로서, 당신은 시스템을 이용하는 법을 배우게 됨. 깃 활동량을 늘리기 위해 작업을 아주 작은 PR로 쪼개거나, 테스트 커버리지를 높이기 위해 빠르고 의미 없는 유닛 테스트를 추가하는 식임. 우리 팀이 속한 대규모 부서에서는 테스트 커버리지(물론 lol) 외에도 병합까지 걸리는 시간, 일일 활동량 같은 지표를 두고 경쟁까지 함.
이제 모두가 바이브 코딩(vibecoding)을 하는 시대가 되었음:
- 코드를 작성하는 비용이 근본적으로 저렴해짐. 즉, TDD의 투자 측면에서 비용이 10배는 줄어든 셈임.
- 병목 현상이 코드 작성에서 QA 및 배포로 옮겨갔음. 특히 앱이 복잡해지고 이전 기능 위에 새로운 기능이 쌓이기 시작할 때가 문제인데, 바로 이때 TDD가 빛을 발함.
TDD는 그 어느 때보다 중요함. 만약 LLM에게 코드를 짜달라고 프롬프트를 보내면서 테스트 요구사항을 포함하지 않는다면, 나중에 확장하거나 기능을 추가할 때 고생할 준비를 하는 것과 다름없음.
다들 어떻게 생각함?


