npm, yarn의 특징과 장단점에 대해

Daehyeon Yun·2024년 8월 7일

프론트엔드

목록 보기
11/14
post-thumbnail

📖 Reference
📎 https://joshua1988.github.io/vue-camp/package-manager/npm-vs-yarn.html#npm과-yarn의-차이점
📎 https://enjoydev.life/blog/frontend/7-yarn-npm


🤔 npm과 yarn의 특징과 장단점

npm과 yarn은 모두 JS 프로젝트의 패키지 관리를 위해 사용되는 도구입니다.

npm과 yarn은 자바스크립트 런타임 환경인 노드(node) 의 패키지 관리 도구입니다.


📖 npm

npm은 Node Package Manager의 줄임말로 노드를 설치할 때 자동으로 설치되는 기본 패키지 관리자입니다.

  • 장점
    • 거대한 커뮤니티를 소유하고 있습니다. → npm은 50만 개 이상의 JS 패키지를 제공하며 거대한 커뮤니티를 통해 소통할 수 있습니다. 이로 인해 많은 사람들이 노드 패키지를 만들고, 업로드하며 공유할 수 있습니다. → npm은 사용자 친화적입니다. CLI를 통해 쉽게 패키지를 찾고 설치할 수 있으며 의존성을 손쉽게 관리할 수 있습니다.
  • 단점
    • 규모가 큰 프로젝트에서는 속도가 느릴 수 있습니다.
  • ✅ 설치 방법
    // 노드를 다운로드하면 npm은 자동으로 설치됩니다.
    // 설치 후 아래와 같은 명령을 통해 npm의 설치 유무를 파악합니다.
    node -v
    npm -v

📖 Yarn

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

  • 장점
    • Yarn은 빠른 패키지 설치 속도를 제공합니다.
    • npm보다 상대적으로 더 나은 보안 기능을 제공합니다.
  • 단점
    • npm에 비해 커뮤니티가 작아 상대적으로 다양한 패키지들을 제공받을 수 없습니다.
  • ✅ 설치 방법
    // yarn은 npm을 통해 설치합니다.
    npm install yarn --global
    
    // MacOS라면 brew를 통해 설치할 수 있습니다.
    brew update
    brew install yarn

💡 npm와 yarn의 차이점은?

🏃 속도적인 측면

패키지 설치 프로세스를 처리하는 방법에서 차이가 있습니다.

  • npm은 패키지를 한 번에 하나씩 순차적으로 설치합니다.
  • yarn은 여러 패키지를 동시에 가져오고 설치하도록 최적화되어 있습니다.

❗ 패키지 설치 속도 측면에서 yarn이 npm보다 빠릅니다.

🔐 보안적인 측면

  • npm은 자동으로 패키지에 포함된 다른 패키지 코드까지 실행합니다.
    • 이로 인해 보안 시스템에 취약성이 발생할 수 있으며 추후 심각한 문제가 발생할 수 있습니다.
  • yarn은 yarn.lock 혹은 packge.json 에 존재하는 파일만을 설치합니다.

❗보안은 yarn의 핵심 기능 중 하나이지만 최근 npm의 업데이트로 npm의 보안성도 크게 향상되었습니다.


💡결론!

npm과 yarn 모두 종속성을 관리하며 패키지를 관리하기 좋은 도구입니다. 두 개 모두 지속적으로 관리되고 폭넓은 커뮤니티를 보유하고 있으므로 둘 중 무엇을 선택할 지는 개발자 개인의 취향과 패키지 설치 속도에 따라 달라질 수 있을 것입니다.

profile
열심히 살아야지

0개의 댓글