콘텐츠로 이동

테스트 주도 개발 실전 강의 교재

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장

핵심 교훈

  1. 설계는 코드에서 창발. 처음부터 완벽한 설계 X.
  2. 테스트 안전망 = 자유.
  3. 작은 단계의 누적 > 큰 설계 한 번.
  4. 두 모자 — 한 번에 한 의도.

다음 장 예고 — 18장: xUnit 으로 가는 첫걸음

2부 시작. xUnit 자체를 TDD 로 — 테스트 프레임워크가 자기 자신을 테스트. 자기 회귀의 묘.