n8n 한국어 교재 · Ch.6 · 기초편 시작

Schedule Trigger — 매일 N시 자동 실행

매일 9시 RSS 알림, 매주 월요일 보고서, 매월 1일 청구서 — 시간 기반 자동화의 가장 기본. 설정 5분이면 컴퓨터가 알아서 돕니다.

시계 일러스트 — 9시 30분 위치를 가리키는 시침 분침

입문편 5 챕터에서 워크플로가 어떻게 흘러가는지를 봤다면, 이제부터는 실전 패턴입니다. 자동화의 첫 가치는 보통 "내가 매일 같은 시간에 같은 일을 하던 걸 컴퓨터가 대신함" 에서 나옵니다. n8n 의 Schedule Trigger 가 정확히 그 역할.

Schedule Trigger 가 하는 일

워크플로의 첫 노드를 Schedule Trigger 로 만들면, n8n 이 백그라운드에서 "이 시간이 됐는지" 계속 보고 있다가 정해진 시간에 자동으로 워크플로를 한 번 실행해줍니다. 컴퓨터(또는 Docker 컨테이너)가 켜져 있는 한 평생 작동.

가장 흔한 5가지 시나리오
① 매일 아침 9시 — RSS 새 글 요약해 Slack 알림
② 매시간 — 외부 API 폴링해 변화 감지
③ 매주 월요일 — 주간 통계 Google Sheets 에 추가
④ 매월 1일 — 정기 청구서 메일 발송
⑤ 평일 18시 — 일일 리포트 자동 작성

n8n 의 Schedule Trigger 는 두 모드를 지원합니다. 간단한 패턴은 일반 모드(드롭다운 선택), 복잡한 패턴은 Cron 모드(표현식 직접 입력).

일반 모드 — "매일 9시" 5단계 설정

Schedule Trigger 노드 설정 패널 — Trigger Interval(Days), Days Between Triggers, Trigger at Hour, Trigger at Minute 필드
실제 Schedule Trigger 노드 패널. Trigger Interval = Days, 1일마다, Hour = Midnight, Minute = 0 이 기본값입니다.
1
새 워크플로 → Add first step → Schedule

트리거 패널에서 On a schedule 항목 클릭. 캔버스에 Schedule Trigger 노드가 추가되고 위와 같은 설정 패널이 자동으로 열립니다.

2
Trigger Interval 선택

드롭다운에서 선택:

옵션의미
SecondsN초마다 (테스트용. 운영 ❌)
MinutesN분마다 (폴링용. 우리 운영 워크플로가 2분 주기)
HoursN시간마다
Days매일 특정 시각 ← 가장 흔함
Weeks매주 특정 요일+시각
Months매월 N일 특정 시각
Custom Cron표현식 직접
3
"Days" 선택 후 세부 옵션

Days Between Triggers: 1 (매일). 7로 하면 7일마다.
Trigger at Hour: 9 (오전 9시).
Trigger at Minute: 0 (정각).

이걸로 "매일 오전 9시 정각" 설정 완료.

4
Timezone 확인 — 가장 흔한 함정

n8n 의 기본 timezone 은 UTC. "9시" 라고 적었는데 실제로는 한국 시간 18시 (UTC 9 = KST 18) 에 실행됩니다. Ch.2 의 docker-compose.yml 에 TZ=Asia/SeoulGENERIC_TIMEZONE=Asia/Seoul 을 넣어둔 이유.

# 도커 환경변수 확인 (호스트에서) docker exec n8n env | grep -i timezone GENERIC_TIMEZONE=Asia/Seoul TZ=Asia/Seoul

또는 워크플로별로 따로 지정: Schedule Trigger 노드 패널 하단 Settings → Workflow Timezone. 인스턴스 기본과 다른 시간대로 굴리고 싶을 때만.

5
활성화 — Active 토글

우측 상단 Inactive/Active 토글. Active 로 켜야 백그라운드 실행 시작. Inactive 인 상태에서는 Test workflow 버튼으로 수동 실행만 가능.

활성화 후 우측 상단의 Next Execution 표시에 "다음 실행: 2026-05-19 09:00:00" 처럼 다음 시각이 떠야 정상.

Cron 모드 — 복잡한 패턴은 표현식으로

"평일에만 9시" 같은 건 일반 모드로 안 됩니다. Custom Cron 으로 전환.

# Cron 5자리 표현식: 분 시 일 월 요일 0 9 * * 1-5 매주 월~금 9시 정각 */15 * * * * 15분마다 0 9,18 * * * 매일 9시와 18시 0 0 1 * * 매월 1일 자정 30 8 * * 1 매주 월요일 8시 30분

요일은 0~6 (0 = 일요일, 1 = 월요일, ... 6 = 토요일). Cron 표현식이 헷갈리면 crontab.guru 에서 자연어 변환 확인 가능.

주의 — Cron 의 "분" 정확도
n8n 의 Schedule Trigger 는 1분 단위 정확. 초 단위는 무시됩니다. 0 9 * * * 면 9시 0분 ~ 9시 0분 59초 사이 어느 시점에 한 번 실행.

실전 예 — 매일 9시 RSS 새 글을 Slack 알림

Ch.6 의 마무리로 실용 워크플로 한 개. 노드 4개로 완성.

Schedule Trigger (매일 9시) ↓ RSS Feed Read (블로그 RSS URL 입력) ↓ IF (오늘 발행된 글만 통과) ↓ Slack (제목 + 링크 메시지)

IF 노드 조건: {{ $now.toFormat("yyyy-MM-dd") }} === {{ $json.pubDate.toFormat("yyyy-MM-dd") }}. RSS 가 어제 글도 같이 주면 오늘 것만 거름. Slack 노드는 Ch.10 에서 자세히 다룹니다.

Workflow Active 의 함정 — 토글 끄고 켜는 걸 잊으면 워크플로 수정 후에도 옛 버전이 도는 채로 남아 있을 수 있어요. n8n 2.0 부터는 Save 와 Publish 가 분리돼서, 코드를 바꾼 후 Publish 까지 눌러야 운영에 반영됩니다.

다음 Ch.7 에서는 반대 방향 — 외부에서 들어오는 신호 (Webhook) 로 워크플로를 트리거하는 패턴을 다룹니다. Stripe 결제 이벤트·GitHub PR·Slack 슬래시 명령 같은 게 모두 Webhook 으로 들어오죠.

n8n 한국어 교재 · Ch.6 완료

다음 편 → Ch.7 Webhook 받기 — 외부에서 트리거

전체 시리즈 보기

© 2026 주나이테크(주) @JUNAITECH