[Docs] npm이 뭐지?

April 22, 2021

0.

프로젝트를 위해 Node.js에 대해 알아보기 시작했다. HTML, CSS, JS만 다뤄보다가 Node.js를 접하니 제일 먼저 npm이라는 게 눈에 띈다. express, nodemon, ejs 등등 뭐만 하려고 하면 일단 npm을 사용한다. 블로그를 만들 때 gatsby 프레임워크도 npm을 통해 설치했다. 어떻게 npm은 모든 걸 설치해주는 걸까. npm이 도대체 뭐지?

1.

이번에도 npm Docs를 읽어보기로 한다. 설명에 따르면,

npm은 가장 방대한 소프트웨어 레지스트리이다. 전세계의 오픈소스 개발자들이 package를 공유하기 위해 사용하며, 다양한 조직들이 내부 개발에 npm을 사용하기도 한다. npm은 다음 세 가지 요소로 구성된다.

  1. 웹사이트
    : npm 웹사이트에서 다양한 패키지를 검색하고, 만들고, 관리할 수 있다.
  2. CLI (Command Line Interface)
    : npm은 터미널에서 구동한다.
  3. 레지스트리
    : 레지스트리는 자바스크립트 소프트웨어, 관련 메타정보가 담긴 거대한 데이터베이스다.

라고 한다. npm은 Node Package Manager 의 준말이다. 근데 여기서 Package란 뭘 뜻하는 걸까?

2.

패키지는 공개적으로 사용할 수 있는 코드다. 일반적으로 애플리케이션에 특정 기능들을 추가할 수 있도록 미리 누군가에 의해 만들어진 코드 파일이라고 생각하면 된다. Node.js에서의 패키지는 module에 필요한 파일들로 구성되어 있다. 그리고 모듈이란 프로젝트에 추가할 수 있는 JavaScript Libraries를 의미한다.

결론적으로 npm은 Node.js 환경에서 자바스크립트 라이브러리를 모아두고, 설치와 관리를 돕는 프로그램 정도로 이해하면 될 것 같다. npm을 통해 자신이 작성한 패키지를 공개할 수도 있고, 필요한 패키지를 검색하여 사용할 수도 있는 것이다.

3.

기본적인 npm 사용법에 대해서 알아보자. npm을 사용하기 위해서는 당연하게도 Node.js와 npm 설치가 필요하다. 본인의 컴퓨터에 이미 설치가 되어있는지 여부를 확인하고자 한다면,

node -v
npm -v

를 통해 버전 정보를 확인해보면 된다.

패키지를 설치하기 위해서는,

npm install '패키지 이름'

이렇게 npm install 명령어 뒤에 설치할 패키지 이름을 지정하면 된다.

npm을 사용하다 보면 npm install -g '패키지 이름' 처럼 명령어 사이에 -g 옵션을 추가하는 경우가 있는데, 이는 패키지의 사용범위를 나타내는 옵션이다.

  • 지역(local) 설치
    : 옵션을 별도로 지정하지 않으면 지역으로 설치되며, 프로젝트 루트 디렉토리에 node_modules 디렉토리가 자동 생성되고 그 안에 패키지가 설치된다. 지역 설치된 패키지는 해당 프로젝트 내에서만 사용할 수 있다.
  • 전역(global) 설치
    : -g 옵션을 지정하여 전역에 설치된 패키지는 모든 프로젝트가 공통으로 사용할 수 있다. 윈도우의 경우 c:\Users\%USERNAME%\AppData\Roaming\npm\node_modules 디렉토리에 전역 패키지가 설치된다.

4.

패키지가 npm 레지스트리에 추가되기 위해서는 패키지의 설명이 담긴 package.json 파일이 필수적으로 포함되어야 한다. 특히 패키지의 nameversion 정보가 필수적이다.

또한 Node.js의 패키지는 빈번하게 업데이트된다. 따라서 프로젝트에서 이를 일괄적으로 관리할 필요가 있다. 위에서 언급했던 package.json 파일이 그러한 역할을 수행한다.

패키지를 설치하면 package.json - dependencies에 패키지의 이름과 버전이 기록된다.

5.

자주 사용하는 npm 명령어로는,

// package.json 생성 (프로젝트에 대한 여러 가지 정보를 입력하도록 요구받는다)
npm init

// 기본 설정값으로 package.json 생성
npm init -y

// 패키지 제거
npm uninstall 패키지 이름

// 패키지 업데이트
npm update 패키지 이름

// 패키지 Docs URL로 연결
npm docs 패키지 이름

// 패키지 정보 확인
npm view 패키지 이름

// 전역 패키지 설치 폴더 확인
npm root -g

등이 있다.

참고

npm Docs
Poiemaweb


Profile picture

42KIM A person trying to create something.
👉Github