[개발 상식] TDD란 무엇인가?

티디딕…? TDD…? 처음 들어 봅니다. 그래서 짚고 넘어가려고 합니다!

🤔TDD 가 뭐야?

TDD (Test Driven Developmnet)란 소프트웨어 개발 방법의 하나입니다.

소프트 웨어를 개발하는 과정에서 테스트코드를 작성하고 이를 기반으로 실제 코드를 작성하는 방법을 말합니다.

TDD의 단계는 다음과 같습니다

  1. 테스트 작성 (TEST) : 구현되지 않은 기능에 대한 테스트 케이스를 작성합니다.
  2. 테스트 실행 및 실패 확인 (RED) : 테스트를 실행하고 실패하는지 확인합니다.
  3. 코드작성 (GREEN) : 실제 코드를 작성합니다. 최소한의 코드만으로 작성하여 테스트에 통과하는 것이 목표입니다.

💪TDD의 장점?

  1. 신뢰성 향상 : 익숙하지 않은 기능을 개발할 때 테스트 케이스를 작성함으로 써 버그 발생 가능성을 낮춥니다.
  2. 문서화 : 테스트 케이스는 소프트웨어의 동작을 설명해주는 문서 역할을 합니다. 코드를 이해하고 유지 보수에 도움이 됩니다.
  3. 설계 개선 : 작은 단위부터 테스트 케이스를 작성함으로 리팩토링에 도움이 됩니다.
  4. 빠른 피드백 : 테스트 케이스 작성으로 빠른 시점에서 버그를 발견하고 수정할 수 있습니다.

😥TDD의 단점?

  1. 비용과 생산 : TDD는 테스트 코드를 작성해야 함으로 추가적인 시간과 비용이 소모됩니다. 하지만 장기적인 관점에서는 유지보수 단계에서 오히려 절감할 수 있습니다.
  2. 테스트 커버리지 : 모든 시나리오를 고려하는 완벽한 테스트 커버리지를 달성하기 어렵습니다. 따라서 버그를 놓칠 가능성이 있습니다.

TDD는 애자일 방법론의 하나로서 스타트업과 같은 환경과 상황이 빠르고 유연하게 변화는 환경에서 적합한 방식이라 생각됩니다!