테스트 주도 개발 실전 강의 교재¶
32장 — TDD 마스터하기¶
대상: Java/Spring 백엔드 입문~중급 수강생 형식: 책 전체 회고
0. 학습 목표¶
- 책 전체의 통찰 정리.
- TDD 마스터로 가는 실천 과제.
32장 — Kent Beck 의 조언 (요약)¶
1. 사이클을 짧게¶
빨강-초록-리팩터가 분 단위. 시간 단위가 되면 단계 분해.
2. 한 번에 하나¶
한 사이클에 한 변경. 두 가지 동시 = 실패 원인 추적 어려움.
3. 테스트가 짠다고 좋은 설계가 보장 X¶
TDD 는 나쁜 설계를 빨리 알아채게 함. 좋은 설계는 여전히 학습 + 경험.
4. 작은 단계 vs 큰 단계¶
확신 있으면 큰 단계, 모르면 작은 단계. 빨강이 길어지면 단계가 너무 큰 것.
5. 도구·언어·관행 학습¶
TDD 는 도구·언어·팀 관행이 받쳐줘야 효과 큼.
6. 안티패턴 인식¶
- 테스트 없이 코드 작성
- 테스트가 구현 디테일 검증 (변경 시 같이 깨짐)
- 거대한 픽스처 공유
- flaky 테스트 방치
7. 패턴 사전 활용¶
3부 25~31장 카탈로그가 곧 사전. 모르는 상황 발생 시 펼침.
책 전체 핵심 메시지 (3부 종합)¶
- 빨강-초록-리팩터 의 짧은 사이클.
- 할 일 목록 으로 흐름 끊지 않음.
- 가짜 구현 → 진짜 구현 의 단계.
- 삼각측량 으로 일반화 강제.
- 테스트도 코드 — 깨끗하게.
- 리팩토링 + 패턴 이 R 단계의 도구.
- 자기 회귀 — xUnit 만들기 (2부) 가 곧 도구 학습 + 자기 검증.
다음 단계¶
- entity-refactoring / entity-effective-java / entity-clean-code — TDD 의 R 단계에서 펼치는 사전.
- entity-object — 책임 주도 설계의 큰 그림.
- Working Effectively with Legacy Code (Feathers) — 레거시에 TDD 적용.
다음 — 부록 A·B 와 마치는 글 (Fowler)¶
부록은 TDD 의 외부 효과 (영향도) 와 코딩 사례 (피보나치). 마치는 글은 Martin Fowler 가 TDD 와 자기 자신의 관계.