yarn_berry

Yarn Berry: node_modules 없는 새로운 패키지 매니저

안녕하세요! 오늘은 JavaScript 패키지 매니저의 새로운 강자, Yarn Berry에 대해 알아보겠습니다. 기존의 npm이나 Yarn Classic이 가지고 있던 문제점들을 해결하고, 더 빠르고 효율적인 개발 환경을 제공하는 Yarn Berry의 세계로 함께 떠나볼까요?

기존 패키지 매니저의 문제점: node_modules와 유령 의존성

개발자라면 누구나 node_modules 디렉토리의 거대한 크기에 놀라본 경험이 있을 겁니다. 수많은 패키지가 중첩되어 저장되면서 디스크 공간을 많이 차지하고, 패키지 설치 속도를 저하시키는 주범이었죠.

또한, ‘유령 의존성(Phantom Dependency)’ 문제도 있었습니다. 프로젝트의 package.json에 명시적으로 선언되지 않은 패키지를 코드에서 사용할 수 있는 문제인데, 이는 의존성 관리의 예측 가능성을 떨어뜨리고 잠재적인 버그의 원인이 되기도 했습니다.

Yarn Berry: Plug’n’Play(PnP)로 문제를 해결하다

Yarn Berry(Yarn v2 이상)는 이러한 문제들을 해결하기 위해 Plug’n’Play(PnP) 라는 혁신적인 전략을 도입했습니다. PnP는 패키지를 node_modules 대신 .yarn/cache 폴더에 압축 파일(.zip) 형태로 저장하고, .pnp.cjs 파일이 패키지의 위치와 의존성 정보를 관리합니다.

이를 통해 다음과 같은 장점을 얻을 수 있습니다.

  • 설치 속도 향상: node_modules의 복잡한 디렉토리 구조를 만들 필요가 없어 패키지 설치가 매우 빨라집니다.
  • 디스크 공간 절약: 패키지를 압축하여 저장하므로 디스크 사용량이 크게 줄어듭니다.
  • 엄격한 의존성 관리: package.json에 명시된 의존성만 사용할 수 있어 유령 의존성 문제를 원천적으로 차단합니다.

Yarn Berry 시작하기

Yarn Berry를 사용하는 방법은 간단합니다. corepack을 통해 쉽게 설치하고 프로젝트에 적용할 수 있습니다.

# corepack 활성화 (Node.js에 내장되어 있습니다)
corepack enable

# 프로젝트에 Yarn Berry 설정
# yarn classic을 사용하던 프로젝트라면 'yarn set version berry'
yarn set version stable

이제 여러분의 프로젝트에서 node_modules 없이 깔끔하고 효율적으로 의존성을 관리할 수 있습니다.


Yarn Berry는 node_modules와 작별하고 더 나은 개발 환경을 만들 수 있는 훌륭한 대안입니다. 아직 사용해보지 않으셨다면 이번 기회에 도입해보시는 건 어떨까요?

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다