본문 바로가기
Develop/Package Manager

npm, yarn 차이점 비교

by 3.dev 2023. 1. 30.
반응형

터미널 명령어 중 패키지, App 설치 및 업데이트를 할때
줄곧 npm ~만을 써왔다.
물론 yarn ~의 존재를 몰라서 쓰지 않은 것은 아니다.

그동안 배울때 yarn ~ 보다 npm ~을 위주로 배워왔기 때문에
손에 익고 편해서 npm ~을 써왔던 것이다.

그런데 어느순간 " npm ~이 있는데 그럼 yarn ~은 왜 존재하는 걸까? " 라는 생각이 문득 들었다.
그래서 오늘은 둘의 차이점을 비교해보자.

기본정보

npm
Node.js로 만들어진 모듈을 웹에서 받아서 쉽게 설치하고 관리해주는 프로그램.
모듈과 패키지를 손쉽게 다운로드할 수 있고 관리, 업데이트 또한 용이하다.
yarn보다 먼저 사용되어 왔기에 더 많은 이용자가 있다.

yarn
Facebook에서 만든 패키지 매니저.
npm과 같은 기능을 제공한다.
다만 npm 보다 가볍고 속도, 안정성, 보안성에 있어 우위를 점하고 있다.

차이점

  1. 설치 방식
    패키지를 설치할 때 yarn을 사용해본 개발자라면 yarn이 더 가볍고 빠르다는 것을 알 것이다.
    이유는 npm은 여러개의 패키지를 설치할 때 하나씩 순차적으로 직렬설치하는 반면
    yarn은 병렬로 함께 설치하면서 데이터를 캐시에 메모리하고 중복데이터를 다운로드하지 않는다.
    그렇기 때문에 yarn이 npm에 비해서 속도도 빠르고 가볍다고 느낄 수 있는 것이다.
  2. 안정성
    npm은 패키지 설치 시 자동으로 코드와 의존성을 실행할 수 있게 허용한다.
    이는 편한 반면 안정성에 불리하다.
    또 정책등록, 보장이 안된 패키지가 존재할 수 있다는 점이 안정성을 해친다.
  3. 보안성
    yarn은 App, Package 설치 시 yarn.lock을 자동설치한다.
    또 패키지를 yarn.lock이나 package.json으로 부터 설치만 하고,
    yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하기 때문에
    버전의 차이로 인해 생기는 버그를 방지해줄 수 있습니다.

뭐가 좋지?

위 차이점만 본다면 yarn이 훨씬 좋게 느껴질 것이다.
하지만 npm은 오래되었지만 지금까지도 많은 이용자가 사용중이다.
바로 지속적인 발전과 보완을 거쳐왔기 때문이다.
만약 npm이 단점보완없이 제공되었다면 yarn을 사용하지 않을 이유가 없다.
그렇지만 많은 사용자가 있다는 것은 그만큼 크게 차이가 없다는 것이다.
물론 yarn이 성능 우위를 점하고 있는 것은 부정할 수 없지만
yarn을 사용하기 위해선 brew 또는 npm을 통해서 설치가 필요하다는 단점이 있다.

결론은?

맘에 드는 것으로 손에 익은 것으로 편한 것으로 사용하자.
그렇지만 뭐가 다른지 두 패키지 매니저는 어떤 역할을 하는지 알고 있으면 좋겠다.

반응형