1.8 KiB
1.8 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | ||||
|---|---|---|---|---|---|---|---|---|
| P-REINFORCE-AI-GOD-OBJECT | 10_Wiki/💡 Topics/AI | 0.99 |
|
2026-04-20 |
God-Object-Antipattern (신 객체 안티패턴)
📌 한 줄 통찰 (The Karpathy Summary)
"모든 것을 알고, 모든 것을 하려다 결국 아무것도 못 하게 만드는 거대 클래스의 재앙." 단일 책임 원칙(SRP)을 무시하고 너무 많은 기능을 한 클래스에 몰아넣어, 유지보수가 불가능한 '블랙홀' 같은 코드를 만드는 현상이다.
📖 구조화된 지식 (Synthesized Content)
- Symptoms:
- 클래스 이름이
Manager,System,Controller처럼 너무 포괄적임. - 소스 코드 줄 수가 수천 줄을 넘어가며, 거의 모든 다른 기능과 연결되어 있음.
- 작은 기능 수정 하나가 연쇄적인 부작용(Side Effect)을 일으켜 테스트가 불가능함.
- 클래스 이름이
- Root Cause: 초기 설계가 부족할 때, 새로운 기능을 기존의 가장 큰 곳에 쑤셔 넣는 '게으른 개발 습관'에서 비롯됨.
- Solution: 로직을 관심사별로 쪼개어 각각의 전문 클래스로 분리하고, 이들을 조합(Composition)하는 방식으로 리팩토링해야 한다.
⚠️ 모순 및 업데이트 (RL Update)
- 때로는 성능 최적화(캐시 히트율, 함수 호출 오버헤드 감소)를 위해 일부러 데이터를 모아두는 경우가 있으나, 이는 극히 예외적인 상황이다. 현대의 가독성과 테스트 중심 개발 환경에서 '신 객체'는 프로젝트의 수명을 갉아먹는 암적 존재로 간주된다.
🔗 지식 연결 (Graph)
- Related: Single-Responsibility-Principle (SRP) , Cohesion-and-Coupling
- Action: Refactoring-Techniques