Post-IT

uv 본문

카테고리 없음

uv

생각없는 개발자 2025. 11. 22. 23:19

uv는 파이썬 라이브러리를 관리해주는 도구입니다. 우리는 기존에 프로젝트를 시작할때마다, conda 환경을 새로 만들어주고 프로젝트에 맞는 라이브러리들을 설치해 줍니다.

pip install torch
pip install numpy
pip install transformers

가상환경마다 라이브러리들을 설치해주는 이유는 프로젝트마다 다른 버전의 라이브러리가 필요할 수 있기 때문이죠.

  • A 프로젝트 : PyTorch 1.9
  • B 프로젝트 : PyTorch 2.0

기존에는 requirements.txt 파일에 수동으로 라이브러리를 관리했다면 uv 방식은 누가 어디서든 똑같은 환경을 재현하려고 할때 자동으로 같은 환경을 보장해준다고 합니다.

  • pip : 패키지 설치
  • virtualenv : 가상환경
  • pip-toos : 의존성 관리
  • pyenv : Python 버전관리

위 항목들이 uv안에 전부 들어있습니다. Rust 기반으로 만들어졌고, 캐싱과 병렬성으로 빠른 속도를 자랑합니다.

Java의 Gradle과 uv를 비교해 보았습니다.

자바는 build.gradle 파일에 의존성을 명시하고 빌드해서 JAR파일을 배포합니다.

// build.gradle
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web:2.5.0'
    implementation 'org.postgresql:postgresql:42.2.23'
}

uv는 pyproject.toml 파일에 의존성을 명시하면 배포 환경에서 패키지들을 자동으로 설치합니다.

# pyproject.toml
[project]
dependencies = [
    "fastapi==0.104.0",
    "uvicorn==0.24.0",
    "torch==2.0.0"
]