Skip to content

ARCHITECTURE.md

이 파일은 시스템의 최상위 지도입니다. 간결하게 유지하고 필요할 때 더 깊은 문서를 가리키도록 합니다.

아키텍처 문서는 에이전트(agent)가 코드를 변경하기 전에 읽어야 할 시스템 지도 역할을 합니다. 도메인 경계, 계층 모델, 의존성 규칙을 한 곳에 명시함으로써 에이전트가 아드혹(ad-hoc) 아키텍처를 만들지 않도록 방지합니다.

시스템 형태

  • 제품: [제품명으로 교체]
  • 주요 사용자 워크플로우: [주요 워크플로우로 교체]
  • 런타임 표면: [desktop / web / cli / services / workers]
  • 제품 동작의 진실 원천(source of truth): docs/product-specs/

도메인 지도

도메인목적주요 진입점관련 명세
[domain-a][소유하는 것][모듈 / 라우트 / 명령어][명세 경로]
[domain-b][소유하는 것][모듈 / 라우트 / 명령어][명세 경로]

계층 모델

에이전트가 즉흥적인 아키텍처를 발명하지 않도록 고정된 방향성 모델을 사용한다.

Types -> Config -> Repo -> Service -> Runtime -> UI

횡단 관심사(cross-cutting concern)는 계층을 직접 가로지르는 대신 명시적인 공급자(provider) 또는 어댑터(adapter) 경계를 통해 진입해야 합니다.

의존성 하드 규칙

  • 하위 계층은 상위 계층에 의존해서는 안 된다.
  • UI는 런타임 또는 서비스 계약을 우회해서는 안 된다.
  • 데이터 접근은 저장소(repository) 또는 동등한 어댑터를 통해 진입해야 한다.
  • 공유 유틸리티는 범용으로 유지하며 도메인 로직을 축적해서는 안 된다.
  • 새로운 의존성은 일치하는 계획 또는 설계 문서에서 정당화되어야 한다.

횡단 관심사 인터페이스

관심사승인된 경계비고
로깅 및 트레이싱[공급자 / 유틸리티 경로][구조화만 허용, 임의 콘솔 사용 금지]
인증(Auth)[공급자 경로][토큰/세션 규칙]
외부 API[클라이언트 또는 공급자 경로][속도 제한 / 재시도 지침]
기능 플래그[플래그 경계][소유권]

현재 핫스팟

  • [에이전트가 안전하게 변경하기 가장 어려운 영역]
  • [경계가 약하거나 테스트가 취약한 영역]

변경 체크리스트

아키텍처 관련 코드를 수정할 때:

  1. 도메인 지도 또는 허용된 경계가 변경된 경우 이 파일을 업데이트한다.
  2. 근거가 변경된 경우 docs/design-docs/의 관련 설계 문서(design doc)를 업데이트한다.
  3. 규칙이 기계적으로 강제되어야 한다면 실행 가능한 검사를 추가하거나 업데이트한다.