31 lines
2.5 KiB
Markdown
31 lines
2.5 KiB
Markdown
---
|
|
id: FE-ARCH-STRUCT-001
|
|
category: "10_Wiki/💡 Topics/AI"
|
|
confidence_score: 1.0
|
|
tags: [frontend, architecture, folder-structure, scalability, modularity, atomic-design, clean-architecture]
|
|
last_reinforced: 2026-04-26
|
|
---
|
|
|
|
# Frontend Architecture and Folder Structure (프런트엔드 아키텍처 및 폴더 구조)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "파일이 어디에 있는지 고민하는 시간을 제로로 만들고, 프로젝트 규모가 커져도 복잡도가 선형적으로 유지되도록 관심사 분리(SoC)에 기반한 물리적/논리적 영토를 명확히 획정하라" — 확장성과 협업 효율을 결정짓는 프런트엔드 프로젝트의 설계 지도.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
- **추출된 패턴:** "Domain-Driven and Feature-Encapsulated Structuring" — 공통 컴포넌트 중심의 구조에서 벗어나, 기능(Feature)이나 도메인 단위로 관련 로직(Hooks, Components, Types, Utils)을 응집시키는 패턴.
|
|
- **표준 폴더 구조 아키텍처:**
|
|
- **`/src/components`:** 여러 곳에서 재사용되는 범용 UI 원자(Buttons, Inputs).
|
|
- **`/src/features`:** 특정 비즈니스 기능(Auth, Cart, Profile) 단위로 캡슐화된 폴더. 각 폴더 내에 해당 기능 전용 자산 포함.
|
|
- **`/src/hooks`:** 범용 커스텀 훅들.
|
|
- **`/src/pages` / `/src/app`:** 라우팅 진입점 및 페이지 레이아웃.
|
|
- **`/src/assets` & `/src/styles`:** 이미지, 폰트 및 전역 CSS 설정.
|
|
- **의의:** 의존성 방향을 명확히 하여 코드 변경의 파급 효과를 제한하고, 새로운 팀원이 프로젝트에 빠르게 적응할 수 있는 높은 관측성을 제공함.
|
|
|
|
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
|
|
- **과거 데이터와의 충돌:** 과거에는 `components`, `containers`, `actions`, `reducers` 등 기술적 계층으로 폴더를 나누었으나(Layered Architecture), 현대 정책은 관련 있는 기능을 한곳에 모으는 '도메인/피처 중심 정책'으로 전환됨.
|
|
- **정책 변화:** Antigravity 프로젝트는 모든 저장소에 대해 'Feature-first' 폴더 구조를 강제하며, 각 피처 폴더 밖으로 유출되는 의존성은 엄격히 검토되는 'Strict Encapsulation' 정책을 고수함.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- Scalable-Frontend-Architecture, [[Atomic-Styling-and-Design-Systems|Atomic-Styling-and-Design-Systems]], [[Clean-Code-Principles|Clean-Code-Principles]], Modular-Monolith
|
|
- **Raw Source:** 00_Raw/Frontend Folder Structure.md
|