NPM vs Yarn

호두파파·2021년 4월 20일
1

Node.js

목록 보기
1/25

NPM

가장 유명한 자바스크립트 패키지 매니저로, 자바스크립트 개발자들이 가장 많이 쓰는 node.js의 기본 패키지 관리자이기도 하다.
수많은 개발자들이 제작한 패키지를 자유롭게 공유하는 세계 최대의 패키지 저장소로, 압도적인 자료와 커뮤니티를 기반으로 거대한 개발 생태계가 구축되어 있다.

YARN

페이스북에서 제작한 새로 나온 자바스크립트 패키지 매니저이다. 다운받은 패키지 데이터를 캐시에 저장해 중복된 데이터는 다운로드하지않고, 캐시에 저장된 파일을 활용함으로써 패키지 설치속도가 매우 빠르다.
(페이스북에서 제작, 운영하기에 페이스북이 프로젝트 정보를 수집하는 목적으로 제작한 것이 아니냐는 의문도 제기되는 편)

트렌드

yarn이 가파르게 성장하며, 점유율을 차지하고 있지만 여전히 npm의 다운로드가 훨씬 많고, 커뮤니티의 규모도 훨씬 커서 yatn보단 npm과 관련된 이슈나 정보를 찾는게 좀 더 수월하다.

퍼포먼스

검색엔진에서 검색 시 대부분의 포스팅에서 "npm 업데이트 되서 yarn이랑 이제 별차이가 없다"는 문구를 찾아볼 수 있다.
하지만 yarn이 내세우고 있는 ultra Fast의 강점을 충분히 어필할만한 정도로 체감상 속도를 경험하고 있는 경험담도 심심치 않게 찾을 수 있다.

버전관리

프로젝트의 규모가 커지면 활용되는 패키지도 많아지고, 패키지를 전체적으로 업데이트 해줘야 하는 상황이 생긴다.

초기 프로젝트 구성 후 버전관리가 진행되지 않은 상태에서 새로운 프로젝트 환경 구성을 해줄 때, 패키지들이 일괄 최신버전으로 유지되면서, 현재 작업중인 프로젝트의 패키지들과 버전이 맞지 않는 상황이 발생하게 된다.

여기서 npm update를 무자정으로 진행하게 된다면, 종속된 패키지의 업데이트로 Deprecated된 함수가 생기고, 그로인해 특정 함수가 동작하지 않는, '버전 불일치'로 인한 오류가 발생할 가능성이 상당히 크다.

yarn은 프로젝트 구성시 yarn install을 진행한 시점을 기준으로 버전정보가 yarn.lock이라는 파일에 저장된다.

패키지 설치시점 당시 동일한 버전정보를 저장해둠으로써 새로운 환경을 구축할때도 동일한 버전정보를 동일한 버전정보를 가진 패키지 구성이 될 수 있도록 도와준다.

접근성

먼저 퍼플리싱되고, 점유율에서도 우위인 NPM이 유리하다. 다만, 이 부분은 단순 누적자료량에 대한 비교일 뿐, 실제로 정보를 얻는데 제한되거나 불편함이 느껴질 정도로 yarn이 부족하다는 건 아니다.
npm은 node의 기본저장소라 별도의 설치가 필요없는 반면, yarn은 npm 혹은 homebrew를 통해 별도 설치를 해야한다.


출처

NPM? Yarn? , 본인에게 편한게 최고!

profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글