---
id: [[P-Reinforce|P-Reinforce]]-AI-CLEANARCH-IMP
category: Unified
confidence_score: 0.98
tags: [Clean Architecture, Implementation, Layering, SOLID]
last_reinforced: 2026-04-20
---

# [[Clean-Architecture-Implementation|Clean-Architecture-Implementation]] (클린 아키텍처 구현)

## 📌 한 줄 통찰 (The Karpathy Summary)
> "데이터베이스나 프레임워크는 세부 사항일 뿐이다." 비즈니스 규칙(Domain)을 외부 세계로부터 철저히 격리하여 평생 변하지 않는 단단한 원핵(Core)을 유지하는 아키텍처다.

## 📖 구조화된 지식 (Synthesized Content)
- **의존성 규칙 (Dependency Rule)**:
    - 의존성의 방향은 항상 안쪽(Domain)으로만 향해야 한다. 도메인은 외부 라이브러리나 UI 라이브러리를 절대 알면 안 된다.
- **4대 레이어 구성**:
    1. **Entities**: 가장 핵심적인 비즈니스 객체 및 규칙.
    2. **Use Cases**: 애플리케이션 특유의 비즈니스 논리 구현.
    3. **Interface Adapters**: Controller, Presenter 등 데이터 변환기.
    4. **Frameworks & Drivers**: DB, UI, 외부 API 등 인프라스트럭처.
- **DIP (Dependency [[Inversion|Inversion]] Principle)**:
    - 중심부가 외부를 호출해야 할 땐 인터페이스를 정의하고, 실체는 외부에서 주입(Injection)받는다.

## ⚠️ 모순 및 업데이트 (RL Update)
- 작은 프로젝트에 클린 아키텍처를 도입하는 것은 '보일러플레이트 지옥'을 초래할 수 있다. 소규모일 땐 생산성을 챙기고, 코드 베이스가 1만 라인을 넘어가는 시점부터 점진적으로 레이어를 분리하는 **'점진적 아키텍처링'**이 실무에서 더 선호된다.

## 🔗 지식 연결 (Graph)
- Related: [[Separation_of_Concerns|Separation_of_Concerns]] , [[Domain-Driven Design (DDD)|Domain-Driven Design (DDD)]]
- Foundation: [[React_Clean_Code_Best_Practices|React_Clean_Code_Best_Practices]]
