본문 바로가기

NPM

[#.NPM] NPM vs YARN의 차이점을 알아보자

반응형

 

 

 

 

 

 

보통 package를 설치할 때 NPM을 주로 사용했다

하지만 NPM이 있는데도 YARN이 개발된 이유가 있지 않을까?

NPMYARN의 차이점에 대해 알아보자

 

 

 

 

① Parallel installation of packages, packages 병렬 설치

 

패키지가 설치되면 일련의 작업을 수행한다. NPM에서 여러 패키지를 설치할 때, 패키지가 완전히 설치 될 때까지 기다린 후 다른 패키지를 설치한다. 즉, 작업은 패키지별로 순차적으로 실행된다.

하지만 YARN은 이러한 작업을 병렬로 설치하므로 퍼포먼스와 속도가 증가한다.

 

React를 설치했을 때, NPMYARN의 속도 차이는 이렇다

 

NPM — 3.572 seconds

YARN — 1.44 seconds

 

YARN이 현저하게 속도가 빠른 것을 알 수 있다

 

 

 

 

 

② Automatic Lock file generation, 자동 lock 파일 생성

 

NPMYARN 모두 패키지에서 프로젝트의 종속성과 버전 번호를 추적한다. json 파일 종속성을 설치할 때마다 종속성 버전이 버전 번호 앞에 ^로 시작될 수 있다. 즉, 다른 시스템에 모든 패키지를 설치하거나 설치할 명령을 수동으로 실행할 때마다 패키지 관리자가 릴리스된 최신 버전을 찾는다. 최신 버전이 있는 경우 패키지 파일에 언급된 버전이 아닌 자동으로 설치된다. 패키지를 자동으로 변경하지 않으려면 두 가지 방법이 있다. 하나는 잠금 파일을 생성하여 한 번에 특정 버전만 설치되고 다른 하나는 패키지 파일에 ^을 제거하는 것이다.
종속성이 추가되면 YARN은 yarn.lock 파일을 자동으로 추가한다. NPM은 npm shrinkwrap 명령어로 lock 파일을 생성한다. 차이점은 NPM이 기본적으로 lock 파일을 생성하지 않을 때, YARN은 항상 yarn.lock 파일을 생성하고 업데이트한다는 것이다. npm-shrinkwrap.json이 존재하는 경우에만 업데이트된다. npm v5.0은 lock.json 파일로 명명된 새로운 패키지와 함께 제공되며 npm-lapwrap 시스템을 완전히 폐기했다. 이것은 설치 과정과 성능을 효율적으로 향상시켰지만, 아직 YARN의 속도 수준에는 도달하지 못 했다.

 

 

 

 

 

Security, 보안

 

NPM은 다른 패키지를 즉시 포함시킬 수 있는 코드를 자동으로 실행하므로, 보안 시스템에 여러 가지 취약성이 발생한다. 반면에, YARN은 yarn.lock 또는 package.json 파일에 있는 파일만 설치한다. 따라서 YARNNPM 패키지보다 보안이 강화된 것으로 간주된다.

 

 

 

 

 

④ NPM vs YARN 명령어

 

NPM과 YARN에서 다른 명령어

 

Command NPM YARN
Install dependencies npm install yarn
Install package npm install [package] yarn add [package]
Install dev package npm install --save-dev [package] yarn add --dev [package]
Uninstall package npm uninstall [package] yarn remove [package]
Uninstall dev package npm uninstall --save-dev [package] yarn remove [package]
Update npm update yarn upgrade
Update package npm update [package]  yarn upgrade [package]
Global install package npm install --global [package] yarn global add [package]
Global uninstall package npm uninstall --global [package] yarn global remove [package]

 

 

 

 

NPM과 YARN에서 같은 명령어

 

NPM YARN
npm init yarn init
npm run yarn run
npm test yarn test
npm login (and logout) yarn login (and logout)
npm link yarn link
npm publish yarn publish
npm cache clean yarn cache clean

 

 

 

 

 

 

 

 

 

 

 

 

아래 사이트를 참고했다

 

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

 

 

 

반응형