[TIL] yarn과 npm의 차이점

Mark·2022년 8월 12일
0
post-thumbnail

npm과 yarn

npm과 yarn은 자바스크립트 런타임 환경인 노드(Node.js)의 패키지 관리자이다. 전 세계 개발자들이 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스에 올리면 npm과 yarn과 같은 패키지 관리자를 통해 설치 및 삭제가 가능하다. 명령줄 인터페이스를 통해 패키지 설치 및 삭제, 패키지 버전관리, 의존성 관리도 편리하게 할 수 있다.


npm(Node Package Manager)


노드를 설치할 때 자동으로 설치되는 기본 패키지 관리자이다.

npm의 역할

1. 온라인 플랫폼 (https://www.npmjs.com/)

사람들이 노드 패키지를 만들고, 업로드, 공유할 수 있는 공간으로 누구나 온라인 플랫폼에 게시된 패키지를 사용할 수 있다. 

2. 명령 줄 인터페이스

온라인 플랫폼과 상호 작용하기 위해 명령 줄 인터페이스를 사용하며 패키지 설치 및 제거가 가능하다. 

npm 설치

  • 노드를 다운받으면 npm이 시스템에 자동으로 설치된다.
  • 노드 설치 후 다음 명령어를 통해 확인하면 된다.
node -v 
npm -v

yarn


2016년 페이스북에서 개발한 패키지 관리자이다. 리액트와 같은 프로젝트를 진행하며 어려움을 해결하기 위해 개발되었고, npm 레지스트리와 호환하면서 속도나 안정성 측면이 npm보다 향상되었다.

yarn 설치 (mac)

npm install yarn --global

// brew를 이용한 설치
brew update
brew install yarn 

// node를 설치했으면 node는 빼고 설치를 해주어야 한다. --ignore-dependecies라는 옵션을 사용
$ brew install yarn --ignore-dependencies
$ yarn -v

npm과 yarn의 차이점


속도

패키지 설치 프로세스를 처리하는 방법에 차이가 있다.

npm은 패키지를 한 번에 하나씩 순차적으로 설치하지만 yarn은 여러 패키지들을 동시에 가져오고 설치하도록 최적화되어 있어 패키지 설치 속도 측면에서 yarn이 npm보다 빠르다고 한다.

보안

yarn은 보안 측면에서 npm보다 더 안전하다고 한다. npm은 자동으로 패키지에 포함된 다른 패키지 코드를 실행하고 이로 인해 보안 시스템에 취약성이 발생할 수 있다고 한다.

반면, yarn은 yarn.lock 또는 package.json파일에 있는 파일만 설치한다. 최근 npm의 업데이트를 통해 npm의 보안 업데이트도 향상되었다고 한다.

명령어

명령어npmyarn
dependencies 설치npm installyarn
패키지 설치npm install [패키지명]yarn add [패키지명]
dev 패키지 설치npm install --save-dev [패키지명]yarn add --dev [패키지명]
글로벌 패키지 설치npm install --global [패키지명]yarn global add [패키지명]
패키지 제거npm uninstall [패키지명]yarn remove [패키지명]
dev 패키지 제거npm uninstall --save-dev [패키지명]yarn remove [패키지명]
글로벌 패키지 제거npm uninstall --global [패키지명]yarn global remove [패키지명]
업데이트npm updateyarn upgrade
패키지 업데이트npm update [패키지명]yarn upgrade [패키지명]

정리


npm과 yarn 모두 종속성을 관리하고 패키지를 관리하기 좋은 툴이다. 둘 다 많은 사용자 커뮤니티를 가지고 있고, 업데이트를 통해 거의 차이가 나지 않는다. 따라서 둘 중 어떤 것을 사용할 지는 개인의 취향과 성능, 커뮤니티에 따라 달라질 수 있다.


참고 자료

profile
개인 공부 정리

0개의 댓글