ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NPM과 YARM의 차이점
    Programing Study/E.T.C 2022. 1. 5. 23:46
    728x90
    반응형

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

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

    NPM YARN의 차이점에 대해 알아보자

     

    ① Parallel installation of packages, packages 병렬 설치

     

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

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

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

    NPM — 3.572 seconds
    YARN — 1.44 seconds

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

     

     

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

    NPM YARN 모두 패키지에서 프로젝트의 종속성과 버전 번호를 추적한다. 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 파일에 있는 파일만 설치한다. 따라서 YARN NPM 패키지보다 보안이 강화된 것으로 간주된다.

     

     

     

     

     

    ④ 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

    도움되셨다면 하단의 광고 클릭 부탁드립니다:)

    728x90
    반응형
Designed by Tistory.