본문 바로가기
Language/Node.js

Package Manager (npm)

by 노믹 2022. 12. 12.

Package Manager란?

  • 패키지 매니저는 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴입니다!
  • 다른 사람들이 만들어준 코드를 다운로드 받거나, 자신의 코드를 배포하여 다른 사람이 쓸 수 있도록 할 수 있습니다.
  • Node.js에서 대표적으로 사용하는 패키지 매니저는 npmyarn이 존재합니다.

패키지란?

  • npm이나 yarn에 업로드된 Node.js 모듈을 패키지라고 부릅니다.
  • 모듈이 다른 모듈을 참조하여 사용하는 것과 같이, 패키지도 다른 패키지를 사용할 수 있습니다.
    • 이런 관계를 의존 관계라고 표현합니다.

 

npm 이란?

  • npm은 자바스크립트에서 사용할 수 있는 패키지(모듈) 관리자입니다!
  • 여러분이 Python과 같은 언어에서 FlaskBeautifulSoup과 같은 패키지를 설치할 때 pip가 필요했다면 Node.js에서는 npm을 통해 필요한 패키지를 설치할 수 있습니다.
  • npm을 통해 여러분이 사용할 라이브러리를 쉽게 설치하고 버전을 관리할 수 있고, 제거할 수도 있습니다.
  • npmjs.com 에서 검색해서 확인할 수 있는 패키지만 설치가 가능합니다.
  • 누구나 새로운 패키지를 등록할 수 있습니다.
  • Node Package Manager의 약자로 npm이라는 이름을 가졌지만, 지금은 Node.js와 관계없이 프론트엔드에서만 사용 가능한 자바스크립트 패키지들도 모두 등록되어 있습니다.

yarn 이란?

  • npm의 대체제로 FaceBook이 출시한 패키지 매니저입니다!
  • npm에서 부족한 부분을 보완하여 편리한 기능이 추가되었고, 더욱 빠른 속도로 패키지를 관리할 수 있는 패키지 매니저입니다.

하나의 프로젝트에서 npm과 yarn 2가지를 같이 사용해도 괜찮을까요?

  • npmyarn을 동시에 사용할 경우 모듈을 설치하거나 버전을 수정할 때 오류가 발생할 수 있습니다.
  • 예를들어 npm으로 설치한 버전과 yarn에서 설치한 버전이 다르게 설치될 경우 각 버전들이 다르게 관리될 수 있어 문제가 발생하거나 충돌이 발생할 수 있습니다.
  • 특별한 이유가 존재하지 않다면, 2가지의 패키지 매니저를 같이 사용하지 않는것이 좋습니다.

Package.json 이란?

  • 설치한 패키지들의 버전을 관리할 때 사용하는 파일입니다.
  • 동일한 패키지를 사용하더라도 버전별로 기능을 다르게 사용할 수 있으므로 특정한 버전을 설치할 때 필요합니다.
  • 패키지 관리 외에도 프로젝트명, 작성자, 라이센스 정보등 다양한 메타 데이터들을 기록할 수 있습니다.
  • npmyarn 모두 동일한 package.json 파일을 참조합니다.

Pacakge-lock.json 이란?

  • package.json파일에서 정의한 패키지 외에도 node_modules에 들어있는 패키지들의 버전과 의존 관계가 상세하게 기록되어 있습니다.
  • npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들의 의존 관계를 package-lock.json파일에 저장합니다.
  • 저장된 패키지들은 정확히 일치하는 버전만 기록되므로, 프로젝트에서 의존하는 패키지 버전을 정확하게 관리할 때 사용할 수 있습니다.

 

'Language > Node.js' 카테고리의 다른 글

Routin 이해 및 Router 학습  (0) 2022.12.12
API Client  (1) 2022.12.12
Express.js 란?  (0) 2022.12.12
Node.js란?  (0) 2022.12.12
Node.js 셋팅하기  (0) 2022.12.09