Airflow 3.0으로 넘어가면서, 그동안 우리에게 너무나 익숙했던 “DAG”라는 용어를 앞으로도 그대로 사용할 것인가? 에 대한 투표가 진행되었습니다.
이 논의가 시작된 배경에는, 우리가 오랫동안 “DAG”라고 불러온 개념이 특정 수학적 의미(Directed Acyclic Graph, 단방향 비순환 그래프) 에 갇혀 있다는 문제의식이 있었습니다.
https://lists.apache.org/thread/lktrzqkzrpvc1cyctxz7zxfmc0fwtq2j
커뮤니티에서는 앞으로 Airflow가 발전함에 따라 보다 유연한 형태의 그래프 구조를 지원할 수도 있다는 점에서 DAG라는 용어가 너무 한정적이라는 의견이 제기된 것이죠.
즉, Airflow는 더 이상 “Directed Acyclic Graph”라는 학문적 개념에 갇히고 싶지 않다는 뜻입니다.
그래서 Airflow 3.0부터는 우리가 알고 있던 DAG 개념을 “Dag” 이라는 새로운 명칭으로 사용하기로 결정했습니다.
하지만 여기서 새로운 문제가 생겼습니다.
아직 코드와 문서 전반에서 DAG, Dag, dag가 혼용되어 사용되고 있기 때문에, 이제 이를 표준화할 필요가 생긴 것입니다.
후보안
1. DAG
- 기존 import 와 일치하게 합니다.
- 원래 의미 방향성 비순환 그래프라는 개념을 유지합니다.
반론: DAG에서 Dag로 바꾸자고 했던 이유 그대로 DAG란 개념이 지나치게 학문적이고 수학적인 개념이다.
2. Dag
- Airflow 고유의 개념으로 자리잡을 수 있습니다. Dag → Airflow의 워크플로우
- 문서에서 자연스럽게 읽힙니다. (“a Dag”, “your Dag” 등)
반론: 클래스 이름도 아니고, 표준어도 아니어서 일관성도 떨어진다.
3. dag
- 문서에서 일반 명사처럼 읽힙니다. (“a dag”, “this dag runs…”)
- Python 식별자들과 일관성있음. (dag_id, dag.run_id, …)
반론: 약어(DAG) 및 클래스명(DAG)과 시각적으로 일관성이 떨어집니다.
투표 상황
A: 문서에선 dag, 클래스/import 에선 DAG
B: 문서에선 Dag, 클래스/import 에선 DAG
C: 모두 DAG, 현상 유지.
D: 모두 Dag
https://lists.apache.org/thread/h4b0vjfr4dkbyhrkoxpfjo67s38yr0hh
마치며
Airflow 사용자로서 우리가 너무 당연하게 받아들이던 “DAG”라는 용어에 대해, 커뮤니티가 ‘당연함에 의문을 제기’하고 새로운 방향을 모색한다는 것 자체가 인상적이네요.
여러분은 우리가 “DAG”라고 불러왔던 개념을 앞으로 어떻게 부르는 게 가장 좋다고 생각하시나요?