▶️ TDD에 대해서 설명해주세요.
- 소프트웨어 개발 방법론 중 하나로, 소프트웨어를 개발할 때 테스트 케이스를 먼저 작성한 다음, 그 테스트 케이스를 통과시키기 위한 코드를 작성하는 개발 방법론이다.
- TDD는 소프트웨어의 품질을 향상시키고 버그를 줄이며, 코드를 더 모듈화하고 유지보수하기 쉽게 만드는 데 도움을 준다.
주요 단계
- 테스트 작성 (Test): 개발자는 작성하려는 기능 또는 모듈에 대한 테스트 케이스를 작성한다. 이 테스트 케이스는 해당 기능이나 모듈의 기대 동작을 설명하는 단언문(assertion)을 포함하며, 초기에는 테스트가 실패할 것으로 예상된다.
- 코드 작성 (Code): 테스트 케이스를 작성한 후, 실제 코드를 작성한다. 이때, 테스트 케이스를 통과시키기 위한 최소한의 코드만 작성한다. TDD에서는 "빨간 막대 (Red bar)" 단계라고도 불리며, 이 시점에서는 테스트가 실패한다.
- 테스트 통과 (Refactor): 작성한 코드가 테스트를 통과하도록 수정한다. 코드를 리팩토링하여 가독성을 높이고 중복을 제거하는 등의 작업을 수행할 수 있다. 이 시점에서 "초록 막대 (Green bar)"가 나타나며, 테스트가 성공한다.
- 코드 리팩토링 (Refactor): 테스트가 성공한 후에도 코드를 계속해서 개선하고 리팩토링한다. 이 과정을 통해 코드 품질을 높이고 유지보수를 용이하게 만든다.