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을 설정할 수가 있다.
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
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도 충분히 사용가능할것으로 보인다)
'Automation Tool' 카테고리의 다른 글
n8n, 나만의 MCP Server 만들기 (0) | 2025.07.21 |
---|---|
n8n, Slack Block Kit(2) (0) | 2025.06.18 |
n8n, Slack Block Kit (0) | 2025.06.16 |
🔄 n8n의 Loop Over Items 노드, 도대체 어떻게 돌아가는 걸까? (0) | 2025.06.02 |
n8n, Google Calendar OAuth2 인증 오류(Docker) (0) | 2025.05.27 |
댓글