-
React 를 실행시키는 주체는?Front-end study/React & Vue 2025. 8. 23. 13:53
Q)npm start 명령어는 정확히 무엇을 시작시키는 거지?web application server 인건가?
그럼 정확히 어떤 종류의 web application server 이고
그 web application server 를 시작시키는 exe파일은 어디에 위치하고 있지?
npm start 명령어는 **React 개발 서버(Development Server)**를 시작시키는 명령어입니다.
이것은 실제 서비스용 웹 애플리케이션 서버(WAS)라기보다는, 개발을 돕기 위한 임시 서버에 가깝습니다.
질문하신 내용을 하나씩 상세히 설명해 드릴게요.
## 1. npm start의 정체: package.json의 약속
npm start는 npm(Node Package Manager)의 내장 명령어가 아니라, 프로젝트마다 다르게 설정할 수 있는 **스크립트 실행 약속(별명)**입니다.
React 프로젝트 폴더에 있는 package.json 파일을 열어보면 scripts 부분이 있습니다.
JSON// package.json { ... "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, ... }
여기서 "start": "react-scripts start" 라는 부분이 핵심입니다. 즉, 터미널에서 npm start를 실행하면 npm은 이 설정을 보고 실제로는 react-scripts start 라는 명령을 대신 실행해주는 것입니다.
## 2. 어떤 종류의 서버인가요?
react-scripts start가 실행하는 서버는 Webpack Dev Server (또는 Vite 프로젝트의 경우 Vite Dev Server)입니다.
이 서버는 전통적인 웹 애플리케이션 서버(WAS)인 Tomcat(Java), IIS(.NET) 등과는 성격이 완전히 다릅니다.
- 목적: 오직 개발 생산성 향상을 위해 만들어졌습니다.
- 주요 기능:
- 빠른 속도: 메모리 위에서 동작하여 매우 빠릅니다.
- 핫 리로딩 (Hot Module Replacement): 코드를 수정하고 저장하면, 페이지 전체를 새로고침하지 않고 바뀐 부분만 즉시 화면에 반영해줍니다.
- 실시간 에러 표시: 코드에 오류가 있으면 브라우저 화면 전체에 에러 내용을 상세하게 보여줍니다.
- 한계: 보안과 성능에 매우 취약하여, 실제 사용자들이 접속하는 운영(Production) 환경에서는 절대 사용하면 안 됩니다.
## 3. 실행 파일(.exe)은 어디에 있나요?
두 가지 오해를 바로잡으면 이해하기 쉽습니다.
- Ubuntu(리눅스)에는 .exe가 없습니다: 윈도우와 달리 리눅스에서는 실행 파일에 .exe 확장자를 사용하지 않습니다. 파일에 '실행 권한'이 있으면 그것이 실행 파일입니다.
- 실행 파일은 프로젝트 내부에 있습니다: react-scripts라는 명령어는 내 컴퓨터 전역에 설치된 프로그램이 아니라, 현재 React 프로젝트를 위해 npm install 했을 때 다운로드된 수많은 부품 중 하나입니다.
모든 마법은 프로젝트 폴더 내의 node_modules 폴더 안에서 일어납니다.
- 실행 스크립트의 위치: [내 프로젝트 폴더]/node_modules/.bin/react-scripts
npm은 scripts를 실행할 때, 이 node_modules/.bin 폴더를 임시로 PATH에 추가해주기 때문에 우리가 react-scripts start처럼 전체 경로 없이 짧은 명령어를 사용할 수 있는 것입니다.
결론적으로, 이 스크립트는 최종적으로 Node.js를 이용해 Webpack Dev Server 관련 JavaScript 파일을 실행시키는 구조입니다. 따라서 진짜 실행 주체는 시스템에 설치된 node 프로그램이라고 할 수 있습니다.
*** 결론: 최종적으로 Node.js를 이용해
Webpack Dev Server 관련 JavaScript 파일을 실행시키는 구조.
따라서 진짜 실행 주체는 시스템에 설치된 node 프로그램이라고 할 수 있음.***
'Front-end study > React & Vue' 카테고리의 다른 글
node modules 폴더 Copy & Past 금지 (0) 2023.12.09 JSX 기본(기초) 문법 (0) 2023.02.09 What's React ? (0) 2023.02.09 node_modules 폴더 관리 (0) 2023.01.20 남이 만든 React Project File Folder Open 후 yarn start error 시... (0) 2023.01.06