NPM 과 YARN의 차이점

박찬미·2021년 12월 15일
0

yarn으로 쭉 설치하다가 npm으로 설치했을 때 오류가 났던 경험이 있어서 NPM과 YARN의 차이점을 살펴보려고한다.

npm

node package manager(자바스크립트 노드)
-Node.js 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램이다.
-온라인 데이터베이스로 이루어져있으며 클라이언트를 통해 접근 가능하다.

장점

-유용한 패키지들을 받아서 손쉽게 사용가능하다.
-세계 최대 규모의 패키지들을 보유하고 있으며 노드 생태계를 견고하게 해준다.

단점

-저장소의 취약한 보안이슈가 있음.
-여러 패키지를 설치할 때, 패키지가 완전히 설치 될 때까지 기다린 후 다른 패키치를 설치한다.
-패키지가 많아짐에 따라 빌드 성능이 떨어진다.

yarn

-페이스북에서 만든 것으로 npm 서버에 비해 속도가 빠르고 npm과 사용법이 비슷하다.
-lock 파일은 Package.json에서 사용하는 버전 숫자들의 혼란을 줄여준다.

장점

-다운로드한 패키지를 캐싱하므로 다시 다운로드 할필요 없다.(오프라인도 가능)
(캐싱이란 데이터를 더 빨리 읽어 올 수 있도록 캐시 기억 장치에 저장하는 일)
-여러 패키지를 설치할 때 병렬로 설치를 하기 때문에 속도가 증가한다.
-체크섬을 사용하여 코드가 실행되기 전에 설치된 패키지의 무결성을 확인해준다.
(체크섬이란 일반적으로 단일 파일에 데이터의 암호화 해시 함수 라고하는 알고리즘을 실행한 결과)

단점

Yarn.lock파일의 버전관리로 인해 기존 모듈이 최신화로 업데이트 될 수 있으며 이 경우 하위 호환을 보장하지 않는 모듈의 경우는 에러가 날 수 있다.

명령어

아래의 그림들은 각 명령어 비교표이다.
그림들은 아래 사이트를 참고했다.
https://javascript.plainenglish.io/npm-vs-yarn-choosing-the-right-package-manager-a5f04256a93f

가능하면 혼용하지 않는 게 좋다고한다.
이유는 npm과 yarn의 패키지 관리 방식이 다르기 때문이다.

npm install 이던 yarn add 던 한 번 시작하면 끝까지 사용했던 패키지 관리자로 진행하는 게 패키지 충돌 오류를 막는 좋은 방법이다.

profile
우당탕탕

0개의 댓글