byteforce

CPN 한국어 자습서 · 외부 문서 한국어 미러

UV 문서 · Concepts

락 및 동기화

Locking and syncing · 원문: docs.astral.sh/uv/concepts/projects/sync/

아래는 원문을 한국어로 옮긴 미러입니다. 코드·명령은 원문 그대로이며, 가장 최신 정보는 하단 원문 링크에서 확인하세요.

개요

"락(locking)은 프로젝트의 의존성을 락파일(lockfile)로 해석하는 과정입니다. 동기화(syncing)는 락파일에서 패키지의 일부를 프로젝트 환경에 설치하는 과정입니다."

자동 락 및 동기화

두 과정은 uv에서 자동으로 이루어집니다. uv run을 실행하면 명령어 실행 전에 프로젝트가 락되고 동기화되어 환경이 최신 상태로 유지됩니다. uv tree와 같이 락파일을 읽는 명령어도 자동으로 업데이트합니다.

다음 플래그로 이 동작을 수정할 수 있습니다: - --locked: 자동 업데이트 대신 락파일 업데이트가 필요한 경우 오류를 발생시킴 - --frozen: 최신 여부 확인 없이 락파일을 사용함 - --no-sync: 환경 최신 여부 확인 없이 명령어를 실행함

락파일 확인

uv는 의존성 추가나 잠긴 버전을 제외하는 버전 제약 수정 등 프로젝트 메타데이터 변경 시 락파일을 오래된 것으로 간주합니다. 단, "uv는 새 버전의 패키지가 릴리스될 때 락파일을 오래된 것으로 간주하지 않습니다."

uv lock --check를 사용하여 락파일이 현재 프로젝트 사양과 일치하는지 확인합니다.

생성 및 동기화

락파일을 명시적으로 생성하거나 업데이트합니다:

코드 · 명령
$ uv lock

환경을 수동으로 동기화합니다:

코드 · 명령
$ uv sync

편집 가능 설치(Editable installation)

동기화 시 uv는 기본적으로 프로젝트를 편집 가능(editable) 패키지로 설치하므로, 변경 사항에 대해 재동기화가 필요하지 않습니다. --no-editable을 사용하면 이 동작을 비활성화합니다.

불필요한 패키지 처리

uv sync는 기본적으로 정확한 동기화를 수행하여 필요하지 않은 패키지를 제거합니다. --inexact를 사용하면 유지합니다. 반대로, uv run은 기본적으로 비정확(inexact) 동기화를 사용합니다. 정확한 동작을 원하면 --exact를 추가합니다.

선택적 및 개발 의존성

선택적 의존성(extras)의 경우:

코드 · 명령
$ uv sync --extra foo
$ uv sync --all-extras

개발 의존성의 경우, dev 그룹이 기본으로 동기화됩니다. 다음으로 제어합니다: - --no-dev: 개발 의존성 제외 - --only-dev: 개발 의존성만 설치 - --group <name>: 특정 그룹 포함 - --only-group <name>: 특정 그룹만 설치

패키지 업그레이드

기존 락파일이 있을 때, uv는 제약이 제외하지 않는 한 잠긴 버전을 유지합니다. 모든 패키지를 업그레이드합니다:

코드 · 명령
$ uv lock --upgrade

단일 패키지를 업그레이드합니다:

코드 · 명령
$ uv lock --upgrade-package <package>
$ uv lock --upgrade-package <package>==<version>

이 플래그들은 uv syncuv run에서도 동작합니다.

락파일 내보내기

여러 형식으로 내보냅니다:

코드 · 명령
$ uv export --format requirements.txt
$ uv export --format pylock.toml
$ uv export --format cyclonedx1.5

부분 설치(Partial installations)

다단계 설치(Docker에 유용)의 경우: - --no-install-project: 현재 프로젝트 설치 건너뜀 - --no-install-workspace: 모든 워크스페이스(workspace) 멤버 건너뜀 - --no-install-package <name>: 특정 패키지 건너뜀

의존성은 여전히 설치됩니다. 지정된 대상만 제외됩니다.

악성코드 검사(Malware checks)

프리뷰(preview) 기능으로, uv는 OSV에 대해 락파일을 스캔하여 OpenSSF의 악성 패키지 데이터베이스와 비교하여 알려진 악성코드를 확인할 수 있습니다. 일치 항목이 발견되면 동기화가 종료됩니다. 활성화하려면:

코드 · 명령
UV_MALWARE_CHECK=1

원문(영어): https://docs.astral.sh/uv/concepts/projects/sync/ · 본 문서는 학습용 한국어 번역이며 원본의 권리는 원저작자(Astral)에게 있습니다.

원문(영어): https://docs.astral.sh/uv/concepts/projects/sync/