테스트를 먼저 작성하고 테스트를 통과하는 구체적은 코드를 추가하면서 애플리케이션을 완성해가는 방식실패하는 테스트 작성테스트를 통과하는 가장 간단한 코드를 작성 ( 코드 중복 허용 )리팩터링을 통해 중복을 제거객체가 이미 존재한다고 가정하고, 객체에게 어떤 메시지를 전송