## πŸ“Œ Brief Summary ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜λŠ” ν˜„λŒ€ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ³΅μž‘μ„±μ„ κ΄€λ¦¬ν•˜κ³  지속 κ°€λŠ₯ν•œ μœ μ§€λ³΄μˆ˜μ„±κ³Ό ν™•μž₯성을 ν™•λ³΄ν•˜κΈ° μœ„ν•œ ꡬ쑰적 섀계 κΈ°λ°˜μ΄λ‹€. λ‹¨μˆœν•œ UI λ Œλ”λ§μ„ λ„˜μ–΄ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 UI의 뢄리, μ—„κ²©ν•œ μ˜μ‘΄μ„± 관리, 그리고 κΈ°λŠ₯(Feature) 기반의 λͺ¨λ“ˆν™”λ₯Ό 톡해 κ²¬κ³ ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜λŠ” 것을 λͺ©ν‘œλ‘œ ν•œλ‹€. ## πŸ“– Core 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λ₯Ό λ°°μΉ˜ν•˜μ—¬ νŠΉμ • λͺ¨λ“ˆμ˜ 였λ₯˜κ°€ μ‹œμŠ€ν…œ μ „μ²΄λ‘œ μ „νŒŒλ˜λŠ” 것을 μ°¨λ‹¨ν•œλ‹€. ## βš–οΈ Trade-offs & Caveats - **섀계 μ˜€λ²„ν—€λ“œ**: μ—„κ²©ν•œ μ•„ν‚€ν…μ²˜(FSD λ“±) λ„μž… μ‹œ 초기 폴더 ꡬ성과 계측 뢄리에 λ”°λ₯Έ 인지적 λΆ€ν•˜ 및 파일 수 증가가 λ°œμƒν•  수 μžˆλ‹€. - **μΆ”μƒν™”μ˜ μ–‘λ‚ μ˜ κ²€**: DRY 원칙을 λ¬΄λ¦¬ν•˜κ²Œ μ μš©ν•˜μ—¬ μ§€λ‚˜μΉ˜κ²Œ μΆ”μƒν™”λœ 곡톡 λ‘œμ§μ€ 였히렀 μ½”λ“œ 독해λ₯Ό λ°©ν•΄ν•˜κ³  변경에 μ·¨μ•½ν•˜κ²Œ λ§Œλ“€ 수 μžˆλ‹€(KISS μ›μΉ™κ³Όμ˜ 좩돌). - **기술 λΆ€μ±„μ˜ 점진적 ν•΄κ²°**: 기쑴의 λͺ¨λ†€λ¦¬μ‹ κ΅¬μ‘°μ—μ„œ κΈ°λŠ₯ 기반 μ•„ν‚€ν…μ²˜λ‘œ μ „ν™˜ν•  λ•Œ, κ³Όλ„ν•œ λΉ…λ±… λ°©μ‹μ˜ λ¦¬νŒ©ν† λ§λ³΄λ‹€λŠ” 점진적 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅μ΄ ꢌμž₯λœλ‹€. ## πŸ”— Knowledge Connections ### 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**