CS

[Package] npm vs yarn

s_omi 2023. 12. 1. 21:38
728x90
반응형
SMALL

 

npm과 yarn은 자바스크립트 런타임 환경인 노드(Node.js)의 패키지 관리자입니다. npm과 yarn의 차이점을 알아보기 전, 패키지 관리자에 대해서 잘 모르신다면 여기를 참고해주세요.

 

전 세계의 개발자들이 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스(opens new window)에 올리면 npm, yarn과 같은 패키지 관리자를 통해 설치 및 삭제가 가능합니다. 그리고 CLI(Command-line interface)를 통해 패키지 설치 및 삭제뿐 아니라 패키지 버전 관리, 의존성 관리도 편리하게 할 수 있습니다.

 

npm (Node Package Manager)

노드를 설치할 때 자동으로 설치되는 기본 패키지 관리자입니다. 크게 두 가지 역할을 수행합니다.

 

첫 번째 역할은 온라인 플랫폼(opens new window)입니다. 사람들이 노드 패키지를 만들고 업로드하고 공유할 수 있는 공간으로 누구나 온라인 플랫폼에 게시된 패키지를 사용할 수 있습니다.

두 번째 역할은 CLI입니다. 온라인 플랫폼과 상호 작용하기 위해 명령 줄 인터페이스를 사용하며 패키지 설치 및 제거가 가능합니다.

 

yarn

yarn은 2016년 페이스북에서 개발한 패키지 관리자입니다. 리액트(React)와 같은 프로젝트를 진행하며 겪었던 어려움을 해결하기 위해 개발되었고, npm 레지스트리와 호환하면서 속도나 안정성 측면에서 npm보다 향상되었습니다. 

 

 

npm과 yarn의 차이점

  • 속도

 

npm과 yarn의 주요 차이점 중 하나는 패키지 설치 프로세스를 처리하는 방법입니다. npm은 패키지를 한 번에 하나씩 순차적으로 설치합니다. 그에 비해 yarn은 여러 패키지를 동시에 가져오고 설치하도록 최적화되어 있어 패키지 설치 속도 측면에서 yarn이 npm보다 빠릅니다. (현재는 차이가 거의 없다고 합니다.)

 

  • 보안

 

npm은 의존성인 다른 패키지들이 즉시 포함되도록 하여 자동으로 패키지에 포함된 다른 패키지 코드를 실행합니다. 이러한 부분은 편리하지만 이로 인해 보안 시스템에 몇 가지 취약점이 발생할 수 있습니다. 반면에 yarn은 yarn.lock 또는 package.json 파일에 있는 패키지들만 설치합니다. 모든 디바이스에 같은 패키지들을 설치하는 것을 보장하기 때문에 디바이스마다 다른 버전을 설치해서 발생할 수 있는 버그들을 많이 줄였습니다. 보안은 최근 npm의 보안 업데이트도 크게 향상되었으나 아직까지 yarn은 보안 측면에서 npm보다 더 안전한 것으로 알려져 있습니다.

 

728x90
반응형
LIST

'CS' 카테고리의 다른 글

[Network] Cookie vs Session  (0) 2023.12.03
[Network] TCP/IP 프로토콜  (1) 2023.12.02
[Package] Package manager  (0) 2023.11.30
[Network] What is hosting?  (0) 2023.11.29
[Network] DNS and how it work?  (1) 2023.11.28