테스트 코드와 TDD
2025년 10월 8일
테스트 코드란?
테스트 코드는 말 그대로 내 코드가 의도한 대로 동작하는지 확인하는 코드다.
예를 들어 로그인 함수를 만들었다면
“올바른 이메일과 비밀번호로 요청하면 로그인된다.”
“잘못된 비밀번호면 에러가 난다.”
이런 걸 자동으로 검증하는게 테스트 코드다.
즉, 내가 만든 코드를 사람이 직접 실행해보지 않아도 테스트 코드 한 줄로 결과를 보장할 수 있는 장치다.
TDD란?
TDD(Test Driven Development)는 테스트 주도 개발이라고 부른다.
코드를 짜기 전에 테스트부터 먼저 작성하는 방식이다.
기본적인 흐름
- 코드 작성
- 테스트 진행
- 테스트 실패 시 코드 수정 및 리팩토링
TDD 흐름
- 테스트 작성
- 테스트에 성공할 수 있는 코드 작성
- 코드 리팩토링
위와 같이 TDD는 테스트를 미리 만들어 놓고 해당 테스트에 맞춰서 코드를 작성하는 방식이다.
TDD의 장점
- 안정성 : 코드 변경에도 기존 기능이 깨지지 않았는지 바로 알 수 있다.
- 리팩토링 자유도 : 테스트가 안전망 역할을 해줌
- 명세서 역할 : 테스트만 봐도 기능의 의도를 파악할 수 있다.
TDD의 단점
- 초반 개발 속도가 느려진다.
- 테스트 유지보수도 필요하다.