Test Driven Development
프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현과정을 주도하도록 하는 방법론
Red - Green - Refactor 모형
선 기능 구현, 후 테스트 작성의 단점
- 테스트 자체의 누락 가능성
- 특정 테스트 케이스(해피 케이스)만 검증할 가능성
- 잘못된 구현을 다소 늦게 발견할 가능성
선 테스트 작성 후 기능 구현의 장점
- 복잡도가 낮은(유연하고, 유지보수가 쉬운), 테스트 가능한 코드로 구현할 수 있게 된다.
- 쉽게 발견하기 어려운 엣지(Edge) 케이스를 놓치지 않게 해준다.
- 구현에 대한 빠른 피드백을 받을 수 있다.
- 과감한 리펙토링이 가능해진다.