React ํ๋ก์ ํธ ์์ฑ ๋ฐฉ๋ฒ
CRA | Vite (๊ถ์ฅ) |
๋ชจ๋ ๋ฒ๋ค๋ฌ๋ก Webpack ์ฌ์ฉ | ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ก Rollup ์ฌ์ฉ |
๊ฐ๋ฐ ํ๊ฒฝ์์๋ ๋ฒ๋ค๋ง ์งํ O | ๊ฐ๋ฐ ํ๊ฒฝ์์๋ ๋ฒ๋ค๋ง ์งํ X |
์๋ฒ ์์๊ณผ ๋ฆฌ๋ก๋ฉ ์๊ฐ ๋๋ฆผ (์ฝ๋๋ฅผ ์์ ํ ๋๋ง๋ค ๋ฒ๋ค๋ง ์งํ) | ์๋ฒ ์์๊ณผ ๋ฆฌ๋ก๋ฉ ์๊ฐ ๋น ๋ฆ |
Webpack์ ๋ค์ํ ๊ธฐ๋ฅ ์ด์ฉ ๊ฐ๋ฅ | ๋น ๋ฅธ ๊ฐ๋ฐ ์๋์ ์ ๋ฆฌ |
๋ชจ๋๋ ๊ฐ์ด ์ค์น(node_modules) | ๋ชจ๋์ ๋ฐ๋ก ์ค์นํด์ผ ๋จ |
npx create-react-app | npm create vite@latest |
* ๋ฒ๋ค๋ง : ๋ฐฐํฌํ๊ธฐ ์ํด ์ฌ๋ฌ ์ฝ๋์ ํ์ผ์ ํ๋ฒ์ ๋ฌถ์ด์ฃผ๋ ๊ณผ์
* CRA๊ฐ ์ด์ ์ถ์ฒ๋์ง ์๋ ์ด์
- ๋๋ฆฐ ๊ฐ๋ฐ ์๋ → Webpack ๊ธฐ๋ฐ์ด๋ผ ๋น๋์ HMR ์๋๊ฐ ๋๋ ค ์ฝ๋ ๋ณ๊ฒฝ ๋ฐ์์ด ๋ฆ์.
- ๋ฒ๋ค ํฌ๊ธฐ ํผ → ๊ธฐ๋ณธ ์ค์ ์ด ์ต์ ํ ๋ถ์กฑ, ๋ถํ์ํ ์ฝ๋ ํฌํจ ๊ฐ๋ฅ์ฑ ๋์.
- ์ค์ ๋ณ๊ฒฝ ์ด๋ ค์ → Webpack๊ณผ Babel ์ค์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ค์.
- ์ฑ๋ฅ ์ ํ ๊ฐ๋ฅ์ฑ → ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฑ๋ฅ์ด ๋จ์ด์ง๊ณ , Vite์ ๋นํด ์ต์ ํ๊ฐ ๋ถ์กฑํจ.
๊ทธ๋ฌ๋ ์์ง ๋ง์ด ์ฐ์ด๊ณ ์๊ธฐ ๋๋ฌธ์ ์์๋๋ ๊ฒ์ด ์ข๋ค!
1. ์ค์น
1) CRA
- npx create-react-app์ผ๋ก ํ๋ฒ์ ํ๋ก์ ํธ ํ๊ฒฝ์ ๋ง๋ค ์ ์๋ค. (์๊ฐ์ Vite๋ณด๋ค ๋ ๋ง์ด ์์๋๋ค.)
2) Vite
- ์๊ฐ์ ๋ ์์๋์ง๋ง ์ ํ์ ์ ๋ ฅ๋ฐ๋ ํ๋กฌํํธ๊ฐ ์๊ณ ์ถ๊ฐ๋ก ์ค์นํด์ค์ผ ํ๋ค.
- ๋๋ react๋ฅผ ์ฌ์ฉํ๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ด ์ ํ์ ํด์คฌ๊ณ ,
- ์ค์น๊ฐ ๋ฐ๋ก ์๋ฃ๋๋ฉด ์์ฑํ ํด๋๋ก ์ด๋ํด npm install์ ํด์ค๋ค.
2. ๊ตฌ์กฐ ๋ฐ ์คํ ์ฐจ์ด
1) CRA
- ํต์ฌ ์ปดํฌ๋ํธ์ธ App์ด๋ ๊ธฐํ ํ์ผ์ด js ํ์ ํ์ผ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์์์ ์ญํ ์ด index.js
- ๊ทธ ์ธ์๋ src์ ์ถ๊ฐ์ ์ธ ํ์ผ๋ค์ด ๋ ์์ฑ๋์ด์์
- npm run start๋ก ์คํ
- ํฌํธ ๋ฒํธ๊ฐ 3000
2) Vite
- ํต์ฌ ์ปดํฌ๋ํธ์ธ App์ด๋ ๊ธฐํ ํ์ผ์ด jsx ํ์ ํ์ผ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์์์ ์ญํ ์ด main.jsx
- npm run dev๋ก ์คํ
- ํฌํธ๋ฒํธ๊ฐ 5173
์ด ๋ ์ฑ์ ์คํ์ํค๋ฉด ํฐ๋ฏธ๋์ด ๊ณ์ ์์ ๊ฐ์ ์ํ์ผํ ๋ฐ,
win / mac ๋๋ค ctrl + c๋ฅผ ๋๋ฅด๋ฉด ์๋ฒ๋ฅผ ์ข ๋ฃ์ํค๋ฉด์ ๋ค์ ์๋์ ํฐ๋ฏธ๋ ์ฐฝ์ผ๋ก ๋์๊ฐ ์ ์๋ค.
3. create-react-app VS vite์ ์ฑ๋ฅ ๋น๊ต
๋น๊ต ํญ๋ชฉ | CRA | Vite |
์ด๊ธฐ ๋น๋ ์๋ | Webpack ๊ธฐ๋ฐ์ผ๋ก ๋น๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ. | ESBuild๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ธฐ ๋น๋ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ. |
๊ฐ๋ฐ ์๋ฒ ์๋ | ์ฝ๋ ๋ณ๊ฒฝ ์ ๋ฐ์ ์๋๊ฐ ์๋์ ์ผ๋ก ๋๋ฆผ. | HMR(Hot Module Replacement)์ด ์ฆ๊ฐ์ ์ผ๋ก ๋ฐ์๋จ. |
๋ฒ๋ค ํฌ๊ธฐ | ๊ธฐ๋ณธ ์ค์ ์์ ์ต์ ํ๊ฐ ๋ถ์กฑํจ. | ์ต์ ๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ํ๊ฐ ์๋จ. |
๋ชจ๋ ๊ตฌ์ฑ ๋ฐฉ์ | Webpack ๊ธฐ๋ฐ์ ์ค์ ์ด ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ์ ๊ณต๋จ. | Rollup๊ณผ ESBuild๋ฅผ ํ์ฉํด ๋น ๋ฅด๊ฒ ๋ฒ๋ค๋ง๋จ. |
react ๊ณต์ ์ง์ ์ฌ๋ถ | React ๊ณต์ ํ์์ ์ ์ง๋ณด์ ํ์ง๋ง, ๋ ์ด์ ์ถ์ฒ๋์ง ์์. | React ๊ณต์ ๋ฌธ์์์ ๊ถ์ฅํ๋ ๋ฐฉ์. |
- Webpack : Javascript ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ก, ์ฌ๋ฌ ํ์ผ์ ํ๋์ ๋ฒ๋ค๋ก ๋ฌถ์ด ์ต์ ํ๋ ํํ๋ก ๋ฐฐํฌํ ์ ์๊ฒ ํ๋ ๋๊ตฌ
- ESbuild : Go์ธ์ด๋ก ์์ฑ๋ ๊ณ ์ ๋ฒ๋ค๋ฌ ๋ฐ ํธ๋์ค ํ์ผ๋ฌ๋ก, ์นํฉ๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ ์๋๋ก ์ฝ๋๋ฅผ ๋น๋์ํค๋ ๋๊ตฌ
- Rollup : ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ก, ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์นํฉ๋ณด๋ค ์์ผ๋ฉฐ ๋ชจ๋, ์ฝ๋ ์ต์ ํ์ ํนํ๋์ด ์์
- HMR : ๋ฒ๋ค๋ฌ์์ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ผ๋ก, ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก๊ณ ์นจ ํ์ง ์๊ณ ๋ณ๊ฒฝ๋ ๋ชจ๋๋ง ์ฆ์ ๊ต์ฒดํด ์ ์ฉํ๋ ๊ธฐ์ ์ด๋ค. (์ํ๋ฅผ ์ ์งํ๋ฉด์ ui๋ฅผ ์ ๋ฐ์ดํธ ๊ฐ๋ฅํจ)
'react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React / ์ํ๊ด๋ฆฌ (0) | 2025.04.04 |
---|---|
React / map, filter๋ก ๋ฐ๋ณต ๋ ๋๋งํ๊ธฐ (0) | 2025.04.03 |
React / JSX ๋ฌธ๋ฒ (0) | 2025.04.03 |
React / ์ปดํฌ๋ํธ (0) | 2025.04.03 |
React / Node.js, npm, npx ์ค์น ๋ฐ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ (Mac) (0) | 2025.04.02 |