Skip to content

패키지매니저 논의(pnpm vs yarn)

Jimin Yu edited this page Mar 28, 2024 · 1 revision

pnpm 특징

  • 설치와 실행이 빠름
  • 용량이 절약
  • 모듈 추가가 빠르다
    ➡ 즉, pnpm 사용하여 성능 향상 및 디스크 효율성 극대화 :
    프로젝트의 node_modules 내부에 매번 패키지를 설치했던 기존 매니저들과 달리, pnpm은 글로벌 저장소에 패키지를 물리적으로 한 번만 저장하여 디스크 공간을 절약하고 향상된 성능을 보인다!

pnpm vs yarn

1. 설치 속도

yarn-pnpm-속도비교

출처: https://pnpm.io/benchmarks

22년 10월(우측 그래프)까지만 해도 YARN은 설치 속도가 PNPM 보다 압도적으로 느렸으나
최근(좌측) 설치 속도 비교 그래프를 보면 YARN 도 PNPM 못지않게 빠르다는 것을 알 수 있었다.
그래서 설치 속도를 보자면 익숙한 YARN을 사용하는게 더 좋을 것 같다는 판단이 든다.

2. 저장 공간 용량

관련 자료 찾는게 힘들지만, 이론 상 yarn은 각 패키지의 종속성은 해당 패키지의 버전에 맞게 복사되어 저장된다.
그래서 중복된 종속성이 여러 패키지에 걸쳐 복사 가능하다 → yarn : 저장 공간 많이 차지할 수 있다.

3. 실제 사용 후기

  • 압도적으로 모노레포에서 pnpm 사용 후기들이 많았다. 모노레포 툴에선 pnpm이 가장 활발히 쓰이는 것 같다.
  • pnpm이 빠르고 디스크 공간 절약이 되지만, 후기들을 봤을 때 상대적으로 사용량이 적어 레퍼런스가 적고, 아직 오래된 패키지나 일부 yarn/npm 패키지나 기능과 호환되지 않을 수 있다고 한다.(symlink 안 쓰게 설정하면 된다는데 그러면 pnpm의 사용 목적에 반하는 느낌..?)

특정 프로젝트만 다른 버전의 라이브러리를 사용하는 경우에는?
▶ PNPM 저장소에 있는 라이브러리가 update 되지 않고 다른 버전의 라이브러리만 새롭게 추가되어 다른 프로젝트가 버전 호환 문제가 생기지 않도록 해준다

스택오버플로 other tools 설문조사2023에 따르면 yarn> pnpm으로 확인된다.
출처: https://survey.stackoverflow.co/2023/#most-popular-technologies-tools-tech-other

결론

YARN 사용

  • 모노레포(하나 안에 여러 프로젝트)가 아닌 볼륨이 작을 것 같은 팀 sweet에서 pnpm 사용은 yarn을 두고 도입할 정도로 필요하다고 생각되지 않음

참고자료

Comparing NPM, YARN, and PNPM Package Managers: Which One is Right for Your Distributed Project to handle High Loads?

Clone this wiki locally