npm : 자바스크립트 언어를 위한 패키지 관리자로 Node.js의 기본 패키지 관리자
- package.json을 사용해 패키지를 확인하고 버전을 기록할 수 있다.
yarn : facebook에서 만든 자바스크립트 패키지 매니저npm의 단점(속도, 안정성, 보안성)을 해결하기 위해 제작
속도(performance)
yarn은 다운받은 패키지 데이터를 캐시에 저장하여 중복된 데이터는 다운로드 하지 않고, 캐시에 저장된 파일을 활용함으로써 이론적으로 npm에 비해 패키지 설치속도가 매우 빠르다. 또한 패키지 설치시 병렬처리 구조이기 때문에 performance와 speed가 증가된다.
안정성(stability)/보안성(security)
npm은 패키지가 설치될 때 자동으로 코드의 의존성을 실행할 수 있도록 허용했다. 이 특징은 편리한 기능이지만 안정성을 위협할 수 있다. 특히나 보장된 정책 없이 등록한 패키지가 존재할 수 있다는 점에서 더욱 위험도가 높다.
반면 yarn은 yarn.lock이나 package.json으로 부터 설치만 하며, yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하기 때문에 버전의 차이로 인해 생기는 버그를 방지해줄 수 있다.
yarn 명령어
- yarn init : package.json 생성
- yarn or yarn install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
- yarn add package_name@버전 : 특정 패키지의 특정 버전 설치
- yarn add 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
- yarn global add package_name : 옵션. 글로벌로 설치. 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 됩니다.
- yarn remove : 패키지 삭제 명령어입니다.
- yarn upgrade : 설치한 패키지들을 업데이트해줍니다.
- npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.
결론
npm이 몇년간 발전을 거듭하며 단점을 많이 보완해 performance와 stability차이는 yarn과 그리 크지 않다. 다만 yarn의 병렬적 패키지 설치로 인한 가벼움, 또한 버전 차이로 인한 버그 방지 등의 기능으로 yarn의 장점을 생각해 볼 수 있다.
하지만 yarn은 brew나 npm을 통해 한번 더 설치를 해주어야 하고 packaged manager 들 중 가장 많은 사용자를 보유한 npm보다 접근성이 떨어지는 것이 단점이다.
'CS' 카테고리의 다른 글
WebFlux (0) | 2022.11.06 |
---|---|
pinPoint (0) | 2022.11.06 |
JWT 토큰이란 (0) | 2022.05.28 |
SSR과 CSR 의 차이 (0) | 2022.02.22 |
vue와 react 설치방법 (0) | 2022.01.13 |