본문 바로가기
[AWS]/AWS 기타

npm이란 무엇인가? (yarn과의 차이점)

by METAVERSE STORY 2022. 10. 11.
반응형
728x170

 

 

npm이란 무엇인가?

npm이란 노드 패키지 매니저(Node Package Manger)를 의미하며 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다.  자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다. 또한 Node.js를 설치하면 자동으로 설치된다.

npm을 사용하면 전 세계의 개발자들이 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스에 올리고 사용자는 그것을 npm과 같은 패키지 관리자를 통해 설치 및 삭제가 가능하다. 또한 CLI를 통해서 패키지 설치, 삭제 뿐만 아니라 패키지의 버전 관리, 의존성 관리 역시 편하게 할 수 있다. 

현재는 자바스크립트 모듈을 설치하기 위해 npm을 대신할만한 오픈 소스 대안들이 많이 늘었다. 

여기에는 ied, pnpm, npmd, Yarn이 포함된다. 

 

 

 

npm 과 yarn

yarn은 2016년 페이스북에서 개발한 패키지 관리자이다.

리액트와 같은 프로젝트를 진행하며 겪은 어려움을 해결하기 위해 개발되었고 npm 레지스트리와 호환하면서 속도나 안정성 측면에서 npm보다 향상 되었다.

그렇다면 그 둘은 어떤 차이점이 존재할까?

 

속도

먼저 이 둘의 주요 차이점 중 하나는 바로 패키지 설치 프로세스를 처리하는 방식이다.  

npm에서 여러 패키지를 설치할 때 한 패키지가 완전히 설치가 될 때까지 기다린 후 다음 패키지를 설치한다. 즉 순차적으로 작업이 실행된다.

yarn은 병렬적으로 이러한 작업을 실행한다. 그러므로 속도 및 퍼포먼스의 향상 측에서 차이가 난다. 

 

보안

yarn은 보안 측면에서 npm보다 안전한 것으로 알려져 있다. 

npm은 자동으로 패키지에 포함된 다른 패키지 코드를 실행한다. 이로인해 보안 시스템에 취약성이 발생해 문제가 발생할 수 있다. 

yarn은 yarn.lock 혹은 package.json 파일에 있는 파일만 설치하므로 보안이 npm에 비해서 뛰어나다. 

 

 

 

npm과 yarn의 명령어

 

서로 다른 명령어

 

 

서로 같은 명령어

 

 

출처

https://javascript.plainenglish.io/npm-vs-yarn-choosing-the-right-package-manager-a5f04256a93f

 

npm vs Yarn — Choosing the right package manager

Choose the right package manager for your project

javascript.plainenglish.io

https://www.digitalocean.com/community/tutorials/nodejs-npm-yarn-cheatsheet

 

Cheat Sheet: npm vs Yarn Commands | DigitalOcean

 

www.digitalocean.com

https://ko.wikipedia.org/wiki/Npm_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4) 

 

npm (소프트웨어) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

 

반응형
그리드형

댓글