(process.env.NODE_ENV = 'development')
npm run start // 개발 환경 실행
HMR(Hot Module Replacement)
이 활성화되어 코드 변경 시 브라우저가 새로고침 없이 적용됨.(process.env.NODE_ENV = 'production')
npm run build // 배포용 정적 파일을 생성
개발 중 사용
개발 서버를 띄우는 react-scripts start
가 실행된다.
배포용 정적 파일을 생성
build/ 폴더에 최적화된 정적 파일을 생성하는 react-scripts build
가 실행된다.
React는 process.env.NODE_ENV
값을 기반으로 개발/프로덕션 환경을 구분한다.
이 값은 아래와 같이 react-scripts를 실행할 때 자동으로 설정된다.
npm start
→ NODE_ENV=developmentnpm run build
→ NODE_ENV=production환경별로 다른 동작이 필요하다면
아래처럼 process.env.NODE_ENV
를 활용할 수도 있다.
if (process.env.NODE_ENV === "development") {
console.log("개발 환경에서 동작할 코드");
} else {
console.log("프로덕션 환경에서 동작할 코드");
}
개발 중에는 디버깅과 빠르게 반영되는 코드가 중요하지만
프로덕션에서는 성능, 빠른 로딩 속도가 더 중요하기 때문에 최적화된 코드가 필요하다.
개발 환경에서는 react-dom.development.js
를 사용하지만,
프로덕션 환경에서는 파일 크기를 줄인 react-dom.production.min.js
를 사용해 로딩 속도를 빠르게 한다.
불필요한 개발 도구(HMR, 상세 로그, 디버깅 툴 등)를 제거해서 성능이 최적화된다.
npm run start
→ 개발 서버 실행 (HMR 지원, 빠른 수정 가능).npm run build
→ 프로덕션용 정적 파일 생성 (최적화된 코드).process.env.NODE_ENV
값으로 구분