2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[백엔드] 기술 면접 Top30 - #22 TDD

2023. 10. 2. 12:40ㆍ[백엔드] 기술면접
반응형

TDD

 

 

TDD 란?

테스트 주도 개발의 약어로 소프트웨어 개발 방법론 중 하나이다.

TDD는 개발자가 소프트웨어를 개발할 때 테스트 케이스를 먼저 작성하고, 그 후 코드를 작성하는 방식을 강조한다.

 

TDD의 주요 단계

테스트 케이스 작성 ( Red )

  • 개발할 기능 또는 모듈에 대한 테스트 케이스 작성
  • 해당 기능이 어떻게 작동해야 하는지, 어떤 입력을 주었을 때 어떤 출력을 기대하는지 정의
  • 테스트는 실패하는 상태로 시작하므로 "레드" 상태라고도 한다.

코드 작성 ( Green )

  • 테스트 케이스를 작성 후 해당 테스트 케이스를 통과할 수 있도록 코드를 작성
  • 필요한 로직과 알고리즘을 구현하고, 테스트 케이스를 통과할 때까지 코드를 수정하며 개발
  • 테스트 케이스가 통과되면 "그린"상태라고 한다.

리팩토링 ( Refactor )

  • 코드가 테스트를 통과하면, 리팩토링 단계로 진입한다.
  • 리팩토링은 코드의 가독성을 높이고 중복 코드를 제거하며, 코드의 품질을 향상시키는 작업을 의미한다.
  • 이때도 테스트 케이스를 통해 코드가 여전히 올바르게 작동하는지 확인해야 한다.

TDD의 이점

버그의 조기 발견

  • 테스트 케이스를 먼저 작성하므로 초기에 버그를 발견하고 수정할 수 있다.

문서화

  • 테스트 케이스는 코드의 사용법과 예상 동작을 문서화하는 역할을 하며, 다른 개발자나 유지보수자에게 도움이 된다.

안정성 향상

  • 테스트가 지속적으로 실행되므로 코드 변경으로 인한 예기치 않은 부작용을 줄이고 안정성을 향상시킨다.

설계 개선

  • TDD는 코드를 작성하기 전에 코드가 어떻게 테스트할지 고민하게 되므로 더 묘듈화되고 테스트 가능한 코드를 작성하도록 유도한다.

요약

TDD는 소프트웨어 개발 방법론으로, 테스트 케이스를 먼저 작성 후 코드를 개발하는 접근 방식이다.
초기 버그를 조기에 발견하고 코드 안정성을 향상시키며, 문서화와 설계 개선에 도움을 준다.
TDD는 코드작성 ( Red ), 코드 개발 ( Green ), 리팩토링 ( Refactor )의 세 단계로 진행되며,
소프트웨어 개발 프로세스를 개선하는데 기여한다.
반응형