테스트 주도 개발 실전 강의 교재¶
17장 — Money 회고¶
대상: Java/Spring 백엔드 입문~중급 수강생 형식: 회고
0. 학습 목표¶
- 1부 전체에서 얻은 통찰 정리.
- TDD 의 본질 — 설계가 코드에서 창발.
1부 (1~16장) 핵심 통찰¶
1. 작은 단계의 위력¶
각 장이 한 작은 변경. 누적이 큰 도메인 모델 (Money·Bank·Expression·Sum) 을 만듦.
2. 빨강 → 초록 → 정련¶
- 빨강 = 목표 선언
- 초록 = 가장 빠른 통과 (가짜 OK)
- 정련 = 안전 추가 + 중복 제거
3. 의도된 중복은 죄가 아니다¶
5장 Dollar→Franc 복붙은 의도된 빚. 6장에서 슈퍼클래스 추출. 11장에서 자식 클래스 자체 제거.
4. 도메인 발견 (Emergence)¶
처음부터 Bank·Expression·Sum 을 설계 안 함. TDD 사이클이 자연스럽게 발견.
5. 안전망의 자유¶
매 단계 모든 테스트 통과 → 어떤 정련도 안전. 두려움 없음.
1부와 다른 책의 연결¶
| TDD 1부 인사이트 | 위키 페이지 |
|---|---|
| 정적 팩터리 (8장) | entity-effective-java Item 1 |
| equals/hashCode (3·14장) | Item 10·11 |
| 값 객체 불변 (2·11장) | Item 17 |
| 서브클래스 제거 (11장) | entity-refactoring 12.7 |
| 슈퍼클래스 추출 (6장) | 12.8 |
| 컴포지트·Strategy (12·16장) | concept-design-patterns |
| 책임 주도 설계 발견 | entity-object |
| 4규칙 적용 (모든 테스트·중복·의도·최소) | entity-clean-code 12장 |
핵심 교훈¶
- 설계는 코드에서 창발. 처음부터 완벽한 설계 X.
- 테스트 안전망 = 자유.
- 작은 단계의 누적 > 큰 설계 한 번.
- 두 모자 — 한 번에 한 의도.
다음 장 예고 — 18장: xUnit 으로 가는 첫걸음¶
2부 시작. xUnit 자체를 TDD 로 — 테스트 프레임워크가 자기 자신을 테스트. 자기 회귀의 묘.