30 lines
2.7 KiB
Markdown
30 lines
2.7 KiB
Markdown
---
|
|
id: FE-ARCH-LARGE-001
|
|
category: "10_Wiki/💡 Topics/AI"
|
|
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`를 활용하여 다수의 서비스와 공용 라이브러리를 하나의 코드베이스에서 효율적으로 관리.
|
|
- **Micro-frontends:** 거대한 앱을 독립적으로 배포 가능한 단위로 쪼개어 팀 간의 간섭 최소화 (Module Federation 등).
|
|
- **Design Token System:** 스타일 속성을 변수화하여 전체 프로젝트의 일관성을 중앙 제어.
|
|
- **의의:** 프로젝트 규모가 커짐에 따라 발생하는 스파게티 코드와 의존성 지옥을 방지하고, 지속 가능한 개발 속도를 유지함.
|
|
|
|
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
|
- **과거 데이터와의 충돌:** 과거에는 무조건적인 코드 분리(Micro-services)가 정답인 것처럼 여겨졌으나, 현대 정책은 과도한 분절이 초래하는 복잡도를 경계하며 '모듈식 모놀리스(Modular Monolith)'나 '고성능 모노레포 정책'을 선호함.
|
|
- **정책 변화:** Antigravity 프로젝트는 모든 엔터프라이즈급 제품 개발 시 FSD(Feature-Sliced Design) 아키텍처 준수를 의무화하며, 의존성 규칙 위반 시 빌드 단계에서 차단하는 'Architecture Linting' 정책을 시행함.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- [[Frontend-Architecture-and-Folder-Structure|Frontend-Architecture-and-Folder-Structure]], Modular-Monolith, [[Monorepo|Monorepo]], [[Clean-Architecture-Implementation|Clean-Architecture-Implementation]]
|
|
- **Raw Source:** 00_Raw/Large-scale Application Architecture.md
|