"매 single class/module 의 too many responsibilities 의 absorption 의 통한 maintainability 의 collapse". 매 Brown et al. "AntiPatterns" (1998) 의 catalog, 매 procedural code 의 OOP 로 의 lift-and-shift 의 결과 — 매 modern microservices 시대 의 "God Service" 로 의 mutation.
매 핵심
매 Symptoms
1000+ LOC class, 50+ methods.
매 unrelated domain 의 mix (User + Order + Payment + Logging).
매 import 의 fan-in 의 high — 매 module 의 reference 의 most.
sonar.cpd.exclusions=**/*.test.ts# Rule: java:S2972 (Inner classes should not have too many lines)# Rule: typescript:S138 (Functions should not have too many lines)# Rule: common:DuplicatedBlocks
언제: god class 의 detect, extract-class 의 refactor 의 suggest, responsibility 의 cluster 의 propose.
언제 X: 매 large refactor 의 final commit (test coverage 의 human verification 필수).
❌ 안티패턴
Manager/Helper suffix: 매 dumping ground 의 invitation.
Static God: Utils static class 의 grow → 매 testability 의 destroy.
God Service: microservice 시대 의 god — single service 의 매 domain 의 own.
Refactor without tests: 매 god 의 split 의 시 behavior 의 break 의 silent.
Premature split: 매 50 LOC class 의 over-decompose → 매 anemic + indirection 의 hell.