반응형
TDD
TDD 란?
테스트 주도 개발의 약어로 소프트웨어 개발 방법론 중 하나이다.
TDD는 개발자가 소프트웨어를 개발할 때 테스트 케이스를 먼저 작성하고, 그 후 코드를 작성하는 방식을 강조한다.
TDD의 주요 단계
테스트 케이스 작성 ( Red )
- 개발할 기능 또는 모듈에 대한 테스트 케이스 작성
- 해당 기능이 어떻게 작동해야 하는지, 어떤 입력을 주었을 때 어떤 출력을 기대하는지 정의
- 테스트는 실패하는 상태로 시작하므로 "레드" 상태라고도 한다.
코드 작성 ( Green )
- 테스트 케이스를 작성 후 해당 테스트 케이스를 통과할 수 있도록 코드를 작성
- 필요한 로직과 알고리즘을 구현하고, 테스트 케이스를 통과할 때까지 코드를 수정하며 개발
- 테스트 케이스가 통과되면 "그린"상태라고 한다.
리팩토링 ( Refactor )
- 코드가 테스트를 통과하면, 리팩토링 단계로 진입한다.
- 리팩토링은 코드의 가독성을 높이고 중복 코드를 제거하며, 코드의 품질을 향상시키는 작업을 의미한다.
- 이때도 테스트 케이스를 통해 코드가 여전히 올바르게 작동하는지 확인해야 한다.
TDD의 이점
버그의 조기 발견
- 테스트 케이스를 먼저 작성하므로 초기에 버그를 발견하고 수정할 수 있다.
문서화
- 테스트 케이스는 코드의 사용법과 예상 동작을 문서화하는 역할을 하며, 다른 개발자나 유지보수자에게 도움이 된다.
안정성 향상
- 테스트가 지속적으로 실행되므로 코드 변경으로 인한 예기치 않은 부작용을 줄이고 안정성을 향상시킨다.
설계 개선
- TDD는 코드를 작성하기 전에 코드가 어떻게 테스트할지 고민하게 되므로 더 묘듈화되고 테스트 가능한 코드를 작성하도록 유도한다.
요약
TDD는 소프트웨어 개발 방법론으로, 테스트 케이스를 먼저 작성 후 코드를 개발하는 접근 방식이다.
초기 버그를 조기에 발견하고 코드 안정성을 향상시키며, 문서화와 설계 개선에 도움을 준다.
TDD는 코드작성 ( Red ), 코드 개발 ( Green ), 리팩토링 ( Refactor )의 세 단계로 진행되며,
소프트웨어 개발 프로세스를 개선하는데 기여한다.
반응형
'[백엔드] 기술면접' 카테고리의 다른 글
[백엔드] 기술 면접 Top30 - #24 멀티 프로세스와 멀티 스레드 (60) | 2023.10.04 |
---|---|
[백엔드] 기술 면접 Top30 - #23 프로세스와 스레드의 차이 (56) | 2023.10.03 |
[백엔드] 기술 면접 Top30 - #21 CI/CD (73) | 2023.10.01 |
[백엔드] 기술 면접 Top30 - #20 클래스형과 함수형의 차이 C++ (71) | 2023.09.30 |
[백엔드] 기술 면접 Top30 - #18 JWT, Refresh, Access Token (57) | 2023.09.24 |