테스트 주도 개발 : 테스트가 개발을 이끌어 나간다.
테스트를 먼저 만들고 통과하기 위한 것을 짜는 것 즉 만드는 과정에서 테스트를 작성하고 그걸 통과하는 코드를 만들고 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것
보통 테스트는 기능을 구현을 마치고 한다
하지만 이것의 순서를 바꾸는것이 TDD를 적용하는 것
결정과 피드백 사이의 갭(간격, 오차)를 줄이기 위해 사용
결정 : 이 방법으로 해야지, 이 부분에는 이걸 사용해야지라는 결정
피드백 : 프로그래밍을 하다보면 성공/실패/break 등 많은 피드백을 받는다
위 두개는 비슷하면서 둘 사이의 갭이 존재한다.
이 차이를 줄이기 위해 TDD를 사용한다.
테스트 자체가 기본적으로 존재 소유가 되면서 효과를 나타낸다.
테스트 자체가 존재하므로 공유와 협력 이해에 많은 도움을 준다.