꽃 같은 인생
React 📌1. Node.js, nvn, npm, npx 개념 정리📝 본문

🚀Node.js
🚀 Node.js가 등장한 이유
과거에는 JavaScript가 브라우저에서만 실행되었어! 즉, 클라이언트(사용자의 웹 브라우저)에서만 동작하는 언어였지. 💡 그런데, 개발자들은 JavaScript를 서버에서도 실행하고 싶어 했어!
왜냐하면:
- 프론트엔드 & 백엔드 통합 → JavaScript 하나로 웹사이트 전체 개발 가능!
- 빠른 처리 속도 → 기존 서버 언어(PHP, Java 등)보다 더 가볍고 빠르게 실행 가능!
- 비동기 처리 → 여러 작업을 동시에 처리해서 대규모 트래픽을 감당할 수 있음!
🔥 Node.js를 사용하는 이유?
과거에는 JavaScript가 브라우저에서만 실행되었지만,
Node.js 덕분에 서버에서도 JavaScript 실행 가능해졌어!
💡 Node.js를 사용하면 프론트엔드 & 백엔드 모두 JavaScript로 개발 가능해서
웹 개발이 훨씬 쉬워지고 효율적이야! 🚀
✅ Node.js의 주요 장점
1️⃣ 빠른 실행 속도 (V8 엔진 사용)
- Node.js는 Google Chrome의 V8 JavaScript 엔진을 사용해 빠르게 실행됨
- C++로 만들어져서 성능이 뛰어남!
2️⃣ 비동기(Asynchronous) & 논블로킹(Non-blocking) 방식
- 요청을 비동기적으로 처리해서 서버가 멈추지 않고 여러 작업을 동시에 처리 가능
- 👉 빠른 응답 속도로 대규모 트래픽을 감당할 수 있음!
3️⃣ 프론트엔드 & 백엔드를 같은 언어(JS)로 개발 가능
- 기존에는 프론트엔드(JavaScript)와 백엔드(PHP, Java 등)가 따로 필요했음
- Node.js 덕분에 하나의 언어(JavaScript)로 풀스택 개발 가능
4️⃣ 대규모 트래픽 처리에 강함
- 가볍고 빠른 이벤트 기반 처리 방식이라 실시간 채팅, 스트리밍 서비스 등에 적합
- 예: Netflix, PayPal, LinkedIn 같은 대기업도 Node.js 사용 중
5️⃣ npm (Node Package Manager) 지원
- 100만 개 이상의 라이브러리를 npm에서 쉽게 설치 가능
- 개발 시간을 줄이고 다양한 기능을 빠르게 추가 가능
6️⃣ 마이크로서비스 & 서버리스 아키텍처와 잘 맞음
- 가벼운 서버 환경을 제공해서 클라우드 기반 서버리스 개발에 최적화
- 예: AWS Lambda, Firebase Functions
7️⃣ 풀스택 개발이 쉬워짐 (React, Vue, Angular와 궁합 👍)
- 프론트엔드와 백엔드를 하나의 JavaScript 환경에서 개발 가능
- React, Vue, Angular 같은 프레임워크와 쉽게 연결 가능
📌 Node.js가 적합한 사용 사례
✅ 실시간 데이터 처리 → 채팅 앱, 실시간 알림 서비스
✅ 대규모 트래픽이 필요한 웹 서비스 → SNS, 스트리밍 플랫폼
✅ API 서버 개발 → REST API, GraphQL API
✅ 마이크로서비스 아키텍처 → AWS Lambda 같은 클라우드 서버리스 개발
✨ 결론
💡 Node.js를 사용하면?
✔ 빠른 서버 개발 가능
✔ 대규모 트래픽 처리 용이
✔ 프론트엔드 & 백엔드 모두 JavaScript로 개발 가능
📌 Node.js 한눈에 정리!
특징 설명
| 빠른 실행 속도 | Chrome V8 엔진 사용, 빠르고 최적화된 성능 |
| 비동기 & 논블로킹 | 여러 요청을 동시에 처리, 서버 멈춤 없음 |
| JavaScript 통합 | 프론트엔드 & 백엔드 모두 JS로 개발 가능 |
| 대규모 트래픽 처리 | 실시간 채팅, 스트리밍 서비스 등에 적합 |
| npm 패키지 지원 | 다양한 라이브러리 사용 가능 |
| 클라우드 & 서버리스 최적화 | AWS Lambda, Firebase Functions 활용 가능 |
1️⃣ Node.js
🌱 Node.js
- 우리가 React 같은 라이브러리를 설치하고, 프로젝트를 관리할 수 있도록 도와주는 도구
✔ 설명: JavaScript를 브라우저가 아닌 서버에서도 실행할 수 있도록 해주는 환경
✔ 왜 필요할까?
- 브라우저 없이 JavaScript 실행 가능
- 백엔드 개발도 가능 (Express.js 같은 프레임워크 활용)
- npm을 통해 다양한 패키지(라이브러리) 사용 가능
✔ 버전 확인:
node -v
✔ 설치 여부 확인 방법:
- Node.js를 설치하면 npm도 자동 설치됨!
- 공식 사이트: https://nodejs.org
2️⃣ NVM (Node Version Manager)
🌱 nvm
✔ 설명: 여러 버전의 Node.js를 쉽게 관리하는 도구
- 우리가 React 같은 라이브러리를 설치하고, 프로젝트를 관리할 수 있도록 도와주는 도구
- 프로젝트별로 Node.js 버전 관리 가능
- 기존 프로젝트에 영향 없이 새로운 버전 사용 가능
- 팀원들과의 개발 환경 통일 용이
✔ 왜 필요할까?
- Node.js 버전을 삭제, 재설치 없이 쉽게 변경 가능
- 특정 패키지가 특정 Node.js 버전에서만 동작할 경우 사용
- ✔ 주요 명령어, ✔ 설치 방법
- 설치된 Node.js 버전 확인:
- nvm ls
- 특정 버전 설치:
- nvm install 18
- 특정 버전 사용:
- nvm use 18
- Windows: nvm-windows 다운로드
- Mac/Linux:
- curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh> | bash
3️⃣ NPM (Node Package Manager)
🌱 npm
✔ 설명 : JavaScript 패키지를 설치, 배포, 관리하는 패키지 관리자
✔ 왜 필요할까?
- React 같은 라이브러리 설치 가능
- 패키지를 업데이트하고 관리할 수 있음
- package.json을 통해 프로젝트 의존성 관리
🌱 JavaScript 패키지
- JavaScript 패키지는 재사용 가능한 JavaScript 코드 묶음
- npm에 배포된 패키지는 package.json파일로 정보를 표시
- 패키지를 사용해서 또 다른 패키지를 만들 수 있음
- 사용한 패키지에 대한 의존성이 생김
✔ 주요 명령어:
- npm 버전 확인:
- npm -v
- 패키지 설치:
- npm install 패키지이름
- 프로젝트에서 사용할 패키지 설치 (예: React)
- npm install react
- 전역(global)으로 패키지 설치:
- npm install -g 패키지이름
- 📌 NPM을 사용한 프로젝트 패키지 관리 명령어 정리 📝📌 프로젝트를 처음 시작할 때 실행하는 명령어✔ 실행하면 여러 설정값을 입력해야 하지만, 기본값으로 설정하려면 npm init -y 사용 가능!
✅ 2. 패키지 설치1️⃣ 로컬(Local) 패키지 설치 (프로젝트 내에서만 사용)예: React 설치📌 축약형 (npm i)도 가능2️⃣ 전역(Global) 패키지 설치 (전체 시스템에서 사용)예: nodemon 전역 설치3️⃣ 개발용(Dev) 패키지 설치 (빌드 도구, 테스트 라이브러리 등)예: ESLint 개발용 설치
✅ 3. 패키지 삭제
예: lodash 패키지 삭제npm uninstall 패키지이름
✅ 4. 패키지 목록 확인1️⃣ 로컬(Local) 패키지 목록 확인2️⃣ 전역(Global) 패키지 목록 확인
📌 추가적으로 유용한 npm 명령어
✔ package.json에 명시된 모든 패키지를 한 번에 설치npm install
✅ 설치된 패키지 최신 버전 업데이트npm cache clean --force - npm update
- ✅ 캐시 삭제 (문제 발생 시 해결용)
- ✅ 의존성 패키지 설치 (package.json 기반)
- npm list -g
- npm list
- 📌 설치된 패키지 목록을 확인하는 명령어
- npm uninstall lodash
- 📌 설치한 패키지를 제거할 때 사용
- npm install eslint --save-dev
- npm install 패키지이름 --save-dev
- npm install -g nodemon
- npm install -g 패키지이름
- npm i axios
- npm install react
- npm install 패키지이름
- 📌 프로젝트에서 사용할 패키지를 추가할 때 사용
- ✔ 실행 후 프로젝트 폴더에 package.json 파일이 생성됨.
- npm init
- ✅ 1. 프로젝트 초기화 & package.json 파일 생성
- 🎯 명령어 요약표 😊목적 명령어
프로젝트 초기화 npm init -y 패키지 설치 (로컬) npm install 패키지이름 패키지 설치 (전역) npm install -g 패키지이름 개발용 패키지 설치 npm install 패키지이름 --save-dev 패키지 삭제 npm uninstall 패키지이름 설치된 패키지 목록 확인 npm list 전역 패키지 목록 확인 npm list -g package.json 기반 패키지 설치 npm install 패키지 최신 버전 업데이트 npm update
4️⃣ NPX (Node Package eXecute)
🌱 npx
✔ 설명: npm 패키지를 설치 없이 실행할 수 있도록 해주는 도구
- npm 5.2.0 이후 버전에 포함
- npm 을 더 편하게 쓰게하는 도구
- npm 패키지를 전역으로 설치하지 않고 한 번만 실행 가능
✔ 왜 필요할까?
- npm 패키지를 전역으로 설치하지 않고 한 번만 실행 가능
- 프로젝트 환경을 구축하는 경우(프로젝트 설치용 패키지)
- 최신 버전의 패키지를 즉시 실행 가능
- create-react-app 같은 프로젝트 생성 도구 실행할 때 유용
- ✔ 주요 명령어:
- 패키지를 설치 없이 실행:
- npx 패키지이름
- React 프로젝트 생성:
- npx create-react-app my-app
- 특정 패키지의 최신 버전 실행:
- npx eslint .
📌 요약 정리
개념 역할 주요 기능 사용 예시
| Node.js | JS 실행 환경 | 브라우저 없이 JS 실행 | node server.js |
| NVM | Node 버전 관리 | 여러 버전의 Node.js 사용 가능 | nvm use 18 |
| NPM **** | 패키지 관리자 | 라이브러리 설치 및 관리 | npm install react |
| NPX | 패키지 실행 도구 | 설치 없이 실행 | npx create-react-app my-app |
📦 패키지 & 라이브러리 요약 정리 🚀
🌱 패키지 (Package)란?
📌 패키지(Package) = 특정 기능을 수행하는 코드 묶음(모듈 + 설정 파일 등)
📌 **npm(Node Package Manager)**을 통해 설치 & 관리 가능
📌 예: axios, express, react
✔ 패키지 설치 명령어:
npm install 패키지이름
패키지 관리 도구 (PM, Package Manager)
- npm (Node Package Manager) → Node.js 기본 패키지 관리자
- yarn → 페이스북이 개발한 npm 대체 도구
- pnpm → 빠르고 용량 절약되는 npm 대체 도구
🌱 라이브러리 (Library)란?
📌 라이브러리(Library) = 특정 기능을 쉽게 구현할 수 있도록 제공되는 코드 집합
💡 패키지보다 더 좁은 개념으로, 특정 기능을 수행하는 모듈이라고 생각하면 돼!
📌 직접 코드를 작성하지 않고 가져다 사용할 수 있음
📌 예: React, Lodash, Axios
✔ 라이브러리 사용 예시:
import axios from "axios";
axios.get("<https://api.example.com/data>").then(response => {
console.log(response.data);
});
📌 패키지 vs 라이브러리 차이
구분 패키지 라이브러리
| 개념 | 여러 모듈과 설정 파일 포함 | 특정 기능을 제공하는 코드 모음 |
| 사용 방식 | npm install로 설치 | npm install 후 코드에서 import |
| 예시 | react, express | lodash, axios |
🌱 프레임워크 (Framework)와의 차이
📌 라이브러리는 필요한 기능을 가져다 사용하는 것
📌 프레임워크는 전체적인 구조를 제공하고 그 안에서 개발하는 것
🔹 예시:
- React (프레임워크 아님, 라이브러리!)
- Next.js (React 기반 프레임워크)
- Express (백엔드 프레임워크)
- Vue.js, Angular (프레임워크)
📌 라이브러리 vs 프레임워크 차이
구분 라이브러리 프레임워크
| 개념 | 필요한 기능을 가져다 쓰는 도구, | |
| 특정 기능 제공 | 전체적인 개발 구조 제공 | |
| 개발자 자유도 | 높음 (필요한 것만 선택) | 낮음 (정해진 방식 따라야 함) |
| 예시 | React, Lodash, Axios | React, Angular, Vue, Express |
🌱 패키지 설치 및 관리 방법(package.json)
📌 package.json은 프로젝트에서 사용하는 패키지 목록을 저장하는 파일
📌 dependencies(운영 패키지)와 devDependencies(개발용 패키지)로 구분
✅ 패키지 설치
npm install 패키지명 # 로컬 설치
npm install -g 패키지명 # 글로벌 설치
yarn add 패키지명 # yarn으로 설치
✅ 패키지 삭제
npm uninstall 패키지명
yarn remove 패키지명
✅ 패키지 목록 확인
npm list
yarn list
✔ 예시 (package.json 일부)
{
"dependencies": {
"axios": "^1.7.9",
"react": "^18.2.0"
},
"devDependencies": {
"eslint": "^8.50.0"
}
}
✅ 5. 패키지 관련 주요 명령어
📌 패키지를 설치, 삭제, 업데이트하는 주요 npm 명령어 정리
목적 명령어
| 패키지 설치 (로컬) | npm install 패키지이름 |
| 패키지 설치 (전역) | npm install -g 패키지이름 |
| 개발용 패키지 설치 | npm install 패키지이름 --save-dev |
| 패키지 삭제 | npm uninstall 패키지이름 |
| 설치된 패키지 목록 확인 | npm list --depth=0 |
| package.json 기반 패키지 설치 | npm install |
| 패키지 최신 버전 업데이트 | npm update |
🎯 결론: 패키지 & 라이브러리 핵심 요약!
1️⃣ 패키지 = 특정 기능을 수행하는 코드 묶음 (npm install axios)
2️⃣ 라이브러리 = 특정 기능을 쉽게 사용할 수 있도록 제공되는 코드 (React, Axios)
3️⃣ 프레임워크 = 전체적인 구조 제공 (React, Express)
4️⃣ 패키지 관리는 package.json에서 진행
5️⃣ npm 명령어로 설치, 삭제, 업데이트 가능
- 🎯 정리✔️ 라이브러리 = 특정 기능을 수행하는 코드 모음✔️ npm, yarn 같은 패키지 관리자로 패키지를 설치하고 관리Common JS (Node.js 기본) ES6 (브라우저 환경)
✅ 왜 필요할까?내보낼 때 module.exports exports default 가져올 때 require import - React 같은 라이브러리 설치 가능
- 패키지를 업데이트하고 관리할 수 있음
- package.json을 통해 프로젝트 의존성 관리
- ✅ JavaScript 모듈 사용법
- ✔️ 프레임워크 = 개발 규칙과 구조까지 제공하는 개발 도구
- ✔️ 패키지 = 여러 모듈이 포함된 재사용 가능한 코드 묶음
- 📌 NPM을 사용한 프로젝트 패키지 관리 명령어 정리 📝📌 프로젝트를 처음 시작할 때 실행하는 명령어✔ 실행하면 여러 설정값을 입력해야 하지만, 기본값으로 설정하려면 npm init -y 사용 가능!
✅ 2. 패키지 설치1️⃣ 로컬(Local) 패키지 설치 (프로젝트 내에서만 사용)예: React 설치📌 축약형 (npm i)도 가능2️⃣ 전역(Global) 패키지 설치 (전체 시스템에서 사용)예: nodemon 전역 설치3️⃣ 개발용(Dev) 패키지 설치 (빌드 도구, 테스트 라이브러리 등)예: ESLint 개발용 설치
✅ 3. 패키지 삭제
예: lodash 패키지 삭제npm uninstall 패키지이름
✅ 4. 패키지 목록 확인1️⃣ 로컬(Local) 패키지 목록 확인2️⃣ 전역(Global) 패키지 목록 확인
📌 추가적으로 유용한 npm 명령어
✔ package.json에 명시된 모든 패키지를 한 번에 설치npm install
✅ 설치된 패키지 최신 버전 업데이트npm cache clean --force
🎯 명령어 요약표목적 명령어프로젝트 초기화 npm init -y 패키지 설치 (로컬) npm install 패키지이름 패키지 설치 (전역) npm install -g 패키지이름 개발용 패키지 설치 npm install 패키지이름 --save-dev 패키지 삭제 npm uninstall 패키지이름 설치된 패키지 목록 확인 npm list 전역 패키지 목록 확인 npm list -g package.json 기반 패키지 설치 npm install 패키지 최신 버전 업데이트 npm update - npm update
- ✅ 캐시 삭제 (문제 발생 시 해결용)
- ✅ 의존성 패키지 설치 (package.json 기반)
- npm list -g
- npm list
- 📌 설치된 패키지 목록을 확인하는 명령어
- npm uninstall lodash
- 📌 설치한 패키지를 제거할 때 사용
- npm install eslint --save-dev
- npm install 패키지이름 --save-dev
- npm install -g nodemon
- npm install -g 패키지이름
- npm i axios
- npm install react
- npm install 패키지이름
- 📌 프로젝트에서 사용할 패키지를 추가할 때 사용
- ✔ 실행 후 프로젝트 폴더에 package.json 파일이 생성됨.
- npm init
- ✅ 1. 프로젝트 초기화 & package.json 파일 생성
📌 package.json 파일의 역할과 중요성 📝
✅ 1. package.json 파일이란?
📌 package.json은 Node.js 프로젝트의 설정과 정보를 담고 있는 핵심 파일이야!
📌 프로젝트에 필요한 패키지(라이브러리)와 설정 정보를 저장하는 역할을 해!
✅ 2. package.json 파일의 주요 역할
📌 (1) 프로젝트 정보 관리
✔ 프로젝트의 이름(name), 버전(version), 설명(description) 등을 정의할 수 있어!
✔ 예시:
{
"name": "my-app",
"version": "1.0.0",
"description": "This is my first Node.js project"
}
📌 (2) 패키지(라이브러리) 관리
✔ 프로젝트에서 사용하는 npm 패키지를 저장하고 관리해!
✔ dependencies(일반 패키지)와 devDependencies(개발용 패키지)로 나뉘어 있어!
✔ npm install을 실행하면 package.json을 보고 필요한 패키지를 자동 설치할 수 있어!
✔ 예시:
{
"dependencies": {
"axios": "^1.7.9",
"react": "^18.2.0"
},
"devDependencies": {
"eslint": "^8.50.0"
}
}
📌 💡 dependencies vs devDependencies 차이점?
- dependencies: 프로젝트 실행 시 필요한 패키지 (예: React, Axios 등)
- devDependencies: 개발할 때만 필요한 패키지 (예: ESLint, Webpack 등)
📌 (3) 프로젝트 실행 및 자동화 (scripts)
✔ scripts 항목에 명령어를 등록하면 npm 명령어로 실행 가능!
✔ 예시:
{
"scripts": {
"start": "node server.js",
"test": "echo \\"Error: no test specified\\" && exit 1"
}
}
📌 실행 방법:
npm start # node server.js 실행
npm test # 등록된 테스트 명령 실행
📌 (4) 버전 및 의존성 관리
✔ 각 패키지의 버전을 명확히 정의해서 일관된 개발 환경 유지 가능
✔ "^" 또는 "~" 같은 버전 표기법을 사용해 특정 범위의 버전만 업데이트 가능
📌 버전 표기법 예시
- "^1.7.9" → 1.x.x 버전에서 업데이트 가능 (주요 변경 없음)
- "~1.7.9" → 1.7.x 버전에서 업데이트 가능 (마이너 업데이트만)
- "1.7.9" → 정확한 버전 고정
✅ 3. package.json 파일이 중요한 이유!
✅ 1. 프로젝트의 핵심 정보 저장
- 프로젝트의 이름(name), 버전(version), 설명(description) 등의 기본 정보를 관리
- 여러 개발자가 함께 작업할 때, 프로젝트 정보를 쉽게 공유 가능
- 오픈소스 프로젝트라면, 배포 및 관리가 용이
{
"name": "my-project",
"version": "1.0.0",
"description": "This is a sample Node.js project"
}
✅ 2. 패키지(라이브러리) 관리
- 프로젝트에서 사용하는 패키지(라이브러리)의 목록을 저장
- npm install 한 번만 실행하면, 필요한 패키지가 자동으로 설치됨 → 개발 환경 통일 가능
- 프로젝트에 어떤 패키지를 사용하는지 한눈에 파악 가능
{
"dependencies": {
"axios": "^1.7.9",
"express": "^4.18.2"
}
}
✔ npm install 실행 시, 위 패키지들이 자동으로 설치됨 🎯
✅ 3. 버전 및 의존성 관리
- 각 패키지의 버전을 명확하게 정의하여, 일관된 개발 환경 유지
- package.json 파일 덕분에 같은 환경에서 프로젝트 실행 가능
- ^1.7.9, ~1.7.9 같은 버전 표기법을 사용해 원하는 범위 내에서 업데이트 가능
✅ 4. 실행 명령어 자동화 (scripts 활용)
- scripts 항목을 이용하면 npm 명령어로 쉽게 프로젝트 실행 가능
- 개발/배포/테스트 명령어를 단축할 수 있어 작업 효율성 증가
{
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"test": "jest"
}
}
✔ 실행 방법:
npm start # node server.js 실행
npm run dev # 개발 모드 실행
npm test # 테스트 실행
✅ 5. 협업과 배포에 필수
- package.json 파일이 있으면, 같은 개발 환경에서 작업 가능
- 다른 개발자가 프로젝트를 다운받으면, npm install 한 번으로 모든 패키지 설치 가능
- 배포할 때도 패키지를 자동으로 설치 & 관리 가능
🚨 만약 package.json이 없다면?
❌ 프로젝트에서 어떤 패키지를 사용했는지 모름
❌ 팀원마다 패키지를 따로 설치해야 해서 비효율적
❌ 배포 시 패키지 충돌이 발생할 가능성 증가
✅ 6. package-lock.json과 함께 프로젝트 안정성 유지
- package-lock.json은 패키지의 정확한 버전과 의존성을 고정하는 역할
- package.json이 패키지 버전을 관리하는 파일이라면,package-lock.json은 그 상태를 고정해서 프로젝트가 동일한 환경에서 실행되도록 도와줌
- 배포할 때 모든 환경에서 동일한 패키지 버전이 유지됨
🎯 결론: package.json이 중요한 이유!
역할 설명
| 프로젝트 정보 관리 | 이름, 버전, 설명 등 프로젝트의 기본 정보 저장 |
| 패키지 관리 | 프로젝트에서 사용하는 라이브러리 목록 저장 |
| 의존성 관리 | 버전 충돌 없이 일관된 개발 환경 유지 |
| 실행 명령어 자동화 | scripts를 활용해 개발, 빌드, 테스트 자동화 |
| 협업 필수 요소 | 팀원들이 동일한 환경에서 작업 가능 |
| 배포에 필수 | npm install만으로 필요한 패키지 자동 설치 가능 |
🚀 package.json이 없으면?
❌ 패키지 설치, 관리 불가능
❌ 협업 시 패키지 목록 공유 불가능
❌ 프로젝트 실행 자동화 불가능
❌ 배포 환경에서 버전 충돌 발생 가능
💡 그래서 Node.js & React 프로젝트에서 package.json은 필수! 😊✨
역할 설명
| 패키지 관리 | 프로젝트에서 사용하는 패키지 목록을 저장 |
| 자동 설치 가능 | npm install 실행 시 필요한 패키지를 한 번에 설치 |
| 버전 관리 | 패키지의 특정 버전을 유지하여 프로젝트 안정성 확보 |
| 프로젝트 실행 자동화 | scripts 항목을 통해 npm 명령어로 쉽게 실행 가능 |
| 팀 협업 필수 요소 | 여러 개발자가 같은 환경에서 개발 가능 (의존성 공유) |
✅ 4. package.json 파일이 없으면 어떻게 될까?
🚨 package.json 파일이 없으면 프로젝트 의존성 관리가 어렵고, 패키지 설치도 불가능!
🚨 협업 시 패키지를 일일이 설치해야 해서 비효율적!
🚨 배포 시 프로젝트 환경이 달라져서 오류 발생 가능성 증가!
💡 그래서 package.json 파일은 필수! 😊✨
- ✅ 결론: package.json은 프로젝트의 핵심!✔ 패키지 관리, 버전 관리, 실행 스크립트 설정까지 모든 걸 한 곳에서 관리 가능!👉 React 프로젝트, Node.js 서버 개발을 할 때 package.json이 꼭 필요해! 😊✨
- ✔ 개발자들끼리 협업할 때도 동일한 환경을 유지할 수 있도록 도와줘! 🚀
- 💡 package.json은 프로젝트의 "설정 파일" 같은 역할을 해!
📌 package.json 파일의 각 필드 역할 정리 📝
✅ 1. name (프로젝트 이름)
📌 역할: 프로젝트(패키지)의 이름을 지정
📌 규칙:
- 영어 소문자, 숫자, 대시(``), 밑줄(_)만 사용 가능
- 공백(띄어쓰기) 사용 불가능
- npm에 패키지를 배포할 경우, 고유해야 함
✔ 예시:
"name": "my-project"
✅ 2. version (프로젝트 버전)
📌 역할: 프로젝트(패키지)의 버전을 지정
📌 규칙: Semantic Versioning (SemVer) 방식 사용
- "주버전.부버전.수정버전" 형식 (major.minor.patch)
- 예: "1.0.0" → 1(주버전) .0(부버전) .0(수정버전)
✔ 예시:
"version": "1.0.0"
📌 버전 변경 의미:
- 주버전(major): 기존 기능과 호환되지 않는 큰 변경이 있을 때 (1.x.x → 2.0.0)
- 부버전(minor): 새로운 기능이 추가되었지만 기존 기능과 호환될 때 (1.0.x → 1.1.0)
- 수정버전(patch): 버그 수정과 같은 작은 변경이 있을 때 (1.0.0 → 1.0.1)
✅ 3. main (진입점 파일)
📌 역할: 프로젝트에서 실행할 기본 파일(엔트리 포인트, Entry Point)을 지정
📌 기본값: "index.js" (생략하면 기본적으로 index.js를 찾음)
✔ 예시:
"main": "server.js"
📌 이 설정을 하면 require() 또는 import를 사용할 때 자동으로 해당 파일을 찾음!
const app = require("my-project"); // 내부적으로 "server.js"를 찾음
✅ 4. type (모듈 시스템 설정)
📌 역할: JavaScript 모듈 시스템을 지정 (CommonJS or ES Module)
📌 값:
- "commonjs" → require() 방식 (기본값)
- "module" → import/export 방식 (ES6 모듈)
✔ 예시 (ES 모듈 사용 설정)
"type": "module"
📌 설정을 "module"로 하면, import/export 문법을 사용할 수 있음!
import express from 'express';
✅ 5. scripts (실행 명령어)
📌 역할: npm 명령어(npm run 사용)를 설정하여 자동화된 실행 스크립트를 정의
📌 사용법:
- npm run script이름 으로 실행 가능
- "start" 스크립트는 npm start로 실행 (run 생략 가능)
✔ 예시:
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"build": "webpack --mode production",
"test": "jest"
}
📌 실행 방법:
npm start # node server.js 실행
npm run dev # nodemon으로 개발 서버 실행
npm run build # 웹팩으로 빌드 실행
npm test # Jest 테스트 실행
✅ 6. description (설명)
📌 역할: 프로젝트(패키지)에 대한 설명을 추가
📌 npm 패키지로 배포할 때, 패키지 설명으로 표시됨
✔ 예시:
"description": "This is a sample project for learning npm."
📌 이 설명은 npm info 패키지이름을 실행하면 볼 수 있어!
- ✅ 결론: package.json의 핵심 필드 이해하기!✔ 패키지 이름 & 버전 관리 (name, version)✔ CommonJS vs ES 모듈 설정 (type)✔ 설명 (description)
- ✔ 자동 실행 명령어 (scripts)
- ✔ 프로젝트 시작 파일 지정 (main)
- 💡 package.json은 프로젝트의 필수적인 설정 파일!
- 🎯 최종 정리!필드명 역할
name 프로젝트(패키지) 이름 version 프로젝트 버전 (major.minor.patch 형식) main 프로젝트의 기본 실행 파일 (Entry Point) type 모듈 시스템 설정 (commonjs or module) scripts 실행할 npm 명령어(자동화된 스크립트) 설정 description 프로젝트(패키지)에 대한 설명
'oz코딩스쿨 > React&Redux' 카테고리의 다른 글
| React 📌6. React 컴포넌트 생명주기, Hooks📝 (0) | 2025.02.12 |
|---|---|
| React 📌5. React의 상태 변경, 조건부 렌더링, Router📝 (0) | 2025.02.12 |
| React 📌4. MPA와 SPA, Props와 State📝 (0) | 2025.02.12 |
| React 📌3. JSX란?📝 (0) | 2025.02.12 |
| React 📌2. React 첫걸음📝 (0) | 2025.02.12 |