# [[Vite Build System]] ## ๐Ÿ“Œ Brief Summary Vite๋Š” ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(ํŠนํžˆ React) ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์‚ฐ์—… ํ‘œ์ค€ ๋นŒ๋“œ ๋„๊ตฌ๋กœ, ๊ฑฐ์˜ ์ฆ‰๊ฐ์ ์ธ ์„œ๋ฒ„ ์‹œ์ž‘๊ณผ ์ดˆ๊ณ ์† HMR(Hot Module Replacement)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [1, 2]. ๊ธฐ์กด ๋ฒˆ๋“ค๋Ÿฌ์™€ ๋‹ฌ๋ฆฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋„ค์ดํ‹ฐ๋ธŒ ES ๋ชจ๋“ˆ ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ , ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” Rollup์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ๋„๋กœ ์ตœ์ ํ™”๋œ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [3, 4]. ๋˜ํ•œ SWC๋‚˜ esbuild์™€ ๊ฐ™์€ Rust ๊ธฐ๋ฐ˜ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๋น ๋ฅด๊ณ  ์›ํ™œํ•œ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค [3, 5, 6]. ## ๐Ÿ“– Core Content * **ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜ (๊ฐœ๋ฐœ ๋ฐ ํ”„๋กœ๋•์…˜)**: Vite๋Š” ๊ฐœ๋ฐœ ์‹œ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์‚ฌ์ „์— ๋ฒˆ๋“ค๋งํ•˜๋Š” ๋Œ€์‹ , ์ฝ”๋“œ๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ES ๋ชจ๋“ˆ(ESM) ํ˜•ํƒœ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์ง์ ‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [2, 3]. ์ด ๋ฐฉ์‹์€ ํ•„์š”ํ•  ๋•Œ ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ๋กœ๋“œํ•˜๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ๋„ ์„œ๋ฒ„ ์‹œ์ž‘ ๋ฐ ๊ฐฑ์‹  ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค [3, 7]. ๋ฐ˜๋ฉด, ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ ์‹œ์—๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Rollup์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…, ๋ฏธ์‚ฌ์šฉ ์ฝ”๋“œ ์ œ๊ฑฐ(Tree-shaking), ์ž์‚ฐ ์ตœ์ ํ™” ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค [4, 8]. * **์ดˆ๊ณ ์† ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™œ์šฉ**: Vite๋Š” ์ปดํŒŒ์ผ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด Rust ๊ธฐ๋ฐ˜์˜ ์ปดํŒŒ์ผ๋Ÿฌ์ธ SWC ๋˜๋Š” esbuild๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [3]. ๊ธฐ์กด Babel ๋Œ€์‹  `@vitejs/plugin-react-swc`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JSX ๋ฐ TypeScript ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ๋˜์–ด ์žฌ๋นŒ๋“œ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค [5, 6, 9]. ์ด์™ธ์—๋„ `vite-plugin-svgr`(SVG ์ปดํฌ๋„ŒํŠธํ™”), `vite-plugin-pwa`์™€ ๊ฐ™์€ ์œ ์—ฐํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [10]. * **๊ณ ๊ธ‰ ๊ตฌ์„ฑ (vite.config.js)**: Vite๋Š” `vite.config.js`๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ ์„ค์ •์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒฝ๋กœ ๋ณ„์นญ(Path Aliases)์„ ์„ค์ •ํ•˜์—ฌ ์ž„ํฌํŠธ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜, `VITE_` ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋งŒ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋…ธ์ถœํ•˜๋ฉฐ, ๊ฐœ๋ฐœ ์ค‘ CORS ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ๋‚ด์žฅ ํ”„๋ก์‹œ ์„œ๋ฒ„ ์„ค์ •์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [5, 9, 11]. * **์„ฑ๋Šฅ ํŠœ๋‹ ๋ฐ ๋Œ€์šฉ๋Ÿ‰ ์ฒญํฌ(Chunk) ๊ด€๋ฆฌ**: ๋Œ€๊ทœ๋ชจ ์•ฑ์—์„œ๋Š” ๋ฌด๊ฑฐ์šด ๋ฒค๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ธํ•ด ๋ฉ”์ธ ๋ฒˆ๋“ค์ด ๊ณผ๋„ํ•˜๊ฒŒ ์ปค์ง€๋Š” ๋ฌธ์ œ("chunks are larger than 500 kB")๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [12-14]. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด `manualChunks`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ React, ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฒค๋” ์ฝ”๋“œ๋ฅผ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•ด ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [8, 11, 14-16]. ์ด์™€ ํ•จ๊ป˜ `React.lazy`์™€ ``๋ฅผ ์ด์šฉํ•œ ๋ผ์šฐํŠธ ๋ ˆ๋ฒจ์˜ ๋™์  ์ž„ํฌํŠธ(์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…)๋ฅผ ์ ์šฉํ•˜๊ณ , `rollup-plugin-visualizer`๋กœ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค [16-19]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts - [[Native ES Modules (ESM)]] - ์—ฐ๊ฒฐ ์ด์œ : Vite๊ฐ€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ํŒŒ์ผ ์ „์ฒด๋ฅผ ์‚ฌ์ „ ๋ฒˆ๋“ค๋งํ•˜์ง€ ์•Š๊ณ , ํ•„์š”ํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €์— ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [3, 7]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: Vite๊ฐ€ ๊ธฐ์กด ๋„๊ตฌ(Webpack ๋“ฑ)์— ๋น„ํ•ด ์–ด๋–ป๊ฒŒ ์ดˆ๊ธฐ ๊ตฌ๋™ ์†๋„์™€ HMR ์‘๋‹ต์„ฑ์„ ๊ทน์ ์œผ๋กœ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ทธ ์›๋ฆฌ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2, 3]. - [[Rollup]] - ์—ฐ๊ฒฐ ์ด์œ : Vite๊ฐ€ ํ”„๋กœ๋•์…˜์šฉ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฑ„ํƒํ•˜๊ณ  ์žˆ๋Š” ๋ฒˆ๋“ค๋Ÿฌ ๋„๊ตฌ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [4]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์ฒญํฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜๋‰˜๋ฉฐ(`manualChunks`), ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…๊ณผ ํŠธ๋ฆฌ ์‰์ดํ‚น์„ ํ†ตํ•ด ์ตœ์ ํ™”๋œ ์ •์  ์ž์‚ฐ์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4, 8, 11]. - [[SWC (Speedy Web Compiler)]] - ์—ฐ๊ฒฐ ์ด์œ : Vite ํ™˜๊ฒฝ์—์„œ ๊ธฐ์กด์˜ Babel์„ ๋Œ€์ฒดํ•˜์—ฌ JSX์™€ TypeScript๋ฅผ ์‹ค์‹œ๊ฐ„์— ๊ฐ€๊น๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” Rust ๊ธฐ๋ฐ˜ ์ปดํŒŒ์ผ๋Ÿฌ ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [3, 5, 6]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋Œ€๊ทœ๋ชจ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ ์ปดํŒŒ์ผ ์†๋„์™€ ํ•ซ ๋ฆฌ๋กœ๋“œ ์†๋„๋ฅผ ํ–ฅ์ƒํ•˜๋Š” ๊ธฐ์ˆ ์  ๋ฐฐ๊ฒฝ์„ ๊นŠ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 6]. - [[Code Splitting & manualChunks]] - ์—ฐ๊ฒฐ ์ด์œ : ๋Œ€์šฉ๋Ÿ‰ ๋ฉ”์ธ ๋ฒˆ๋“ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ Vite ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ ๊ธฐ๋ฒ•์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [12, 14]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋™์  ์ž„ํฌํŠธ์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฒค๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์•ˆ์ •์ ์ธ ์ฝ”๋“œ)๋ฅผ ๋ณ„๋„ ํŒŒ์ผ๋กœ ์บ์‹ฑํ•˜๊ณ  ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ์ฒญํฌ๋ฅผ ๋‚˜๋ˆ„๋Š” ์ „๋žต์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [8, 16]. ### Deeper Research Questions - ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ๋„ค์ดํ‹ฐ๋ธŒ ESM ์ฒ˜๋ฆฌ ๋ฐฉ์‹๊ณผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ Rollup ๋ฒˆ๋“ค๋ง ๊ฐ„์˜ ์•„ํ‚คํ…์ฒ˜ ์ฐจ์ด๊ฐ€ ๋Ÿฐํƒ€์ž„ ๋™์ž‘์ด๋‚˜ ๋ชจ๋“ˆ ํ•ด์„(Module Resolution)์— ์–ด๋–ค ์ฐจ์ด์™€ ์ž ์žฌ์  ๋ฒ„๊ทธ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - Vite์˜ `optimizeDeps`๋ฅผ ํ†ตํ•œ ์‚ฌ์ „ ๋ฒˆ๋“ค๋ง(Pre-bundling) ํ”„๋กœ์„ธ์Šค๋Š” ๊ฑฐ๋Œ€ํ•œ ์™ธ๋ถ€ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €์˜ ๋„คํŠธ์›Œํฌ ๋ณ‘๋ชฉ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”๊ฐ€? - ๋Œ€๊ทœ๋ชจ React ์•ฑ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ๋•Œ ์ปค์Šคํ…€ Babel ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉ ์ค‘์ธ ํ™˜๊ฒฝ์—์„œ SWC ์ปดํŒŒ์ผ๋Ÿฌ(`@vitejs/plugin-react-swc`)๋กœ ์ „ํ™˜ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ํ˜ธํ™˜์„ฑ ํ•œ๊ณ„์™€ ๋Œ€์•ˆ์€ ๋ฌด์—‡์ธ๊ฐ€? - `manualChunks`๋ฅผ ํ™œ์šฉํ•ด ๋ฒค๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ๋ถ„ํ• ํ•  ๋•Œ, ์ƒ์„ฑ๋œ ํ•ด์‹œ(hash) ํŒŒ์ผ๋ช… ๊ธฐ๋ฐ˜์˜ ์žฅ๊ธฐ ์บ์‹ฑ(Long-term Caching) ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”๋˜๋Š”๊ฐ€? - `rollup-plugin-visualizer`๋ฅผ ํ†ตํ•œ ๋ฒˆ๋“ค ์‹œ๊ฐํ™” ์ดํ›„, ์˜๋„์น˜ ์•Š๊ฒŒ ๋ฉ”์ธ ์ฒญํฌ์— ํฌํ•จ๋œ ๊ณผ๋„ํ•œ ํŠธ๋žœ์ง€ํ‹ฐ๋ธŒ ์˜์กด์„ฑ(Transitive Dependencies)์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ฝ”๋“œ ๋ ˆ๋ฒจ ํŒจํ„ด์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** `vite.config.js`๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ `@vitejs/plugin-react-swc`๋ฅผ ๋„์ž…ํ•˜๊ณ , ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ ๋ณ„์นญ(Path Aliases) ์„ค์ •, `VITE_` ์ ‘๋‘์‚ฌ๋ฅผ ์ด์šฉํ•œ ์•ˆ์ „ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ฐ”์ธ๋”ฉ, CORS๋ฅผ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ก์‹œ(Proxy) ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค [5, 9, 11]. - **System Design:** ๋Œ€๊ทœ๋ชจ ํ”„๋ก ํŠธ์—”๋“œ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ, ๋ฌด๊ฑฐ์šด ์ดˆ๊ธฐ ๋ฒˆ๋“ค ํฌ๊ธฐ ์ด์Šˆ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Webpack ๋Œ€์‹  Vite๋ฅผ ๋„์ž…ํ•˜๊ณ  ๊ฐœ๋ฐœ(๋„ค์ดํ‹ฐ๋ธŒ ESM)๊ณผ ํ”„๋กœ๋•์…˜(Rollup ์ตœ์ ํ™”)์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋นŒ๋“œ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค [2-4, 8]. - **Operation / Maintenance:** `rollup-plugin-visualizer`๋ฅผ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ์—ฐ๋™ํ•ด ์ •๊ธฐ์ ์œผ๋กœ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , `manualChunks`๋ฅผ ์œ ์ง€๋ณด์ˆ˜ํ•˜์—ฌ React ์ฝ”์–ด ๊ฐ™์€ ๋ฒค๋” ํŒจํ‚ค์ง€์˜ ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ์ด์ ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค [16-19]. - **Learning Path:** ์šฐ์„  Vite์˜ ๊ณต์‹ ์Šค์บํด๋“œ ํˆด๋กœ React ์•ฑ์„ ์ƒ์„ฑํ•˜์—ฌ ๊ธฐ์กด CRA(Create React App) ๊ตฌ์กฐ์™€์˜ ์ฐจ์ด๋ฅผ ์ฒดํ—˜ํ•œ ํ›„, ๋™์  ์ž„ํฌํŠธ(`React.lazy`)์™€ `optimizeDeps` ๋“ฑ์˜ ๊ณ ๊ธ‰ ์„ค์ • ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ํ™•์žฅ์„ ์ ์ง„์ ์œผ๋กœ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค [6, 7, 10, 16, 20]. - **My Project Relevance:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. (๊ฐœ์ธ์˜ ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํŠน์ • ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์†Œ์Šค ํ…์ŠคํŠธ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.) ### Adjacent Topics - [[React Server Components (RSC) & Next.js App Router]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Vite๋ฅผ ์ด์šฉํ•œ ๋นŒ๋“œ ํˆด ์ฒด์ธ ์ตœ์ ํ™”(CSR/SPA ์„ฑ๋Šฅ ์ตœ์ ํ™”)๋ฅผ ๋„˜์–ด, ํด๋ผ์ด์–ธํŠธ ์ธก ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค ์ž์ฒด๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋ Œ๋”๋งํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์ˆ˜์ค€์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™” ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ์ดํ•ด๋ฅผ ๋„“ํž™๋‹ˆ๋‹ค [21-23]. - [[Performance Metrics (Core Web Vitals)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Vite์˜ ์ฒญํฌ ์ตœ์ ํ™”์™€ ๋ ˆ์ด์ง€ ๋กœ๋”ฉ ๊ธฐ๋ฒ•์ด ์‹ค์ œ ์‚ฌ์šฉ์ž ์ฒด๊ฐ ์„ฑ๋Šฅ ์ง€ํ‘œ์ธ FCP(First Contentful Paint), LCP(Largest Contentful Paint), INP(Interaction to Next Paint)์— ์–ด๋–ค ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค [13, 24, 25]. --- *Last updated: 2026-04-30*