본문 바로가기
Automation Tool

Cron 노드 (Schedule Trigger) 사용법 + Airflow?

by 그때 그때 끄적 2025. 7. 28.

n8n에서 특정 시간에 워크플로우를 실행시킬 때 사용하는

Cron 노드(최신 버전에서는 Schedule Trigger)에대한 사용법에 대해 알아보자.

"매일 아침 9시 리포트" 같은 반복 작업을 자동화할 때 필수적인 기능이다.

 

1. Docker 타임존(Timezone)

나처럼 Docker로 n8n을 호스팅하면 컨테이너의 기본 타임존이 UTC로 설정되어 있어, Cron 작업이 내가 의도한 시간과 다르게 동작한다.

예를 들어 한국 시간(KST, UTC+9) 아침 9시에 실행되도록 설정해도, 실제로는 UTC 기준 아침 9시에 동작해버린다. 한국 시간으로는 오후 6시. 이걸 맞추려면 n8n 컨테이너 실행 시 환경 변수(Environment Variable)로 타임존을 한국(Asia/Seoul)으로 지정해야만 한다. - 하지만 난 설정하지 않았다. 미국 시간도 필요할 수 있으니까??

+ Workflow에서 Timezone 변경 가능(= 바로 밑에 내용 확인 필)

[docker-compose.yml 설정]

version: '3.7'

services:
  n8n:
    image: n8n-custom # 사용하는 이미지 이름
    restart: always
    ports:
      - "5678:5678"
    environment:
      - TZ=Asia/Seoul # <-- 핵심. 타임존을 서울로 설정.
    volumes:
      - ~/.n8n:/home/node/.n8n

이렇게 TZ=Asia/Seoul 설정을 추가하고 n8n을 재시작하면, 모든 시간 기준이 한국 시간으로 맞춰진다.

 

⚠ n8n Workflow에서 Timezone 변경 가능

n8n, Workflow마다 Timezone을 설정할 수가 있다.

Workflow Settings에서 Timezone 변경

2. 노드 이름: Cron vs Schedule Trigger

구버전 n8n에서는 노드 이름이 'Cron'이었지만, 0.199.0 버전부터는 'Schedule Trigger'로 이름이 바뀌고 기능이 통합되었다. 같은 기능이니 혼동하지 말 것. 이 노드는 워크플로우의 시작을 알리는 트리거(Trigger) 역할을 한다.

 

3. 스케줄 설정 방법

3.1. 기본 설정

노드 설정 창의 'Trigger Interval' 항목에서 기본적인 실행 주기를 선택할 수 있다.

  • Every Hour: 매시간 정각
  • Every Day: 매일 특정 시간
  • Every Week: 매주 특정 요일, 특정 시간
  • Every Month: 매월 특정 날짜, 특정 시간

예를 들어 '매일 오전 9시 30분' 실행은 'Trigger Interval'을 'Every Day'로 두고, 'Hour'에 9, 'Minute'에 30을 입력하면 된다.

3.2. Cron 표현식을 이용한 고급 설정

더 복잡한 주기는 'Trigger Interval'을 'Custom (Cron)'으로 변경하고 Cron 표현식(Cron Expression)으로 직접 설정한다.

*     *     *     *     *
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    └───── 요일 (0-7, 0과 7은 일요일)
│    │    │    └────────── 월 (1-12)
│    │    └─────────────── 일 (1-31)
│    └──────────────────── 시 (0-23)
└───────────────────────── 분 (0-59)

[유용한 Cron 표현식 예제]

  • */5 * * * * : 매 5분마다
  • 0 9 * * 1-5 : 월~금(평일) 오전 9시 정각
  • 0 17 * * 5 : 매주 금요일 오후 5시
  • 0 0 1 * * : 매월 1일 자정

표현식이 헷갈릴 때는 crontab.guru 같은 사이트를 활용하면 편리하다.

 

Crontab.guru - The cron schedule expression generator

The quick and simple editor for cron schedule expressions by Cronitor. loading...

crontab.guru

TimeZone이 미국시간으로 설정되어있기 때문에, 한국시간 오전 9시 실행하기 위해선 0 20 * * *으로 해야한다.

4. n8n 스케줄링 vs. Airflow: 언제 무엇을 쓸까?

n8n의 스케줄 기능을 써보니 자연스럽게 Airflow와의 역할 차이가 궁금해져 정리해둔다.

- 예전에 한번 사용할 일이 있어서 정리해둔 내용이다.

https://cord-ai.tistory.com/134

 

Airflow

Airflow - workflow관리 툴 Airflow는 Python 코드로 워크플로우(workflow)를 작성하고, 스케쥴링, 모니터링 하는 플랫폼입니다. Airflow를 통해서 데이터엔지니어링의 ETL 작업을 자동화하고, DAG(Directed Acyclic G

cord-ai.tistory.com

 

n8n의 Schedule Trigger는 API 연동, 슬랙 알림, 간단한 데이터 수집 등 '단순하고 반복적인 작업'을 자동화하는 데는 최고다. 직관적인 UI로 빠르게 만들 수 있는 게 가장 큰 장점이다.

하지만 작업 간의 의존성이 복잡해지거나, 대용량 데이터를 처리하는 ETL 파이프라인, 실패 시 정교한 재시도(retry) 로직이 필요한 경우에는 한계가 있어보인다.

- 재시도하는건 Cron 노드에도 기본적으로 구현이 되어있어서 사용해보면 될 것같은데, 크게 문제 될 사항은 없어보임

Airflow는 파이썬 코드로 데이터 파이프라인(DAG)을 직접 정의하고, 작업들의 선후관계나 성공/실패에 따른 분기 처리를 명확하게 관리할 수 있다고 한다... 제대로 사용해본적이 없어서 구체적으로 알지 못한다.

간단히 비교하자면 이렇다.

구분 n8n Schedule Trigger Apache Airflow
핵심 목적 웹 서비스 연동, 반복 업무 자동화 복잡한 데이터 파이프라인 관리 (ETL)
작업 방식 로우코드, 비주얼 노드 기반 코드 기반 (Python)
적합한 작업 간단한 스케줄링, API 호출, 알림 작업 간 의존성이 복잡한 ETL, 데이터 처리
장점 빠른 개발 속도, 다양한 API 노드 강력한 스케줄링, 재실행/백필, 로깅/모니터링
단점 복잡한 의존성 관리의 한계 학습 곡선 높음, 초기 설정 복잡

 

정리

  • n8n의 Schedule Trigger 노드는 워크플로우를 정해진 시간에 실행시키는 핵심 기능이다.
  • Docker 환경에서는 반드시 TZ=Asia/Seoul 환경 변수를 설정해야 시간이 꼬이지 않는다.
  • 기본 주기 설정도 편리하지만, 복잡한 스케줄은 Cron 표현식을 사용하면 대부분 해결 가능하다.
  • n8n과 Airflow는 상호 대체재가 아니라, 작업의 복잡도에 따라 선택하는 상호 보완적인 도구다. 가벼운 자동화는 n8n, 무거운 데이터 파이프라인은 Airflow로(= n8n도 충분히 사용가능할것으로 보인다)

 

 

댓글