'TDD'에 대해 알아보자

BE_{Potato.}·2022년 12월 21일
0

TDD에 대해 알아보자.

TDD란 Test Driven Development의 약자로 ‘테스트 주도 개발’이라고 하는데, 반복적인 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
짧은 개발 주기의 반복에 의존하는 개발 프로세스이다.

< TDD 개발 방식 >

TDD와 일반적인 개발 방식의 가장 큰 차이점은 테스트 코드를 작성한 뒤에 실제 코드를 작성한다는 것이다.
설계 단계에서 프로그래밍 목적을 반드시 미리 정의해야만 하고, 무엇보다 테스트해야 할지 미리 정의(테스트 케이스 작성)해야만 한다.
테스트 코드를 작성하는 도중 발생하는 버그 및 수정사항은 테스트 케이스에 추가하고 설계를 개선한다.
이후 테스트가 통과된 코드만을 코드 개발 단계에서 실제 코드로 작성한다.
이러한 반복적인 단계가 진행되면서 자연스럽게 코드의 버그가 줄어들고 소스코드는 간결해진다.
또한 테스트 케이스 작성으로 인해 자연스럽게 설계가 개선됨으로 재설계 시간이 절감된다.

하지만, 이에도 단점이 존재한다.
TDD의 가장 큰 단점은 바로 생산성 저하이다.
개발 속도가 느려진다고 생각하는 사람이 많기 때문에 TDD에 대해 부정적인 의견도 많다.
왜냐하면 처음부터 2개의 코드를 짜야하고 중간중간 테스트를 하면서 고쳐나가야하기 때문이다.

TDD 방식의 개발 시간은 일반적인 개발 방식에 비해 대략 10~30% 정도로 늘어난다.
SI 프로젝트에서는 소프트웨어의 품질보다는 납기일 준수가 훨씬 중요하기 때문에 TDD 방식을 잘 사용하지 않는다고 한다.

profile
항상 '기본'을 중요시하는 예비 백엔드개발자입니다!

0개의 댓글