[궁금증 1] npm 대신 Yarn을 쓰는 이유?

김재범·2022년 10월 10일
0

궁금증

목록 보기
1/1

npm(Node Package Manager)

노드를 설치하면 자동으로 노드 패키지 관리자인 npm도 같이 설치된다.
자바스크립트 커뮤니티에서는 같은 일을 하는 프레임워크나 라이브러리, 도우미 함수 등을 중복으로 작성하는 일이 없도록 하기 위해 엔지니어들이 오픈 소스 프로젝트를 공유한다.

npm은 일종의 도와주는 도구. 즉, node.js에서 만들어진 모듈을 웹에서 받아 쉽게 설치하고 관리해주는 도구이다.

npm이 없었을 때에는 필요한 기능을 추가하기 위해 직접 작성하거나 github를 통해 다운했어야 함.
이러한 불편을 해소해주는 도구이다!

npm 명령어

npm init -y : 새로운 프로젝트를 밑바닥부터 시작. package.json 파일을 만듬
npm install 패키지-이름 : package.json 파일 및 해당 족속에 나열된 모든 모듈 설치
npm remove 패키지-이름 : npm으로 패키지를 제거
npm update : 설치한 패키지들을 업데이트
npm dedupe : 중복 설치된 패키지를 정리

Yarn

얀은 페이스북이 만든 도구. 회사가 의존 관계를 좀 더 신뢰성 있게 관리할 수 있도록 돕는다.
기본적으로 npm의 단점을 보완하기 만든 매니저 툴.
npm의 단점은 속도, 안정성, 보안성 등이 있다.

속도 : 기본적으로 npm보다 빠르다. 그 이유는 다운받은 패키지 데이터를 캐시에 저장하여, 중복된 데이터는 다운로드 하지 않고, 캐시에 저장된 파일을 활용하기 때문에 빠름. 또한, 여러개의 패키지를 설치할 때 병렬로 처리해서 성능이 좋다(npm은 순차적)

안정성 & 보안성 : npm은 의존 관계를 가지는 다른 패키지들이 즉시 포함되도록 한다고 한다. 반면에 yarn은 yarn.lock이나 package.json 파일에 있는 것들만 설치를 한다. 또한 버전의 차이로 인해 생기는 버그를 방지해줌.

yarn 명령어

yarn init : package.json 생성
yarn install : package.json 파일 및 해당 종속성에 나열된 모든 모듈 설치
yarn add 패키지-이름 : 특정 패키지의 특정 버전 설치
yarn remove 패키지-이름 : 패키지를 제거
yarn update : 설치한 패키지들을 업데이트
yarn dedupe : 중복 설치된 패키지를 정리

그래서 npm vs Yarn 어떤 것을 사용할 것인가?

제목에서는 npm 대신 yarn을 쓰는 이유라고 적었지만, yarn에도 단점이 있다고 함.
그것은 디스크 용량을 더 많이 잡아먹는다는 것.
그리고 npm도 계속 개선된 버전이 나오면서 속도도 많이 개선되었다고 함.

그래도 아직 yarn이 근소하게 성능이 앞서고 있고, 직접 사용해본 결과 yarn이 빠름.
그리고 git관련 협업을 했을 때 npm으로 작업을 하다 버전 문제로 에러가 났던 경험이 있기에,
yarn을 우선적으로 사용할 것 같다.

profile
지식을 쌓고 있습니다.

0개의 댓글