Next.js 15 버전에서는 pnpm을 기본 패키지 매니저로 권장하고 있다. 이러한 변화의 배경과 각 패키지 매니저의 특징을 살펴보면서, 프로젝트에 가장 적합한 선택이 무엇인지 알아보자.
가장 오래되고 널리 사용됨
패키지 매니저는 프로젝트의 의존성을 관리하는 도구이다. Node.js 생태계에서는 주로 npm, yarn, pnpm이 사용되고 있으며, 각각의 도구는 고유한 특징과 장단점을 가지고 있다.
package-lock.json
을 도입해 종속성을 고정하여 일관성 있는 설치 보장node_modules
디렉터리에 중복 설치하므로 이로 인한 디스크 공간 낭비yarn.lock
을 통한 파일의 종속성 관리node_modules
가 실제 패키지를 복사하지 않고 심볼릭 링크를 사용pnpm-lock.yaml
을 통해 종속성을 고정dependencies
/devDependencies
)만 접근 가능최소한의 디스크 공간 사용
# 디스크 사용량 비교 (React 프로젝트 기준)
npm: ~200MB
yarn: ~200MB
pnpm: ~50MB
가장 빠른 설치 속도
# 설치 시간 비교 (1000개 의존성 기준)
npm: 1분 30초
yarn: 1분 10초
pnpm: 30초
정확한 의존성 트리 구성
# 프로젝트 생성
npm init
# 패키지 설치
npm install react
# 개발 의존성 설치
npm install --save-dev typescript
# 프로젝트 생성
yarn init
# 패키지 설치
yarn add react
# 개발 의존성 설치
yarn add --dev typescript
# 프로젝트 생성
pnpm init
# 패키지 설치
pnpm add react
# 개발 의존성 설치
pnpm add -D typescript