본문 바로가기
카테고리 없음

npx npm 비슷하게 생겨서 뭐가 다른건데

by omini004 2025. 1. 10.

 

개발을 진행하게 되면 npx npm을 많이 보게 된다.

필자는 ReactNative로 개발하는걸 좋아하는데 그러다 보니 처음 세팅할때, 프로그램을 돌릴때, 다운받을때 항상 마주치곤 했는데

그럴때마다 두개의 차이점이 너무 궁금해졌다.

 

그래서 이번 포스팅은 npx, npm에 대해 작성해보려한다.

우선 npm(Node Package Mannager) 란?

Node.js의 패키지 매니저로 전 세계의 오픈소스 라이브러리나 유틸을 설치하고 관리하게 해 준다.

보통 패키지 설치(npm install), 실행(npm run), 업데이트 또는 제거에 사용한다.

설치된 패키지는 로컬(node_modules)에 저장되며 또는 글로벌로도 설치가 가능하다.

 

그럼 npx(Node Package Executor) 는?

npm에서 패키지를 실행하기 위한 도구라고 한다.

주로 패키지를 설치하지 않고도 바로 실행 가능하고, 로컬에 설치된 패키지 또는 특정 버전의 패키지를 바로 사용할 수 있다.

 

쉽게 설명한다면,

npm은 "도구를 사서 쌓아놓고 사용하는 것", npx는 "도구를 내집에서 찾고 실행 도구가 없다면 공구 대여소에서 도구를 빌리는 것" 이라고 생각하면 쉽다.

만약 내가 React Native 프로젝트를 자주한다! 라고 하면 

npm install -g react-native-cli

npm으로 다운 받아서 다음 프로젝트때는

react-native init MyProject

로 실행하면 되는 것이고 

 

설치 없이 한 번의 프로젝트를 만들고 싶을때,

npx react-native init MyProject

를 하면 된다.

 

 

그럼 이둘의 장단점은 각각 어떻게 될까?

 

npm은 바로 사용할 수 있으므로 네트워크나 다운로드 없이 빠르게 사용할수 있다는 장점이 있지만, 메모리를 차지한다는 단점이 있고,

npx는 빌려서 사용하면 최신 버전으로 사용할수 있다는 장점이 있지만, 다운로드를 받아야 하기 때문에 느리다는 단점이 있다.


- 용어 정리 -

Node.js

 

JavaScript의 런타임 환경(프로그램이 실행될 수 있는 공간)으로, 브라우저가 아닌 컴퓨터에도 실행 할 수 있게 해준다.

JavaScript는 원래 브라우저에서만 실행이 됐었는데, Node.js 덕분에 브라우저가 아닌 컴퓨터에서도 실행할 수 있게 됐다.

 

원래는 버튼클릭, 애니메이션 같은 동적인 이벤트를 처리하는 역할이였는데, node.js로 인해 데이터베이스와의 통신이나 파일 처리, 데이터 처리가 가능해 졌다.

 

Node.js 예시)

사용자 버튼클릭 -> 서버(Node.js)가 DB에서 정보 가져옴 -> 브라우저로 값 전달 -> 화면에 보여줌(로그인시 사용자이름 뜸 )