npm, npx, yarn은 모두 Node.js 생태계에서 패키지를 관리하고 실행하기 위한 도구들입니다. 이 명령어들은 서로 다른 목적과 기능을 가지고 있으며, 각 도구의 사용 방식과 역할을 이해하는 것이 중요합니다.
1. npm (Node Package Manager)
npm은 Node.js의 기본 패키지 관리자입니다. 주된 역할은 Node.js 패키지 설치, 버전 관리, 의존성 관리를 처리하는 것입니다.
주요 기능 및 명령어:
- 
패키지 설치: 
- 
글로벌 패키지 설치: 
- 
패키지 업데이트: 
- npm update명령어로 패키지를 최신 버전으로 업데이트할 수 있습니다.- npm update
 
 
- 
패키지 제거: 
- 더 이상 필요 없는 패키지를 제거할 수 있습니다.
npm uninstall lodash
 
 
- 
스크립트 실행: 
package.json 파일:
- npm은 프로젝트의 의존성을 관리하는- package.json파일을 사용합니다. 여기에는 프로젝트의 이름, 버전, 의존성 목록 등이 정의됩니다.- {
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}
 
2. npx (Node Package Execute)
npx는 npm 5.2.0 버전 이후부터 기본으로 제공되는 도구로, 명령어를 일회성으로 실행할 때 주로 사용됩니다. 이를 통해 패키지를 전역 설치하지 않고도 명령어를 실행할 수 있습니다.
주요 기능 및 명령어:
- 
패키지 실행: 
- 
글로벌 설치 없이 실행: 
- 
특정 버전의 패키지 실행: 
3. yarn
yarn은 Facebook이 만든 npm의 대안 패키지 관리자입니다. 주로 더 빠른 속도, 결정적 의존성 해상, 오프라인 모드 지원 등의 이유로 사용됩니다. yarn은 기본적으로 npm과 유사한 기능을 제공하지만, 몇 가지 차별화된 기능이 있습니다.
주요 기능 및 명령어:
- 
패키지 설치: 
- 
패키지 제거: 
- yarn remove명령어로 패키지를 제거합니다.- yarn remove lodash
 
 
- 
패키지 업데이트: 
- yarn upgrade명령어로 패키지를 최신 버전으로 업데이트할 수 있습니다.- yarn upgrade
 
 
- 
글로벌 패키지 설치: 
- 
스크립트 실행: 
차이점:
- 속도: yarn은 병렬로 패키지를 다운로드하며, 캐시 시스템을 통해 오프라인에서도 패키지를 설치할 수 있습니다.
- 결정적 설치: yarn.lock파일을 통해 설치되는 패키지의 버전을 결정적으로 고정할 수 있습니다. npm도package-lock.json을 사용해 동일한 기능을 제공하지만,yarn이 처음으로 이 기능을 도입했습니다.
4. npm, npx, yarn의 차이점 요약
| 특징 | npm | npx | yarn | 
| 주요 역할 | 패키지 설치 및 관리 | 일회성 패키지 실행 | 패키지 설치 및 관리 | 
| 사용 사례 | 프로젝트 의존성 관리 및 스크립트 실행 | 패키지를 글로벌 설치 없이 바로 실행 | npm보다 더 빠른 패키지 관리 | 
| 패키지 설치 명령어 | npm install | 해당 없음 | yarn add | 
| 패키지 실행 | npm run <script> | npx <package> | yarn run <script> | 
| 글로벌 패키지 실행 | npm install -g <package> | npx <package> | yarn global add <package> | 
| 패키지 업데이트 | npm update | 해당 없음 | yarn upgrade | 
| 장점 | Node.js의 기본 패키지 관리자 | 글로벌 설치 없이 패키지 실행 가능 | 속도 빠름, 결정적 의존성 해상, 오프라인 설치 가능 | 
- npm: Node.js의 기본 패키지 관리 도구로, 프로젝트 의존성 설치, 관리, 업데이트를 위한 도구입니다. 전 세계적으로 가장 많이 사용됩니다.
- npx: npm과 함께 제공되는 도구로, 패키지를 글로벌 설치 없이 일회성으로 실행할 수 있게 해줍니다.
- yarn: npm의 대체 패키지 관리자이며, 속도와 효율성을 중시하는 프로젝트에서 많이 사용됩니다. 결정적 의존성 해상, 빠른 설치 속도, 오프라인 설치 등의 장점이 있습니다.
각 도구는 서로 다른 용도로 사용되지만, 상황에 맞게 적절한 도구를 선택하여 프로젝트에 적용할 수 있습니다.