uv는 Astral이 Rust로 만든 매우 빠른 통합 Python 패키지 관리자야. 18개월 만에 Python 도구 시장을 뒤흔든 formatter ruff와 같은 팀이 만들었고, 패키지 관리에서도 비슷한 변화를 일으키고 있어.
uv는 실행 파일 하나로 여러 도구를 대신해. pip의 설치, venv의 virtual environment, pip-tools의 lockfile, pyenv의 Python 버전 관리, pipx의 격리된 도구 실행, twine의 PyPI 배포까지 맡아. uv 하나만 설치하면 나머지 역할을 모두 사용할 수 있어.
가장 눈에 띄는 장점은 속도야. pip보다 10~100배 빠르고 캐시가 준비된 경우에는 115배까지 차이가 나. JupyterLab 설치는 pip이 21초, uv가 약 2.6초이며 virtual environment 생성도 8배 빨라. Rust 병렬 처리, pip resolver 대신 쓰는 CDCL solver, 필요한 메타데이터만 받는 HTTP range 요청, hard link 패키지 캐시, Python 시작 비용이 없는 구조에서 속도가 나와.
uv는 진짜 재현성도 제공해. uv.lock은 모든 전이 의존성과 wheel 해시를 완전히 고정한 lockfile로, Python 생태계의 package-lock.json이나 Cargo.lock에 해당해. uv python install 3.13으로 Python 버전까지 관리하면 uv sync 한 번으로 모든 컴퓨터에 같은 Python과 패키지를 설치할 수 있어.
또한 pip과 바로 호환돼. uv pip install requests는 같은 플래그와 동작을 유지하며 pip install requests를 대신해. 기존 pip 프로젝트에는 작업 흐름을 거의 바꾸지 않고 도입할 수 있고, 새 프로젝트에서는 uv add와 uv.lock을 쓰는 현대적인 흐름으로 시작하면 돼.