개요
프로그래밍 언어별 패키지(라이브러리/의존성) 관리 도구를 비교합니다. 설치, 버전 관리, 락파일, 모노레포 지원 등을 정리합니다.
JavaScript / TypeScript
| 도구 | 속도 | 디스크 | 특징 |
|---|
| npm | 느림 | 큼 | Node.js 기본, 가장 큰 레지스트리 (300만+) |
| yarn (v1 Classic) | 중간 | 큼 | Facebook, 병렬 설치, 락파일 도입 |
| yarn (v4 Berry) | 빠름 | 작음 | PnP (node_modules 없음), Zero-Install |
| pnpm | 빠름 | 작음 | 하드링크 기반 중복 제거, 엄격한 의존성 |
| Bun | 가장 빠름 | 작음 | Zig 기반 런타임, 번들러+패키지 매니저 올인원 |
2026 추천:
- pnpm: 프로덕션 표준으로 자리잡음 (Turborepo, Next.js 등 기본)
- Bun: 신규 프로젝트에서 빠르게 채택 중
# pnpm — 모노레포
pnpm install
pnpm -r run build # 모든 패키지 빌드
# Bun — 빠른 설치
bun install # npm 대비 10~30배 빠름
bun run dev
Python
| 도구 | 속도 | 특징 |
|---|
| pip | 느림 | 기본 패키지 매니저, PyPI |
| pip + venv | 느림 | 가상환경 + pip (표준) |
| Poetry | 중간 | pyproject.toml, 락파일, 의존성 해결 |
| PDM | 중간 | PEP 582, 모던 |
| Rye | 빠름 | Armin Ronacher (Flask 제작자), Rust 기반 |
| uv | 가장 빠름 | Astral (Ruff 팀), Rust 기반, pip 대비 10~100배 빠름 |
2026 추천:
- uv: 압도적 속도, pip/venv/pip-tools/poetry 기능 통합, 빠르게 표준화
# uv — 모든 것을 대체
uv init myproject
uv add fastapi uvicorn
uv run python main.py
uv sync # 락파일 기반 동기화
uv pip install pandas # pip 호환 모드
Rust
| 도구 | 특징 |
|---|
| Cargo | Rust 공식, 빌드+패키지+테스트 올인원, crates.io |
cargo init myproject
cargo add serde tokio
cargo build --release
cargo test
- 가장 잘 설계된 패키지 매니저로 평가
- Workspace로 모노레포 지원
Cargo.lock 자동 생성
Go
| 도구 | 특징 |
|---|
Go Modules (go mod) | Go 공식, 1.11+ 기본 |
go mod init myproject
go get github.com/gin-gonic/gin
go build
go mod tidy # 사용하지 않는 의존성 정리
- 중앙 레지스트리 없음 (GitHub 직접 참조)
go.sum으로 체크섬 검증
- Go proxy (proxy.golang.org)로 캐싱
Java / Kotlin
| 도구 | 특징 |
|---|
| Maven | XML 기반 (pom.xml), 엔터프라이즈 표준 |
| Gradle | Groovy/Kotlin DSL, 증분 빌드, Android 공식 |
기타 언어
| 언어 | 패키지 매니저 | 레지스트리 |
|---|
| Ruby | Bundler + gem | RubyGems |
| PHP | Composer | Packagist |
| .NET | NuGet + dotnet | NuGet.org |
| Elixir | Mix + Hex | Hex.pm |
| Swift | SPM (Swift Package Manager) | - |
| Dart | pub | pub.dev |
| Zig | Zon (build.zig.zon) | - |
시스템 / OS 패키지 매니저
| 도구 | OS | 특징 |
|---|
| apt | Debian/Ubuntu | .deb 패키지, 가장 널리 사용 |
| dnf | Fedora/RHEL | .rpm 패키지 |
| pacman | Arch Linux | 롤링 릴리스 |
| brew | macOS (+ Linux) | macOS 사실상 표준 |
| winget | Windows | Microsoft 공식 |
| Chocolatey | Windows | 커뮤니티 기반 |
| Nix | 크로스 | 재현 가능한 빌드, 함수형 패키지 관리 |
비교 차트
| 생태계 | 추천 도구 | 속도 | 모노레포 | 락파일 |
|---|
| JS/TS | pnpm / Bun | 빠름 | O | O |
| Python | uv | 가장 빠름 | O | O |
| Rust | Cargo | 빠름 | O (workspace) | O |
| Go | go mod | 빠름 | X (자체 방식) | O (go.sum) |
| Java | Gradle | 중간 | O | O |
| Ruby | Bundler | 중간 | X | O |
| PHP | Composer | 중간 | X | O |
관련 항목