핵심 요약
세 패키지 매니저로 같은 18-package 모노레포 install. Bun 2가 cold·CI에서 압도, PNPM은 hoisted 정책 유연성에서 우세, Yarn 5는 Plug'n'Play 안정성. 사후.
1. 실측 — 시나리오 4개
| 시나리오 | Yarn 5 | PNPM 9 | Bun 2 |
|---|---|---|---|
| cold(캐시 0) | 78s | 42s | 14s |
| warm(global 캐시) | 31s | 9s | 3.4s |
| node_modules 있음 | 8s | 1.8s | 1.1s |
| CI(GH Actions cache) | 26s | 11s | 5.2s |
2. lockfile
- Yarn — yarn.lock(텍스트, 안정)
- PNPM — pnpm-lock.yaml(텍스트, 친화적)
- Bun — bun.lock(2.0 텍스트) 또는 bun.lockb(바이너리)
3. 호환성
Yarn — Plug'n'Play와 node-modules 둘 다. PnP는 일부 도구 안 됨(prisma). PNPM — symlink 기반, 대부분 호환. Bun — 빠르나 sharp·prisma 5.20 이상 필요.
4. 워크스페이스 기능
- PNPM — catalog, 의존 deduplication 표준
- Yarn — Plugin API, 커스텀 resolver 작성 가능
- Bun — 단순, 빠르지만 PNPM 수준 workspace 도구 적음
5. 결정 기준
속도 최우선 + Bun 호환 OK — Bun. 대규모 monorepo + 호환성 — PNPM. Plug'n'Play 정책으로 디스크 최소화 + 안정성 — Yarn. 신규 시작은 Bun 또는 PNPM이 합리적.

댓글 0