자바스크립트 패키지 매니저: npm vs. Yarn 🥊

패키지 매니저(package manager)는 프로젝트가 의존하고 있는 패키지를 효과적으로 설치, 갱신, 삭제할 수 있도록 도와주는 관리 도구입니다. 그 어떤 프로그래밍 언어보다 풍부한 오픈 소스 생태계를 자랑하는 자바스크립트에서 특히 패키지 매니저는 중요한 역할을 하는데요. 아무리 간단한 자바스크립트 프로젝트라고 해도 적게는 수십게 많게는 수백개의 다른 패키지에 의존하기 때문입니다.


대부분의 자바스크립트 패키지 매니저는 Node.js 실행 환경(runtime)에서 돌아가며 `package.json`이라는 파일에 프로젝트가 의존하고 있는 패키지 목록을 명시합니다. 일반적으로 패키지는 프로젝트의 `node_modules` 디렉토리에 저장되는데, 주로 공개 npm 저장소(registry)로 부터 다운을 받지만 회사의 경우 사내망 내의 사설 저장소를 운영하는 경우도 있습니다.


자바스크립트 커뮤니티에서는 npmYarn이라는 두 가지 패키지 매니저가 오랫동안 시장을 양분해왔는데요. 이번 포스팅에서는 현재 기준으로 npm과 Yarn을 비교해보고 이중 무엇을 쓰는 게 좋을지 알아보겠습니다.


📝 포스팅: https://www.daleseo.com/js-package-manager/


사실 자바스크립트 생태계에서는 본 포스팅에서 다룬 npm과 Yarn 외에도 Pnpm과 같은 새로운 패키지 매니저가 줄줄이 등장하고 있습니다. 또한 차세대 자바스크립트 런타임인 Bun의 경우에는 아예 패키지 매니저를 내장하고 있어서 어떤 패키지 매니저를 사용할지 고민할 필요도 없습니다. 기본적으로 표준화보다는 자율성을 가치로 삼는 자바스크립트 커뮤니티에서 향후 이 패키지 매니저 전쟁이 어떻게 진행될지 지켜보면 흥미로울 것 같습니다.


패키지 매니저 관련해서 아래 게시물도 함께 읽어보시기를 추천드립니다.


📕 자바스크립트 개발자를 위한 package.json 파일 정리: https://careerly.co.kr/comments/90359

📗 패키지 잠금 파일 (package-lock.json, yarn.lock): https://careerly.co.kr/comments/93535

📘 자바스크립트 개발자를 위한 필수 npm 커맨드 정리 (+npx): https://careerly.co.kr/comments/93003

📙 Bun: 귀엽지만 강력한 새로운 자바스크립트 런타임 🥟: https://careerly.co.kr/comments/92202

자바스크립트 패키지 매니저: npm vs. Yarn

www.daleseo.com

자바스크립트 패키지 매니저: npm vs. Yarn

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 11월 19일 오전 3:48

 • 

저장 89조회 4,648

댓글 0