728x90
반응형
1. 패키지 매니저
패키지 매니저(package manager)는 Node.js 프로젝트에서 필요한 라이브러리(패키지)를 설치, 관리, 업데이트할 수 있게 도와주는 도구입니다.
1. npm (Node Package Manager)
- Node.js 설치 시 자동으로 같이 설치됩니다.
- 전 세계에서 가장 많이 사용되는 자바스크립트 패키지 매니저입니다.
- 과거에는 속도가 느리고 캐시 처리가 약점이었지만, 최근 버전에서는 많이 개선되었습니다.
- 공식 페이지
2. yarn
- Facebook에서 만든 npm의 대안
- npm보다 더 빠르고 안정적인 패키지 관리를 목표로 만들어졌습니다.
- yarn.lock 파일을 이용해 버전 일관성을 더 엄격하게 보장
- 설치가 병렬로 진행되어 속도가 빠름니다.
- 별도로 설치해야 합니다. (npm install -g yarn)
- 공식 페이지
2. package.json
package.json은 Node.js 프로젝트의 정보를 담고 있는 핵심 파일입니다. 이 파일은 말 그대로 "패키지에 대한 설명서"이며, 프로젝트의 이름, 버전, 필요한 패키지 목록, 실행 스크립트 등 다양한 정보를 담고 있습니다. Node.js 프로젝트를 만들 때 npm init 명령어를 실행하면 이 파일이 자동으로 생성됩니다.
1. package.json의 역할
📦 프로젝트 정보 제공 | 프로젝트 이름, 설명, 버전 등을 저장합니다. |
🧩 의존성 관리 | npm install 시 어떤 패키지를 설치할지 지정합니다. |
🛠 실행 스크립트 지정 | npm start처럼 프로젝트를 실행하는 명령어를 설정할 수 있습니다. |
🔄 다른 개발자와 협업 | package.json만 있으면 같은 환경을 쉽게 복원할 수 있습니다 (npm install 한 번으로 끝!). |
2. 기본 구조
- 이 프로젝트는 어떤 이름이고, 어떤 버전이고, 어떤 라이브러리를 사용하는지"를 기록합니다.
- 사람과 npm이 읽기 쉽게 정리된 기본 설명서입니다.
{
"name": "my-app",
"version": "1.0.0",
"description": "나의 첫 Node.js 앱",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
"keywords": ["node", "app"],
"author": "김사과",
"license": "MIT",
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^3.0.2"
}
}
3. package-lock.json
- npm이 실제로 어떤 정확한 버전의 패키지를 설치했는지 기록합니다.
- 모든 하위 의존성까지 버전과 설치 경로를 상세히 기록합니다.
- 설치 결과가 고정되므로 재현성(reproducibility)을 보장합니다.
- 수정하거나 삭제하지 마세요!
- 팀 프로젝트에서는 꼭 같이 Git에 포함해야 모든 개발자의 환경이 일치합니다.
728x90
반응형