npm 이란...?

김지유·2025년 9월 10일
post-thumbnail

오늘은 자바스크립트를 사용한다면 한번쯤 써봤을 npm에 대해 알아보도록 하겠습니다!

npm?

npm은 'Node Package Manager'의 약자로 Node.js 환경에서 사용되는 자바스크립트 패키지 관리자입니다.

웹사이트에서 수많은 자바스크립트 라이브러리(패키지)를 검색, 설치, 관리할 수 있으며, Node.js를 설치하면 기본적으로 함께 설치되는 도구입니다.

개발자는 npm install [모듈 이름]과 같은 간단한 명령어로 필요한 패키지를 설치하고, package.json 파일을 통해 프로젝트의 의존성을 관리할 수 있습니다.

패키지란?

프로그램을 개발할 때 필요한 코드, 라이브러리, 실행 파일, 설정 등을 묶어 놓은 소프트웨어 단위입니다.

쉽게 말해, 다른 사람이 만들어둔 기능 모음집을 한 덩어리로 묶어서 쓸 수 있게 해둔 것입니다.

그럼 패키지 매니저는 무엇일까요?

패키지 매니저란?

방금 말한 패키지를 쉽게 설치, 업데이트, 삭제, 관리할 수 있도록 도와주는 도구입니다.

패키지 매니저는 프로그램 언어마다 다릅니다.

예시로는

Python - pip, conda, poetry
Java - Maven, Gradle
Javascript - npm, yarn, pnpm

등이 있습니다.

저는 이중 Javascript에 npm 패키지 매니저에 대해 설명하겠습니다.

npm 기본 사용법

npm 패키지는 npm install 패키지명 명령어로 설치 가능합니다.

이렇게 설치된 패키지는 프로젝트의 node_modules 폴더 안에 저장 됩니다.

또한 특정 패키지를 전역적으로 설치해야 할 때는 npm install -g 패키지명과 같이 -g 옵션을 붙이면 됩니다.

이는 개발 도구나 CLI처럼 시스템 전반에서 사용되는 패키지를 설치할 때 자주 활용됩니다.
필요하지 않은 패키지를 제거할 때는 npm uninstall 패키지명 명령어를 사용하고, 특정 버전의 패키지가 필요하면 npm install 패키지명@버전 형태로 설치하면 됩니다.

이처럼 npm은 설치, 제거, 버전 관리까지 직관적으로 사용할 수 있다는 장점이 있습니다.

package.json

npm을 사용하는 프로젝트에서 빠질 수 없는 파일이 바로 package.json입니다.

이 파일은 프로젝트의 메타 정보를 담고 있으며, 어떤 패키지가 의존성으로 필요한지를 기록하는 역할을 합니다.

예를 들어 dependencies에는 실제 서비스 실행에 필요한 패키지가 기록되고, devDependencies에는 개발 환경에서만 사용하는 패키지가 기록됩니다.

dependencies란?
package.json 안에서 프로젝트가 실행될 때 꼭 필요한 패키지 목록을 기록하는 부분입니다.

또한 scripts라는 항목을 통해 반복적으로 사용하는 명령어를 등록해 두고, npm startnpm run build처럼 간단한 명령으로 실행할 수 있습니다.
즉, package.json은 단순히 패키지 목록을 관리하는 것을 넘어 프로젝트의 핵심 설정 파일로 활용된다고 볼 수 있습니다.

npm 주요 명령어

--save-dev (D)

개발환경에서만 사용 ( package.json 안에 devDependencies에 기록)

--global (-g)

전역 설치

npm init

package.json을 만드는 명령어

npm install

package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치

npm update

설치된 패키지를 업데이트하는 명령어

npm start

package.json 의 scripts에 있는 start명령어를 실행하는 부분
만약 start 명령어를 따로 설정하지 않았다면 node server.js가 실행된다.

npm run

script를 실행하는 명령어
만약 scripts에 build명령어가 있다면, npm run build 하면 됩니다.

yarn, pnpm

자바스크립트 생태계에는 npm 이외에도 yarn과 pnpm 같은 패키지 매니저가 존재합니다.
npm은 가장 오랫동안 사용되어 왔고 Node.js 설치 시 기본으로 제공되기 때문에 사용자가 많습니다.

반면 yarn은 속도와 안정성을 개선하기 위해 등장했으며, 캐시 기능을 강화하여 반복 설치 시 매우 빠른 성능을 보여줍니다.

최근에는 pnpm이라는 새로운 패키지 매니저가 등장해 디스크 공간을 효율적으로 사용하는 방식으로 주목 받고 있습니다.
pnpm은 설치된 패키지를 중복 저장하지 않고 링크 방식으로 관리하기 때문에 대규모 프로젝트에서 특히 강점을 발휘합니다.

결국 어떤 패키지 매니저를 선택할지는 팀의 환경과 요구사항에 따라 달라질 수 있지만, npm은 기본적이고 보편적인 선택지라는 점에서 여전히 널리 활용되고 있습니다.

마무리

npm은 자바스크립트 개발을 시작하면 꼭 만나게 되는 도구입니다.
이렇게 자주 사용되는 npm에 대해 알아보아서 좋았습니다.
감사합니다.

profile
난 아직 너무 부족해요

0개의 댓글