npm vs yarn

Dongjun Ahn·2023년 9월 25일
0

install

npm : Node를 설치하면 자동으로 설치된다.
yarn : npm 을 설치하고 yarn을 설치해야한다.

output

Lock file

npm
package-lock.json 파일을 생성한다.
이 파일은 결정성과 단순성 사이의 균형 때문에 조금 더 복잡하다.
이러한 복잡성 때문에 package-lock.json 파일은 다른 npm 버전에 대해 동일한 node_modules 폴더를 생성한다.
모든 종속성(dependency)은 package-lock.json 파일에 연관된 정확한 버전 번호를 갖고 있다.
yarn
yarn은 yarn.lock 파일을 생성한다.
yarn.lock 파일은 쉬운 병합에 도움이 된다. 이 파일의 디자인 때문에 병합도 예측이 가능하다.

Output log

npm
npm은 npm 명령의 방대한 출력 로그를 생성한다.
본질적으로 npm 이 하는 일에 대한 스택 추적의 뭉치이다.
yarn
yarn 로그는 깨끗하고 시각적으로 구별 가능하며 간단하다.
이해를 돕기 위해 트리 형식으로 정렬된다.

Fetching packages

npm
npm은 모든 npm install 명렁을 통해 npm 레지스트리에서 종속성을 가져온다.
yarn
yarn은 종속성을 로컬에 저장하고 yarn add 명령을 통해 디스크에서 가져온다.
종속성이 로컬에 있다고 가정한다.

속도

2016,2017년 이때 기준으로는 yarn이 가시적으로 npm보다 속도나 안정성이 뛰어났다. 그렇지만 npm 또한 몇년간 발전을 거듭하며 단점을 많이 보완했기 때문에 현재 npm/yarn의 performance와 stability 차이는 그리 크지 않다고 봐도 무방.(약간 yarn이 우세)
하지만 yarn 의 병렬적 패키지 설치로 인한 가벼움, 또한 yarn.lock 의 버전의 차이로 인한 버그 방지 등의 기능은 yarn이 npm 보다 더 좋은 툴이라고 설명하기 충분하다.

보안

yarn은 보안 측면에서 npm보다 더 안전한 것으로 알려져 있다. npm은 자동으로 패키지에 포함된 다른 패키지 코드를 실행하는데 편리하지만 안정성을 위협할 수 있다. 이로 인해 보안 시스템에 몇 가지 취약성이 발생하며 나중에 심각한 문제가 발생할 수 있다.
반면에 yarn은 yarn.lock 또는 package.json파일에 있는 파일만을 설치한다. 보안은 yarn의 핵심 기능 중 하나이지만 최근 npm의 업데이트에서 npm의 보안 업데이트도 크게 향상되었다.

결론

각자에게 편한 것을 사용하는 것이 가장 좋지만 만약 둘다 사용해보지 않은 상황이라면 npm을 사용해보는 것을 추천한다.
npm 에 커뮤니티와 접근성의 소중함을 알고 이후에, 그럼에도 npm 의 무거움의 느낌이 무엇인지 알게 되는 순간 yarn 을 한번 사용해보면 좋을 것 같다는 생각을 한다.

Reference

https://velog.io/@kysung95/%EA%B0%9C%EB%B0%9C%EC%83%81%EC%8B%9D-npm%EA%B3%BC-yarn
https://youngmin.hashnode.dev/npm-yarn
https://joshua1988.github.io/vue-camp/package-manager/npm-vs-yarn.html

profile
Front-end Developer

0개의 댓글