2 분 소요

✔️ npm? yarn?

npm과 yarn은 모두 Node.js 패키지 관리자로, 결론부터 말하면 yarn이 npm에서 부족했던 기능들을 보충해서 출시한 것이라고 할 수 있는데요. 현재는 npm도 계속 개선된 버전이 나와서 사실상 둘의 사용은 취향 차이라고 봐도 무방합니다.

npm

전 세계적으로 가장 많은 이들이 사용하고 있는 패키지 관리자 입니다. Node.js로 만들어진 모듈을 쉽게 설치 및 관리할 수 있으며 개발자 입장에서는 명령어를 몇 줄 입력하기만 하면 공개된 모듈을 설치할 수 있으니 매번 직접 찾아서 모듈을 설치하는 수고를 덜어줍니다.

yarn

2016년 페이스북에서 만든 자바스크립트 패키지 매니저, npm의 단점인 속도(performance), 안정성(stability), 보안성(security)을 보완하여 나온 것입니다.

👇yarn 관련 문서
https://engineering.fb.com/2016/10/11/web/yarn-a-new-package-manager-for-javascript/

✔️ npm과 yarn 차이점

앞서 말씀드렸듯이 yarn은 npm보다 보안성이 뛰어납니다. npm은 패키지를 설치할 때 자동으로 코드와 의존성을 실행할 수 있도록 허용하였습니다. 이로 인해 보안에 취약점이 발생하였는데, 현재는 npm도 보안 업데이트를 거듭하며 보안성이 향상되긴 하였습니다.

그리고 yarn은 npm보다 빠릅니다. 패키지 설치 프로세스를 처리하는 방법이 다르기 때문인데요. npm은 패키지를 한 번에 하나씩 순차적으로 설치하지만, yarn은 다운받은 패키지 데이터를 캐시(cache)에 저장하여 중복 데이터는 다운로드 하지 않고 캐시에 저장된 파일을 활용하구요. 패키지를 설치할 때 병렬로 처리하기 때문에 npm보다 속도가 빠릅니다.

✔️ npm 명령어

  • npm init : package.json 생성
  • npm install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
  • npm install 패키지명@버전 : 특정 패키지의 특정 버전 설치
  • npm install 주소 : 특정 저장소 내 패키지 설치
  • npm install 패키지명 -g : 글로벌 설치
  • npm uninstall : 패키지 삭제
  • npm update : 패키지 업데이트
  • npm dedupe : 중복 설치된 패키지 정리

✔️ npm과 yarn 명령어 비교

명령어 npm yarn
dependencies 설치 npm install yarn
패키지 설치 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 update yarn upgrade
패키지 업데이트 npm update [패키지명] yarn upgrade [패키지명]

✔️ yarn 설치 방법

1
npm install yarn --global

yarn은 위와 같이 npm을 통해서 설치할 수 있습니다.

1
2
brew update
brew install yarn

만약 맥 사용자라면 brew 통해 설치하는 것도 가능합니다.

✔️ 무조건 yarn을 사용하는 것이 좋은걸까?

앞서 말씀드린 내용에 따르면 npm 대신 무조건 yarn이 좋은 것이라고 생각할 수 있는데요. 사실 yarn도 단점은 존재합니다. yarn은 npm보다 디스크 용량을 좀 더 잡아먹는 편이라고 하더라고요. 현재는 npm도 많이 개선되어 속도 측면에서도 yarn과 별반 차이가 없고 아직까지 점유율은 npm이 더욱 높기 때문에 둘 중 어떤 것을 사용할지는 개발자 취향대로 고르면 될 것 같습니다 😊

참고 사이트

https://joshua1988.github.io/vue-camp/package-manager/npm-vs-yarn.html#npm%E1%84%80%E1%85%AA-yarn%E1%84%8B%E1%85%B4-%E1%84%8E%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%8C%E1%85%A5%E1%86%B7

🔔포스팅 공지
개인 공부 기록용 블로그 입니다.
잘못된 부분이 있을 시 메일이나 댓글로 지적해주시면 감사드리겠습니다 :)

댓글남기기