--- id: wiki-2026-0508-frontend-architecture title: Frontend Architecture category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [uncategorized] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜λŠ” ν˜„λŒ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜κ³  지속 κ°€λŠ₯ν•œ μœ μ§€λ³΄μˆ˜μ„±κ³Ό ν™•μž₯성을 ν™•λ³΄ν•˜κΈ° μœ„ν•œ ꡬ쑰적 섀계 κΈ°λ°˜μ΄λ‹€. λ‹¨μˆœν•œ UI λ Œλ”λ§μ„ λ„˜μ–΄ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 UI의 뢄리, μ—„κ²©ν•œ μ˜μ‘΄μ„± 관리, 그리고 κΈ°λŠ₯(Feature) 기반의 λͺ¨λ“ˆν™”λ₯Ό 톡해 κ²¬κ³ ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) 1. **κΈ°λŠ₯ 기반 섀계 및 FSD (Feature-Sliced Design)** - 기술적 νƒ€μž…(μ»΄ν¬λ„ŒνŠΈ, ν›… λ“±)이 μ•„λ‹Œ λΉ„μ¦ˆλ‹ˆμŠ€ κΈ°λŠ₯(도메인) μ€‘μ‹¬μœΌλ‘œ μ½”λ“œλ₯Ό κ΅¬μ„±ν•˜μ—¬ 응집도λ₯Ό 높인닀. - FSD μ•„ν‚€ν…μ²˜λ₯Ό 톡해 계측(Layer) κ°„ 단방ν–₯ μ˜μ‘΄μ„±μ„ κ°•μ œν•˜κ³ , λͺ¨λ“ˆ κ°„μ˜ μˆœν™˜ 참쑰와 μ•„ν‚€ν…μ²˜ λΆ•κ΄΄λ₯Ό μ›μ²œμ μœΌλ‘œ λ°©μ§€ν•œλ‹€. 2. **μ†Œν”„νŠΈμ›¨μ–΄ 곡학 μ›μΉ™μ˜ 적용** - **SOLID**: 단일 μ±…μž„ 원칙(SRP)으둜 μ»΄ν¬λ„ŒνŠΈλ₯Ό μ„ΈλΆ„ν™”ν•˜κ³ , μ»΄ν¬λ„ŒνŠΈ ν•©μ„±(Composition)으둜 개방-폐쇄 원칙(OCP)을 μ€€μˆ˜ν•œλ‹€. - **KISS, DRY, YAGNI**: μ½”λ“œλ₯Ό λ‹¨μˆœν•˜κ²Œ μœ μ§€ν•˜κ³  λΆˆν•„μš”ν•œ 좔상화와 μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§μ„ κ²½κ³„ν•˜μ—¬ μ‹€μš©μ μΈ μ½”λ“œλ² μ΄μŠ€λ₯Ό μœ μ§€ν•œλ‹€. 3. **κ³„μΈ΅ν™”λœ μƒνƒœ 관리** - μƒνƒœμ˜ 성격에 따라 둜컬(React State), κΈ€λ‘œλ²Œ μ•± μƒνƒœ(Zustand), μ„œλ²„ μΊμ‹œ μƒνƒœ(TanStack Query)둜 λ ˆμ΄μ–΄λ₯Ό λΆ„λ¦¬ν•˜μ—¬ λ¦¬λ Œλ”λ§ μ„±λŠ₯κ³Ό 데이터 동기화 νš¨μœ¨μ„ μ΅œμ ν™”ν•œλ‹€. 4. **μ„±λŠ₯ 및 νšŒλ³΅μ„± 섀계** - Vite 기반의 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…κ³Ό μ§€μ—° λ‘œλ”©μ„ 톡해 λ²ˆλ“€ 크기λ₯Ό μ΅œμ ν™”ν•˜κ³ , Error Boundaryλ₯Ό λ°°μΉ˜ν•˜μ—¬ νŠΉμ • λͺ¨λ“ˆμ˜ 였λ₯˜κ°€ μ‹œμŠ€ν…œ μ „μ²΄λ‘œ μ „νŒŒλ˜λŠ” 것을 μ°¨λ‹¨ν•œλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **섀계 μ˜€λ²„ν—€λ“œ**: μ—„κ²©ν•œ μ•„ν‚€ν…μ²˜(FSD λ“±) λ„μž… μ‹œ 초기 폴더 ꡬ성과 계측 뢄리에 λ”°λ₯Έ 인지적 λΆ€ν•˜ 및 파일 수 증가가 λ°œμƒν•  수 μžˆλ‹€. - **μΆ”μƒν™”μ˜ μ–‘λ‚ μ˜ κ²€**: DRY 원칙을 λ¬΄λ¦¬ν•˜κ²Œ μ μš©ν•˜μ—¬ μ§€λ‚˜μΉ˜κ²Œ μΆ”μƒν™”λœ 곡톡 λ‘œμ§μ€ 였히렀 μ½”λ“œ 독해λ₯Ό λ°©ν•΄ν•˜κ³  변경에 μ·¨μ•½ν•˜κ²Œ λ§Œλ“€ 수 μžˆλ‹€(KISS μ›μΉ™κ³Όμ˜ 좩돌). - **기술 λΆ€μ±„μ˜ 점진적 ν•΄κ²°**: 기쑴의 λͺ¨λ†€λ¦¬μ‹ κ΅¬μ‘°μ—μ„œ κΈ°λŠ₯ 기반 μ•„ν‚€ν…μ²˜λ‘œ μ „ν™˜ν•  λ•Œ, κ³Όλ„ν•œ λΉ…λ±… λ°©μ‹μ˜ λ¦¬νŒ©ν† λ§λ³΄λ‹€λŠ” 점진적 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅μ΄ ꢌμž₯λœλ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) ### Related Concepts - **Feature-Sliced Design**: ν”„λ‘ νŠΈμ—”λ“œ λͺ¨λ“ˆν™”μ˜ μ΅œμ‹  ν‘œμ€€ 방법둠 (관계: 핡심 μ•„ν‚€ν…μ²˜ λͺ¨λΈ) - **State Management**: 데이터 νλ¦„μ˜ 쀑앙 ν†΅μ œ 및 μ΅œμ ν™” (관계: 데이터 λ ˆμ΄μ–΄ 섀계) - **SOLID Principles**: 객체 μ§€ν–₯ 및 μ»΄ν¬λ„ŒνŠΈ μ„€κ³„μ˜ κ·Όκ°„ (관계: μ½”λ“œ ν’ˆμ§ˆ κΈ°μ€€) ### Deeper Research Questions 1. FSD의 'Widgets' 계측과 'Features' 계측 μ‚¬μ΄μ˜ μ±…μž„ λΆ„λ°°λ₯Ό κ²°μ •ν•˜λŠ” κ°€μž₯ λͺ…ν™•ν•œ 기쀀은 무엇인가? 2. 마이크둜 ν”„λ‘ νŠΈμ—”λ“œ μ „ν™˜ μ‹œ, 쀑앙 집쀑식 μƒνƒœ 관리 λΌμ΄λΈŒλŸ¬λ¦¬μ™€ μ„œλΉ„μŠ€λ³„ 격리된 μƒνƒœ 관리 쀑 μ–΄λ–€ 것이 μœ λ¦¬ν•œκ°€? 3. μ»΄ν¬λ„ŒνŠΈ ν•©μ„±(Composition) νŒ¨ν„΄μ΄ 개방-폐쇄 원칙(OCP)을 ν”„λ‘ νŠΈμ—”λ“œ ν™˜κ²½μ—μ„œ μ–΄λ–»κ²Œ 물리적으둜 κ΅¬ν˜„ν•˜λŠ”κ°€? 4. μ„œλ²„ μ‚¬μ΄λ“œ 데이터(RSC) 비쀑이 λŠ˜μ–΄λ‚  λ•Œ, ν΄λΌμ΄μ–ΈνŠΈ μ•„ν‚€ν…μ²˜μ˜ μƒνƒœ 관리 λ ˆμ΄μ–΄λŠ” μ–΄λ–»κ²Œ κ°„μ†Œν™”λ˜μ–΄μ•Ό ν•˜λŠ”κ°€? 5. μ•„ν‚€ν…μ²˜μ˜ 단방ν–₯ μ˜μ‘΄μ„± κ·œμΉ™μ„ 정적 뢄석 도ꡬ(ESLint plugin-import λ“±)λ₯Ό 톡해 μžλ™ν™”ν•˜μ—¬ κ°•μ œν•˜λŠ” λ°©μ•ˆμ€? ### Practical Application Contexts - **λŒ€κ·œλͺ¨ μ•± λ¦¬νŒ©ν† λ§**: 흩어져 μžˆλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κΈ°λŠ₯별 ν΄λ”λ‘œ μΊ‘μŠν™”ν•˜μ—¬ μœ μ§€λ³΄μˆ˜μ„± 확보. - **μ‹ κ·œ ν”„λ‘œμ νŠΈ 섀계**: 초기 μ•„ν‚€ν…μ²˜ 수립 λ‹¨κ³„μ—μ„œ μƒνƒœ λ ˆμ΄μ–΄μ™€ 였λ₯˜ 처리 μ „λž΅ μ •μ˜. ### Adjacent Topics - **Micro-Frontends** - **Server Components (RSC)** - **Test-Driven Development (TDD) in Frontend** ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*