NPM

henry·2024년 8월 26일

Node Package Manager
NPM(Node Package Manager)은 Node.js를 위한 패키지 관리자.
NPM은 자바스크립트 패키지(모듈)의 설치, 버전 관리, 의존성 해결 등을 돕는 도구


1. NPM의 주요 기능


  • 패키지 설치 : NPM은 로컬 프로젝트 또는 전역으로 자바스크립트 패키지를 설치.
  • 의존성 관리 : 프로젝트에서 필요한 라이브러리의 의존성을 자동으로 설치하고 관리.
  • 스크립트 실행 : package.json 파일에 정의된 스크립트를 실행.
  • 패키지 게시 : 개발자가 만든 패키지를 NPM 레지스트리에 게시하여 사용할 수 있게 함.



2. NPM의 기본 구성 요소


패키지

  • 패키지는 특정 기능을 수행하는 자바스크립트 코드 모음.
    예를 들어, Express는 Node.js 서버 개발을 위한 패키지.

NPM 레지스트리

  • NPM 레지스트리는 전 세계 개발자들이 공유하는 중앙 저장소.
  • 수십만 개의 패키지가 등록되어 있어 누구나 설치해서 사용.

package.json 파일

  • 프로젝트의 메타데이터를 담고 있는 JSON 파일.
  • 이 파일에는 프로젝트 이름, 버전, 의존성, 스크립트 등이 정의.
{
  "name": "my-project",
  "version": "1.0.0",
  "description": "A simple Node.js project",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}



3. NPM 명령어


패키지 초기화

npm init

  • 새로운 Node.js 프로젝트를 시작할 때 package.json 파일을 생성.

npm init -y

  • 기본 설정으로 package.json 파일을 빠르게 생성.

패키지 설치

npm install <패키지명>

  • 특정 패키지를 설치하고, package.json 파일의 dependencies 섹션에 추가.

npm install

  • package.json 파일에 정의된 모든 의존성을 설치.

npm install -g <패키지명>

  • 패키지를 전역으로 설치하여 CLI(명령줄)에서 사용 가능하게 함.

패키지 제거

npm uninstall <패키지명>

  • 설치된 패키지를 제거합니다.

패키지 업데이트

npm update <패키지명>

  • 특정 패키지를 최신 버전으로 업데이트.

npm outdated

  • 프로젝트에서 사용 중인 패키지 중 업데이트 가능한 패키지를 확인.

스크립트 실행

npm run <스크립트명>

  • package.json 파일에 정의된 스크립트를 실행.
  • 예: npm run start는 package.json의 scripts 섹션에 정의된 start 스크립트를 실행.

캐시 관리

npm cache clean --force
NPM의 캐시를 정리.



4. NPM의 동작 원리

  • NPM은 패키지를 설치할 때 node_modules라는 디렉터리에 패키지를 저장.
    이 디렉토리는 프로젝트 루트에 위치하고, NPM은 여기에서 패키지를 찾아 사용.

의존성 트리

  • NPM은 프로젝트에서 사용하는 모든 패키지와 그 패키지가 의존하는 다른 패키지들을 트리 구조로 관리.

버전 관리

  • NPM은 패키지 버전 관리를 통해 서로 다른 프로젝트에서 동일한 패키지의 다양한 버전을 사용할 수 있게 함.



5. NPM의 장점

풍부한 생태계
수많은 오픈 소스 자바스크립트 패키지를 사용할 수 있어, 개발 속도를 크게 높일 수 있음.

자동 의존성 관리
필요한 패키지를 쉽게 설치하고, 의존성을 자동으로 관리.

버전 관리
다양한 프로젝트에서 패키지 버전을 일관되게 관리.



6. NPM의 한계

패키지 충돌
다양한 패키지가 서로 의존할 경우, 버전 충돌이 발생할 수 있음.

보안 문제
수많은 패키지가 오픈 소스로 공개되어 있어, 악의적인 코드가 포함될 위험.



7. NPM 사용 시 유용한 팁

package-lock.json 파일

  • 이 파일은 npm install을 실행할 때 생성
  • 설치된 패키지들의 정확한 버전을 기록.
  • 이 파일을 통해 개발 환경 간의 일관성을 유지.

버전 범위 관리

  • ^, ~ 기호를 사용하여 패키지 버전의 범위를 지정.
  • ^는 주 버전(major)이 고정되고, ~는 부 버전(minor)이 고정.

전역 설치 패키지 관리

  • CLI 도구나 전역적으로 사용되는 패키지는 npm install -g로 설치하여 시스템 전체에서 접근.

0개의 댓글