본문 바로가기
Tech Notes

uv: Python 개발자라면 지금 바로 설치해야 할 차세대 패키지 매니저

by miracle-tech 2026. 1. 12.
728x90
반응형

uv가 뭔가요?

uv는 Rust로 작성된 초고속 Python 패키지 및 프로젝트 매니저입니다. Ruff(Python 린터)를 만든 Astral에서 개발했으며, 기존 Python 생태계의 여러 도구들을 하나로 통합한 올인원 솔루션입니다.

한마디로 정리하면, pip + pip-tools + pipx + poetry + pyenv + virtualenv를 하나의 도구로 대체합니다.

기존 방식 vs uv 비교

기존 방식 (여러 도구 조합)

Python 프로젝트를 시작하려면 보통 이런 과정을 거칩니다.

# 1. Python 버전 관리 - pyenv 설치 및 사용
brew install pyenv
pyenv install 3.12
pyenv global 3.12

# 2. 가상환경 생성
python -m venv .venv
source .venv/bin/activate

# 3. 의존성 설치
pip install requests numpy pandas
pip freeze > requirements.txt

# 4. 실행
python main.py

도구마다 설치 방법, 명령어, 설정 파일이 다 다릅니다. 처음 Python 개발환경 세팅할 때 헷갈리는 이유가 바로 이것 때문이죠.

uv 방식 (하나의 도구)

# 1~4 전부 uv 하나로 해결
uv python install 3.12
uv venv
uv add requests numpy pandas
uv run python main.py

깔끔하죠?

왜 uv를 써야 할까요?

1. 압도적인 속도

pip 대비 10~100배 빠릅니다. 체감이 확실해서 한번 써보면 pip으로 못 돌아갑니다.

# pip - 대규모 패키지 설치 시 30초 이상
pip install numpy pandas scikit-learn tensorflow

# uv - 동일 작업 1~3초
uv add numpy pandas scikit-learn tensorflow

2. 도구 통합

기능 기존 도구 uv
Python 버전 관리 pyenv uv python
가상환경 생성 venv, virtualenv uv venv
패키지 설치 pip uv add, uv pip
의존성 잠금 pip-tools, poetry uv lock (자동)
CLI 도구 실행 pipx uvx

3. 재현 가능한 환경

uv는 uv.lock 파일을 자동 생성하여 어떤 환경에서든 동일한 의존성을 보장합니다. requirements.txt를 수동으로 관리하던 불편함이 사라집니다.

4. 업계 표준으로 자리잡는 중

현재 PyPI 전체 요청의 10% 이상이 uv에서 발생하고 있습니다. Anthropic의 MCP(Model Context Protocol) 공식 문서도 uv를 기준으로 작성되어 있을 정도로 빠르게 확산 중입니다.

설치 방법

설치는 한 줄이면 끝납니다.

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

설치 후 확인:

uv --version

실제 사용 예시

방법 1: 기존 pip 습관 그대로 (호환 모드)

기존 pip 명령어에 익숙하다면 그대로 사용할 수 있습니다.

# pip install → uv pip install
uv pip install requests

# pip freeze → uv pip freeze  
uv pip freeze > requirements.txt

# requirements.txt로 설치
uv pip install -r requirements.txt

방법 2: 프로젝트 기반 관리 (권장)

새 프로젝트를 시작할 때 권장하는 방식입니다.

# 프로젝트 초기화
uv init my-project
cd my-project

# 의존성 추가
uv add requests
uv add pytest --dev  # 개발 의존성

# 실행
uv run python main.py

# 테스트
uv run pytest

방법 3: Python 버전 관리

pyenv 없이 Python 버전을 설치하고 관리할 수 있습니다.

# Python 설치
uv python install 3.11 3.12 3.13

# 설치된 버전 확인
uv python list

# 특정 버전으로 실행
uv run --python 3.11 python main.py

방법 4: CLI 도구 실행 (uvx)

pipx처럼 일회성 도구 실행이 가능합니다.

# ruff 린터 실행 (설치 없이)
uvx ruff check .

# black 포매터 실행
uvx black .

# 도구 영구 설치
uv tool install ruff

MCP 서버 개발 시 활용

Python 기반 MCP 서버를 만들 때 uv를 활용하면 환경 세팅이 간편해집니다.

# MCP 서버 프로젝트 생성
uv init my-mcp-server
cd my-mcp-server

# MCP 패키지 설치
uv add mcp

# 서버 실행
uv run python server.py

TypeScript 개발자를 위한 비유

Node.js 생태계와 비교하면 이해가 쉽습니다.

Python (uv) Node.js
uv pnpm
uv.lock pnpm-lock.yaml
pyproject.toml package.json
uv add pnpm add
uv run pnpm run / npx
uvx npx

결론

uv는 Python 개발 환경의 복잡함을 해결하는 게임 체인저입니다.

  • Python 프로젝트 자주 하신다면 → 지금 바로 설치
  • 가끔 Python 쓰신다면 → 일단 설치해두면 편함
  • MCP 서버 개발 예정이라면 → 필수

설치 용량도 작고(단일 바이너리), 기존 pip과 충돌도 없으니 부담 없이 설치해보세요.

curl -LsSf https://astral.sh/uv/install.sh | sh

한번 써보면 pip으로 돌아갈 수 없습니다.


참고 자료

728x90