본문 바로가기
Etc

[Nodejs] package.json 이란?

by 천우산__ 2023. 5. 2.

package.json 이란, 특정 node js 프로젝트에서 이용하고 있는 패키지들의 이름과 버전, 의존 관계 등을 표기한 문서이다.

 

node js 프로젝트에서 express 프레임 워크를 통해 간단한 백엔드 서버를 구현하였고, DB는 mongo db를 사용하였으며,

 

DB 데이터 입출력은 mongoose 패키지로 한다고 가정해 보자.

 

프로젝트를 만든 내 PC에서 24시간 구동해서 서버를 가동할 것이 아니라면, 만든 프로젝트의 파일들은 다른 PC로 옮겨야 할 것이며

 

해당 PC에도 프로젝트에 사용했던 패키지를 다시 설치해 주어야 한다.

 

위에서 가정한 케이스의 경우 설치 해야할 패키지는 2종이다. (1. express

2. mongoose)

 

하지만, 이는 극히 작은 규모의 서버에 한정되며, 일반적인 규모에서는 다 기억하지 못 할 정도로 많은 패키지를 사용하게 된다.

 

또한, 어떤 경우에는 다른 패키지와의 버전으로 인한 호환 문제를 해결하기 위해 의도적으로 낮은 버전의 패키지를 사용하는 경우도 있다.

 

node js에서는 배포를 대비해  프로젝트를 생성하면 (npm init) 사용한 패키지들과, 버전 등을 기록하는 파일이 생성되는데,

 

이것이 바로 package.json 파일이다.

 

아래는 package.json 의 예제 내용이며, 각 key가 의미하는 바는 아래에서 설명한다.

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "샘플 Node.js 프로젝트",
  "main": "index.js",
  "dependencies": {
    "express": "^4.17.1",
    "body-parser": "^1.19.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  },
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },
  "author": "Jane Doe",
  "license": "MIT"
}

name: 프로젝트의 이름

 

version: Semantic Versioning 사양을 따르는 프로젝트의 버전 (x.x.x 형태)

 

description: 프로젝트에 대한 간단한 설명

 

main: 프로젝트의 진입점, 프로젝트를 실행할 때 실행되는 파일

 

dependencies: 배포된 환경에서 프로젝트가 실행되기 위해 필요한 패키지 목록

 

devDependencies: 개발 목적으로만 필요한 패키지 목록

 

scripts: npm run <script-name>을 사용하여 실행할 수있는 스크립트의 모음

 

author: 프로젝트 작성자의 이름

 

license: 프로젝트의 라이선스