TDD란?

규갓 God Gyu·2025년 2월 6일

면접질문

목록 보기
65/142

Test-Driven Development
테스트를 먼저 작성한 후 실제 코드를 작성하는 방법론

TDD는 일반적으로 'Red-Green-Refactor' 사이클을 따름
첫 단계인 Red는 실패하는 테스트를 작성
이 테스트는 아직 구현되지 않은 기능에 대한 테스트,
코드가 이를 통과하지 못하는 상태에서 시작

두번째 단계인 Green은 테스트를 통과할 수 있도록 최소한의 코드를 작성
이 단계에선 테스트를 통과시키는 것만 목표로 하여 코드를 간결하게 작성

마지막 단계인 Refactor는 작성한 코드를 리팩토링하여 가독성이나 성능 개선
이때 테스트는 여전히 통과해야 하므로, 리팩토링이 기능에 영향을 미치지 않도록 함

어떤 장점?

  1. 디버깅 시간 단축
    자동화된 테스트를 통해 오작동하는 영역 쉽게 좁혀나갈 수 있음
  2. 리팩토링 용이
    작성된 테스트가 리팩토링 후에도 코드가 올바르게 동작하는지 확인해 주기 때문에, 코드 수정이 용이함
  3. 좋은 설계 유도
    테스트 통해 요구 사항 명확하게 이해하고, 이를 바탕으로 더 나은 설계 할 수 있음. 또 각 기능을 테스트하기 용이하게 만드는 과정에서 자연스럽게 좋은 설계가 유도

처음 테스트 작성하는 데 시간 소요될 수는 있어도, 장기적으로는 생산성이 높아지는 효과를 볼 수 있음

profile
웹 개발자 되고 시포용

0개의 댓글