개발일기 정답찾기

npm yarn 차이 - 유딩동 Tistory 본문

IT/javascript

npm yarn 차이 - 유딩동 Tistory

유딩동 2022. 4. 24. 17:25

Vue js 를 설치하는 과정에서 npm을 사용 하였습니다.

설치하는 과정에서 yarn과 npm이 함께 언급되어 찾아보았습니다.

찾다보니 npm 방식이 더 빈도수가 많다고 여겨지더라구요.

npm을 이용하여 vue 설치를 쉽게 끝냄

npm (Node Package Manager)


점유율이 가장 높은, Node.js의 기본 패키지 매니저


yarn


페이스북이 만든 패키지 매니저

 

- 2010년 만들어진 npm

- 2016년 페이스북은 보안성과 속도 등을 강화하여 yarn을 만듬

 

yarn의 특징

- 다운받을 패키지를 캐시에 저장, 중복 패키지 설치시 캐시활용

- yarn.lock 파일(패키지에 대한 버전 정보) 자동으로 생성

- 캐시를 사용하는 과정에서 I/O 과정이 무거워지고, 속도의 저하가 나타날 수 있음

 

 

* 여기서부턴 참고 블로그!

https://seogeurim.tistory.com/12?category=981579 

 

npm? yarn? 그 차이가 뭐길래...

본 글은 2020년에 작성된 글입니다. node 개발 환경에서는 패키지 매니저로 npm 또는 yarn을 쓰곤 한다. 나는 그냥 npm이 편해서 npm을 써왔었는데, 한 프로젝트를 진행하다가 팀원들이 다 yarn을 쓰자고

seogeurim.tistory.com

 

Speed (Performance)

npm은 필수 단계를 순차적으로 수행하는 경향이 있어서 다음 패키지로 넘어가기 전에 각 패키지를 완전히 설치해야 한다고 한다. 하지만 Yarn은 동시에 여러 패키지들을 설치할 수 있기 때문에 속도 면에서 크게 향상된다는 것이다. 그런데 이 속도의 문제도 npm 5.0 아래의 버전으로 놓고 봤을 때의 문제이다. npm 5.0 버전은 그 아래 버전들보다 5배는 더 빠르다고 npm 개발자들이 언급하였다고 한다. 그리고 그 이후 npm V6.10.1과 yarn V1.17.3으로 install 속도 실험을 하였는데, yarn이 승리하였지만 그 차이는 아주 근소한 차이라고 한다. 이제는 거의 차이가 없어졌다고 볼 수 있는 문제인 것 같다.
Security

npm은 의존 관계를 가지는 다른 패키지들이 즉시 포함되도록 한다. 이런 부분이 더 편리하긴 한데 보안 문제에 있어 여러 취약점들을 불러올 수 있다고 한다. 이게 커지면 나중에는 더 큰 문제로 발전할 수도 있다는 것. 반면에 Yarn은 yarn.lock이나 package.json 파일에 있는 것들만 설치를 한다. 이런 방식은 모든 디바이스에 같은 패키지들을 설치하는 것을 보장하기 때문에 디바이스마다 다른 버전을 설치해서 발생할 수 있는 버그들을 많이 줄였다는 것이다. 이 보안성 문제가 npm과 yarn을 비교할 때 아주 중요한 측면이라고 할 수 있고, 이 부분은 계속 강화되고 있다고 하니 보안성을 따질 때는 yarn이 더 좋다고 말할 수 있다.
패키지 잠금 파일

npm은 package-lock.json, yarn은 yarn.lock 파일을 패키지 잠금 파일로 사용한다. 잠금 파일도 자세히 살펴보면 차이점이 있겠지만, 이 부분은 크게 자세히 다루지는 않겠다.
이 외에도 다양한 차이점들이 있다. 명령어에도 조금씩 차이가 있는데, 패키지를 추가하고 싶을 때 npm은 npm install <package>, yarn은 yarn add <package> 명령어를 사용한다. 패키지 제거에 있어서도 npm에서는 npm uninstall/rm <pacakge>를 사용하지만, yarn은 yarn remove <package> 명령을 통해 수행한다.

Comments