테스트 주도 개발 실전 강의 교재¶
31장 — 리팩토링¶
대상: Java/Spring 백엔드 입문~중급 수강생
0. 학습 목표¶
TDD 의 R(Refactor) 단계에서 자주 쓰는 리팩토링.
TDD 에서 자주 쓰는 리팩토링¶
차이점 일치 (Reconcile Differences)¶
비슷한 코드 두 곳 → 점진적으로 같게 만들고 추출.
변화 격리 (Isolate Change)¶
변경할 부분을 메서드·임시 변수로 격리 후 변경. → entity-refactoring 6.3 변수 추출.
데이터 마이그레이션 (Migrate Data)¶
내부 표현 변경 시 두 표현 동시 유지 → 호출자 점진 이전 → 옛 표현 제거.
메서드 추출 (Extract Method)¶
가장 자주 쓰는 리팩토링. entity-refactoring 6.1.
메서드 인라인 (Inline Method)¶
너무 작은 메서드 → 인라인. entity-refactoring 6.2.
인터페이스 추출 (Extract Interface)¶
구체 클래스 의존을 인터페이스 의존으로 → 테스트 가능성 ↑.
메서드 이동 (Move Method)¶
데이터에 더 가까운 클래스로 이동. entity-refactoring 8.1.
메서드 객체 (Method Object)¶
긴 메서드 → 새 클래스 + execute() 메서드. entity-refactoring 11.9 함수→명령.
매개변수 추가 (Add Parameter)¶
새 의존성 도입 시 매개변수 추가.
매개변수를 메서드로 변경¶
객체 자신의 데이터로 유도 가능하면 매개변수 제거. entity-refactoring 11.5.
핵심 통찰¶
리팩토링 카탈로그는 결국 리팩터링 책 그대로. TDD 의 R 단계에서 적용. 8·9장의 Effective Java 권고도 함께.
다음 장 예고 — 32장: TDD 마스터하기¶
책 전체 마치며. 마스터로 가는 길.