๐Ÿ’ป 20240514 ๋ฒˆ๋“ค๋Ÿฌ Vite์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

์ด์ถ˜๊ธธยท2024๋…„ 5์›” 14์ผ
0

ํ•™์Šต์ผ์ง€

๋ชฉ๋ก ๋ณด๊ธฐ
2/4
post-thumbnail
post-custom-banner

๐Ÿ“Œ ์ฐธ์กฐ

Vite ๊ณต์‹๋ฌธ์„œ - Vite๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ 
์ฐจ์„ธ๋Œ€ ๋ฒˆ๋“ค๋Ÿฌ ๋น„๊ต


๐Ÿ“Œ ๊ฐœ์š”

  • ๊ธฐ์กด์— ๋งŒ๋“  ์ปค์Šคํ…€ ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ์—์„œ Webpack์„ ํ†ตํ•ด ๋ฒˆ๋“ค๋ง ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.
  • ๋‹น์‹œ, ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ ์ถ•์†Œ๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ํž˜์„ ์ผ์œผ๋‚˜ ํฐ ๋ณ€ํ™”๋Š” ์—†์—ˆ๋‹ค.
  • ๊ทผ๋ž˜, Vite๋ผ๋Š” ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ํ•ซํ•˜๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์—ˆ๊ณ  ๋ง›๋ณด๊ณ ์ž Docs๋ฅผ ํ›‘์–ด ๋ดค๋‹ค.
  • Rollup์˜ ๋น ๋ฅธ ๋ฒˆ๋“ค ์†๋„์™€ Webpack์— ๊ฑฐ๋Œ€ํ•œ ์ƒํƒœ๊ณ„, ์ค‘์šฉ์ ์„ ์ง€ํ–ฅํ•˜๋Š” ๋Š๋‚Œ
  • ์ด๊ฒƒ์ด ์š”์ฆ˜ Vite๊ฐ€ ํ•ซํ•œ ์ด์œ ์ด์ง€ ์•Š์„๊นŒ๋ผ๋Š” ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

์ด๋Ÿฐ ๊ฐœ์š”๋Š” ์ถฉ๋ถ„ํžˆ ํฅ๋ฏธ๋กœ ์ด์–ด์กŒ๊ณ  Vite๋ฅผ ์กฐ๊ธˆ ๋” ํŒŒ๋ณด๊ธฐ๋กœ ๊ฒฐ์‹ฌํ–ˆ๋‹ค.


๐Ÿ“Œ Vite ํŒŒํ—ค์น˜๊ธฐ

๐Ÿ“Œ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ตฌ๋™ ํ–ฅ์ƒ

๊ธฐ์กด ๋„๊ตฌ์˜ ๋ฌธ์ œ์ 

  • ์ฝœ๋“œ ์Šคํƒ€ํŠธ ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ตฌ๋™
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด ๋ชจ๋“  ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•ด ํฌ๋กค๋ง ๋ฐ ๋นŒ๋“œ ์ž‘์—… ์ง„ํ–‰
  • ์ž‘์—… ์™„๋ฃŒ ์ด ํ›„, ์‹ค์ œ ํŽ˜์ด์ง€ ์ œ๊ณตํ…์ŠคํŠธ

Vite ๊ฐœ์„  ํฌ์ธํŠธ (1) - ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฆฌ

  • Dependencies, Source Code ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฆฌ
  • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ตœ์ ํ™” ๋œ ์†Œ์Šค์ฝ”๋“œ ๋นŒ๋“œ ์ œ๊ณต
  • ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ตฌ๋™ ํ–ฅ์ƒ

Vite ๊ฐœ์„  ํฌ์ธํŠธ (1-1) - Dependencies

  • ์‚ฌ์ „ ๋ฒˆ๋“ค๋ง : ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ข…์†์„ฑ ์ฝ”๋“œ๋“ค์„ ์‚ฌ์ „์— ๋ฒˆ๋“ค๋งํ•จ
  • Esbuild : Go๋กœ ์ž‘์„ฑ๋œ ๊ณ ์„ฑ๋Šฅ ๋ฒˆ๋“ค๋Ÿฌ, 10-100๋ฐฐ ๊ฐœ์„ 

Vite ๊ฐœ์„  ํฌ์ธํŠธ (1-2) - Sourcecode

  • ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฐœ๋‹ฌ : ESM ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ
  • Vite ๋ฒˆ๋“ค๋ง ์ฝ”๋“œ ESM์œผ๋กœ ์ œ๊ณต, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฒˆ๋“ค๋Ÿฌ์˜ ์ž‘์—… ์ผ๋ถ€ ์ฐจ์ง€

๐Ÿ“Œ ๋ฒˆ๋“ค๋ง ์ฐจ๋ณ„ํ™”

ESM ๊ธฐ๋ฐ˜ ๋ฒˆ๋“ค๋ง

  • ๋ธŒ๋ผ์šฐ์ € ์นœํ™”์ ์ธ ESM ๊ธฐ๋ฐ˜ ๋ฒˆ๋“ค๋ง
  • ESM ๊ธฐ๋ฐ˜ ๋ฒˆ๋“ค๋ง ๋ฌธ์ œ์  ํŒŒ์•…, ์ž์ฒด์ ์ธ ์ตœ์ ํ™” ๋œ ๊ฐœ๋ฐœ / ์šด์˜ ๋นŒ๋“œ ์ œ๊ณต

Rollup ๊ธฐ๋ฐ˜ ๋นŒ๋“œ

  • ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ ๋น„๊ต ํ–ˆ์„๋•Œ, ํ˜„์žฌ๋Š” Esbuild๋ณด๋‹ค Rollup์ด ๋‚ซ๋‹ค๊ณ  ํŒ๋‹จ
  • ๊ฐœ์„ ์„ ์œ„ํ•ด ์ง€์†์ ์ธ ๋…ธ๋ ฅ์ค‘

๋Œ€ํญ์ ์ธ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๊ตฌ๋™ ํ–ฅ์ƒ์ด ๋˜์—ˆ๋‹ค๋Š” ๊ฐœ๋…์€ ์ธ์ง€ํ–ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ์•„์ง, ๋นŒ๋“œ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๋ถ€๋ถ„์€ ๋ฌผ์Œํ‘œ์ด๋‹ค.
Rollup vs Webpack ๋น„๊ต๋ฅผ ํ†ตํ•ด Vite๋ฅผ ์–ด๋–ค ํ”„๋กœ์ ํŠธ ์ผ ๋•Œ
๋„์ž…ํ•˜๋ฉด ์ข‹์„์ง€ ๊ฒฐ๋ก ์ด ๋‚˜์˜ฌ ๊ฒƒ ๊ฐ™๋‹ค.


๐Ÿ“Œ Webpack vs Rollup

๐Ÿ“Œ Webpack

  • CommonJS ๊ธฐ๋ฐ˜์˜ ๋นŒ๋“œ (Webpack v5๋ถ€ํ„ฐ ESM ์ง€์›)
  • ๊ฑฐ๋Œ€ํ•œ ์ƒํƒœ๊ณ„
  • ๊ฐ„ํŽธํ•˜๊ณ  ์ง๊ด€์ ์ธ ์„ค์ •
  • ํ’๋ถ€ํ•œ plugins๊ณผ loaders
  • ๋ชฉํ‘œ : ํ†ตํ•ฉ

๐Ÿ“Œ Rollup

  • ESM ๊ธฐ๋ฐ˜์˜ ๋นŒ๋“œ
  • ๊ฐ„ํŽธํ•˜๊ณ  ์ง๊ด€์ ์ธ ์„ค์ •
  • ๋ชฉํ‘œ : ํ™•์žฅ

๐Ÿ“Œ ๊ฒฐ๋ก 

  • ๋ฌด์–ธ๊ฐ€ ๋งŒ๋“ค๋•Œ, ๋น„์ „, ๋ชฉํ‘œ๊ฐ€ ๊ทธ ์ œํ’ˆ์„ ํ˜•์„ฑํ•œ๋‹ค.
  • Webpack์€ CommonJS ๊ธฐ๋ฐ˜์˜ ํ†ตํ•ฉ ํ™˜๊ฒฝ์„ ๋ชฉํ‘œ๋กœ ์žก์•˜๋‹ค.
  • Webpack์€ ํ†ตํ•ฉ์„ ์ด๋ฃจ์—ˆ์œผ๋‹ˆ, ์ด ํ›„, ์„ฑ๋Šฅ ๊ฐœ์„ ์— ์ง‘์ค‘ํ•˜๊ณ  ์žˆ๋‹ค.
  • Rollup์€ ESM ๊ธฐ๋ฐ˜์˜ ํ™•์žฅ์„ ๋ชฉํ‘œ๋กœ ์žก์•˜๋‹ค.
  • Rollup์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“œ๋Š”๋ฐ ์นœํ™”์ ์ด๋ฉฐ, ๊ทธ๋ ‡๊ธฐ์— ์„ฑ๋Šฅ์ ์œผ๋กœ ์œ ๋ฆฌํ•˜๋‹ค.
  • Webpack๊ณผ Rollup์˜ ์ค‘์šฉ์ ์„ ์ง€ํ–ฅํ•˜๋Š” ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ Vite๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
  • Webpack์˜ ๊ฐœ์„ ์ด๋ƒ, Vite์˜ ํ†ตํ•ฉ ๋ชฉํ‘œ๋กœ ์ธํ•œ ํ˜์‹ ์ด๋ƒ, ๊ฒฐ๋ก ์ด ๊ถ๊ธˆํ•˜๋‹ค.

๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™์„ ๊ฒƒ ๊ฐ™๋‹ค.
1. ๋Œ€ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : Webpack
2. ์†Œ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ : Vite
3. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : Vite or Rollup

profile
์ผ์ง€๋ฅผ ๊พธ์ค€ํžˆ ์ž‘์„ฑํ•˜์ž.
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€