컨테이너·워크플로우 자동화/Airflow로 워크플로우 자동화하기

Airflow Edge Label — 그래프 관계를 더 명확하게 표시하기

Data Jun 2025. 10. 19. 17:19

Airflow DAG을 작성하다 보면,
작업(Task) 간의 관계가 복잡하게 얽히는 경우가 많습니다.
특히 BranchOperator 등을 사용해서 “조건에 따라 다른 경로로 실행되는 DAG”을 만들면
그래프 보기(Graph view)에서 흐름을 한눈에 파악하기가 어려워지죠.

 

이럴 때 도움이 되는 게 바로 Edge Label 기능입니다 💡

 

Edge Label이란?

Edge Label은 DAG의 그래프 보기에서
Task 간의 의존 관계(Edge) 에 설명 텍스트(Label) 를 추가할 수 있는 기능입니다.

즉,
“이 Task가 왜 이 Task로 이어지는지”,
“어떤 조건일 때 이 경로가 실행되는지”
를 DAG 그래프에 직접 표시할 수 있는 도구예요.

 

예시 코드

from airflow.utils.edgemodifier import Label

my_task >> Label("When empty") >> other_task

위 코드를 DAG에 추가하면,
그래프 보기(Graph view)에서 my_task와 other_task 사이의 연결선(edge)에
“When empty” 라는 텍스트가 표시됩니다.

즉,
“데이터가 비어 있을 때만 이 경로로 이동한다”
라는 의미를 시각적으로 바로 확인할 수 있게 되는 거죠.

 

왜 유용할까?

일반적인 DAG 그래프에서는 단순히
“Task A → Task B”
형태로만 보이기 때문에, 분기 조건이 보이지 않습니다.

하지만 Edge Label을 사용하면 👇

  • 조건부 실행 경로를 명확히 표시할 수 있고
  • 팀원들이 DAG 구조를 빠르게 이해할 수 있으며
  • 브랜칭이 많은 DAG일수록 유지보수가 쉬워집니다.

특히, BranchPythonOperator, TriggerRule, ShortCircuitOperator 등을 사용하는 복잡한 DAG에서는
Edge Label이 시각적 설명서(visual documentation) 역할을 합니다.

 

 

간단한 비유

DAG 그래프를 “지도”라고 생각해볼게요.
Edge Label은 지도 위의 도로 표지판 같은 거예요 

“이 길은 차량 전용”, “이 길은 비가 올 때만 이용 가능”
처럼,
Task 간의 연결선 위에 “조건”을 직접 써넣는 셈이죠.

 

 

정리하면

항목 설명
기능 DAG  그래프에서 Task간 Edge에 텍스트 라벨 추가
목적 Task 간 관계나 조건을 시각적으로 설명
사용법 from airflow.utils.edgemodifier import Label → task1 >> Label("조건") >> task2
장점 DAG 구조를 쉽게 이해하고, 브랜칭 로직을 명확하게 표현 가능

Airflow Edge Label은 DAG의 “조건부 경로”를 시각적으로 설명해주는
“그래프용 주석(visual note)”이다.