Files
2nd/10_Wiki/Topics/Clean-Architecture-Implementation.md
T

1.8 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AI-CLEANARCH-IMP 10_Wiki/💡 Topics/Software Architecture 0.98
Clean Architecture
Implementation
Layering
SOLID
2026-04-20

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 Principle):
    • 중심부가 외부를 호출해야 할 땐 인터페이스를 정의하고, 실체는 외부에서 주입(Injection)받는다.

⚠️ 모순 및 업데이트 (RL Update)

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

🔗 지식 연결 (Graph)