React를 위한 Node.js
🧩
nvm: Node.js 버전을 관리하는 도구npm: 패키지를 설치하고 의존성을 관리하는 도구npx: 패키지를 일회성으로 실행할 때 사용package.json: 프로젝트 정보와 실행 명령어, 의존성을 관리하는 파일node_modules: 설치된 패키지가 저장되는 폴더package-lock.json: 실제 설치된 패키지 버전을 고정하는 파일
Node.js란
Node.js는 브라우저가 아닌 환경에서 자바스크립트를 실행할 수 있게 해주는 런타임이다.
React 코드는 최종적으로 브라우저에서 실행되지만, 개발 과정에서 사용하는 Vite, npm, 빌드 도구, 테스트 도구 등이 Node.js 환경 위에서 동작하기 때문에 React 개발을 위해 Node.js가 필요하다.
📟 주요 명령어
# Node 버전 확인
$ node -v
# Node.js 인터프리터 실행 (REPL 환경)
$ node
# 자바스크립트 파일 실행
$ node 파일명.jsnode이 명령어를 터미널에 입력하면 Node.js가 인터프리터 모드로 들어간다.- 이 환경을
REPL(Read–Eval–Print–Loop)이라고 부르며,
JavaScript 코드를 한 줄씩 입력하고 실행 결과를 바로 확인할 수 있다.
크롬 브라우저 개발자 도구의 Console 탭과 비슷하게 사용할 수 있다.
nvm (Node.js Version Manager)
nvm은 Node.js의 여러 버전을 쉽게 설치하고 변경할 수 있도록 도와주는 버전 관리 도구이다.
Node.js는 버전이 자주 업데이트되고, 프로젝트마다 요구하는 Node 버전이 다를 수 있다.
이때 nvm을 사용하면 프로젝트에 맞는 Node 버전을 선택해서 사용할 수 있다.
🗝️ nvm의 장점
- 프로젝트마다 다른 Node.js 버전 설정 가능
- 기존 프로젝트에 영향을 주지 않고 새로운 버전 설치 가능
- 팀원들과의 개발 환경을 맞추기 쉬움
📟 주요 명령어
# nvm 버전 확인
$ nvm --version
# 설치 가능한 Node.js 버전 목록 확인
$ nvm ls-remote
# 특정 버전 설치
$ nvm install 00.00.0
# 설치된 Node 버전 목록 확인
$ nvm ls
# 사용할 Node 버전 변경
$ nvm use 00.00.0
# 현재 사용 중인 node 버전 확인
$ node -v💡 LTS(Long Term Support)
장기 지원 버전을 의미하며, 안정적으로 사용할 수 있는 Node.js 버전이다.
새 프로젝트를 시작할 때는 보통 LTS 버전 사용을 권장한다.
npm (Node Package Manager)
npm은 Node.js와 함께 설치되는 패키지 관리자이다.
React, Vite, Tailwind CSS, Axios 같은 외부 라이브러리를 설치하거나 프로젝트의 의존성을 관리할 때 사용한다.
📦 JavaScript 패키지란?
JavaScript 패키지는 재사용 가능한 코드 묶음이다.
npm에 등록된 패키지는 프로젝트에서 설치해서 사용할 수 있으며, 설치된 패키지 정보는 보통 package.json 파일을 통해 관리된다.
📟 주요 명령어
# npm 버전 확인
$ npm -v
# package.json 생성
$ npm init
# package.json 기본값으로 생성
$ npm init -y
# 패키지 설치
$ npm install 패키지명
# 개발 의존성으로 패키지 설치
$ npm install -D 패키지명
# 패키지 제거
$ npm uninstall 패키지명
# 최신 버전으로 업데이트
$ npm update💡 로컬 설치 vs 전역 설치
| 구분 | 설명 | 예시 |
|---|---|---|
| 로컬 설치 | 프로젝트 내부에 설치, node_modules 폴더에 위치 | React, Tailwind 등 |
| 전역 설치 | 모든 프로젝트에서 CLI 명령어처럼 사용 | 일부 CLI 도구 |
📄 package.json
package.json은 프로젝트의 기본 정보와 의존성, 실행 명령어를 관리하는 파일이다.
{
"name": "react-app",
"version": "1.0.0",
"scripts": {
// 터미널에서 실행할 명령어 모음
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
// 실제 서비스 실행에 필요한 패키지
"react": "^19.0.0",
"react-dom": "^19.0.0"
},
"devDependencies": {
// 개발할 때만 필요한 패키지
"vite": "^6.0.0"
}
}📁 node_modules란?
node_modules는 npm으로 설치한 패키지들이 저장되는 폴더이다.
$ npm install위 명령어를 실행하면 package.json에 적힌 의존성을 기준으로 필요한 패키지들이 node_modules 폴더에 설치된다. 이 폴더는 용량이 크기 때문에 보통 Git에 올리지 않고 .gitignore에 추가한다.
# .gitignore 예시
node_modules/📄 package-lock.json
package-lock.json은 실제로 설치된 패키지의 정확한 버전과 의존성 구조를 기록하는 파일이다.
package.json: 프로젝트 정보와 의존성 범위 관리package-lock.json: 실제 설치된 패키지 버전 고정node_modules: 설치된 패키지 파일들이 저장되는 폴더
이를 통해 다른 팀원이 같은 프로젝트를 설치했을 때도 동일한 패키지 버전을 사용할 수 있다.
🔄 npm install
# package.json과 package-lock.json을 기준으로 의존성 설치
$ npm install📄 dependencies와 devDependencies
npm 패키지는 사용 목적에 따라 dependencies와 devDependencies로 구분된다.
dependencies: 실제 서비스 실행에 필요한 패키지 (react, react-dom, axios)devDependencies: 개발 과정에서만 필요한 패키지 (vite, eslint, prettier)
npx (Node Package eXecute)
npx는 npm 패키지를 설치하지 않고도 일회성으로 실행할 수 있게 해주는 도구이다.
프로젝트 생성 도구처럼 한 번만 실행하면 되는 CLI 패키지를 사용할 때 유용하다.
# React 프로젝트 생성
$ npx create-vite@latest my-app --template react