---
id: P-REINFORCE-AUTO-WIKI-ARC-001
category: "10_Wiki/💡 Topics/02_Architecture_Principles"
confidence_score: 0.95
tags: [architecture, clean-architecture, design-patterns, mvc, separation-of-concerns, p-reinforce]
last_reinforced: 2026-05-01
---

# [[Clean Architecture & Patterns|Clean Architecture & Patterns]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> "기술적 세부 사항(DB, Framework)으로부터 비즈니스 로직을 격리하여, 시스템의 수명을 연장하고 변화에 유연하게 대응하게 만드는 관심사 분리(Separation of Concerns)의 정점."

## 📖 구조화된 지식 (Synthesized Content)
아키텍처 패턴은 코드 리뷰 시 새로운 코드가 시스템의 전체적인 설계 방향과 일치하는지 평가하는 가장 고수준의 기준입니다.

1.  **클린 아키텍처 (Clean Architecture)**:
    *   **의존성 규칙**: 의존성은 항상 안쪽(도메인/엔티티)을 향해야 합니다. 외부의 프레임워크나 데이터베이스 변경이 핵심 비즈니스 로직에 영향을 주지 않도록 격리합니다.
    *   **계층 분리**: 엔티티(Entity), 유즈케이스(Use Case), 인터페이스 어댑터, 프레임워크 및 드라이버 레이어로 구분하여 각각의 역할을 명확히 정의합니다.
2.  **MVC (Model-View-Controller)**:
    *   데이터(Model), 사용자 인터페이스(View), 로직(Controller)을 분리하여 각 컴포넌트의 독립적 개발과 테스트를 가능하게 합니다.
3.  **코드 리뷰에서의 역할**:
    *   리뷰어는 새로운 코드가 확립된 디자인 패턴과 정렬되는지, 계층 간의 신뢰 경계를 침범하지 않는지 비판적으로 검토합니다.

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과도한 계층화 (Over-layering)**: 단순한 기능을 구현할 때도 모든 레이어를 엄격히 적용하면 코드 복잡도가 불필요하게 증가합니다. 프로젝트의 규모와 복잡도에 따라 아키텍처의 엄격함을 조절하는 실용적인 접근(Pragmatism)이 필요합니다.
- **아키텍처 부패 (Architectural Decay)**: 시간이 흐름에 따라 편의를 위해 계층을 우회하는 코드가 쌓일 수 있습니다. 매 PR마다 아키텍처 무결성을 점검하여 부패를 조기에 차단해야 합니다.

## 🔗 지식 연결 (Graph)
- [[SOLID Principles|SOLID Principles]]: 아키텍처를 지탱하는 세부 설계 원칙.
- [[Architecture Review (아키텍처 및 설계 리뷰)|Architecture Review]]: 아키텍처 일관성을 검증하는 프로세스.
- [[Dependency Management (DI & DIP)|Dependency Management (DI & DIP]]: 계층 간 결합도를 낮추는 기술적 수단.
- [[Single Responsibility Principle (SRP)|Single Responsibility Principle (SRP]]: 컴포넌트 분리의 근거.
- Abstraction & Over-engineering: 아키텍처 도입 시 경계해야 할 함정.
---
