"매 small step, green test, no behavior change". Fowler 의 1999 정의 그대로 — 매 외부 동작 보존, 내부 구조 개선. 2026 에 LLM-assisted refactor 가 boilerplate-level change 를 자동화하지만, 매 design intent 의 보존은 여전히 사람의 책임.
매 핵심
매 3대 원칙
Behavior preservation: 매 test suite green 유지. Red 면 commit X.
Small steps: 매 1 commit = 1 transformation. revert 가능해야.
Refactor ≠ Rewrite: 매 새 feature 추가 X. 매 bug fix X. 매 oranges-to-oranges.
매 Two Hats (Kent Beck)
"Adding feature" hat 또는 "Refactoring" hat — 매 동시 X.
Hat 전환 시 commit boundary.
매 응용
Pre-feature refactor: 매 새 기능 추가 전에 매 ground 정리.
Code smell 감지 시 즉시 처리 (Boy Scout Rule).
PR review 에서 매 reviewer-suggested refactor 는 별도 PR.
💻 패턴
Extract Function
# Beforedefprocess_order(order):iforder.total>100andorder.customer.tier=="gold":order.discount=order.total*0.1# ... more logic# Afterdefprocess_order(order):if_is_eligible_for_gold_discount(order):order.discount=order.total*0.1def_is_eligible_for_gold_discount(order):returnorder.total>100andorder.customer.tier=="gold"
Replace Magic Number
// Before
if(user.age>=18){...}// After
constLEGAL_ADULT_AGE=18;if(user.age>=LEGAL_ADULT_AGE){...}
언제: 매 boilerplate transformation (rename, extract, format), 매 unfamiliar legacy code 의 의도 파악, 매 test scaffolding 자동 생성.
언제 X: 매 design decision 이 필요한 architectural refactor — 매 LLM 은 local view 만 봄.
❌ 안티패턴
Refactoring + Feature mix: 매 PR 비대 + review 불가능.
Big bang refactor: 매 2주 stop-the-world refactor — merge conflict 폭탄.
Test-less refactor: 매 behavior preservation 증명 불가.
Cosmetic-only: 매 readability 개선 없는 style change 만 — review 시간 낭비.