CRA (Create React App)
Facebook에서 제공하는 React 애플리케이션을 더 쉽게 생성하고 설정할 수 있는 도구로 React를 사용하여 웹 애플리케이션을 개발할 때, 초기 설정을 수동으로 수행해야 하지만, CRA를 사용하면 초기 설정을 자동으로 수행할 수 있다.
CRA를 사용하면 React 애플리케이션을 생성하고, 빌드하고, 개발 서버를 실행할 수 있다. 이를 통해 사용자는 빠르게 React 애플리케이션을 개발할 수 있으며, Webpack과 Babel과 같은 도구의 설정을 수동으로 수행할 필요가 없어 초보자인 경우에는 어려운 환경설정을 대신해서 간편하게 React 개발을 시작할 수 있게 해준다.
CRA는 React 애플리케이션을 시작하는 데 좋은 선택이며, 초기 구성이 간단하고 사용자가 개발 환경을 더욱 쉽게 설정할 수 있도록 지원한다
Vite
Vue.js 개발을 위한 빠른 개발 도구로 Vue.js 애플리케이션 개발에 최적화되어 있지만, 다른 프레임워크나 라이브러리에서도 사용할 수 있다.
Vite는 빠른 개발 서버와 HMR(Hot Module Replacement) 기능을 제공하여 애플리케이션 개발 시간을 단축할 수 있습니다. 또한, Rollup과 같은 모듈 번들러를 사용하여 빌드 시간을 최소화하고, 애플리케이션의 성능을 향상시킨다.
Vite는 Vue.js 프로젝트에서 기본적으로 지원하는 기능 외에도 다양한 플러그인을 제공하여 개발자가 필요한 대로 확장할 수 있고, 더 빠른 개발을 위한 도구로 인기가 높아져 있으며, Vue.js 개발을 위한 기본 도구로 채택되고 있다.
CRA 와 Vite의 차이점
빌드시간
CRA는 애플리케이션을 빌드할 때 시간이 더 걸릴 수 있다. 이는 CRA가 Webpack을 사용하여 애플리케이션을 빌드하기 때문이다. 반면, Vite는 개발 중에 더 빠른 빌드 시간을 제공하고 애플리케이션의 성능을 향상시키기 위해 Rollup을 사용한다.
HMR (Hot Module Replacement)
CRA는 HMR을 지원하지만, 이 기능을 사용하면 빌드 시간이 더 오래 걸리고 일부 모듈이 다시 로드된다. Vite는 HMR을 기본적으로 지원하며, 애플리케이션의 변경 사항이 실시간으로 반영된다.
환결성정
CRA는 초기 설정이 간단하고 사용하기 쉬운 반면, Vite는 더 유연한 환경 설정을 제공한다. Vite는 미리 구성된 설정을 제공하지 않으며, 사용자가 필요한 대로 환경을 구성해야 한다.
모듈번들링
CRA는 Webpack을 사용하여 모듈을 번들링한다. Vite는 Rollup을 사용하여 모듈을 번들링하며, 코드를 최적화하고 번들 파일의 크기를 줄일 수 있다.
타입스크립트 지원
CRA는 타입스크립트를 지원하지만, 설정이 복잡할 수 있다. Vite는 타입스크립트를 기본적으로 지원하며, 타입 검사와 같은 기능을 더욱 쉽게 사용할 수 있다.
다른 프레임워크 지원
CRA는 React에 최적화되어 있으며, 다른 프레임워크와 함께 사용하기 어려울 수 있다. Vite는 다양한 프레임워크를 지원하며, Vue나 Svelte와 같은 다른 프레임워크에서도 사용할 수 있다.
차이점 정리
프레임워크 | React | Vue.js |
개발 툴 | Webpack, Babel | Rollup |
빌드 시간 | 상대적으로 느림 | 상대적으로 빠름 |
빌드 결과물 | 큰 크기, 느린 로딩 시간 | 작은 크기, 빠른 로딩 시간 |
HMR | 느림 | 빠름 |
번들링 | 단일 번들링 | 필요할 때마다 분할 번들링 |
플러그인 | 적은 수 | 다양한 플러그인 사용 가능 |
타입 지원 | TypeScript 선택 가능 | 기본적으로 TypeScript 지원 |
'Front-End > React' 카테고리의 다른 글
(MVC, Flux, Redux) 애플리케이션 상태관리 (0) | 2023.03.07 |
---|---|
Hook이란? ( useState, useEffect, useContext ) (0) | 2023.02.27 |
ECMAScript, 바벨(Babel) (0) | 2023.02.15 |
Props, props drilling이란? ( + key props) (0) | 2023.02.15 |
(React) 컴포넌트/엘리먼트 차이, JSX란? (0) | 2023.02.15 |