Apache Airflow 실습

랫서·2025년 10월 16일

MLOps

목록 보기
2/11

에어플로우 소개

  • 아파치 에어플로우는 Python으로 작성된 오픈소스 워크플로우 관리 도구
  • 전체적인 파이프라인 생성이 가능하며 확장성과 유연성을 갖춤
  • 머신러닝 분야와 데이터 엔지니어링 분야에서 널리 사용됨

환경 구축 방법

  • 환경 구축 방법은 크게 두 가지: PIP 설치와 Docker 컨테이너 사용
  • Docker 컨테이너를 활용하는 방법이 더 확장성이 높고 유연함
  • 실습에서는 Docker 기반으로 진행:
    • Dockerfile 작성
    • Docker 이미지 빌드
    • 컨테이너 실행
    • 에어플로우 웹서버 접속

DAG(Directed Acyclic Graph) 이해

  • DAG는 방향성을 가진 비순환 그래프로 에어플로우 워크플로우의 핵심 구성요소
  • 주요 구성요소:
    • Task: DAG 내에서 실행되는 개별 작업 단위
    • Dependency: 작업 간의 의존성 관계
    • Operator: 작업을 수행하는 객체 (Python, Bash 등)
  • DAG는 Python 스크립트로 정의

실습 1: Hello Airflow DAG

  • 문장 "hello airflow dag fast campus lecture we can do it"의 단어를 순차적으로 출력하는 DAG 생성
  • 각 단어를 출력하는 개별 Task 생성
  • PythonOperator를 사용하여 Task 구현
  • Task 간의 의존성 설정으로 순차적 실행
  • DAG 실행 및 결과 확인

실습 2: 머신러닝 워크플로우 DAG

  • 머신러닝 개발 과정을 자동화하는 워크플로우 구현
  • 구성된 워크플로우:
    • Feature Engineering
    • Random Forest 모델 학습
    • Gradient Boosting 모델 학습
    • 최적 모델 선택
  • XCom을 활용하여 Task 간 데이터 전달
  • Iris 데이터셋을 활용한 모델 학습 및 평가
  • 결과: Gradient Boosting이 0.97의 성능으로 최적 모델로 선택됨

profile
개발자로 다시 성장하고 싶은 사람입니다.

0개의 댓글