
pnpm v11 릴리즈 — 개발자가 알아야 할 핵심 정리
pnpm이 Major 버전 11로 업데이트되었습니다. 이번 릴리즈는 성능, 보안, 개발자 경험 모두에서 의미 있는 진화를 가져왔습니다. 특히 supply chain 공격 방어 강화, SQLite 기반 저장소 인덱스 도입, 네이티브 퍼블리시 흐름 구현 등이 핵심 변화입니다. 이 글에서는 pnpm v11의 주요 변경점을 쉽게 정리합니다.
pnpm v11에서 달라진 것
Node.js 22 이상 필수
pnpm v11은 Node.js 22 이상만을 지원합니다. Node.js 18, 19, 20, 21 사용자는 반드시 업그레이드해야 합니다. 또한 pnpm 자체가 순수 ESM(ECMAScript Module)으로 전환되었으며, standalone 실행 파일은 glibc 2.27 이상이 필요합니다.
공급망 보안 기본값 강화
이전 v10 사이클에서 도입된 보안 기본값이 더 엄격해졌습니다.
| 설정 | 새 기본값 |
|---|---|
| minimumReleaseAge | 1440 (1일) |
| blockExoticSubdeps | true |
| strictDepBuilds | true |
| optimisticRepeatInstall | true |
| verifyDepsBeforeRun | install |
새로 게시된 패키지는 최소 1일이 지나야 설치 대상이 됩니다. 이를 통해 supply chain 공격의 위험을 줄일 수 있습니다.
빌드 설정 단순화: allowBuilds로 통합
이전 버전의 복잡한 빌드 관련 설정이 단일 allowBuilds 맵으로 통합되었습니다.
# 기존 설정 (v10)onlyBuiltDependencies:- electrononlyBuiltDependenciesFile: "allowed-builds.json"neverBuiltDependencies:- core-jsignoredBuiltDependencies:- esbuild# 새 설정 (v11)allowBuilds:electron: truecore-js: falseesbuild: false
.npmrc 분리: 인증 전용
.npmrc는 이제 레지스트리 URL과 인증 정보만 담습니다. pnpm 고유 설정은 pnpm-workspace.yaml 또는 새 전역 설정 파일 ~/.config/pnpm/config.yaml에 기록해야 합니다.
또한 npm_config_ 환경 변수 대신 pnpm_config_ 접두사를 사용해야 합니다. 예: pnpm_config_registry
네이티브 퍼블리시 흐름
pnpm publish, login, logout, view, deprecate, unpublish, dist-tag, version 명령어가 npm CLI에 의존하지 않고 네이티브로 재구현되었습니다. OTP 환경 변수도 NPM_CONFIG_OTP에서 PNPM_CONFIG_OTP로 변경되었습니다.
격리된 글로벌 설치
이제 pnpm add -g로 설치되는 글로벌 패키지는 각각 고유한 디렉토리를 가집니다. 경로는 {pnpmHomeDir}/global/v11/{hash}/ 형태입니다. 글로벌 패키지 간 peer 의존성 충돌, hoisting 변경, 버전 드리프트 문제가 해결됩니다.
# 이후 변경pnpm setup # 쉘 환경 설정 업데이트 필수pnpm install -g # 더 이상 지원 안 됨 → pnpm add -g 사용
새 명령어
| 명령어 | 설명 |
|---|---|
| pnpm ci | pnpm clean + pnpm install --frozen-lockfile |
| pnpm clean | 모든 workspace의 node_modules 제거 |
| pnpm sbom | SBOM 생성 (CycloneDX/SPDX) |
| pnpm peers check | 미충족 peer 의존성 확인 |
| pnpm runtime set | 런타임 설치 |
| pnpm with | 특정 버전으로 단일 실행 |
성능 개선: Store v11
저장소 인덱스가 SQLite 기반이면서 MessagePack 값과 WAL 모드를 사용합니다. 기존 수백만 개의 JSON 파일 대신 $STORE/index.db 단일 데이터베이스를 사용합니다.
번들 매니페스트(패키지 이름, 버전, bin, engines 등)가 인덱스에 직접 저장되어 CAS에서 package.json을 읽을 필요가 없습니다. Hex digest를 사용하여 매 CAS 조회 시 base64 → hex 변환도 줄어듭니다.
HTTP 계층에서는 undici가 node-fetch를 대체하고, tarball 다운로드 시 사전 메모리 할당이 적용됩니다.
마이그레이션 가이드
대부분의 설정 변경은 기계적이며, pnpm-v10-to-v11 codemod로 자동 적용할 수 있습니다. 자세한 가이드는 공식 마이그레이션 문서를 참고하세요.
# 전역 pnpm 업그레이드npm install -g pnpm# 버전 확인pnpm --version
마무리
pnpm v11은 보안 강화, 성능 개선, 설정 단순화 세 가지 방향으로 꾸준히 발전해온 Major 버전입니다. 특히 supply chain 공격 방어 기본값 강화와 SQLite 기반 저장소 인덱스는 대규모 프로젝트에서 체감할 수 있는 실질적 개선입니다. 기존 프로젝트가 있다면 마이그레이션 가이드를 참고하여 점진적으로 적용해 보세요.
핵심 요약
• Node.js 22+ 필수, pnpm 자체는 순수 ESM 전환
• 공급망 보안 강화: minimumReleaseAge 기본 1일, blockExoticSubdeps 기본 true
• 빌드 설정: allowBuilds로 단순화
• .npmrc: 인증/레지스트리 전용으로 분리
• 저장소: SQLite 인덱스로 변경, 성능 대폭 개선
• 글로벌 설치: 격리된 환경으로 충돌 해결
• 새 명령어: pnpm ci, clean, sbom 등 추가
📚 출처
- 제목: pnpm v11 릴리즈
- 공식 블로그: https://pnpm.io/blog/releases/11.0
'AI 뉴스' 카테고리의 다른 글
| VS Code 1.118, Copilot 없이도 커밋에 'Co-Authored-by Copilot' 트레일러가 표시된다 (4) | 2026.05.04 |
|---|---|
| macOS VM은 얼마나 빠르고, 얼마나 작아질 수 있을까? — Apple Silicon 가상화 성능 완벽 분석 (0) | 2026.05.04 |
| 알고리듬 채용에서의 AI 자기선호: 실증 증거와 시사점 (1) | 2026.05.04 |
| Context Mode - AI 코딩 에이전트의 컨텍스트 윈도우를 98% 절약하는 MCP 서버 완벽 가이드 (0) | 2026.05.03 |
| Apple이 Support 앱에 Claude.md 파일을 포함해서 배포함 — 개발자가 알아야 할 핵심 정리 (1) | 2026.05.03 |