Node.js는 서버 사이드 자바스크립트를 실행할 수 있는 강력한 환경이며, 그 핵심 도구 중 하나가 바로 NPM(Node Package Manager)입니다. NPM은 Node.js 프로젝트에서 외부 패키지를 쉽게 설치하고 관리할 수 있게 도와주는 패키지 매니저입니다. 이 글에서는 NPM의 주요 기능과 활용 방법을 살펴보겠습니다.
NPM이란?
NPM(Node Package Manager)은 Node.js의 기본 패키지 매니저로, 다양한 오픈 소스 패키지를 설치, 업데이트, 관리할 수 있도록 도와줍니다. NPM을 사용하면 프로젝트에서 필요한 외부 라이브러리나 모듈을 손쉽게 설치하고, 버전 관리를 효율적으로 할 수 있습니다.
NPM은 패키지 레지스트리를 통해 수많은 패키지를 제공하며, 커뮤니티가 지속적으로 새로운 패키지를 추가하고 업데이트합니다. 개발자는 이 패키지를 자유롭게 사용할 수 있습니다.
프로젝트에 NPM 초기화하기
NPM을 사용하기 전에 먼저 프로젝트 디렉터리에서 NPM을 초기화하여 package.json
파일을 생성해야 합니다. package.json
파일은 프로젝트에 필요한 정보와 의존성을 관리하는 파일입니다.
NPM 초기화 명령
$ npm init
위 명령을 실행하면, 프로젝트에 대한 몇 가지 질문을 받고, 그에 따라 package.json
파일이 생성됩니다. 모든 질문에 대해 기본값을 사용하고 싶다면, npm init -y
명령을 사용하여 자동으로 초기화할 수 있습니다.
$ npm init -y
이 명령을 실행하면 package.json
파일이 기본값으로 생성되며, 이후 NPM 패키지를 설치할 때 이 파일에 기록됩니다.
NPM 패키지 설치
NPM을 사용하면 외부 패키지를 손쉽게 설치할 수 있습니다. 패키지를 설치하면 node_modules
폴더에 패키지 파일이 저장되고, package.json
파일의 dependencies
항목에 기록됩니다.
패키지 설치 명령
$ npm install <패키지이름>
예를 들어, lodash
라는 패키지를 설치하려면 아래와 같이 명령을 실행합니다.
$ npm install lodash
설치가 완료되면 node_modules
폴더 안에 lodash
패키지가 설치되며, package.json
파일의 dependencies
항목에 추가됩니다.
{
"dependencies": {
"lodash": "^4.17.21"
}
}
lodash
와 같이 자주 사용되는 패키지는 프로젝트에서 여러 가지 유용한 기능을 제공합니다. 설치 후에는 require()
또는 import
문법을 사용해 패키지를 불러와 사용할 수 있습니다.
const _ = require('lodash');
let array = [1, 2, 3, 4];
let shuffledArray = _.shuffle(array);
console.log(shuffledArray); // 배열을 무작위로 섞음
전역 설치
일반적으로 패키지는 프로젝트 내부에 설치되지만, CLI(Command Line Interface) 도구와 같이 시스템 전역에서 사용할 패키지는 -g
옵션을 사용하여 전역 설치할 수 있습니다.
$ npm install -g <패키지이름>
전역으로 설치된 패키지는 명령줄에서 전역적으로 사용 가능하며, 특정 프로젝트에만 국한되지 않습니다. 예를 들어, nodemon
같은 패키지를 전역 설치하면 모든 프로젝트에서 사용할 수 있습니다.
의존성 관리
패키지를 설치할 때 dependencies
와 devDependencies
로 구분하여 설치할 수 있습니다.
프로덕션 의존성 (dependencies
)
기본적으로 NPM으로 패키지를 설치하면, package.json
파일의 dependencies
섹션에 기록됩니다. 이 의존성은 프로젝트가 프로덕션 환경에서도 필요한 패키지입니다.
$ npm install express
이 명령으로 설치된 패키지는 dependencies
에 기록됩니다.
개발 의존성 (devDependencies
)
개발 단계에서만 필요한 패키지는 --save-dev
또는 -D
옵션을 사용해 devDependencies
에 기록합니다. 예를 들어, 테스트 라이브러리나 빌드 도구가 이에 해당합니다.
$ npm install eslint --save-dev
개발 의존성으로 설치된 패키지는 프로덕션 환경에서는 설치되지 않고, 개발 환경에서만 사용됩니다.
{
"devDependencies": {
"eslint": "^7.32.0"
}
}
패키지 업데이트 및 삭제
패키지 업데이트
설치된 패키지를 최신 버전으로 업데이트하려면 npm update
명령을 사용합니다. 이는 package.json
에 정의된 버전 범위 내에서 패키지를 최신 버전으로 업데이트합니다.
$ npm update <패키지이름>
모든 패키지를 한 번에 업데이트하려면 npm update
만 입력하면 됩니다.
패키지 삭제
더 이상 필요 없는 패키지는 npm uninstall
명령을 사용하여 삭제할 수 있습니다.
$ npm uninstall <패키지이름>
삭제된 패키지는 node_modules
폴더에서 제거되며, package.json
파일에서도 해당 의존성이 삭제됩니다.
npm 스크립트
package.json
파일의 scripts
섹션을 사용하면 프로젝트에서 자주 사용하는 명령을 NPM 스크립트로 정의할 수 있습니다. 예를 들어, 테스트를 실행하거나 서버를 시작하는 명령을 쉽게 설정할 수 있습니다.
{
"scripts": {
"start": "node app.js",
"test": "echo \"Error: no test specified\" && exit 1"
}
}
위 코드에서는 npm start
명령으로 app.js
파일을 실행할 수 있도록 설정했습니다.
npm 스크립트 실행
$ npm start
위 명령은 package.json
의 scripts
섹션에서 정의한 start
스크립트를 실행합니다. 프로젝트의 명령어를 이렇게 간단하게 실행할 수 있습니다.
npm으로 프로젝트 의존성 설치
기존 프로젝트를 클론한 후, node_modules
폴더가 없는 경우 package.json
에 기록된 모든 의존성을 설치하려면 npm install
명령을 사용합니다. 이 명령은 package.json
에 기록된 모든 패키지를 node_modules
에 설치합니다.
$ npm install
결론
NPM은 Node.js 개발에서 필수적인 도구로, 패키지를 쉽게 설치하고 관리할 수 있게 해줍니다. npm init
으로 프로젝트를 초기화하고, 필요한 패키지를 설치하거나 업데이트하는 작업을 간편하게 할 수 있습니다. 또한 package.json
을 통해 프로젝트의 의존성을 효율적으로 관리할 수 있습니다. NPM을 잘 활용하면 Node.js 개발이 훨씬 더 효율적이고 체계적으로 이루어질 수 있습니다.
댓글 쓰기