๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐฐ์šธ ๊ฒƒ์€ ์ •๋ง ๋งŽ์•„ ๐Ÿšจ/ํ”„๋ก ํŠธ์—”๋“œ [ Frontend ] ๐ŸŽจ

React + Vite ๋ฒˆ๋“ค๋ง์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

by ์—”์นด์ฝ” 2025. 1. 26.
๋ฐ˜์‘ํ˜•
React๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์†๋„๊ฐ€ ๋А๋ ค ๊ณ ๋ฏผ์ด์‹ ๊ฐ€์š”? ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” React ํ”„๋กœ์ ํŠธ๋ฅผ Vite๋กœ ๋น ๋ฅด๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. Vite๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ฒˆ๋“ค๋Ÿฌ๋กœ, ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ณต์žกํ•œ ์„ค์ • ์—†์ด๋„ React๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[ ์—”์นด์ฝ” ]

1. Vite๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Vite๋Š” “๋น ๋ฅด๋‹ค”๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„ ํ”„๋ž‘์Šค์–ด ๋‹จ์–ด์—์„œ ์œ ๋ž˜ํ–ˆ์œผ๋ฉฐ, JavaScript์™€ TypeScript ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ฐจ์„ธ๋Œ€ ๋นŒ๋“œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Vite๋Š” ๊ธฐ์กด ๋ฒˆ๋“ค๋Ÿฌ์™€ ๋‹ฌ๋ฆฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ๋น ๋ฅธ ์„œ๋ฒ„ ์‹œ์ž‘: Vite๋Š” ES ๋ชจ๋“ˆ์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ์กด์˜ ๋ฒˆ๋“ค๋ง ๊ณผ์ • ์—†์ด ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์ฆ‰์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น ๋ฅธ HMR(Hot Module Replacement): ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฝ๋Ÿ‰ ์„ค์ •: ๋ณต์žกํ•œ ์„ค์ • ์—†์ด๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. Vite ํ™ˆํŽ˜์ด์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 - Vite๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๋ฉด Vite ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ๊ณต์‹ ๋ฌธ์„œ์—์„œ๋Š” Vite์˜ ์„ค์น˜ ๋ฐ ์„ค์ • ๋ฐฉ๋ฒ•์ด ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉฐ npm์„ ์ด์šฉํ•œ Vite ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ช…๋ น์–ด ํ™•์ธ

 - ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ Vite ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 - ์œ„ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๊ณผ ํ…œํ”Œ๋ฆฟ ์ข…๋ฅ˜๋ฅผ ์„ ํƒํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

npm create vite@latest

 

4. ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์ •๋ณด๋ฅผ ์„ ํƒํ•˜์—ฌ ์„œ๋ฒ„ ์‹คํ–‰๊นŒ์ง€ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 - ์›ํ•˜๋Š” ์˜ต์…˜์„ ์„ ํƒํ•œ ๋’ค, ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

cd <ํ”„๋กœ์ ํŠธ ์ด๋ฆ„>

 - ์˜์กด์„ฑ์„ ์„ค์น˜ํ•˜๊ณ  ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

npm install
npm run dev

 

5. ๋กœ์ปฌ ์„œ๋ฒ„ ํ™•์ธ

 - ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ ํ›„ ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:5173์— ์ ‘์†ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

 

6. Vite ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ํŒŒ์ผ ๊ตฌ์กฐ

 - ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ๋ณธ์ ์ธ ํŒŒ์ผ ๊ตฌ์กฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

my-react-app/
โ”œโ”€โ”€ index.html
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ main.jsx
โ”‚   โ””โ”€โ”€ App.jsx
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ vite.config.js
  • index.html: ๋ฉ”์ธ HTML ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • src/main.jsx: React ์ง„์ž…์  ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • src/App.jsx: React ์ปดํฌ๋„ŒํŠธ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
  • vite.config.js: Vite ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

 

7. Vite์™€ CRA(Create React App) ๋น„๊ต

 - Vite๋Š” ํŠนํžˆ ๋น ๋ฅธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ๊ฐ€๋ฒผ์šด ์„ค์ •์„ ์„ ํ˜ธํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง• Vite CRA
๋ฒˆ๋“ค๋ง ์†๋„ ๋น ๋ฆ„ ๋А๋ฆผ
HMR ์†๋„ ๋น ๋ฆ„ ๋ณดํ†ต
์„ค์ • ๋‚œ์ด๋„ ๊ฐ„๋‹จ ๊ฐ„๋‹จ
๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋Šฅ ES ๋ชจ๋“ˆ, ๋น ๋ฅธ ์„œ๋ฒ„ ์‹œ์ž‘ ๋ฒˆ๋“ค๋ง, ํ‘œ์ค€ ์„ค์ • ์ œ๊ณต

๋ฐ˜์‘ํ˜•