리액트 프로젝트를 시작할 때 흔히 사용하는 도구로 CRA(Create React App) 와 Vite가 있다.
이번 글에서는 이 둘의 차이점을 정리하고, CRA에서 Vite로 전환할 때 필요한 가이드도 함께 정리해볼 거임
한때 React app을 만들 때 가장 기본적인 툴이었음.
명령어 하나로 프로젝트 구조부터 설정까지 모두 자동으로 해주는 도구다
npx create-react-app 프로젝트명
cd 프로젝트명
npm start
최근 각광받는 차세대 프론트엔드 빌드 도구
React, Vue, Svelte, Preact, Lit 등 다양한 프레임워크와 함께 쓸 수 있고, 속도면에서도 CRA보다 훨씬 빠름(가벼움)
| 항목 | CRA | Vite |
|---|---|---|
| 개발 서버 기동 속도 | 느림 (웹팩 기반 빌드) | 매우 빠름 (ESM + 핫 모듈 방식) |
| 번들러 | Webpack | esbuild + Rollup |
| 빌드 속도 | 느린 편 | 빠름 |
| 설정 커스터마이징 | 어렵고 복잡함 (eject 필요) | 유연하고 쉬움 (vite.config.ts) |
| 디폴트 템플릿 | JavaScript, TypeScript | JavaScript, TypeScript |
| 문서 및 생태계 | 풍부하지만 Webpack 종속 | 비교적 신생이지만 빠르게 성장 중 |
| 최신 기술 도입 | 느린 편 | 빠르게 적용됨 |
| 파일 크기 | 무겁고 느림 | 가볍고 최적화됨 |
eject 필요.vite.config.ts를 통해 유연하게 설정 가능.| 상황 | 추천 도구 |
|---|---|
| 빠르게 실험하고 개발 속도가 중요한 개인 프로젝트 | ✅ Vite |
| 기존 팀 구조가 Webpack 기반 또는 레거시 유지보수 | ❗ CRA 유지 고려 |
| 최신 생태계를 빠르게 받아들이고 싶다면 | ✅ 무조건 Vite |
정리하면
Vite는 “빠르고 가볍고 유연한” 최신 도구,
CRA는 “묵직하고 안정적이지만 구식” 도구
cp -r my-cra-project my-cra-project-backup
npm uninstall react-scripts
npm install --save-dev vite
// vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
server: {
port: 3000,
},
});
public/index.html → 루트 디렉토리로 이동div id="root"는 유지하고, CRA에서 불필요한 meta/script 태그는 정리package.json 수정"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
}
npm install --save-dev typescript @types/react @types/react-dom
그리고 tsconfig.json이 프로젝트 루트에 있어야 함!
👩🏫Eazy's SUM
- 둘 다 React프로젝트 빌드 도구로 CRA는 과거의 표준이었고, Vite는 현재와 미래의 선택지임.
- 입문자든 숙련자든 이제는 Vite를 기본으로 쓰는 시대다!
지금은 Vite가 CRA를 완전히 대체하는 흐름이라, 새로 프로젝트 시작하거나 기존 프로젝트를 개선할 계획이 있다면 Vite 전환을 고려해보는 게 좋음.
속도, 편의성, 유지보수성 모든 면에서 확실한 차이가 있으니까!
Vite와 CRA의 차이를 알 수 있었고 설치 방법부터 CRA를 Vite로 전환하는 법까지 잘 알 수 있었습니다!