TDD 개요

정의 Test-Driven Development(TDD)는 동작하는 코드를 작성하기 전에 그 코드가 통과해야 할 자동화된 테스트를 먼저 작성하는 개발 방식이다. 2002년 Kent Beck의 Test-Driven Development: By Example로 정리됐고, Extreme Programming(XP)의 실천법 중 하나에서 출발했다. 이름에 “Test"가 들어 있지만 TDD는 테스트 기법이 아니라 설계 기법으로 분류된다. 테스트를 먼저 쓰려면 그 코드를 어떻게 호출할지, 무엇을 주고 무엇을 받을지를 먼저 정해야 하고, 그 결정이 곧 인터페이스 설계이기 때문이다. 테스트 스위트는 그 과정에서 부수적으로 남는 산출물에 가깝다. ...

🛠 업데이트: 2026년 7월 31일 PM05:34 · PolarBear

Red-Green-Refactor

개요 Red-Green-Refactor는 TDD의 단위 작업 루프다. 세 단계가 각각 다른 목적을 가지며, 한 번에 한 가지만 한다는 원칙이 전부다. Red 단계에서는 설계를 생각하고, Green 단계에서는 통과만 생각하고, Refactor 단계에서는 정리만 생각한다. 단계 질문 금지 사항 Red 이 코드를 어떻게 쓰고 싶은가 구현 코드를 건드리는 것 Green 어떻게 하면 가장 빨리 통과하는가 일반화, 미리 하는 설계 Refactor 무엇이 중복인가 동작 변경, 기능 추가 Robert C. Martin은 같은 루프를 세 가지 금지 규칙으로 다시 썼다. 사이클을 초 단위까지 조인 형태다. ...

🛠 업데이트: 2026년 7월 31일 PM05:34 · PolarBear

Classicist vs Mockist

개요 TDD를 실천하는 방식은 크게 두 갈래로 나뉜다. 갈림길은 하나다. 테스트 대상이 의존하는 협력 객체를 실제 구현으로 둘 것인가, 목(mock)으로 대체할 것인가. 명칭 다른 이름 협력 객체 검증 대상 Classicist Chicago 학파, Detroit 학파, Inside-Out 가능한 한 실제 객체 상태(state) Mockist London 학파, Outside-In, Interaction 테스트 대부분 목 상호작용(interaction) 두 이름의 유래는 지역이다. Classicist는 Kent Beck과 초기 XP 커뮤니티(디트로이트의 Chrysler C3 프로젝트)에서, Mockist는 런던의 Extreme Tuesday Club에서 Steve Freeman·Nat Pryce 등이 목 객체를 정리하며 형성됐다. ...

🛠 업데이트: 2026년 7월 31일 PM05:34 · PolarBear