NPM과 NPX의 차이?

개발자라면 누구나 한 번쯤 마주하는 질문이죠! 이름은 비슷하지만, npm은 ‘도서관’이고 npx는 ‘일일 대여 서비스’라고 생각하면 이해가 아주 빠릅니다.


1. npm (Node Package Manager)

npm은 패키지를 관리(설치, 업데이트, 삭제)하는 도구입니다.

  • 역할: 내 컴퓨터나 프로젝트 폴더에 패키지 파일을 다운로드해서 저장합니다.
  • 사용 방식: 주로 npm install <패키지명>으로 설치한 뒤, 내 코드에서 import하여 사용합니다.
  • 단점: 단순 실행만 하고 싶은 도구(예: create-next-app)도 일단 내 컴퓨터에 설치해야 하므로 용량을 차지하고, 시간이 지나면 버전이 구식이 됩니다.

2. npx (Node Package Execute)

npx는 패키지를 실행하는 도구입니다. (npm 5.2 버전부터 기본 포함됨)

  • 역할: 패키지를 내 컴퓨터에 영구적으로 설치하지 않고, 임시로 내려받아 실행한 뒤 바로 삭제합니다.
  • 사용 방식: npx <패키지명>을 입력하면 최신 버전을 가져와서 한 번만 실행합니다.
  • 장점: 항상 최신 버전을 사용할 수 있고, 컴퓨터 용량을 아낄 수 있습니다.

한눈에 비교하기

구분npmnpx
주요 목적패키지 설치 및 의존성 관리패키지 즉시 실행
저장 방식node_modules에 저장됨임시 저장 후 실행 후 삭제
버전 관리특정 버전을 고정해서 사용항상 최신 버전 실행 가능
주요 사례react, lodash 등 라이브러리 설치prisma, create-next-app 등 도구 실행

실무에서의 활용 (Prisma 예시)

질문하신 Prisma를 예로 들면 차이가 명확해집니다.

  1. npm install @prisma/client: 우리 프로젝트 코드 내에서 데이터베이스를 조회할 때 써야 하므로 설치(npm)해서 계속 가지고 있어야 합니다.
  2. npx prisma migrate dev: DB 구조를 바꿀 때 가끔 사용하는 명령어(도구)입니다. 굳이 내 컴퓨터에 평생 설치해 둘 필요 없이, 필요할 때만 실행(npx)하는 것이 효율적입니다.

결론

  • 내 프로젝트의 부품이 되는 코드는 npm으로 설치하세요.
  • 딱 한 번 실행하거나, 가끔 쓰는 도구는 npx로 가볍게 실행하세요.