Python 개발을 하다 보면 pip install이 느려서 답답했던 적 많으시죠? 특히 패키지가 많은 프로젝트에서 가상환경 세팅하는 데 몇 분씩 걸리는 게 너무 비효율적이었는데요. uv가 그 답이에요. Rust로 만들어진 Python 패키지 매니저로, pip보다 최대 100배, 보통 10~20배 빠르고, 가상환경 관리와 Python 버전 관리까지 한 번에 해결해줘요. 2026년 현재 많은 Python 개발자들이 uv로 갈아타고 있거든요. 지금부터 실전 세팅 방법을 알려드릴게요.
⚡ uv란? — pip를 대체하는 초고속 패키지 매니저
uv는 Astral 팀(Ruff를 만든 팀)이 개발한 Python 패키지 매니저예요. 2024년 말부터 빠르게 성장해서 2026년에는 Python 개발 표준 도구 중 하나가 됐어요.
uv vs pip 속도 비교
- numpy 설치: pip 8초 → uv 0.4초 (20배 빠름)
- Django + 의존성 전체: pip 45초 → uv 3초 (15배 빠름)
- ML 패키지 묶음(torch, transformers 등): pip 3분 → uv 12초 (15배 빠름)
이미 다운로드된 패키지는 캐시에서 즉시 불러오기 때문에 두 번째 설치부터는 더 빨라요.
🚀 설치 및 기본 사용법
1. uv 설치
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# pip으로도 설치 가능
pip install uv
2. Python 버전 관리
uv는 Python 버전 설치/전환도 직접 해줘요. pyenv가 필요 없어져요.
# Python 3.13 설치
uv python install 3.13
# 사용 가능한 Python 버전 목록
uv python list
# 특정 버전 사용
uv python pin 3.12
3. 가상환경 만들기
# 가상환경 생성 (기본 .venv 폴더)
uv venv
# 특정 Python 버전으로 생성
uv venv --python 3.13
# 활성화 (macOS/Linux)
source .venv/bin/activate
# 활성화 (Windows)
.venv\Scripts\activate
📦 패키지 설치 — pip 명령어와 비교
# pip 방식 → uv 방식
pip install requests → uv pip install requests
pip install -r requirements.txt → uv pip install -r requirements.txt
pip freeze > requirements.txt → uv pip freeze > requirements.txt
pip list → uv pip list
기존 pip 명령어 앞에 uv만 붙이면 돼요. 학습 비용이 거의 없어요.
🎯 uv 프로젝트 관리 — pyproject.toml 통합
uv의 진짜 강점은 프로젝트 관리예요. uv init으로 시작하면 pyproject.toml 기반으로 의존성을 관리할 수 있어요.
# 새 프로젝트 초기화
uv init my-project
cd my-project
# 패키지 추가 (pyproject.toml 자동 업데이트)
uv add fastapi
uv add pytest --dev # 개발 의존성
# 패키지 제거
uv remove requests
# 의존성 동기화 (lock 파일 기반)
uv sync
# 스크립트 실행
uv run python main.py
uv run pytest
생성되는 파일 구조
my-project/
├── pyproject.toml # 프로젝트 메타데이터 + 의존성
├── uv.lock # 정확한 버전 고정 (팀 전체 동일 환경 보장)
├── .python-version # Python 버전 지정
└── src/
└── my_project/
💡 실전 팁 — CI/CD와 팀 협업에서 uv 사용하기
GitHub Actions에서 uv 사용
name: Test
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
version: "latest"
- name: Install dependencies
run: uv sync
- name: Run tests
run: uv run pytest
setup-uv 액션을 사용하면 uv 설치 + 캐시까지 자동으로 처리돼서 CI 속도가 크게 빨라져요.
Docker에서 uv 사용
FROM python:3.13-slim
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
WORKDIR /app
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-cache
COPY . .
CMD ["uv", "run", "python", "main.py"]
🔄 기존 pip 프로젝트에서 uv로 마이그레이션
기존 requirements.txt 프로젝트를 uv로 전환하는 방법:
# 1. uv 초기화 (기존 폴더에서)
uv init --bare
# 2. requirements.txt에서 의존성 가져오기
uv add $(cat requirements.txt | grep -v '#' | tr '\n' ' ')
# 또는 requirements.txt 직접 설치 (uv pip 방식)
uv pip install -r requirements.txt
# 3. lock 파일 생성
uv lock
⚠️ 주의사항
- 일부 C 확장 패키지는 바이너리 캐시가 없어서 처음엔 비슷한 속도일 수 있어요
- conda 환경과 혼용은 추천하지 않아요 — 충돌 위험이 있어요
- uv.lock 파일은 반드시 git에 커밋해야 팀 전체가 동일한 환경을 쓸 수 있어요
🎯 마무리
uv는 Python 개발 환경에서 진짜 게임체인저예요. pip가 느려서 답답하셨던 분들, 가상환경 관리가 복잡하셨던 분들, CI/CD에서 패키지 설치 시간을 줄이고 싶으신 분들 모두에게 추천해요. 한번 써보면 다시 pip로 돌아가기 싫어질 거예요 😄
처음엔 uv venv + uv pip install만 써보고, 익숙해지면 uv init + uv add로 넘어가는 방식을 추천해요!
📎 참고 자료



