Files
2nd/01_Archive/2026-04-20/Architecture-Design Principles.md
T

1.5 KiB

🏗️ 시스템 설계 원칙: [프로젝트명] 프로젝트 아키텍처 가이드라인

🎯 목표: 관심사의 분리 (Separation of Concerns - SoC)의 극대화

시스템을 구성하는 각 부분이 독립적으로 작동하며, 서로에게 최소한의 영향만 주도록 구조를 설계해야 합니다.

🧩 핵심 레이어 정의

  1. Domain Engine Layer (핵심 규칙):
    • 역할: 게임/시뮬레이션의 모든 물리적 규칙(충돌, 중력, 점수 계산 등)을 담당합니다. 외부 환경에 의존해서는 안 됩니다.
    • 구현 원칙: 반드시 Web Worker와 같은 별도의 스레드에서 구동하여 메인 UI 스레드의 부하를 분리해야 합니다.
  2. State Management Layer (진실의 출처):
    • 역할: 시스템이 현재 어떤 상태인지(State)에 대한 단 하나의 공식 기록을 유지합니다. 모든 데이터 변경은 오직 이 레이어를 통해서만 이루어져야 합니다.
    • 원칙: 단일 진실 공급원 (Single Source of Truth, SSOT) 원칙 준수.
  3. Presentation Layer (렌더링):
    • 역할: State Manager가 제공하는 데이터만 받아와서 사용자에게 보여줍니다. 비즈니스 로직은 절대 포함해서는 안 됩니다.

🔁 핵심 설계 패턴 적용 지침

  • 명령어/이벤트 기반 통신: 컴포넌트 간의 직접적인 호출(Direct Call) 대신, 메시지/이벤트를 통해 느슨하게 결합해야 합니다. (Decoupling).