쉽게 말해 테스트를 먼저 만들어 놓고 , 이 테스트를 통과하기 위한 코드를 짜는 것을 의미합니다.
보통 일반적으로 개발을 완료한 뒤에 , 자신의 코드가 알맞게 동작하는지 점검하기 위해
테스트를 도입합니다.
반면 , TDD는 이 순서를 뒤집어서 적용합니다.
남들에게 테스트 코드를 보여주고 , 그 사람들이 해당 코드를 직접 실행해 볼 수 있다.
즉 , 공유하기가 쉬워진다.
작성자의 테스트 코드를 보고 그 사람의 의사 결정을 확인하기 용이하고 , 테스트를 토대로,
코드를 왜 그렇게 구상하였는지 파악하기 쉽다.
정리하자면 , 피드백과 협력을 증진 시킨다.
그로 인한 불상사가 발생하는 위험을 최소한으로 줄여준다고 볼 수 있다.
정해진 규칙에 집착하여 TDD를 작성하려고 시도.
나 스스로 ‘어떻게 해야 피드백을 저 자주 받을까?’ , ‘협력이 잘 일어나게 할까?’
등을 고민한다.
사실 이 말을 보고 다가오기에 , 처음에 프로젝트를 들어가기 전에 , 요구 사항에 대한 분석 혹은
JAVA에서 Interface 처럼 하나의 설계도를 구상하는 거구나 라는 생각이 들었다.
중복적으로 하는 테스트들을 자동화하여 쉽게 확인 가능 하다.