
React 프로젝트를 하기위해 CRA(Create-React-App)를 설치할 때 무심코 npx 같은 명령어를 사용한다.
무엇일까???
node, npm, npx 셋 다 Node.js를 설치하면 함께 깔리는 도구예요.
Node
앞서, [EP.03]에서 V8엔진을 공부하면 알 수 있는 내용이다.
https://codewizard.tistory.com/82
- 자바스크립트 코드를 실행하는 엔진입니다.
- 원래는 브라우저에서 실행되기 때문에, 브라우저 밖에서도 JS 코드를 실행할 수 있게 해주는 런타임 환경
npm(Node Package Manager)
Package Manager = 관리
npm은 노드 패키지 관리자를 뜻한다.
역할
1. Node.js 패키지의 설치
2. 버전 관리, 프로젝트의 종속성 관리
3. 스크립트 실행 package.json 파일에 정의된 스크립트를 실행합니다.
npx(npm package Execute)
npm 5.2.0 이후에 포함된 실행 도구입니다.
역할
- 로컬이나 전역으로 설치된 Node.js 패키지 실행
- 따라서 npm과 비교대상이 아니라, npm을 좀 더 편하게 사용하기 위해 npm에서 제공해 주는 하나의 도구
- 패키지를 설치하지 않고도 npm 레지스트리에서 원하는 패키지를 실행할 수 있다.
*왜 따로 npx를 만들었어요?
'npm은 설치', npx는 실행에 집중시키기 위해서입니다.
npx가 생기기 전엔, 패키지를 실행하려면 반드시 설치해야 했어요.
Javascript 생태계는 Spring 생태계보다 훨씬 변화무쌍하여 항상 npm으로 설치하면 문제가 생겨요
- 버전 충돌 위험
- 패키지가 업데이트된다면? -> 전역 관리 패키지도 따로 업데이트, 로컬 관리 패키지도 따로 업데이트하면 번거롭다.
➡️ 내부적으로 동작
1. 현재 프로젝트의 node_modules/.bin 에서 실행 파일을 찾음
2. 없으면 npm regisitry에서 임시 다운로드 후 실행
3. 실행 후 캐시 보관 or 바로 삭제
==> 한 번만 사용하는 툴은 전역 설치 없이 사용
요약
- npm: 패키지 관리자, 전역적
- npx: 패키지 실행자, 일회성
'Solo Project > 백엔드 개발자의 우아하게 RN 14일 견디기' 카테고리의 다른 글
| [EP.05] RN 완성을 위한 최소한의 React (0) | 2025.11.06 |
|---|---|
| [EP.03] 코드의 건강과 독선적인 코더 (0) | 2025.10.07 |
| [EP.02] 백엔드 개발자를 위한 React Native를 빠르게 익히는 자바스크립트 기초 지식(Lexical, TDZ, ES6, V8엔진, JIT) (0) | 2025.10.07 |
| [EP.01] 채용공고가 날 흔들었다… AI Agent 역량을 위해 13일간 RN 앱 만든 백엔드 개발자의 도전기 (2) | 2025.10.03 |