Package Manager

패키지 매니저

프로젝트가 의존하고 있는 패키지들을 효과적으로 관리할 수 있도록 돠와주는 시스템

소스코드에서 사용되는 라이브러리, 개발환경에서 사용되는 도구들을 패키지라 부른다.

패키지 매니저의 필요성

  • 프로젝트에 외부 라이브러리를 설치해서 가져다 쓰기 위함

  • 프로젝트에서 사용하고 있는 라이브러리를 기록해서 관리하기 위함

Phantom Dependency

  • 이전에 사용되던 npm2의 의존성 관리 방식은 설치한 모듈이 의존하고 있는 다른 모듈을 중첩된 방식으로 설치하여, 여러 사소한 문제들이 발생했다.

    • 윈도우의 경우 폴더의 길이의 제한이 있어 중첩이 깊은 경우 이름이 길어져 이슈 발생

    • 여러 모듈이 동일한 패키지의 다른 버전에 의존할 경우, 프로젝트에는 중복된 모듈이 여러 개 설치되어 저장 공간을 낭비할 뿐만 아니라 버전 충돌과 같은 이슈가 발생할 수 있다.

  • npm3과 Yarn은 중복 문제를 해결하기 위해 모듈의 의존성 구조를 플랫하게 가져감

  • 그로인해 직접 설치하지 않은 의존성까지 사용할 수 있게 되는데 이것을 phantom dependency라 부른다.

  • pnpm은 플랫 구조를 버리고 중첩 구조를 유지하면서 phantom dependency 문제를 해결

  • Yarn Berrynode_modules 방식이 아닌 엄격한 의존관계로 인해 phantom dependency가 발생 하지 않음

circle-info

Yarn Berry는 2020년에 출시한 Yarn의 새로운 버전

node_modules 를 사용하지 않고 압축 파일을 사용하는 완전히 새로운 개념(Plug & Play)을 도입하여 설치 시간을 최소화하고 설치하지 않고도 사용할 수 있는 개념을 선보임

Last updated