← 학습 카테고리

Learn

Airflow

151개 모듈 · 현재 148번째

Airflow 모듈 148/151 airflow-learn-148

인터뷰 단골 질문 중 Airflow 3에서 이미 답이 달라진 것들

45 Airflow Interview Questions for Data Engineers (2026) — DataCamp/블로그 (2026) Section 2, 4 (pp.4-6, 9) 및 FAQ 절 (pp.13-14) — Executor 비교, SLA, SubDAG, execution_date

이 모듈을 다 읽으면

  • 블로그의 Airflow 2.x 시절 설명과 Airflow 3.x의 실제 동작 차이를 최소 3가지 이상 짚어낼 수 있다
  • SLA와 SubDAG처럼 완전히 제거된 기능에 대해, 왜 제거되었고 무엇으로 대체되었는지 설명할 수 있다

인터뷰 대비용 블로그는 대부분 Airflow 2.x 시점의 지식으로 작성되어 있어, Airflow 3.x에서 이미 제거되었거나 동작이 바뀐 내용을 여전히 '현재형'으로 서술하는 경우가 많다. 이 모듈은 그런 항목들을 인터뷰 Q&A 형식 그대로 모아, 무엇이 왜 바뀌었는지 짚는다. 제거/대체의 전체 목록과 마이그레이션 관점의 세부 사항은 Airflow 3 업그레이드 모듈(기존 125-127번)에서 이미 다뤘으므로, 여기서는 '인터뷰에서 여전히 자주 나오는 질문'을 기준으로 정리한다.

"SLA Miss가 뭔가요?" — 이제는 다른 질문이 되어야 한다

블로그는 'SLA Miss는 태스크가 정의된 sla 파라미터보다 오래 걸릴 때 발생하며, Airflow가 이메일 알림이나 콜백을 트리거할 수 있다'고 설명한다. — 정정: SLA 기능은 Airflow 3.0에서 완전히 제거되었고, 3.1부터 Deadline Alerts라는 기능으로 대체되었다. 따라서 인터뷰에서 이 질문을 받는다면, 'sla 파라미터로 이메일 알림을 보낸다'가 아니라 'Airflow 2.x의 SLA는 3.0에서 제거되었고, 현재는 Deadline Alerts를 통해 유사한 기능을 제공한다'고 답해야 정확하다.

마찬가지로 블로그가 설명하는 'SubDAG(오래되고 버그가 많았던 그룹핑 방식) vs TaskGroups(현대적 표준)'라는 대비도 절반만 맞다. TaskGroups가 현대적 표준이라는 설명은 맞지만, SubDAG는 단지 '권장되지 않는' 정도가 아니라 Airflow 3에서 완전히 제거되어 더 이상 존재하지 않는 개념이다. 대체재도 TaskGroups 하나가 아니라 TaskGroups·Assets·Data Aware Scheduling 세 가지로 나뉘어 흡수되었다.

핵심 포인트

  • 정정: SLA 기능은 Airflow 3.0에서 완전히 제거되었으며 3.1의 Deadline Alerts로 대체되었다 — 'sla 파라미터로 이메일 알림'이라는 설명은 더 이상 유효하지 않다
  • 정정: SubDAG는 '권장되지 않는' 수준이 아니라 Airflow 3에서 완전히 제거되었고, TaskGroups·Assets·Data Aware Scheduling 세 가지 개념으로 나뉘어 대체되었다

Executor 비교와 execution_date — 여전히 유효한 것과 사라진 것

블로그의 'SequentialExecutor(SQLite와 함께 개발/테스트 전용) vs LocalExecutor(멀티프로세싱) vs CeleryExecutor(고가용성 프로덕션의 표준)'라는 3분류는 Airflow 2.x 시점 서술이다. — 정정: SequentialExecutor는 Airflow 3에서 완전히 제거되었다. 개발/테스트 용도는 이제 SQLite와 함께 쓰는 LocalExecutor가 맡는다. 또한 'CeleryExecutor가 대량 처리의 gold standard'라는 표현도 지금은 절대적이지 않다 — Airflow 3는 여러 Executor를 동시에 구성하는 Multiple Executor Configuration을 지원하므로, '태스크 종류별로 다른 Executor를 섞어 쓸 수 있는가'가 CeleryExecutor 단독보다 더 실무에 가까운 질문이다.

블로그가 언급하는 'logical_date(execution_date)'라는 병기 표현도 주의가 필요하다. — 정정: `execution_date`는 태스크 컨텍스트 변수로서 Airflow 3에서 완전히 제거된 레거시 이름이며(그 밖에도 `prev_ds`, `yesterday_ds`, `tomorrow_ds` 등 다수의 레거시 컨텍스트 변수가 함께 제거됨), 지금 코드에서 참조하면 Dag 오류가 난다. Airflow 3.x 기준으로는 `logical_date` 하나만 남았고, 이마저도 수동 트리거 시 `data_interval`과 값이 같다고 가정할 수 없다는 점이 3.x에서 새로 생긴 함정이다(이 부분은 Airflow 3 업그레이드 모듈에서 더 자세히 다룬다).

핵심 포인트

  • 정정: SequentialExecutor는 Airflow 3에서 완전히 제거되었고, 개발/테스트 용도는 SQLite 기반 LocalExecutor가 대신한다
  • 정정: 'CeleryExecutor가 대량 처리의 gold standard'라는 표현은 절대적이지 않다 — Airflow 3는 Multiple Executor Configuration으로 여러 Executor를 함께 구성할 수 있다
  • 정정: execution_date는 Airflow 3에서 완전히 제거된 레거시 컨텍스트 변수이며, 지금은 logical_date만 유효하다 — 다만 수동 트리거 시 logical_date와 data_interval이 같다고 가정해서는 안 된다는 새로운 함정이 있다