Package Manager
패키지 매니저
프로젝트가 의존하고 있는 패키지들을 효과적으로 관리할 수 있도록 돠와주는 시스템
소스코드에서 사용되는 라이브러리, 개발환경에서 사용되는 도구들을 패키지라 부른다.
패키지 매니저의 필요성
프로젝트에 외부 라이브러리를 설치해서 가져다 쓰기 위함
프로젝트에서 사용하고 있는 라이브러리를 기록해서 관리하기 위함
Phantom Dependency

이전에 사용되던 npm2의 의존성 관리 방식은 설치한 모듈이 의존하고 있는 다른 모듈을 중첩된 방식으로 설치하여, 여러 사소한 문제들이 발생했다.
윈도우의 경우 폴더의 길이의 제한이 있어 중첩이 깊은 경우 이름이 길어져 이슈 발생
여러 모듈이 동일한 패키지의 다른 버전에 의존할 경우, 프로젝트에는 중복된 모듈이 여러 개 설치되어 저장 공간을 낭비할 뿐만 아니라 버전 충돌과 같은 이슈가 발생할 수 있다.
npm3과 Yarn은 중복 문제를 해결하기 위해 모듈의 의존성 구조를 플랫하게 가져감
그로인해 직접 설치하지 않은 의존성까지 사용할 수 있게 되는데 이것을
phantom dependency라 부른다.pnpm은 플랫 구조를 버리고 중첩 구조를 유지하면서phantom dependency문제를 해결Yarn Berry는node_modules방식이 아닌 엄격한 의존관계로 인해phantom dependency가 발생 하지 않음
Yarn Berry는 2020년에 출시한 Yarn의 새로운 버전
node_modules 를 사용하지 않고 압축 파일을 사용하는 완전히 새로운 개념(Plug & Play)을 도입하여 설치 시간을 최소화하고 설치하지 않고도 사용할 수 있는 개념을 선보임
Last updated