DAG vs Dag vs dag, 이제 우린 ‘DAG’를 뭐라고 불러야 할까?

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”라고 불러왔던 개념을 앞으로 어떻게 부르는 게 가장 좋다고 생각하시나요?

3개의 좋아요

그렇네요!
개인적으로는 DAG 그대로 이어졌으면 합니다! 논리회로- 자료구조를 배우면서 단순 수학적 지식에서 벗어나 컴퓨터 과학의 한 단어로 자리잡기도 했으니까요 ㅎㅎ
앞으로 단방향이 아닌 유연한 그래프가 나오더라도, Airflow 이용자들에게는 DAG는 DAG다(?)가 인식되어있지 않을까합니다!
흥미로운 글 감사합니다 ~~!

2개의 좋아요

투표 결과가 나왔네요

1개의 좋아요

[히스토리 기록용]

하핫 오픈톡방에 따로 공유하고 글에다 첨부해놨는데 댓글로 업데이트를 안했었군요!
감사합니다 :wink:

확정된 투표 결과입니다 :wink:

  • 옵션 A: +1.5
  • 옵션 B: +8.4
  • 옵션 C: +5
  • 옵션 D: +3.5

이제 문서에선 Dag, 클래스/import 에선 DAG 를 사용하기로 결정되었습니다.

https://lists.apache.org/thread/0651j4vdgzmlhgndmotvznlg97kyh328

2개의 좋아요