uv인가?기존에는 pip, venv, pip-tools, poetry 등 다양한 도구를 사용해 Python 패키지를 관리해왔지만, uv는 특히 속도, 의존성 해석의 정확성, 그리고 단순한 UX에서 강점을 보입니다. 다음과 같은 장점이 있습니다:
pip의 제약 파일(constraints.txt)을 그대로 활용 가능Airflow처럼 의존성이 복잡한 패키지 설치에 특히 유리합니다.
uv 설치 (설치 가이드)export AIRFLOW_HOME=~/airflow # 기본값은 ~/airflow
설치를 시작하기 전에 환경 변수를 설정하면, 관련 설정 파일이 원하는 디렉토리에 저장됩니다.
AIRFLOW_VERSION=3.0.0
PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
uv pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"
Python 버전에 따라 URL이 달라지므로 자동 추출하는 방식 추천
airflow standalone
example_bash_operator) 활성화 후 상태 확인 가능# 개별 태스크 실행
airflow tasks test example_bash_operator runme_0 2015-01-01
# DAG 백필 실행
airflow backfill create --dag-id example_bash_operator \
--start-date 2015-01-01 \
--end-date 2015-01-02
airflow db migrate
airflow users create \
--username admin \
--firstname Peter \
--lastname Parker \
--role Admin \
--email spiderman@superhero.org
airflow api-server --port 8080
airflow scheduler
airflow dag-processor
airflow triggerer
airflow users명령은 Flask AppBuilder(FAB) 인증 매니저가 활성화된 경우에만 사용 가능