2.7 KiB
2.7 KiB
id, category, confidence_score, tags, last_reinforced
| id | category | confidence_score | tags | last_reinforced | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| P-REINFORCE-AUTO-WIKI-ARC-001 | 10_Wiki/💡 Topics/02_Architecture_Principles | 0.95 |
|
2026-05-01 |
Clean Architecture & Patterns
📌 한 줄 통찰 (The Karpathy Summary)
"기술적 세부 사항(DB, Framework)으로부터 비즈니스 로직을 격리하여, 시스템의 수명을 연장하고 변화에 유연하게 대응하게 만드는 관심사 분리(Separation of Concerns)의 정점."
📖 구조화된 지식 (Synthesized Content)
아키텍처 패턴은 코드 리뷰 시 새로운 코드가 시스템의 전체적인 설계 방향과 일치하는지 평가하는 가장 고수준의 기준입니다.
- 클린 아키텍처 (Clean Architecture):
- 의존성 규칙: 의존성은 항상 안쪽(도메인/엔티티)을 향해야 합니다. 외부의 프레임워크나 데이터베이스 변경이 핵심 비즈니스 로직에 영향을 주지 않도록 격리합니다.
- 계층 분리: 엔티티(Entity), 유즈케이스(Use Case), 인터페이스 어댑터, 프레임워크 및 드라이버 레이어로 구분하여 각각의 역할을 명확히 정의합니다.
- MVC (Model-View-Controller):
- 데이터(Model), 사용자 인터페이스(View), 로직(Controller)을 분리하여 각 컴포넌트의 독립적 개발과 테스트를 가능하게 합니다.
- 코드 리뷰에서의 역할:
- 리뷰어는 새로운 코드가 확립된 디자인 패턴과 정렬되는지, 계층 간의 신뢰 경계를 침범하지 않는지 비판적으로 검토합니다.
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과도한 계층화 (Over-layering): 단순한 기능을 구현할 때도 모든 레이어를 엄격히 적용하면 코드 복잡도가 불필요하게 증가합니다. 프로젝트의 규모와 복잡도에 따라 아키텍처의 엄격함을 조절하는 실용적인 접근(Pragmatism)이 필요합니다.
- 아키텍처 부패 (Architectural Decay): 시간이 흐름에 따라 편의를 위해 계층을 우회하는 코드가 쌓일 수 있습니다. 매 PR마다 아키텍처 무결성을 점검하여 부패를 조기에 차단해야 합니다.
🔗 지식 연결 (Graph)
- SOLID Principles: 아키텍처를 지탱하는 세부 설계 원칙.
- Architecture Review: 아키텍처 일관성을 검증하는 프로세스.
- Dependency Management (DI & DIP): 계층 간 결합도를 낮추는 기술적 수단.
- Single Responsibility Principle (SRP): 컴포넌트 분리의 근거.
- Abstraction & Over-engineering: 아키텍처 도입 시 경계해야 할 함정.