패키지 매니저

간단하게 생각하면 **js에서 사용하는 의존성 관리 도구**이다.

개발에 필요한 라이브러리, 모듈, 플러그인 등을 쉽게 설치하고 관리할 수 있도록 해준다.

npm

Node.js 생태계에서 가장 대표적인 패키지 매니저이다. Node.js를 설치할 때 같이 설치된다.

패키지 설치 시에 **각각의 패키지들을 별도로 설치**하기 때문에 공유된 의존성이 중복으로 설치될 수 있다.

의존성 트리가 깊어질수록 패키지 설치 속도가 느려지고 디스크 공간을 많이 차지할 수 있다.

yarn(classic)

Facebook에서 개발한 패키지 매니저로 npm의 단점을 보완하여서

더 나은 보안과 패키지 병렬 설치 등의 기능을 제공한다. (yarn.lock 파일을 이용하여 의존성 관리)

또한 다운받은 패키지를 캐시에 저장해서 중복된 데이터는 다운로드 하지 않는다.

(npm도 많은 발전을 거쳐서 속도 차이 또한 그렇게 크지 않으며 package.lock.json 잠금 파일 제공)

yarn berry

yarn의 새로운 버전으로 Zero-install과 Plug’n’Play를 통해 의존성 설치 속도를 향상시키고 저장 공간을 절약

node_modules를 제거하고 옮겼기에 의존성까지 github에 올릴 수 있다.

Plug’n’Play

패키지를 node_modules 디렉토리에 저장하지 않는다. 패키지 의존성 정보는 .zip 파일로 압축되어

.yarn/cache 폴더에 저장하고 이에 대한 정보를 .pnp.cjs 파일에 기록함

zero install