2.9 KiB
2.9 KiB
id: FE-ARCH-LARGE-001 category: Dev confidence_score: 1.0 tags: Architecture, large-scale, Frontend, Monorepo, fsd, Scalability, maintainability, Modularity] last_reinforced: 2026-04-26
Large-scale Application Architecture Patterns (대규모 애플리케이션 아키텍처 패턴)
📌 한 줄 통찰 (The Karpathy Summary)
"코드의 양이 늘어나도 복잡도의 엔트로피가 발산하지 않도록 엄격한 계층 구조(FSD)와 통합 관리 체계(Monorepo)를 구축하고, 의존성의 방향을 단방향으로 강제하여 시스템의 수명을 연장하라" — 수천 명의 개발자가 동시에 협업할 수 있는 프런트엔드 설계의 최상위 전략.
📖 구조화된 지식 (Synthesized Content)
- 추출된 패턴: "Hierarchical Decoupling and Unified Governance" — 애플리케이션을 책임 범위에 따라 수직적으로 계층화하고, 물리적으로는 모노레포를 통해 자산을 공유하여 응집도는 높이고 결합도는 낮추는 패턴.
- 핵심 아키텍처 요소:
- Feature-Sliced Design (FSD):
Shared→Entities→Features→Widgets→Pages→App순으로 의존성을 제한하는 계층적 설계. - Monorepo Strategy:
pnpm workspaces나[[Turborepo|Turborepo]]를 활용하여 다수의 서비스와 공용 라이브러리를 하나의 코드베이스에서 효율적으로 관리. - Micro-frontends: 거대한 앱을 독립적으로 배포 가능한 단위로 쪼개어 팀 간의 간섭 최소화 (Module Federation 등).
- Design Token_system: 스타일 속성을 변수화하여 전체 프로젝트의 일관성을 중앙 제어.
- Feature-Sliced Design (FSD):
- 의의: 프로젝트 규모가 커짐에 따라 발생하는 스파게티 코드와 의존성 지옥을 방지하고, 지속 가능한 개발 속도를 유지함.
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 과거에는 무조건적인 코드 분리(Micro-services)가 정답인 것처럼 여겨졌으나, 현대 정책은 과도한 분절이 초래하는 복잡도를 경계하며 '모듈식 모놀리스(Modular Monolith)'나 '고성능 모노레포 정책'을 선호함.
- 정책 변화: Antigravity 프로젝트는 모든 엔터프라이즈급 제품 개발 시 FSD(Feature-Sliced Design) 아키텍처 준수를 의무화하며, 의존성 규칙 위반 시 빌드 단계에서 차단하는 'Architecture Linting' 정책을 시행함.
🔗 지식 연결 (Graph)
- Frontend-Architecture-and-Folder-Structure, Modular-Monolith, Monorepo, Clean-Architecture-Implementation
- Raw Source: 00_Raw/Large-scale Application Architecture.md