리액트나 Node.js를 쓸때 yarn을 설치하고 시작하는 튜토리얼들이 많았다.
그래서 자연스럽게 yarn을 썼었는데 문득 yarn이 npm이랑 똑같은 역할을 같아 둘의 차이가 궁금해졌다.
package-lock.json이랑 yarn.lock 둘다 있는게 번거롭기도 했고.. 요즘엔 npm만 쓰는데 많은 사람들이 yarn을 쓰는 이유가 있을 테니까! 싶어서 둘의 차이점을 찾아봤다.

npm과 yarn의 공통점

  1. 둘 다 Node.js package manager다.
  2. 둘 다 package.json에 저장된 프로젝트 메타데이터를 사용한다.

Yarn

  • npm을 보완하기 위해 페이스북에서 개발한 Node.js 패키지 매니저다.

Yarn의 장점

  1. 속도가 빠르다
    npm은 패키지를 설치할때 순서대로 하나씩 설치하는 반면, yarn은 동시에 (병렬로) 여러 패키지를 설치한다.

  2. plug n play
    yarn은 node_modules 폴더 대신 _pnp.cjs 파일에 최적화된 디펜던시 맵을 만들어둔다. 그래서 빠르게 프로젝트를 구동하거나 install할 수 있다. -> 그걸 바탕으로 인스톨하기때문에 오프라인일때도 딜레이가 매우 적다!

  3. 보안이 더 잘 되어있다.
    npm은 dependency(의존성)이 있는 모든 패키지를 바로 설치하는 반면, yarn은 yarn.lock이나 package.json에 있는 파일만 설치한다. (npm, yarn 둘다 시큐리티 체크는 한다.)