[Node.js] NPM vs Yarn

조성민·2022년 10월 19일
0
post-thumbnail

package manager

Node.js가 인기있고 매~우 많이 쓰인다는 것은 모두가 알 것이다.

Netflix, Uber, eBay 등 인기있는 기업에서도 개발을 위해 쓰이고 있다. Node.js가 인기있는 이유 중 하나는 라이브러리와 오픈소스 패키지의 다양성이다.

Express.js, Lodash, AsyncJS, Meteor, Sails 등이 Node.js를 위한 유명한 프레임워크 중 하나이며 웹개발에 아주 유용하게 쓰인다. 하지만 package manager가 있어야 Node.js 프로젝트에서 이들을 사용 및 관리를 할 수 있게 된다.

package manager는 설치, 제거, 패키지의 종속성과 바이너리뿐만 아니라 패키지의 버전 업그레이드를 가능하도록 해준다. NPM(Node Package Manager)Yarn이 대표적인 두 가지이다. 이 두 가지의 차이점에 대해 개요를 설명한 후에 알아보겠다.



개요

Yarn은 2016/10/11에 공개 되었다. Yarn은 NPM의 단점과 실수들을 보완하고 더 빠르고 안정적이고 안전하게 만들었다. 그래서 처음엔 NPM의 대체재라고 인식되었고 또한 lock 파일(yarn.lock)을 제공하여 한 프로젝트에 참여한 여러 인원들의 패키지 버전에 안정감( 통일성 )을 주었다.

그러자 NPM에서 Yarn을 보고 보완점을 잘 파악한 후 많은 전진적인 업데이트를 통해 Yarn만큼의 설치 빠르기와 패키지의 종속 안정감을 주어 Yarn과의 경쟁에서 top package manager position을 유지했다. NPM의 최근 업데이트에서 Yarn처럼 자동으로 lock 파일(package-lock.json)을 만들어지도록 하였다.

결론적으로는 Yarn은 NPM을 완전히 대체하지 못하였지만 NPM으로 가능한 부분들은 Yarn으로도 충분히 가능한 부분이다. 따라서 package manager를 선택하는 것은 온전히 개발자 개인 또는 그 단체의 판단이다.



NPM ( Node Package Manager )

NPM은 두 가지 일을 한다.

  1. 온라인 플랫폼을 제공한다. NPM registry에 누구든지 Node.js 패키지에 관한 생성, 업로드, 퍼블리쉬, 도구들을 공유할 수 있다. 이것들은 온라인 플랫폼(NPM registry)에 등록된 오픈소스이며 누구든지 검색하고 이용할 수 있다.

  2. command-line tool이다. 방금 위에서 말한 것들을 실행할 수 있도록 도와준다.

Yarn

Yarn은 페이스북에서 만든 JavaScript package manager이다. Yarn은 아직 Resource Negotiator로 쓰이고 있으며 NPM과 비슷한 기능을 제공해준다. NPM registry or GitHub 레파지토리에서 설치, 제거, package dependencies를 관리할 때 NPM 대체재로써 쓰인다.



Commands


참고

profile
풀리면 재밌는 알고리즘

0개의 댓글