JS Package Manager

wonyoung·2024년 8월 2일

Javascript

목록 보기
34/36

NPM (Node Package Manager)

1. 특징:

기본 패키지 매니저: Node.js를 설치하면 기본으로 설치되는 패키지 매니저입니다.
간편함: 설정 없이 간단히 사용할 수 있습니다.
광범위한 사용: 가장 널리 사용되며, 방대한 패키지 레지스트리가 있습니다.

2. 장점:

편리함: Node.js와 함께 설치되므로 추가 설치가 필요 없습니다.
유연성: 다양한 명령어와 스크립트를 지원합니다.
안정성: 오랜 기간 사용되어 안정적입니다.

3. 단점:

속도: 패키지 설치 속도가 느린 편입니다.
디스크 공간: 패키지 중복 설치로 디스크 공간 사용이 비효율적일 수 있습니다.


Yarn

1. 특징:

Facebook 개발: Facebook에서 개발한 패키지 매니저로, NPM의 단점을 보완합니다.
속도: 병렬 설치를 통해 빠른 패키지 설치 속도를 자랑합니다.
캐싱: 이전에 설치한 패키지를 캐싱하여 재설치 시 속도를 높입니다.

2. 장점:

속도: 병렬 처리와 캐싱 덕분에 설치 속도가 빠릅니다.
보안: Checksum을 통해 패키지의 무결성을 확인합니다.
유지보수성: 설치된 패키지의 버전을 lock 파일로 관리하여 일관성을 유지합니다.

3. 단점:

  • 설치 필요: 별도로 설치해야 합니다.
  • 호환성 문제: 일부 패키지에서 호환성 문제가 발생할 수 있습니다.

PNPM (Performant NPM)

1. 특징:

  • 효율적인 디스크 사용: 하드 링크와 디렉토리 구조를 최적화하여 디스크 사용량을 줄입니다.
  • 속도: 설치 속도가 빠르며, 특히 대규모 모노레포(monorepo) 프로젝트에서 유리합니다.
  • 저장소 공유: 패키지 간 중복 설치를 방지하고, 하나의 저장소를 여러 프로젝트에서 공유합니다.

2. 장점:

  • 디스크 절약: 중복 패키지 설치를 방지하여 디스크 공간을 절약합니다.
  • 속도: 빠른 설치 속도를 제공합니다.
  • 모노레포 지원: 대규모 프로젝트에서 효과적입니다.

3. 단점:

  • 사용자 친화성: 초기 설정이 다소 복잡할 수 있습니다.
  • 호환성: 일부 패키지나 도구와의 호환성 문제 가능성이 있습니다.

## 결론 - `NPM`: 간편하게 사용할 수 있고, 특별한 요구사항이 없는 프로젝트에 적합합니다.
  • Yarn: 빠른 속도와 보안을 중시하는 프로젝트에 적합합니다. 특히 캐싱과 병렬 설치 기능이 유용합니다.

  • PNPM: 디스크 공간 절약과 빠른 설치가 중요한 대규모 모노레포 프로젝트에 적합합니다.

profile
😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀

0개의 댓글