TDD란 Test Driven Development
의 약자로 테스트 주도 개발을 뜻한다.
이름에서 짐작할 수 있듯이 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 코드를 먼저 작성하고 이를 통과할 수 있는 코드를 추가하는 과정을 반복하며 개발하는 것을 뜻한다.
짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순 설계를 중요시한다.
TDD에서 처럼 테스트 코드를 프로덕션 코드보다 먼저 작성해야 하는 이유는 무엇일까?
TDD의 궁극적인 목표는 최대한 깔끔하게 코드를 작성하는 것이다. 아래에 나올 TDD의 개발 주기에는 리팩토링 단계가 있는데 해당 과정을 거치면서 중복된 코드들은 제거되고, 복잡한 코드들은 깔끔하게 정리할 수 있다.
여기서 중요한 것은
이다.
이를 통해, 실제 코드에 대해 기대되는 바를 보다 명확하게 정의함으로써 불필요한 설계를 피할 수 있고, 정확한 요구사항에 집중할 수 있다.
그렇다면 이런 TDD
의 장점은 무엇일까?
사실 이건 단점이라기 보다는 아직까지 남아있을까 싶은 편견..? 이라고 개인적으로 생각하는 바이다.
참고
TDD(Test-Driven-Development) 방법론에 대해서
TDD 개발 주기 이미지
[TDD] 단위 테스트와 TDD(테스트 주도 개발) 프로그래밍 방법 소개 - (1/5)