난 패키지 매니저가 어떤 건지도 몰랐다.. 그냥 사용하라고 해서 사용했었기에 이번 기회에 알아봤다.
필요한 라이브러리(패키지)를 쉽게 설치하고 버전을 관리해주는 도구이다.
프로젝트를 진행하다 보면 프로젝트에 필요한 다양한 패키지들이 있는데, 이것들을 설치하고 관리해주는 것이 패키지 매니저(Package Manager)이다.
많은 패키지들은 다른 패키지가 설치되어 있어야 제대로 작동하는데, 이 때 필요한 다른 패키지를 dependency라고 한다.
-> dependecy를 설치하고 dependency의 dependency를 설치하고... 이를 수동으로 하기 어렵기 때문에 패키지 매니저를 통해 쉽게 설치할 수 있다.
패키지 매니저들은 아래와 같은 기본적인 기능을 제공한다.
패키지 매니저는 대표적으로 3가지가 존재하고, 이 3가지를 가장 많이 사용한다고 한다. 이 3가지는 npm, yarn, pnpm이다.
최초의 패키지 매니저이다.
위에서 말했듯 의존성(dependency)를 수동으로 다운로드해야 했던 불편함을 개선했다.
node_modules라 불리는 폴더에 설치한다node_modules 폴더 크기가 커지면 불필요 프로젝트를 삭제할 때마다 시간이 오래 걸린다npm이 가지고 있던 일관성, 보안, 성능 문제 등을 해결하기 위해 만들어진 패키지 매니저이다.
npm은 보안의 문제가 큰 단점이어서 yarn은 보안 문제를 해결했다는 장점이 있다. 또한 패키지를 병렬적으로 설치해서 속도 측면에서도 장점이 있다고 한다.
performant npm의 약자이며, 효율적인 npm이라는 의미로 효율성이 장점인 패키지 매니저이다.
node_modules에 매번 패키지를 설체했던 것과 달리 global 저장소에 패키지를 한 번만 저장함으로써 저장 공간을 절약할 수 있다는 장점을 가지고 있다.
모든 버전의 의존성은 물리적으로 한번만 저장되기 때문에 디스크 공간을 절약할 수 있다.
yarn classic과 yarn berry에 대해서도 궁금해요.