npm 최종 수정일 2026-06-20 16:58 조회수 2
대시보드

npm

기본 정보

  • 이름: npm
  • 약칭: npm (Node Package Manager)
  • 분류: JavaScript 패키지 관리자(Package Manager)
  • 개발사: npm, Inc. (현재 GitHub/Microsoft)
  • 최초 공개: 2010년
  • 주요 용도: 패키지 설치, 의존성 관리, 프로젝트 스크립트 실행
  • 관련 주제: #npm #Nodejs #JavaScript #PackageManager #Frontend

개요

npm(Node Package Manager)은 Node.js 환경에서 사용하는 공식 패키지 관리자이다.

개발자는 npm을 이용해 라이브러리와 프레임워크를 쉽게 설치하고 업데이트할 수 있으며, 프로젝트에서 필요한 의존성(Dependency)을 효율적으로 관리할 수 있다.

React, Vue.js, Next.js, Express 등 대부분의 JavaScript 프로젝트는 npm을 기반으로 관리된다.


npm 구조

npm Registry

↓

npm install

↓

node_modules

↓

프로젝트

↓

npm run

↓

애플리케이션 실행

동작 과정

package.json 생성

↓

패키지 설치

↓

node_modules 생성

↓

개발

↓

빌드

↓

배포

주요 특징

  • 패키지 설치
  • 의존성 관리
  • 버전 관리
  • 스크립트 실행
  • 오픈소스 생태계 제공
  • 자동 업데이트 지원

설치 확인

Node.js 설치 후 함께 제공된다.

npm -v

Node.js 버전 확인

node -v

프로젝트 생성

npm init

기본값으로 생성

npm init -y

package.json

프로젝트 정보를 저장하는 파일이다.

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "dev": "vite"
  }
}

패키지 설치

npm install react

축약형

npm i react

개발 의존성 설치

npm install -D vite

또는

npm i --save-dev vite

빌드 도구나 테스트 도구 설치 시 사용한다.


전역 설치

npm install -g typescript

모든 프로젝트에서 사용할 수 있도록 설치한다.


패키지 삭제

npm uninstall react

패키지 업데이트

npm update

특정 패키지

npm update react

설치된 패키지 확인

npm list

전역 패키지 확인

npm list -g

package-lock.json

의존성 버전을 고정하는 파일이다.

package.json

↓

package-lock.json

↓

동일한 버전 설치

팀 프로젝트에서 동일한 개발 환경을 유지하는 데 중요한 역할을 한다.


node_modules

project/

└── node_modules/

설치된 모든 패키지가 저장되는 폴더이다.

일반적으로 Git에는 포함하지 않는다.


.gitignore

node_modules/

.env

dist/

node_modules는 용량이 크므로 버전 관리에서 제외하는 것이 일반적이다.


npm scripts

{
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "start": "node app.js"
  }
}

실행

npm run dev

package.json 의존성

dependencies

운영 환경에서 필요한 패키지

"dependencies": {

  "react": "^19.0.0"

}

devDependencies

개발 환경에서만 필요한 패키지

"devDependencies": {

  "vite": "^7.0.0"

}

Semantic Versioning

1.2.3

↓

Major.Minor.Patch
번호의미
Major큰 변경(호환성 깨짐)
Minor기능 추가
Patch버그 수정

버전 기호

^

~

*
기호의미
^Minor, Patch 업데이트 허용
~Patch 업데이트만 허용
정확한 버전지정한 버전만 사용

npm Registry

Developer

↓

npm Registry

↓

Package Download

공식 저장소에서 패키지를 다운로드한다.


npm과 npx 차이

npmnpx
패키지 설치패키지 즉시 실행
프로젝트에 저장 가능설치 없이 실행 가능
지속 사용일회성 실행에 적합

예시

npx create-next-app

npm과 Yarn 비교

npmYarn
Node.js 기본 포함별도 설치
공식 패키지 관리자Meta 개발
보편적으로 사용빠른 설치 성능으로 인기
package-lock 사용yarn.lock 사용

대표 활용 분야

  • React 개발
  • Next.js 개발
  • Vue.js 개발
  • Node.js 서버 개발
  • TypeScript 프로젝트
  • CLI 도구 설치
  • AI 프론트엔드 개발
  • 웹 애플리케이션 개발

장점

  • 거대한 패키지 생태계
  • 쉬운 설치와 업데이트
  • 의존성 자동 관리
  • 프로젝트 자동화 지원
  • 무료 사용 가능
  • Node.js와 기본 제공

단점

  • node_modules 용량이 커질 수 있음
  • 의존성 충돌 가능성
  • 보안 취약 패키지 관리 필요
  • 패키지 수가 많아 설치 시간이 길어질 수 있음

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • npm ci를 사용하여 CI 환경에서 일관된 설치 수행
  • package-lock.json은 Git에 포함
  • node_modules는 Git에서 제외
  • npm audit로 보안 취약점 점검
  • 불필요한 패키지 제거
  • scripts를 활용한 빌드 자동화
  • 환경 변수는 .env로 관리
  • 버전 업그레이드 전 변경 사항 확인
  • 전역 설치는 최소화
  • 팀 내 Node.js 및 npm 버전 통일

npm과 함께 사용하는 기술


대표 명령어

명령어설명
npm init -y프로젝트 초기화
npm install패키지 설치
npm uninstall패키지 삭제
npm update패키지 업데이트
npm run dev개발 서버 실행
npm run build빌드 실행
npm audit보안 검사
npm ci잠금 파일 기준 설치

관련 문서


출처

  • npm 공식 홈페이지
  • npm 공식 문서
  • Node.js 공식 문서