9월, 이달의 pr 투표가 열렸습니다!

안녕하세요, Airflow한사모 여러분!
이 달의 PR을 투표하는 시간이 왔는데요.
이번에도 대단한 PR들이 많이 올라왔네요.

이번 달 후보 PR은 다음과 같습니다:
PR#54252: Add Calendar view for Dag
https://github.com/apache/airflow/pull/54252

PR#53770: Migrated prod builds to use python built from source
https://github.com/apache/airflow/pull/53770

PR#52325: Remove Legacy Query Object Usage from airflow-models
https://github.com/apache/airflow/pull/52325

PR#54383: Remove airflow.models.DAG
https://github.com/apache/airflow/pull/54383

PR#53981: Update color palette and leverage Chakra semantic tokens
https://github.com/apache/airflow/pull/53981

투표는 9월 26일 금요일 오전 10시(PST)에 종료되고 우승 PR은 다음 Airflow 뉴스레터에서 소개된다고 합니다 :wink:

투표에 참여하고 싶으신 분들은 아래 링크에서 메일링 스레드에 댓글로 참여해주세요.
https://lists.apache.org/thread/jbvrqonlwlhyqkl5j00vbk4r5smr7hfx

1개의 좋아요

Airflow 뉴스레터 구독하실 분 계신다면, 여기 링크에서 하실 수 있습니다!
https://cdn.forms-content-1.sg-form.com/44820aed-844a-11f0-9142-367766e5a240

이 달의 PR로 #54383: Remove airflow.models.DAG 이 선정되었네요!

이 PR에 대해서 제가 이해한 내용에 대해서 간단히 소개드리자면,
이 PR의 목적은 airflow.models.DAG 를 완전히 제거하는 것을 목표로 하고 있는데요.

원래 DAG 정의에는 airflow.models.DAG을 사용했는데, Airflow 2에서 직렬화를 도입하면서 SerializedDag가 생겼습니다. 하지만 이 둘은 메서드와 헬퍼 함수가 달라 사실상 서로 다른 클래스였고, 이를 보완하려 만든 BaseDag 역시 오히려 혼란만 키우며 코드 복잡도를 높이는 기술 부채가 되었습니다.

Airflow 3.x에서 Task SDK가 도입되면서, 이제 DAG 작성자가 사용하는 DAG 정의는 Task SDK로 옮겨졌습니다. 다만 여전히 airflow.models.DAG이 곳곳에서 쓰이고 있었고, 그 안에는 테스트나 내부 동작에만 필요한 메서드들이 섞여 있었습니다.
이런 기능까지 Task SDK로 옮기면 DAG 작성자에게 불필요한 부담이 되기 때문에, Task SDK는 최대한 단순하고 가볍게 유지해야 했는데요.

이번 PR은 Airflow Core와 Task SDK의 완전한 분리를 위한 중요한 단계입니다.
즉, DAG 작성 시 Airflow Core는 Task SDK를 활용하되, Task SDK는 더 이상 Airflow Core에 의존하지 않게 된 것이죠. :+1:

최종적으로 정리드리면 이 PR 이후로 아래와 같이 동작하게 됩니다:

  • 스케줄러와 트리거 등 Core 컴포넌트는 주로 SerializedDag만 사용하게 되고,
  • DagProcessor는 Task SDK DAG을 파싱해 SerializedDag을 생성하고 이를 데이터베이스에 저장하게 됩니다.