○ TDD란?
켄트백이 만든 테스트 주도 개발(Test Driven Development)을 뜻한다.
개발 전 테스트 코드를 작성한 후, 테스트코드를 통과하기위한 기능 코드를 작성한다.

기본 사이클은 레드, 그린, 리팩터링이다.
-. 레드 : 실패하는 테스트를 작성한다
-. 그린 : 실패 테스트를 성공하기 위한 코드를 작성한다.
-. 리팩터링 : 코드를 예쁘게 정리한다.
○ TDD는 왜 사용하는가?
-. 테스트를 우선 작성하면 작성하고자하는 요구사항에 대한 분석과 이해가 필요하므로 시스템 전반적인 설계가 향상됨
-. 버그가 줄어들며 고치기 쉬운 코드가 됨
-. 필요한만큼만 코딩하며 오버엔지니어링을 방지
-. 복잡함이 덜해지며 코드퀄리티가 향상됨
○ TDD의 종류
- 유닛테스트 : 프로그램의 구성요소가 제대로 움직이는가
- 통합테스트 : 복수의 구성요소가 제대로 움직이는가
- 리그레션 테스트 : 변경이 일어났을 때 원래 기능에 변화가 없는가
- 도입 테스트 : 실제 환경에서의 테스트