Programming/React

[React] CRA๋Œ€์‹  Vite๋กœ React ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ (TypeScript)

seulye 2024. 9. 27. 08:52

 

 

npx create-react-app [ํ”„๋กœ์ ํŠธ ๋ช…] --template typescript

 

๊ธฐ์กด์—๋Š” react ์„ค์น˜ํ•  ๋•Œ, CRA(Create React App)์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. 

 

CRA๋ž€,
๋ฆฌ์•กํŠธ๋กœ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. 

 

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์™„์„ฑ๋œ๋‹ค. 

 

webpack, babel, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์„ค์ •๊นŒ์ง€ ์ œ๊ณตํ•ด์ฃผ์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ์‹๋Œ€๋กœ ์„ค์ •์„ ๋ฐ”๊พธ๊ธฐ ์–ด๋ ค์šด ๋‹จ์ ์ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ์ ํŠธ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์†๋„๊ฐ€ ๋” ๋А๋ ค์ง„๋‹ค. 

 

webpack์ด๋ž€,
ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋œ ํŒŒ์ผ์„ ๋ถ„์„ํ•˜์—ฌ ๊ธฐ์กด ์›น ๋ฌธ์„œ ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ์ด๋‹ค. (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค๋Ÿฌ)
ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ .js,.css,.jpg์™€ ๊ฐ™์€ ๊ธฐ์กด ์›น๋ฌธ์„œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  .sass ๊ฐ™์€ ํŒŒ์ผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ์›น๋ธŒ๋ผ์šฐ์ €๋Š” .sass ํŒŒ์ผ์„ ํ•ด์„ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ค‘๊ฐ„์— ๋ˆ„๊ตฐ๊ฐ€ ์ด ํŒŒ์ผ์„ ํ•ด์„ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ ์—ญํ• ์„ ํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ์›นํŒฉ์ด๋‹ค. 

 

babel์ด๋ž€,
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๋‹ค. ์ž…๋ ฅ์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ณ  ์ถœ๋ ฅ๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— babel์ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. ES6, ES7 ๋“ฑ์˜ ์ตœ์‹  ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ์ฝ”๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ๋œ๋‹ค.

 


๐Ÿ’ก๊ทธ๋ž˜์„œ CRA ๋Œ€์‹  Vite(๋น„ํŠธ)๋ฅผ ์จ์•ผํ•˜๋Š” ์ด์œ ๋Š”?

1. CRA์˜ ์ง€์› ์ค‘๋‹จ

2. Vite๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ฆ‰์‹œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋งŒ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. CRA๋Š” ์ „์ฒด ์•ฑ์„ ๋ฒˆ๋“ค๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ๊ฐ„์ด ์ƒ๋Œ€์ ์œผ๋กœ ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค. ์›นํŒฉ๋Œ€์‹  esbuild๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์šฐ ๋น ๋ฅด๋‹ค. 

npm create vite@latest [ํ”„๋กœ์ ํŠธ ๋ช…] -- --template react-ts

 

 

๋„ˆ๋ฌด๋‚˜๋„ ๋น ๋ฅด๊ฒŒ ๋๋‚˜๋ฒ„๋ ธ๋‹ค...

 

 

 

์ดˆ๊ธฐ ๊ตฌ์กฐ๋Š” ์ด๋ ‡๋‹ค. 

 

npm install
npm run dev

 

์‹คํ–‰ ์‹œํ‚ฌ๋•Œ, npm start๊ฐ€ ์•„๋‹ˆ๋ผ run์„ ์‚ฌ์šฉํ•œ๋‹ค. 

 

 

์ฐฝ์ด ๋ฐ”๋กœ ๋œจ์ง„ ์•Š๊ณ , url๋กœ ๋“ค์–ด๊ฐ€์•ผํ•œ๋‹ค. ํฌํŠธ๊ฐ€ 3000์ด ์•„๋‹ˆ์–ด์„œ ์‹ ๊ธฐํ–ˆ๋‹ค. 

 

url๋กœ ๋“ค์–ด๊ฐ€๋ฉด ์ด๋Ÿฐ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค! ๊ทผ๋ฐ ์ง„์งœ ๋น ๋ฅด๋‹ค.

๐Ÿง์˜ค๋ฅ˜๊ฐ€ ์•ˆ ๋ณด์ด๋„ค?

 

CRA์˜€์œผ๋ฉด ํ„ฐ๋ฏธ๋„์— ๊ณ„์† ์˜ค๋ฅ˜๋ฅผ ๋ฟœ์—ˆ์„ํ…๋ฐ, Vite๋Š” ๊ต‰์žฅํžˆ ์กฐ์šฉํ•˜๋‹ค. ํ„ฐ๋ฏธ๋„์— ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์ฐํžŒ๋‹ค. 

 

 

CRA๋Š” Webpack Dev Server๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ํ„ฐ๋ฏธ๋„์— ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์„œ, ๊ฐœ๋ฐœ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ฆ‰์‹œ ํ„ฐ๋ฏธ๋„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Vite๋Š” ์ฃผ๋กœ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ„ฐ๋ฏธ๋„์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์˜ค๋ฅ˜ ๋กœ๊ทธ๊ฐ€ ์ž˜ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

๋ผ๊ณ  ์ฑ—์ง€ํ”ผํ‹ฐ๊ฐ€ ๋งํ•ด์ฃผ์—‡๋‹ค.