이 달의 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에 의존하지 않게 된 것이죠.