Enterprise monorepo architecture
1. 저장소 경계와 의존성 방향1 / 9

모노레포는 폴더 합치기가 아니다

apps/packages, 계층 규칙, workspace protocol과 naming

Concept 45 XP 9 min

모노레포의 가치는 코드가 한곳에 있다는 사실보다 변경 관계와 검증·릴리즈를 일관되게 계산할 수 있다는 데 있습니다. apps는 독립 배포 단위, packages는 재사용 단위로 두고 의존성은 types/config 같은 하위 계층에서 app으로만 흐르게 합니다.

계층예시참조 규칙
L0 기반types·config외부만 참조
L1 인프라db·api-client·observabilityL0만 참조
L2 도메인/UIbilling·auth·uiL0~L1 참조
L3 appsweb·admin·workerL0~L2 참조
  1. 배포 단위 목록화각 app의 runtime·domain·owner를 정합니다.
  2. 패키지 책임하나의 이유로 변경되는 코드만 묶습니다.
  3. 의존성 방향계층 규칙과 forbidden edge를 선언합니다.
  4. Workspace 연결내부 package는 workspace:*와 명시적 exports를 씁니다.