리액트는 컴포넌트를 통해 UI를 설계할 수 있는 자바스크립트 기반의 라이브러리입니다. 하지만 라이브러리는 단독으로 실행되지 않기 때문에, 실제로 프로젝트를 개발하려면 개발 환경을 설정해야 합니다.
리액트를 편리하게 시작하기 위해 등장한 도구가 바로 create-react-app(CRA)과 Vite(비트)입니다.
리액트는 단지 UI를 구성하기 위한 라이브러리일 뿐, HTML을 직접 생성하거나 브라우저에서 동작하도록 변환하는 기능을 자체적으로 제공하지 않습니다.
따라서 프로젝트를 개발하려면 다음과 같은 도구들이 필요합니다.
이러한 환경 구성을 직접 설정하려면 복잡한 작업이 필요합니다. 그래서 CRA나 Vite 같은 도구들이 초기 설정을 자동으로 해주는 역할을 합니다.
CRA는 Facebook(현 Meta)에서 공식 제공하는 React 프로젝트 스타터입니다.
명령어 한 줄로 React 프로젝트를 빠르게 시작할 수 있도록 도와주는 CLI 도구입니다.
npx create-react-app my-app
cd my-app
npm start
my-app/
├── public/ # 정적 파일(html, 이미지 등)
├── src/ # 실제 개발 파일(JSX, CSS 등)
│ ├── App.js
│ └── index.js
├── package.json # 의존성 및 스크립트 정의
└── ...
Vite(비트)는 최근 각광받고 있는 프론트엔드 빌드 도구입니다.
Vue.js의 창시자인 Evan You가 개발했으며, React, Vue, Svelte 등 다양한 프레임워크를 지원합니다.
Vite의 핵심은 빠른 속도입니다. CRA보다 훨씬 빠르게 실행되며, 변경 사항 반영 속도도 매우 빠릅니다.
npm create vite@latest
# 또는
yarn create vite
설치 과정 중 프롬프트에서:
cd my-vite-app
npm install
npm run dev
my-vite-app/
├── public/ # 정적 파일
├── src/
│ ├── App.jsx # 루트 컴포넌트
│ └── main.jsx # 진입점 (index.js 역할)
├── index.html # 프로젝트 루트에 존재함
├── vite.config.js # 설정 파일
├── package.json
└── ...
| 항목 | CRA | Vite |
|---|---|---|
| 제작사 | Meta (공식) | Evan You (Vue 창시자) |
| 개발 서버 | Webpack Dev Server | Vite Dev Server (ESBuild) |
| HMR 속도 | 느림 | 매우 빠름 |
| 번들링 방식 | Webpack | Rollup |
| 설정 파일 노출 | X (eject 필요) | O (기본 제공) |
| 사용 난이도 | 쉬움 | 쉬움 + 커스터마이징 쉬움 |
| 학습 자료 | 많음 | 증가 중 |
| 성능 | 무거움 | 가벼움 |
| 프레임워크 확장 | 불가능 | React, Vue, Svelte 등 지원 |