Posts npm과 yarn의 차이
Post
Cancel

npm과 yarn의 차이

npmyarn은 둘 다 자바스크립트 패키지매니저다.

즉, 둘 다 여러 자바스크립트 의존성들을 손쉽게 관리해줄 수 있는 도구라고 할 수 있다.(마치 맥 유저들이 homebrew를 통해 손 쉽게 패키지를 관리할 수 있는 것처럼..)

npm노드 패키지 매니저의 약자로 런ㄴ타임 동안 노드 환경에서 쓰이는 다양한 패키지들을 관리한다. npm은 npm registry라고 불리는 공개적인 패키지들로 구성된 db를 가지고 있다.(마치 자바의 메이븐 저장소처럼)

yarn 은 npm의 부족한 점을 개선하기 위해 페이스북에서 개발되었다. 그럼 어떤 점을 개선했을까?

1) 속도 및 성능

npm은 일반적으로 동기적인 방식으로 패키지를 다운로드한다. 즉, 하나 하나 순차적으로 다운로드를 한다. 반면에 yarn 은 병렬적으로 패키지를 다운로드 하기에 훨씬 속도도 빠르고 성능도 좋다.

2) 보안성

npm은 패키지를 다운로드 받을때 의존성이 있는 다른 패키지들도 같이 다운받는다. 이 특징은 편리한 기능이지만 안정성을 위협할 수 있다고 한다. 하지만 yarn 은 yarn.lock 파일이나 package.json 에 설정되있는 패키지들만 다운로드 받는다. 그로 인해 여러 디바이스에도 동일한 패키지를 설치할 수 있도록 보장해준다.

(2022-04-13 추가)그럼 yarn은 패키지를 다운 받을때 관련된 의존성을 다 다운받는 것일까?

결론부터 말하면 아니라 할 수 있다. 아래 커맨드 명령어로 antd 패키지를 설치해보자.

1
yarn add -D antd

그러면 다음과 같이 antd 과 의존하는 디펜던시들을 lock 파일에서 찾을 수 있고, 실제 node_modules 에 의존하는 디펜던시들이 함께 설치된 것을 확인할 수 있다.

image

image

그러므로 yarn도 의존하는 패키지들을 함꼐 설치한다고 볼 수 있다.

출처

This post is licensed under CC BY 4.0 by the author.

[프론트엔드 개발환경의 이해와 실습] 웹팩 핫로딩

[Typescript] tsconfig 설정 파일