- 0
- 2
패키지 매니저 pnpm과 Yarn Berry
답변 확인
1. ✅ pnpm
pnpm
은 성능과 디스크 효율성을 개선한 패키지 매니저로, 기존의npm
과yarn
에 비해 더 빠르고 효율적으로 패키지를 관리할 수 있도록 돕는 도구- 일반적으로,
npm
이나yarn
은 프로젝트마다node_modules
폴더에 패키지를 복사함 pnpm
은 전역 저장소에 패키지를 저장하고, 하드 링크와 심볼릭 링크를 사용하여 패키지를 참조하게함- 이를 통해 동일한 패키지를 여러 프로젝트에서 공유할 수 있어 디스크 용량 절약 및 설치 속도 향상이 가능
📌 주요 특징
1. 하드 링크 및 심볼릭 링크 :
pnpm
은 전역 저장소를 사용하고 하드 링크를 활용하여 디스크 용량을 절약하고 설치 속도를 향상시킴
2. 워크스페이스 기능 :
- 모노레포 환경에서 여러 패키지 간 의존성을 관리 가능
3. 유령 의존성 문제 해결 :
- 정확한 의존성 관리로 유령 의존성 방지
2. ✅ Yarn Berry
Yarn Berry
는 Yarn 2.x버전 이상을 가리키며, 기존의node_modules
폴더 대신 Pnp(Plug'n'Play) 시스템을 사용하여 패키지를 관리- .pnp.cjs 파일을 통해 패키지 위치와 의존성 정보를 정확히 관리하며, 이를 통해 패키지를 빠르고 효율적으로 찾을 수 있음
Yarn Berry
는 또한 Zero Install 기능을 통해 의존성을 **버전 관리 시스템(git)**에 포함시켜, 저장소를 새로 복제하거나 브랜치를 이동할 때 의존성을 다시 설치할 필요가 없게 됨
📌 주요 특징
1. Pnp(Plug'n'Play):
- PnP(Plug'n'Play) 방식으로
.pnp.cjs
파일을 사용해 의존성을 효율적으로 관리
2. Zero Install :
- 의존성을 버전 관리 시스템에 포함시켜, 저장소 복제 시 의존성 재설치 불필요
3. 패키지 캐시 :
- 패키지들을
.yarn/cache
디렉토리에서 압축 파일 형태로 관리하여, 저장소 크기를 줄이고 설치 속도를 향상시킴.
✅ 3. pnpm과 Yarn Berry의 차이점
항목 | pnpm | Yarn Berry |
---|---|---|
패키지 관리 방식 | 전역 저장소에 패키지를 저장하고 하드 링크 사용 | Pnp(Plug'n'Play) 방식으로 의존성 관리 |
디스크 사용 효율성 | 하드 링크를 사용하여 디스크 공간 절약 | .yarn/cache로 패키지 캐시를 관리하여 효율적 |
의존성 관리 | 정확한 의존성 관리 및 유령 의존성 방지 | Zero Install을 통해 의존성 버전 관리 |
모노레포 지원 | 워크스페이스 기능 제공 | 워크스페이스 및 Pnp 기반 의존성 관리 지원 |
✅ 4. 유령 의존성 문제란?
- 유령 의존성(ghost dependency) 은 실제로 사용되지 않는 의존성이 코드에 포함되어 설치되는 문제. 디스크 공간을 차지하고 성능 저하를 초래함
해결법
-
pnpm: 전역 저장소와 하드 링크를 사용하여 유령 의존성을 방지.
-
Yarn Berry: PnP 방식을 통해 필요한 의존성만 로드하도록 관리.
✅ 5. pnpm과 Yarn Berry의 단점
pnpm 단점
-
호환성 문제: 일부 패키지와 호환되지 않음
-
설정이 복잡할 수 있음
Yarn Berry 단점
-
러닝 커브: PnP 방식에 대한 이해와 설정이 필요.
-
일부 도구와의 호환성 문제.
🔹 결론
pnpm
은 빠른 설치 속도와 디스크 공간 절약을 제공하며, 특히 모노레포 환경 에서 강력한 성능을 보임.- Yarn Berry는 Pnp(Plug'n'Play) 를 통해 의존성 관리의 정확도를 높이고, Zero Install을 통해 효율적인 의존성 관리를 지원
- 유령 의존성은 불필요한 패키지가 설치되어 성능과 유지보수에 문제가 생기는 현상으로, pnpm과 Yarn Berry는 이를 효율적인 의존성 관리 방식으로 해결함
📚 참고 자료
Top comments (2)
- DavidYang2월 19일
우와 댓글이다~
- Olivia2월 19일
오오 ~~ :) 너무 글 좋네용