## ๐Ÿ“Œ Brief Summary ํ”„๋ก ํŠธ์—”๋“œ ์Šค์ผ€์ผ๋Ÿฌ๋นŒ๋ฆฌํ‹ฐ(Frontend Scalability)๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ํŒฝ์ฐฝ๊ณผ ํŒ€ ๊ทœ๋ชจ์˜ ํ™•์žฅ์— ๋Œ€์‘ํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๋ณต์žก๋„๋ฅผ ์ œ์–ดํ•˜๊ณ  ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด๋ง ์—ญ๋Ÿ‰์ด๋‹ค. ๊ธฐ๋Šฅ ๊ธฐ๋ฐ˜์˜ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„, ๊ณ„์ธตํ™”๋œ ์ƒํƒœ ๊ด€๋ฆฌ, ์ตœ์ ํ™”๋œ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ, ๊ทธ๋ฆฌ๊ณ  ์—„๊ฒฉํ•œ ์ฝ”๋“œ ๊ฑฐ๋ฒ„๋„Œ์Šค๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ง€์† ๊ฐ€๋Šฅํ•œ ์„ฑ์žฅ์„ ๋ณด์žฅํ•œ๋‹ค. ## ๐Ÿ“– Core Content 1. **์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐํ™” (Architecture Organization)** - ํŒŒ์ผ ์œ ํ˜• ์ค‘์‹ฌ์˜ ๊ตฌ์กฐ๋ฅผ ํƒˆํ”ผํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ ์ค‘์‹ฌ์˜ **Feature-Based Structure**๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ์‘์ง‘๋„๋ฅผ ๊ฐ•ํ™”ํ•œ๋‹ค. - **Feature-Sliced Design (FSD)**์„ ๋„์ž…ํ•˜์—ฌ ๊ณ„์ธต ๊ฐ„ ๋‹จ๋ฐฉํ–ฅ ์˜์กด์„ฑ๊ณผ Public API ๊ทœ์น™์„ ๊ฐ•์ œํ•จ์œผ๋กœ์จ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ์ธ์ง€์  ๋ถ€ํ•˜๋ฅผ ์ค„์ธ๋‹ค. 2. **์ƒํƒœ ๊ด€๋ฆฌ์˜ ์ตœ์  ํ™•์žฅ (Scaling State Management)** - ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•œ ์ค‘๋Œ€ํ˜• ์•ฑ์—์„œ๋Š” Selector ํŒจํ„ด์„ ์ง€์›ํ•˜๋Š” **Zustand** ๋˜๋Š” ๋””๋ฒ„๊น… ํ™˜๊ฒฝ์ด ๊ฐ•๋ ฅํ•œ **Redux**๋ฅผ ์„ ํƒํ•œ๋‹ค. - ์„œ๋ฒ„ ์ƒํƒœ(TanStack Query)์™€ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”์™€ ์บ์‹ฑ์˜ ๋ณต์žก์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค. 3. **๋Ÿฐํƒ€์ž„ ๋ฐ ๋นŒ๋“œ ์„ฑ๋Šฅ (Performance Scalability)** - **์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…(Code Splitting)**๊ณผ ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading)์„ ํ†ตํ•ด ๋ฒˆ๋“ค ํŒฝ์ฐฝ์„ ๋ฐฉ์–ดํ•˜๊ณ  ์ดˆ๊ธฐ ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•œ๋‹ค. - ๋Œ€๊ทœ๋ชจ ๋ฆฌ์ŠคํŠธ ๋ Œ๋”๋ง ์‹œ ๊ฐ€์ƒํ™”(Virtualization)๋ฅผ ์ ์šฉํ•˜์—ฌ DOM ๋…ธ๋“œ ์ˆ˜์˜ ํญ๋ฐœ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. 4. **์ฝ”๋“œ ๊ฑฐ๋ฒ„๋„Œ์Šค ๋ฐ ์ž๋™ํ™” (Governance)** - SOLID ์›์น™(ํŠนํžˆ SRP)์„ ์ ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , ESLint์™€ Husky ๋“ฑ์„ ํ†ตํ•ด ์•„ํ‚คํ…์ฒ˜ ๊ทœ์น™๊ณผ ์ปจ๋ฒค์…˜์„ ์ž๋™ ๊ฒ€์ฆํ•œ๋‹ค. ## โš–๏ธ Trade-offs & Caveats - **์„ค๊ณ„ ๋ณต์žก๋„ vs ์œ ์—ฐ์„ฑ**: ์—„๊ฒฉํ•œ FSD ์•„ํ‚คํ…์ฒ˜๋Š” ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”์ง€๋งŒ, ์ดˆ๊ธฐ ๋„์ž… ์‹œ ํŒŒ์ผ ์ˆ˜๊ฐ€ ๊ธ‰๊ฒฉํžˆ ๋Š˜์–ด๋‚˜๊ณ  ๋‹จ์ˆœํ•œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€์—๋„ ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. - **๋„๊ตฌ ์„ ํƒ์˜ ๋ฌด๊ฒŒ**: Redux์™€ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋Š” ๋Œ€๊ทœ๋ชจ ํŒ€์˜ ์ผ๊ด€์„ฑ์—๋Š” ์œ ๋ฆฌํ•˜๋‚˜, ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„ ์†Œ๊ทœ๋ชจ/๊ณ ์† ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ์ƒ์‚ฐ์„ฑ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. - **๊ณผ๋„ํ•œ ์ถ”์ƒํ™” ๊ฒฝ๊ณ„**: ์Šค์ผ€์ผ๋ง์„ ์œ„ํ•ด ๋„์ž…ํ•œ ๊ณตํ†ต ํ›…์ด๋‚˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ๋„ˆ๋ฌด ๋ฒ”์šฉ์ ์œผ๋กœ ์„ค๊ณ„๋  ๊ฒฝ์šฐ, ์˜คํžˆ๋ ค ๋‚ด๋ถ€ ๋กœ์ง์„ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” KISS ์›์น™ ์œ„๋ฐฐ ์ƒํ™ฉ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ## ๐Ÿ”— Knowledge Connections ### Related Concepts (Auto-Linked) * [[Architecture]] * [[Code Splitting]] * [[Context_API]] * [[Feature-Sliced_Design]] * [[Frontend]] * [[Husky]] * [[Lazy Loading]] * [[Management]] * [[Monorepo]] * [[Optimization]] * [[Performance_Optimization]] * [[Principles]] * [[React]] * [[React_Performance_Optimization]] * [[Redux]] * [[Research]] * [[SOLID_Principles]] * [[Scalability]] * [[State]] * [[Turborepo]] ### Related Concepts - **Feature-Sliced Design**: ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์กฐ์˜ ํ‘œ์ค€ (๊ด€๊ณ„: ๊ตฌ์กฐ์  ํ† ๋Œ€) - **Code Splitting**: ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ ์ตœ์ ํ™” ํ•„์ˆ˜ ๊ธฐ์ˆ  (๊ด€๊ณ„: ์„ฑ๋Šฅ ํ™•์žฅ ์ „๋žต) - **SOLID Principles**: ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ์˜ ๊ทผ๊ฐ„ (๊ด€๊ณ„: ์„ค๊ณ„ ์›์น™) ### Deeper Research Questions 1. FSD ๊ตฌ์กฐ ๋‚ด์—์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ธฐ๋Šฅ(Features)์ด ์ƒํ˜ธ ์ฐธ์กฐํ•ด์•ผ ํ•  ๋•Œ, ์˜์กด์„ฑ ์ˆœํ™˜์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ '์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ์˜ ๋กœ์ง ์Šน๊ฒฉ' ํŒจํ„ด์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฐ€? 2. Zustand์˜ Selector ํŒจํ„ด์ด ๋Œ€๊ทœ๋ชจ ์ƒํƒœ ํŠธ๋ฆฌ์—์„œ ์„ฑ๋Šฅ์  ์ด์ ์„ ๊ฐ–๋Š” ๋‚ด๋ถ€์  ์›๋ฆฌ๋Š” ๋ฌด์—‡์ธ๊ฐ€? 3. Vite์˜ `manualChunks` ์„ค์ • ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋ฒค๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์บ์‹ฑ ํšจ์œจ์„ ์ •๋Ÿ‰์ ์œผ๋กœ ์–ผ๋งˆ๋‚˜ ๋†’์ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€? 4. ์•„ํ‚คํ…์ฒ˜ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•˜๋Š” ์ž„ํฌํŠธ(Import) ์‹œ๋„๋ฅผ ๋ฆฐํŠธ ๋‹จ๊ณ„์—์„œ ์›์ฒœ ์ฐจ๋‹จํ•˜๋Š” ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ์ปค์Šคํ…€ ๊ทœ์น™ ์„ค์ • ๋ฐฉ๋ฒ•์€? 5. ์„œ๋ฒ„ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ ๋„์ž… ์‹œ ํด๋ผ์ด์–ธํŠธ ์Šคํ† ์–ด์˜ ์—ญํ• ์ด ์ถ•์†Œ๋˜๋Š” ๊ฒฝํ–ฅ์— ๋”ฐ๋ฅธ ์•„ํ‚คํ…์ฒ˜ ์Šฌ๋ฆผํ™” ์ „๋žต์€? ### Practical Application Contexts - **์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์•ฑ ์„ค๊ณ„**: ๋‹ค์ˆ˜์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ˜‘์—…ํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ๋Œ€์‹œ๋ณด๋“œ ๋ฐ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์‹œ์Šคํ…œ ๊ตฌ์ถ•. - **๋ ˆ๊ฑฐ์‹œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜**: ๋น„๋Œ€ํ•ด์ง„ Context API ๊ธฐ๋ฐ˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ Zustand/Redux๋กœ ์ „ํ™˜ํ•˜์—ฌ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ•ด์†Œ. ### Adjacent Topics - **React Performance Optimization** - **Micro-Frontends Architecture** - **Monorepo Management (Turborepo / Nx)**