## ๐Ÿ“Œ Brief Summary ๋Œ€๊ทœ๋ชจ React ์‹œ์Šคํ…œ์€ ๋›ฐ์–ด๋‚œ ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ๊ณ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ์ •๊ตํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ์ง‘ํ•ฉ์ฒด์ด๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ UI์˜ ์—„๊ฒฉํ•œ ๋ถ„๋ฆฌ, ๋„๋ฉ”์ธ ์ค‘์‹ฌ์˜ ๋ชจ๋“ˆ ๊ตฌ์กฐ(FSD), ๊ทธ๋ฆฌ๊ณ  ๋ฉ€ํ‹ฐ ๋ ˆ์ด์–ด ์ƒํƒœ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ˆ˜๋ฐฑ ๋ช…์˜ ๊ฐœ๋ฐœ์ž์™€ ๋ฐฉ๋Œ€ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ˆ˜์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค. ## ๐Ÿ“– Core Content 1. **๋„๋ฉ”์ธ ์ค‘์‹ฌ ์•„ํ‚คํ…์ฒ˜: FSD (Feature-Sliced Design)** - ๊ธฐ์ˆ ์  ํƒ€์ž…์ด ์•„๋‹Œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ(Feature) ๋‹จ์œ„๋กœ ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์‘์ง‘๋„๋ฅผ ๋†’์ด๊ณ  ์˜์กด์„ฑ ์ŠคํŒŒ๊ฒŒํ‹ฐ๋ฅผ ๋ฐฉ์ง€ํ•œ๋‹ค. - ๋‹จ๋ฐฉํ–ฅ ์˜์กด์„ฑ ๊ทœ์น™๊ณผ Public API(`index.ts`)๋ฅผ ํ†ตํ•ด ๋ชจ๋“ˆ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ  ๋…๋ฆฝ์  ๋ฐฐํฌ์™€ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. 2. **๋ฉ€ํ‹ฐ ๋ ˆ์ด์–ด ์ƒํƒœ ๊ด€๋ฆฌ ์ „๋žต** - **์ „์—ญ ์ƒํƒœ**: ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™”๊ฐ€ ๊ฐ•๋ ฅํ•œ Zustand ๋˜๋Š” ์—„๊ฒฉํ•œ ๊ฑฐ๋ฒ„๋„Œ์Šค์˜ Redux๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ ์ „๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•œ๋‹ค. - **์„œ๋ฒ„ ์ƒํƒœ**: TanStack Query๋ฅผ ํ†ตํ•ด API ํ†ต์‹ , ์บ์‹ฑ, ๋™๊ธฐํ™” ๋กœ์ง์„ UI์™€ ์™„์ „ํžˆ ๋””์ปคํ”Œ๋งํ•œ๋‹ค. 3. **์ž๋™ํ™”๋œ ์„ฑ๋Šฅ ์—”์ง€๋‹ˆ์–ด๋ง** - **React Compiler**: ์ˆ˜๋™ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ณ  ๋นŒ๋“œ ํƒ€์ž„์— ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž๋™ ์บ์‹ฑํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•œ๋‹ค. - **์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…**: Vite์™€ `React.lazy`๋ฅผ ํ™œ์šฉํ•œ ์ง€์—ฐ ๋กœ๋”ฉ์œผ๋กœ ์ดˆ๊ธฐ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•œ๋‹ค. 4. **ํšŒ๋ณต ํƒ„๋ ฅ์„ฑ(Resilience) ์„ค๊ณ„** - Error Boundary๋ฅผ ํ†ตํ•œ ์žฅ์•  ๊ฒฉ๋ฆฌ์™€ Sentry/LogRocket ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์„ธ์…˜ ๋ฆฌํ”Œ๋ ˆ์ด๋กœ ํ”„๋กœ๋•์…˜ ์ด์Šˆ ๋Œ€์‘๋ ฅ์„ ํ™•๋ณดํ•œ๋‹ค. ## โš–๏ธ Trade-offs & Caveats - **์•„ํ‚คํ…์ฒ˜ ์ธ์ง€ ๋ถ€ํ•˜**: FSD์™€ ๊ฐ™์€ ์—„๊ฒฉํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ์ฝ”๋“œ ํ™•์žฅ์„ฑ์—๋Š” ์œ ๋ฆฌํ•˜์ง€๋งŒ, ์‹ ๊ทœ ๊ฐœ๋ฐœ์ž์˜ ์˜จ๋ณด๋”ฉ ๋น„์šฉ๊ณผ ์ดˆ๊ธฐ ์„ค๊ณ„ ๋ณต์žก๋„๊ฐ€ ๋†’๋‹ค. - **์ˆ˜๋™ vs ์ž๋™ ์ตœ์ ํ™”**: React Compiler๊ฐ€ ๋„์ž…๋˜์–ด๋„ ์จ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ์ฐธ์กฐ ๋ถˆ์ผ์น˜๋กœ ์ธํ•œ ์บ์‹œ ๊นจ์ง ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด ์—ฌ์ „ํžˆ ์ •๋ฐ€ํ•œ ๋””๋ฒ„๊น… ๋Šฅ๋ ฅ์ด ์š”๊ตฌ๋œ๋‹ค. - **๋„๊ตฌ ๋น„๋Œ€ํ™”**: ๊ฐ•๋ ฅํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ๋“ค์˜ ๋„์ž…์€ ๊ทธ ์ž์ฒด๋กœ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ๋ฅผ ํ‚ค์šฐ๋Š” ์š”์ธ์ด ๋˜๋ฏ€๋กœ ์ƒ˜ํ”Œ๋ง๊ณผ ์ตœ์ ํ™”๋œ ์ž„ํฌํŠธ ์ „๋žต์ด ์ˆ˜๋ฐ˜๋˜์–ด์•ผ ํ•œ๋‹ค. ## ๐Ÿ”— Knowledge Connections ### Related Concepts (Auto-Linked) * [[Architecture]] * [[Boundaries]] * [[ESLint]] * [[Error Boundaries]] * [[Feature-Sliced_Design]] * [[Index]] * [[Management]] * [[Monorepo]] * [[React]] * [[React_Compiler]] * [[Research]] * [[Resilience]] * [[SaaS]] * [[State]] * [[Testing]] * [[Turborepo]] * [[Visual Regression Testing]] ### Related Concepts - **Feature-Sliced Design**: ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ์  ๋ผˆ๋Œ€ (๊ด€๊ณ„: ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜) - **React Compiler**: ์ฐจ์„ธ๋Œ€ ์„ฑ๋Šฅ ์ตœ์ ํ™” ์—”์ง„ (๊ด€๊ณ„: ์„ฑ๋Šฅ ๋ณด์žฅ ์žฅ์น˜) - **Error Boundaries**: ์‹œ์Šคํ…œ ๊ฐ€์šฉ์„ฑ ๋ณดํ˜ธ ์žฅ์น˜ (๊ด€๊ณ„: ์•ˆ์ •์„ฑ ๋ฉ”์ปค๋‹ˆ์ฆ˜) ### Deeper Research Questions 1. FSD ๊ตฌ์กฐ์—์„œ ๋ณต์ˆ˜์˜ 'Features' ๊ณ„์ธต์ด ๊ณตํ†ต ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•  ๋•Œ, ์˜์กด์„ฑ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š๋Š” ์ตœ์ ์˜ ์ƒํƒœ ์Šน๊ฒฉ(State Lifting) ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? 2. React Compiler๊ฐ€ ์จ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๋ฐ˜ํ™˜๋œ ๋ถˆ์•ˆ์ •ํ•œ ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ์—ฐ์‡„๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณดํ˜ธํ•˜๋Š”๊ฐ€? 3. ๋Œ€๊ทœ๋ชจ ๋ฒˆ๋“ค์—์„œ `manualChunks`๋ฅผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—…๋ฐ์ดํŠธ ๋นˆ๋„๋ณ„๋กœ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์บ์‹œ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์ •๋Ÿ‰์  ๋ถ„์„ ๋ชจ๋ธ์€? 4. ๋ถ„๋ฆฌ๋œ DOM ๋…ธ๋“œ(Detached DOM nodes)๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํƒ์ง€ํ•˜์—ฌ ์ž๋™ ๋กค๋ฐฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๋•์…˜ ๋ ˆ๋ฒจ์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ์ž๋™ํ™”๋Š” ๊ฐ€๋Šฅํ•œ๊ฐ€? 5. ๋Œ€๊ทœ๋ชจ ํŒ€์—์„œ ์•„ํ‚คํ…์ฒ˜ ๊ทœ์น™(๋‹จ๋ฐฉํ–ฅ ์˜์กด์„ฑ ๋“ฑ)์„ ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•œ ์ปค์Šคํ…€ ESLint ๊ทœ์น™์˜ ์œ ์ง€๋ณด์ˆ˜ ์ „๋žต์€? ### Practical Application Contexts - **์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰ SaaS ๊ฐœ๋ฐœ**: ๋‹ค์ˆ˜์˜ ๋„๋ฉ”์ธ์ด ์–ฝํžŒ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„. - **์„ฑ๋Šฅ ์ค‘์‹ฌ ์•ฑ ๋ฆฌํŒฉํ† ๋ง**: ๋ Œ๋”๋ง ๋ณ‘๋ชฉ์ด ์‹ฌํ•œ ๋Œ€๊ทœ๋ชจ React ์•ฑ์„ ์ž๋™ ๋ฉ”๋ชจ์ด์ œ์ด์…˜๊ณผ ๊ณ„์ธตํ™”๋œ ์ƒํƒœ ๊ด€๋ฆฌ๋กœ ๊ฐœ์„ . ### Adjacent Topics - **Micro-Frontends Architecture** - **Monorepo Management (Nx / Turborepo)** - **Visual Regression Testing in CI/CD**