๐ ์ฐธ์กฐ
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