본문 바로가기

개발공부/Web

npm과 yarn

 

 

오늘은 자바스크립트(node.js)의 패키지매니저에 대해 알아보자.

 

알아보기에 앞서 npm은 node package manager로 수많은 패키지와

그에 맞는 버전들을 쉽게 관리해주는 고마운 친구이다.

 

웹 기술에서 다른 언어의 경우 Java-Spring-Maven과 같은 스택으로

node.js에서는 node.js-express-npm과 비슷하다고 보면 되겠다.

 

나도 node.js를 공부하면서 npm을 알게 되었는데 tensorflow.js를 쓸려고

데모를 테스트해보던 중에 처음 yarn이라는 것에 대해 알게 되었다. 

 

npm의 경우에도 jQuery, BootStrap, react, angular 같은

다양한 패키지를 지원한다.

 

그렇다면 하나의 프레임워크에 패키지매니져가 독보적이면서 대충적이면

사람들이 더 배울것이 적어지고 편한텐데

왜 yarn이라는 녀석이 나오게 된걸까?

 

facebook에서 만든 yarn에서는 보다 빠르고 안정적이며, 보안에 강하다고 이야기한다.

그렇다면 아래 4가지 기준으로 yarn을 npm과 비교해 보도록 하자.

 

속도(performance)

16년도 버전까지는 yarn이 승리했지만, 지금은 거의 차이가 없다고 한다.

 

안정성(Stability)

굉장히 많은 다운로드 수에도, 사용자들이 사용하고 테스팅하는데에 문제가 없는 것으로

미루어보다 둘 다 안정적이라고 볼 수 있겠다.

 

보안성(Security)

여기서는 두 패키지매니저의 개발목적이 뚜렷하게 나뉜다.

npm은 패키지를 설치하는 중에 코드를 즉각즉각 자동으로 실행시키는 것을 허용한다.

심지어 그것이 설치될때 필요한 의존성까지도 허용한다.

이는 편리한 반면에 보안이슈가 생길 수 있다. 

하지만 yarn의 경우 yarn.lock 또는 package.json 파일으로부터만 설치를 진행한다.

또 yarn.lock의 경우 모든 디바이스에 대해서 같은 패키지를 설치한다.

(영어 번역이라 오역이 있을 수 있지만 모든 운영체제에 같은 패키지를 말하는것 같다.)

이렇게 설치할 경우 버그가 일어날 가능성을 현저하게 줄일 수 있다.

간단히 정리하면 npm은 편리하지만 정확하지는 않고,

yarn은 조금 불편하지만 정확하다.

 

사용빈도(Popularity)

사용빈도는 npm이 많다. 사용자가 많다는 것은 그에 대한 자료를 쉽게 얻을 수 있다는 큰 장점이 있다.

yarn의 경우 사용자는 많지 않지만 위에 보았듯 분명 yarn만의 장점은 존재한다.

 

'개발공부 > Web' 카테고리의 다른 글

yarn 속성으로 익히기  (0) 2020.02.14