Programming/SSAFY

npm vs yarn vs pnpm, 자바스크립트 패키지 매니저 전 격 비 교

리버김 2022. 9. 19.

npm vs yarn vs pnpm

자바스크립트 패키지 매니저 전,격.비.교

 

SSAFY 7기 김혜린 기자

 

패키지 매니저란?

Package Manager

: 개발에 필요한 패키지를 설치, 업데이트, 수정, 삭제하는 작업을 편리하고 안전하게 수행하기 위해 사용되는 도구입니다.

Javascript 관련 개발을 하다 보면 프로젝트 내에서 사용해야 할 패키지들이 많은데요,

이런 패키지들을 쉽게 설치, 관리하고 서로 간의 의존성을 관리해주는 도구가 바로 패키지 매니저입니다.

 

Javascript 패키지 매니저 3대장

npm, yarn, pnpm

 

npm, yarn, pnpm은 가장 널리 사용되는 대표 패키지 매니저들입니다.

 

사용할 때는 그 차이를 알기 어려웠지만, 알고 보면 같은 듯 다른 점들도 많은데요, 함께 알아볼까요?

 

1. 선구자 npm

Javascript 패키지 매니저의 역사는 npm으로부터 시작합니다.

 

npm은 node와 'pkgmakeinst'라는 bash 유틸리티의 합성어로,

 

기존에 프로젝트 의존성을 수동으로 다운로드 해야 했던 불편함을 혁신적으로 개선한 패키지 매니저의 시초입니다.

 

node.js 내부에 내장되어 있어 추가적인 설치 작업이 필요하지 않다는 것이 장점입니다.

 

또, 가장 오래 된 패키지인 만큼 생태계가 풍부합니다.

 

2. 페이스북의 yarn

 

yarn은 2017년 페이스북 및 구글 개발자들이 함께 내놓은 패키지 매니저입니다.

 

대부분의 개념과 프로세스가 npm을 기반으로 하고 있지만, npm의 큰 취약점이던 보안 문제를 해결한 것이 장점입니다.

 

여러 개의 패키지를 순차적으로가 아닌 병렬적으로 설치해 주어 속도나 안정성도 개선되었다고 합니다.

 

현재는 yarn berry라는 버전에서 개발과 개선이 이루어지고 있습니다.

 

3. 효율왕 pnpm

 

pnpm은 개발자 Zoltan Kochan이 2017년 내놓은 패키지 매니저입니다.

이름은 'performant npm(효율적인 npm)'의 약자입니다.

 

pnpm의 장점은 이름처럼 '효율성'인데요, 

프로젝트의 node_modules 내부에 매번 패키지를 설치했던 기존 매니저들과 달리,

 

pnpm은 글로벌 저장소에 패키지를 물리적으로 한 번만 저장하여 디스크 공간을 절약하고, 향상된 성능을 보인다는 장점이 있습니다.

npm과 yarn 인기 비교

 

세 패키지 매니저 중 가장 많이 언급되는 두 가지의 다운로드 수는 어떨까요?

yarn이 npm의 다운로드 수를 거의 따라잡을 것 같네요!

(참고로 pnpm은 아직 yarn의 절반 수준입니다.)

어떤 걸 선택할까?

많은 개발자들이 npm, yarn, pnpm 모두 사용해도 좋을 만큼 안정적인 상태에 있다고 평가합니다.

 

그동안은 npm의 보안 문제를 해결한 yarn이 좋은 대안으로 평가됐지만,

npm도 성능과 보안 문제를 꾸준히 해결해왔기 때문에 둘 간의 차이가 크지 않게 되었습니다.

 

프로젝트 마다 다양한 패키지 매니저를 사용해보고, 성능, 설치 방식 등을 직접 비교해 결정하는 건 어떨까요?

다음 기사에서 만나요!

댓글