티스토리 뷰
몇 주 전 백엔드 개발자가 npm쓰는지 yarn을 쓰는지 물어보았다. 그러면서 여러 이야기를 나누었는데, 그때 생각이 나 둘의 차이를 정리해보고자 한다. 참고로 나는 두 개의 경험이 다 있다.
✔️ 패키지 관리자란?
일단 npm과 yarn을 알려면 그 두 개가 무엇인지 부터 알아야 한다. npm과 yarn은 Node.js의 패키지 관리자이다. 즉, 전 세계의 개발자들이 js를 통하여 다양하게 만든 라이브러리 등의 패키지를 인터넷에 올리게 되면 npm이나 yarn 등과 같은 패키지 관리자를 통하여 설치 및 삭제 등의 관리를 하는 것이다.
더불어 CLI라고 불리는 command-line interface를 통하여 설치 및 삭제 뿐 만 아니라 버전 관리 등도 편하게 할 수 있다는 특징이 있다.
참고로 npm이 없는 시절에는 기능 추가를 위해 직접 코드를 작성하거나 다운로드 받아야 했다고 한다.
✔️ npm 이란?
npm은 Node Package Manager의 줄임말로 node.js 설치 시 자동으로 설치되는 기본 패키지 관리자이다.
✔️ yarn 이란?
yarn은 페이스북에서 개발한 패키지 관리자이고, 리액트를 만들며 겪었던 어려움을 해소하고자 개발하였다고 한다.
https://engineering.fb.com/2016/10/11/web/yarn-a-new-package-manager-for-javascript/
✔️ npm과 yarn의 차이점
- 명령어
가장 가시적으로 확인할 수 있는 부분은 바로 명령어이다. install을 add라고 표현한다든지 등 둘이 차이가 확연하다. - 속도
npm은 패키지를 한 번에 하나씩 순차적으로 처리한다고 하면 yarn은 패키지를 동시에 가져와 병렬로 처리하고, 데이터 등을 캐싱하여 중복된 데이터는 캐시된 데이터로 대체한다고 한다. 고로 속도는 yarn이 더 빠르다. 하지만 근래에는 그 차이가 그렇게 크다고 하지는 않는다. - 보안
npm은 패키지 설치 시, 자동으로 패키지에 포함된 의존성이 있는 다른 패키지 코드를 함께 실행할 수 있다. 이는 원치않는 패키지를 불러오는 등의 문제를 야기시킬 수 있다는 단점이 있다. (물론 편리할 수도 있다) 반대로 yarn은 yarn.lock이나 package.json에 있는 것만 설치하여 원치 않는 패키지를 불러오는 등의 문제는 없다. 이 부분 또한 속도와 마찬가지로 npm에서 많이 보완하였다고 한다.
✔️ 그렇다면 yarn을 써야할까?
속도나 보안적인 측면에서는 yarn이 우세하다. 속도와 보안이 우세하다는 것은 더 안정적이라는 뜻도 된다. 게다가 npm은 가끔 이유 모를 에러가 나기도 한다. (나만 모르는 거일수도...) 그럼에도 불구하고 나는 일단은 npm을 권한다.
npm은 가장 기본이 되는 것으로 먼저 써보고 나중에 아쉬운 부분이 생기면 yarn을 체험하며 정착하는게 후에 더 좋은 개발자가 될 것 같다는 개인적인 의견..
나는 둘 다 써보았지만 npm이 그렇게 사용하기 어렵고, yarn이 그렇게 뛰어나다는 것을 사실 체감 못해서 쉽게 말하는 걸 수도 있다!
'TIL:Today I Learn > etc' 카테고리의 다른 글
lottie란 무엇인가. lottie가 gif보다 나을까? (0) | 2022.08.19 |
---|---|
사파리와 파이어폭스 그리고 크롬의 차이점은 bfcache이다. (1탄) (0) | 2022.08.18 |
css scroll을 부드럽게 만드는 방법 (+ 사파리 지원 버전) (0) | 2022.08.10 |
[css] 화면에서 마크업을 노출시키지 않는 방법. (0) | 2022.08.05 |
Retry와 timeout의 관계 (0) | 2022.08.04 |
- Total
- Today
- Yesterday
- react
- BFCache
- 모바일사파리
- 리액트훅
- 리코일
- npm
- 깃명령어
- 센트리
- 깃
- 리액트
- js테스트
- 프론트엔드
- storybookUI
- sentry
- Git
- 자바스크립트
- frontend
- 김민태
- CSS
- TIL
- javascript
- 크롬
- vue
- reacthook
- 프론트앤드
- js
- gitRebase
- 사파리
- 센트리모니터링
- 리액트상태관리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |