본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

uv가 Python 도구를 빠르게 대체하는 이유

~11 min · uv, overview, python, rust

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

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 adduv.lock을 쓰는 현대적인 흐름으로 시작하면 돼.

Code

uv가 대신하는 도구·text
  옛 stack                      새 stack
  -----------------------       ---------
  pip install              ───→  uv pip install   (또는 uv add)
  python -m venv .venv     ───→  uv venv          (또는 자동: uv add)
  pip-compile              ───→  uv lock
  pyenv install 3.13       ───→  uv python install 3.13
  pipx run cowsay          ───→  uvx cowsay
  twine upload dist/*      ───→  uv publish

  여섯 도구 → 한 binary. Rust 작성. 10-100배 빠름.

External links

Exercise

실제 설치 시간을 재 봐. 환경의 pip으로 'time pip install jupyterlab'을 실행하고, 제거한 뒤 'time uv pip install jupyterlab'을 실행해. 두 숫자의 차이가 이 레슨의 핵심이며, 오랫동안 pip을 기다려 왔다면 전환할 근거가 될 거야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.