컨테이너·워크플로우 자동화/Airflow로 워크플로우 자동화하기

Airflow Queue란?

Data Jun 2025. 10. 19. 16:51

Airflow에서 Queue(큐)Task(작업) 들을 잠시 모아두는 “대기 공간”이에요.
즉, 작업들이 실행되기 전에 잠시 줄 서 있는 곳이라고 보면 됩니다.

 

비유로 이해하기

Airflow를 레스토랑이라고 상상해볼게요.

  • Scheduler(스케줄러) → 주문을 받는 직원
  • Queue(큐) → 주문서를 담아두는 쟁반
  • Worker(워커) → 주문서를 꺼내 요리를 만드는 셰프

손님이 주문을 하면,
스케줄러가 “이 주문은 커피팀이 처리해야겠네?” 하며
주문서를 큐(쟁반)에 올려둡니다.

워커는 큐를 지켜보다가
“오, 내 담당 큐에 주문이 들어왔네?” 하고 꺼내 실행하죠.
이렇게 큐는 단순히 주문서를 보관하는 역할을 합니다.

 

 

큐는 ‘보관함’이지 ‘결정자’가 아니다

많은 분들이 헷갈리는 부분이 바로 여기예요.
Airflow의 Queue는 Task의 실행 순서를 스스로 판단하지 않습니다.

즉,

“무엇을 언제 실행할지”는 Scheduler가 결정하고,
“그걸 잠시 보관했다가 Worker가 꺼내 쓰는 공간”이 바로 Queue입니다.

 

Queue는 단지 순서를 지키는 대기열(FIFO 구조) 이고,
“우선순위를 정하는 알고리즘”은 없습니다.

 

 

Task별로 다른 Queue에 보낼 수도 있다

Airflow에서는 각 Task마다 어떤 큐에 넣을지 정할 수 있습니다 👇

@task(queue='gpu_queue')
def train_model():
    ...

이렇게 설정하면 gpu_queue 를 바라보는 워커만 이 Task를 처리하게 돼요.
즉, 작업 종류나 리소스에 따라 큐를 나눠 관리할 수 있는 거죠.

 

 

정리하면

  • Queue는 Task를 잠시 보관하는 공간(FIFO 대기열)
  • Scheduler가 작업을 큐에 넣고, Worker가 큐에서 꺼내 실행
  • Queue 자체는 실행 순서를 결정하지 않음
  • Task마다 특정 큐를 지정해 효율적인 리소스 분배 가능

Airflow Queue는 “Task를 줄 세워 잠시 보관하는 통로”이며,
“누가 먼저 일할지는 스케줄러가 결정한다.”