Red-Green-Refactor TDD 사이클을 Claude Code와 함께 실행 — 테스트 먼저 작성하고 AI가 통과하는 구현을 만드는 방법.
TDD와 AI — 테스트가 먼저, 구현은 나중
TDD(테스트 주도 개발)는 많은 개발자가 "좋은 방법론이지만 시간이 없다"는 이유로 미루는 방식입니다. Claude Code를 사용하면 TDD가 오히려 빨라집니다. 테스트 작성 → 실패 확인 → 구현 → 통과 확인 → 리팩터링의 사이클을 Claude가 대부분 자동으로 처리하기 때문입니다. 2024년 GitHub 연구에 따르면 AI 보조 TDD 방식의 개발자는 일반 AI 코딩 대비 버그 발생률이 40% 낮았습니다.
TDD Red-Green-Refactor 사이클
# Red: 실패하는 테스트 먼저
# Green: 통과하는 최소 구현
# Refactor: 품질 개선 (테스트는 여전히 통과)
Claude Code에 TDD를 맡기면 이 사이클이 자동화됩니다.
Claude Code TDD 실전 예시
새 유틸리티 함수 TDD
"formatCurrency(amount: number, currency: 'KRW' | 'USD' | 'JPY') 함수를
TDD로 구현해줘.
Red 단계:
- __tests__/formatCurrency.test.ts 먼저 작성
- 다음 케이스를 모두 포함할 것:
formatCurrency(1234567, 'KRW') → '₩1,234,567'
formatCurrency(1234.56, 'USD') → '$1,234.56'
formatCurrency(1234, 'JPY') → '¥1,234'
formatCurrency(0, 'KRW') → '₩0'
formatCurrency(-500, 'USD') → '-$500.00'
- 테스트 실행 → 실패 확인 (함수 미존재로)
Green 단계:
- utils/formatCurrency.ts 최소 구현
- Intl.NumberFormat 사용, TypeScript strict
- 테스트 실행 → 5개 통과 확인
Refactor 단계:
- 중복 제거, 가독성 개선
- 테스트 여전히 통과 확인"
기존 코드 테스트 추가 패턴
"app/actions/jobs.ts의 createJob 함수에 테스트를 추가해줘.
먼저 함수 동작을 분석해서:
1. 정상 케이스 (유효한 입력)
2. 유효성 검사 실패 케이스
3. DB 오류 케이스
4. 권한 오류 케이스
각 케이스별 테스트 작성 후 통과 확인.
Supabase 클라이언트는 jest.mock으로 처리."
컴포넌트 TDD (React Testing Library)
"JobCard 컴포넌트를 TDD로 리팩터링해줘.
테스트 케이스:
- 공고 제목이 렌더링됨
- 마감일이 지난 공고는 '마감' 배지가 표시됨
- 마감일이 3일 미만이면 '마감임박' 배지
- 클릭 시 href={/jobs/[id]} 링크로 이동
- thumbnail_url 없을 때 기본 이미지 표시
@testing-library/react 사용.
기존 컴포넌트 동작은 바꾸지 말고 테스트만 추가 후
실패하는 부분만 수정."
TDD로 버그 재발 방지
버그를 수정할 때 TDD 방식을 적용하면 같은 버그가 재발하지 않습니다.
"로그인 후 redirect가 간헐적으로 실패하는 버그가 있어.
TDD 방식으로 수정해줘:
1. 먼저 이 버그를 재현하는 테스트를 작성해줘
(현재는 이 테스트가 실패해야 함)
2. 버그 원인 분석
3. 수정 코드 작성
4. 테스트 통과 확인
5. 회귀 테스트로 영구 추가"
이 방식의 장점은 "버그 수정 확인"과 "재발 방지"가 동시에 이루어진다는 점입니다.
테스트 커버리지 점검
"현재 테스트 커버리지 분석해줘.
npx jest --coverage 실행 후:
1. 커버리지 0%인 중요 파일 목록
2. 우선순위 높은 파일 3개 선정 (비즈니스 로직 기준)
3. 선정된 파일의 테스트 작성
커버리지 목표: 비즈니스 로직 파일 70% 이상"
TDD + Claude Code 황금 규칙
# ✅ 이렇게 하세요
- 테스트 코드는 절대 수정하지 말 것 (명시적 지시)
- 테스트 기대값 변경 금지 (구현을 바꾸세요)
- 각 Red→Green 사이클 완료 시 git commit
# ❌ 이러면 안 됩니다
- "테스트가 통과하게 만들어줘" (테스트 수정 가능성)
- "이 테스트는 너무 엄격해, 완화해줘" (테스트 가치 훼손)
- 실패 테스트 무시하고 다음 단계 진행
TDD는 "나중에 테스트 추가"와 완전히 다른 개발 방식입니다. 테스트가 먼저 있으면 구현의 목표가 명확해지고, Claude Code는 그 목표를 향해 정확히 코드를 작성합니다. "테스트를 통과시켜줘"라는 명확한 목표가 있을 때 Claude의 구현 품질이 가장 높습니다.
핵심 정리
- AI 보조 TDD로 버그 발생률 40% 감소(GitHub 2024) — 테스트 작성을 Claude에게 맡기면 TDD 속도 장벽 해소
- "테스트 코드 수정 금지" 명시 필수 — 이 지시 없으면 Claude가 테스트 기대값 변경으로 통과시킬 수 있음
- 버그 수정 시 재현 테스트 먼저 — 테스트 추가 → 버그 수정 → 통과 확인의 순서로 재발 방지까지 한 번에
관련 검색어 · 클로드 코드 TDD · AI 테스트 주도 개발 · Claude Code 테스트 자동화 · 클로드 코드 완벽 마스터 · Red Green Refactor AI