npm vs yarn를 하기 위해선 package manager 이란 걸 알아야 할 텐데요
Package Manager 이란?
Package Manager (패키지 관리자) 패키지를 다루는 작업을 편리하고 안전하게 수행하기 위해 사용되는 툴입니다.
패키지를 다루는 작업 : 패키지를 설치, 업데이트, 수정, 삭제하는 작업
패키지란?
라이브러리와 유사한 형태이며
라이브러리 - 코드의 작성을 위해 사용되는 코드의 묶음
패키지 - 코드의 배포를 위해 사용되는 코드의 묶음
이렇게 볼 수 있습니다, 즉 배포를 위해 사용이 된다고 보시면 됩니다.
node.js Package Manager 에는 npm 그리고 yarn 이 있습니다.
인지도가 많고 사람들이 가장 많이 사용하는 건 아무래도 npm이라고 합니다.
저도 node.js를 사용할땐 npm을 사용했고 지금까지 잘 사용하고 있습니다.

다음 사진을 확인해보면 알 수 있습니다
해당 사진은 5년간의 다운로드 수를 나타는 지표입니다

하지만 Stars와 Issues를 본다면 다운로드 수에 비해 yarn이 몇 배는 더 많은 것을 볼 수 있습니다.
npm은 대중적이고 점유율이 높으며 yarn은 사람들의 관심도가 더 높다고 할 수 있을 것 같습니다.
속도
yarn을 사용하는 이유는 예전에는 속도 때문이라는 의견이 많았는데(yarn이 npm 보다 속도가 더 빠르다는 점) 최근에 비교를 해봤을 땐 npm의 punching back을 통해 그 차이를 따라잡았다고 해서 속도를 생각한다면 둘 중 아무거나 사용해도 괜찮을 것 같습니다.
보안성
npm은 패키지가 설치될 때 자동으로 코드와 의존성을 실행할 수 있도록 허용합니다
그런데 이런 방식은 위험도가 존재합니다.
반면,
yarn 같은 경우 yarn.lock 또는 package.json으로부터 설치만 하기 때문에 npm 방식보다 보안성은 월등히 좋다고 볼 수 있습니다.
그럼 npm과 yarn의 명령어 차이점에 대해 알아보겠습니다.
다른 명령어
Command | NPM | YARN |
install dependencies | npm install | yarn |
install package | npm install [ package ] | yarn add [ package ] |
install dev package | npm install --save-dev [ package ] | yarn add -dev [ package ] |
uninstall package | npm uninstall [ package ] | yarn remove [ package ] |
uninstall dev package | npm uninstall --save-dev [ package ] | yarn remove [ package ] |
Update | npm update | yarn upgrade |
Update package | npm update [ package ] | yarn upgrade [ package ] |
Global install package | npm install --global [ package ] | yarn global add [ package ] |
Global uninstall package | npm uninstall --global [ package ] | yarn global remove [ package ] |
같은 명령어
NPM | YARN |
npm init | yarn init |
npm run | yarn test |
npm test | yarn login |
npm login, logout | yarn login, logout |
npm link | yarn link |
npm publish | yarn publish |
npm cache clean | yarn cache clean |
Reference
'알면 좋은 지식들' 카테고리의 다른 글
[ Excel ] 전화번호 하이픈(-) 처리 + 0 사라짐 처리 (0) | 2024.08.20 |
---|---|
PHP 에서 date 한국 시간으로 설정 하기 (0) | 2022.07.15 |
[ Postman ] POST 날리기 (0) | 2022.04.23 |