# [[Vite]] ## ๐Ÿ“Œ Brief Summary Vite๋Š” 2025๋…„ ํ˜„์žฌ ํ˜„๋Œ€์ ์ธ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ‘œ์ค€ ๋นŒ๋“œ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก์€ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค [1, 2]. ๊ฐœ๋ฐœ ์ค‘์—๋Š” ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ๋ฏธ๋ฆฌ ๋ฒˆ๋“ค๋งํ•˜์ง€ ์•Š๊ณ  ๋ธŒ๋ผ์šฐ์ €์— ๋„ค์ดํ‹ฐ๋ธŒ ES ๋ชจ๋“ˆ(ESM) ํ˜•ํƒœ๋กœ ์ง์ ‘ ์ œ๊ณตํ•˜์—ฌ ์ฆ‰๊ฐ์ ์ธ ์„œ๋ฒ„ ์‹œ์ž‘๊ณผ ๋งค์šฐ ๋น ๋ฅธ HMR(Hot Module Replacement)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [2, 3]. ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ ์‹œ์—๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Rollup์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ํŠธ๋ฆฌ ์‰์ดํ‚น์ด ์ ์šฉ๋œ ์ตœ์ ํ™”๋œ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•˜๋ฉฐ, ๊ณผ๊ฑฐ์˜ Create React App์ด๋‚˜ Webpack์„ ๋Œ€์ฒดํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [1, 2, 4, 5]. ## ๐Ÿ“– Core Content - **ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๋™์ž‘ ์›๋ฆฌ:** Vite๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [4]. ๊ฐœ๋ฐœ ์ค‘์—๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ES ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•ด ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ๋กœ๋“œํ•˜๋ฏ€๋กœ ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ๋„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ๋น ๋ฅด๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค [2, 3, 6]. ๋˜ํ•œ ๊ธฐ์กด Babel ๋Œ€์‹  Rust ๊ธฐ๋ฐ˜์˜ ์ปดํŒŒ์ผ๋Ÿฌ์ธ SWC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSX์™€ TypeScript ํŒŒ์ผ์„ ๊ฑฐ์˜ ์ฆ‰์‹œ ์ปดํŒŒ์ผํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค [3, 7, 8]. ๋ฐ˜๋ฉด ํ”„๋กœ๋•์…˜ ๋นŒ๋“œ ์‹œ์—๋Š” Rollup์„ ํ™œ์šฉํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์—์…‹์„ ์ตœ์ ํ™”ํ•˜์—ฌ ๊ฐ€๋ฒผ์šด ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค [4]. - **์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐ ๋ฒˆ๋“ค ๊ด€๋ฆฌ:** ๊ทœ๋ชจ๊ฐ€ ํฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ฉ”์ธ ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ์ปค์ ธ ๋กœ๋”ฉ ์†๋„์™€ ์›น ์„ฑ๋Šฅ ์ง€ํ‘œ(Core Web Vitals)์— ์•…์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [9]. ๊ธฐ๋ณธ์ ์œผ๋กœ Vite๋Š” ์•ฑ ์ฝ”๋“œ์™€ ๋ชจ๋“  ํŒจํ‚ค์ง€ ์˜์กด์„ฑ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฌถ๊ธฐ ๋•Œ๋ฌธ์— "500kB ์ดˆ๊ณผ" ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [10, 11]. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด `vite.config.js`์—์„œ `manualChunks`๋ฅผ ์„ค์ •ํ•˜์—ฌ React ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ์ฐจํŠธ ๋“ฑ์˜ ๋ฌด๊ฑฐ์šด ๋ฒค๋” ์ฝ”๋“œ๋ฅผ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ํšจ์œจ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [5, 11-14]. ์ด์™€ ํ•จ๊ป˜ `React.lazy()` ๋ฐ ๋™์  ์ž„ํฌํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ผ์šฐํŠธ ๋‹จ์œ„ ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…์„ ๊ตฌํ˜„ํ•˜๋ฉด ์ดˆ๊ธฐ ํ™”๋ฉด ๋ Œ๋”๋ง ์†๋„๋ฅผ ํฌ๊ฒŒ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [14, 15]. - **๊ณ ๊ธ‰ ๊ตฌ์„ฑ ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„:** Vite์˜ ๊ธฐ๋ณธ ์„ค์ •์€ ์˜๋„์ ์œผ๋กœ ์ตœ์†Œํ™”๋˜์–ด ์žˆ์ง€๋งŒ, ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ํ™•์žฅ์„ฑ๊ณผ ๊ตฌ์กฐ์ ์ธ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค [7]. ๋ชจ๋“ˆ ์ฐธ์กฐ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ ๋ณ„์นญ(Path Aliases) ์„ค์ •, `VITE_` ์ ‘๋‘์‚ฌ๋ฅผ ์ด์šฉํ•œ ํด๋ผ์ด์–ธํŠธ ์ธก ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋ณด์•ˆ ๊ด€๋ฆฌ, CORS ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ์ž์ฒด ์„œ๋ฒ„ ํ”„๋ก์‹œ ๊ธฐ๋Šฅ ๋“ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [12, 16]. ๋” ๋‚˜์•„๊ฐ€, SVG๋ฅผ ์ปดํฌ๋„ŒํŠธ์ฒ˜๋Ÿผ ๋‹ค๋ฃจ๊ฒŒ ํ•ด์ฃผ๋Š” `vite-plugin-svgr`, PWA๋ฅผ ์ง€์›ํ•˜๋Š” `vite-plugin-pwa`, ๋นŒ๋“œ๋œ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ฒŒ ๋•๋Š” `rollup-plugin-visualizer` ๋“ฑ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ํ†ตํ•ด ํ”„๋ก ํŠธ์—”๋“œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ณ ๋„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [15, 17-19]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Rollup]], [[Code Splitting]], [[React.lazy()]], [[Performance Optimization]] - **Projects/Contexts:** [[React Frontend Architecture]], [[Large-scale Application Refactoring]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด Vite๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งค์šฐ ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ์˜ ์‹ค๋ฌด ์•ฑ์œผ๋กœ ํ™•์žฅํ•  ๋•Œ์—๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ `manualChunks` ๋ถ„๋ฆฌ์™€ ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading)์„ ์ง์ ‘ ๊ตฌ์„ฑํ•ด ๊ฑฐ๋Œ€ํ•œ ์ฒญํฌ(Large Chunks) ์ƒ์„ฑ์„ ๋ฐฉ์ง€ํ•ด์•ผ๋งŒ ์ตœ์ ์˜ ๋กœ๋”ฉ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค [10, 11, 14, 20]. --- *Last updated: 2026-04-26*