Vite와 React 빌드 환경

2025년 2월 React 팀이 Create React App(CRA)의 공식 deprecated를 선언했다. CRA는 오랫동안 React 프로젝트의 표준 시작점 역할을 했지만, 불필요한 패키지 포함으로 인한 초기화 속도 저하, Webpack 4 기반의 낡은 의존성, eject 없이는 불가능한 커스터마이징, React 19 이후 호환 오류 등 복합적인 문제가 누적되었다. 이에 따라 Next.js·Remix 같은 프레임워크 선택 또는 Vite·Parcel 같은 빌드 도구 직접 사용이 대안으로 부상했으며, 그 중 Vite가 CRA의 가장 자연스러운 대체재로 자리 잡고 있다.

Vite의 핵심 장점은 ES Module(ESM) 기반 개발 서버에 있다. 기존 번들러 방식처럼 전체 소스를 번들링한 뒤 서버를 시작하지 않고, 브라우저가 직접 모듈을 필요할 때 로드하도록 하기 때문에 개발 서버 시작이 훨씬 빠르다. HMR(Hot Module Replacement)도 변경된 모듈만 교체하고 나머지는 캐시를 활용하여 반영 속도를 극대화한다. 프로덕션 빌드는 Rollup 기반으로, 트리 쉐이킹(사용하지 않는 코드 자동 제거)과 동적 import를 통한 코드 분할로 초기 로딩 성능을 높인다.

Vite로 React + TypeScript 환경을 설정하는 명령어는 `npm create vite@latest my-react-app -- --template react-ts`이며, Node.js 20.19+ 이상이 요구된다. CRA와 달리 복잡한 설정 선택 없이 단일 명령으로 빠르게 시작할 수 있고, 설정 파일은 `vite.config.ts`로 관리된다. 기본 포트는 5173이며, `npm run build` 실행 시 `/dist` 폴더에 빌드 결과물이 생성된다. Sass·Less·Stylus 등 CSS 전처리기와 CSS 모듈, PostCSS를 별도 설정 없이 바로 사용할 수 있다. Storybook 연동 시에는 `npm create storybook@latest` 명령으로 `@storybook/react-vite`가 자동 설치되어 Vite 환경을 지원한다.

핵심 내용

  • 2025년 2월 React 팀의 CRA deprecated 선언 — 더 이상 공식 지원 없음
  • CRA의 한계: 무거운 패키지 구성, 오래된 Webpack 4 기반, eject 없이는 커스터마이징 불가
  • Vite의 핵심: ESM 기반 개발 서버 → 번들링 생략으로 빠른 시작, HMR에서 변경된 모듈만 교체
  • 프로덕션 빌드는 Rollup 기반 트리 쉐이킹 + 코드 분할
  • 플러그인 시스템으로 eject 없이 확장 가능
  • Node.js 20.19+ 필수, 기본 개발 포트 5173

관련 개념

출처

최종 업데이트: 2026-05-27 | 출처 1개