Node.js 인터뷰 질문 8
질문: "npm"이란 무엇이며 어떤 용도로 사용되나요?
답변:
npm(Node Package Manager)은 Node.js의 기본 패키지 관리자로, JavaScript 라이브러리와 도구를 공유하고 관리하는 데 사용됩니다.
npm의 주요 기능
- 패키지 관리: JavaScript 라이브러리, 프레임워크, 도구를 설치, 업데이트, 제거할 수 있습니다.
- 의존성 관리: 프로젝트의 모든 종속성을 추적하고 관리합니다.
- 버전 관리: 패키지의 버전을 관리하여 호환성 문제를 방지합니다.
- 스크립트 실행: 프로젝트 관련 스크립트를 정의하고 실행할 수 있습니다.
- 레지스트리 접근: npm 레지스트리의 오픈 소스 패키지에 접근할 수 있습니다.
주요 npm 명령어
# 패키지 설치
npm install package-name # 로컬 설치
npm install -g package-name # 글로벌 설치
npm install package-name --save # 의존성으로 설치 (package.json에 추가)
npm install package-name --save-dev # 개발 의존성으로 설치
# package.json의 모든 의존성 설치
npm install
# 패키지 업데이트
npm update package-name
# 패키지 제거
npm uninstall package-name
# 새 프로젝트 시작 (package.json 생성)
npm init
# 스크립트 실행
npm run script-name
# 패키지 검색
npm search package-name
# 설치된 패키지 목록 확인
npm list
npm list -g --depth=0 # 글로벌 설치된 루트 패키지만 표시
package.json 파일
npm의 핵심은 package.json
파일로, 프로젝트에 대한 메타데이터와 의존성 정보를 포함합니다:
{
"name": "my-app",
"version": "1.0.0",
"description": "My Node.js application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest"
},
"dependencies": {
"express": "^4.17.1",
"mongoose": "^6.0.0"
},
"devDependencies": {
"nodemon": "^2.0.12",
"jest": "^27.0.6"
}
}
npm의 중요성
- 방대한 생태계: 150만 개 이상의 패키지가 등록된 세계 최대의 코드 레지스트리입니다.
- 코드 재사용: 이미 개발된 패키지를 활용하여 개발 시간을 단축합니다.
- 표준화: JavaScript 프로젝트의 구조와 의존성 관리를 표준화합니다.
- 배포 용이성: 애플리케이션 배포 과정에서 필요한 모든 의존성을 쉽게 설치할 수 있습니다.
npm 대안
- Yarn: Facebook에서 개발한 대안 패키지 매니저로, 병렬 다운로드와 엄격한 버전 관리를 제공합니다.
- pnpm: 디스크 공간을 절약하는 효율적인 패키지 매니저입니다.
npm은 Node.js 생태계의 핵심 구성 요소로, 모든 Node.js 개발자가 숙지해야 할 필수 도구입니다.