Files
2nd/10_Wiki/Topics/Architecture/Clean Architecture & Patterns.md
T

2.9 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AUTO-WIKI-ARC-001 Unified 0.95
architecture
clean-architecture
design-patterns
mvc
separation-of-concerns
p-reinforce
2026-05-01

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)