Frontend/전체

yarn berry를 사용하는 이유

전예방 2025. 1. 25. 17:35
💡 yarn berry를 사용하는 이유에 대해서 알아보자!

 

NPM을 안쓰는 이유?

🙋 무겁고 복잡한 node_modules

프로젝트의 node_modules 폴더의 용량이 20기가나 차지하는 매직을 볼 수 있다...

회사 컴퓨터의 용량이 256기가여서 매번 용량이 부족하면 node_modules를 지워줘야한다. 😱

 

🙋 비효율적인 의존성 검색 & 비효율적인 설치 

npm은 여러 패키지들이 동일한 라이브러리의 의존성을 가지고 있다.

그 라이브러리들이 각각 다른 버전을 사용한다고 했을 때 npm은 중복된 라이브러리를 설치한다.

이는 디스크 공간을 많이 차지하게 되고, 설치나 업데이트에 많은 시간이 들게 한다.

 

 

🙋 유령의존성

npm은 중복된 패키지 의존성을 최소화하여 공간을 절약하고 패키지 설치시간을 줄이기 위해 호이스팅을 일으키게 된다.

호이스팅이 일어나게 되면 package.json에 명시적으로 의존성을 관리하고 있지 않은 패키지에서도 접근 가능하게 된다.

이는 의존성 관리 시스템을 혼란스럽게 만들고, 버전이 명확하지 않기 때문에, 다른 사용자에게는 버전 호환 실패로 인한 오류를 발생시킬 수도 있다.

 

yarn berry의 Plug & Play (PnP) 방식

🍎 node_modules 폴더를 생성하지 않음

node_modules 폴더를 순회하지 않는다.

대신 pnp.cjs 에서 패키지의 위치와 버전 정보를 기록하여 관리한다.

그리고 pnp 시스템에서 각 의존성은 zip-archive로 관리되어진다. 이는 압축파일로 관리하기 때문에 설치 시간을 단축할 수 있고, 효율적인 디스크 용량 확보가 가능해진다.

 

🍎 의존성 호이스팅 X

모든 패키지 설치정보를 git과 같은 버전관리 시스템에 기록하고 저장한다.

프로젝트를 clone한 후 패키지를 설치할 필요없이 바로 사용이 가능하다.

이를 zero-install 이라고 한다.

'Frontend/전체'의 다른글

  • 현재글 yarn berry를 사용하는 이유

관련글