본문 바로가기
  • 시 쓰는 개발자
개발 방법론

TDD란?

by poetDeveloper 2024. 3. 9.

TDD (Test Driven Development)

TDD란 "테스트 주도 개발"이라는 소프트웨어 개발 방법론 중 하나이다. 스프링을 공부하는 사람이라면 테스트 코드에 대해서 한번쯤 들어봤을 것이다. 개발 후 테스트가 아니라, 테스트코드를 먼저 작성하고 이후에 개발하는 스타일이다.

(※ 다만 실제 회사에 적용하는 것은 회사마다 천차만별이며, 주위에 물어보아도 효율적이지 못하다는 이유로 도입하지 않았다는 의견이 많았다.)

TDD를 이용한 개발

  1. 테스트 케이스 작성 : 기능 구현 없이 테스트 코드를 작성한다. 이때, 최대한 빨리 테스트를 통과하기 위해 실패하는 테스트 코드를 작성할 수 있다.
  2. 통과하는 케이스 작성 : 테스트 코드 통과를 위한 실제 기능을 구현한다.
  3. 리팩토링 : 리팩토링을 통해 성능이나 재사용성, 가독성 등을 챙기도록 코드를 개선한다.
  4. 2번 3번 과정을 반복한다.

TDD의 장점 (+)

1. 디버깅 시간 단축

어쩌면 TDD의 가장 큰 장점일 것이다. 유닛 테스트를 진행하므로 어디서 에러가 났는지 바로 찾아볼 수 있다.

2. 빠른 피드백

기능단위로 테스트하므로 더 큰 단위의 작업을 하기 전에 미리 에러를 발견할 수 있다.

3. 유지보수 용이

단위 테스트 기반의 테스트 코드이기 때문에 추후 에러상황에서 모듈 테스트를 해보면 쉽게 에러를 찾을 수 있다.

TDD의 단점 (-)

1. 생산성 저하

TDD의 가장 큰 단점이라고 할 수 있다. 개발의 절대적인 시간 자체가 늘어나기 때문에 납기일을 맞춰야 하는 많은 상황에서 쉽게 채택되지 못한다.

2. 익숙하지 않다

TDD에 익숙하지 않은 사람들에게 교육하고, 환경을 만드는 것에 또 비용이 든다. 오래도록 자신의 스타일을 고수해온 개발자들을 TDD에 맞게 바꾸는 것은 어렵다.

'개발 방법론' 카테고리의 다른 글

개발 마인드  (0) 2024.03.16
SOLID 5원칙  (1) 2024.03.11