n8n 한국어 교재 · Ch.14

Loop · Split In Batches

1만 건 메일 발송, 5천 행 API 호출 — 한 번에 다 보내면 Rate Limit 또는 메모리 초과. 100개씩 끊어 보내고 잠시 쉬는 패턴이 정공법.

4개 배치 박스 일러스트

Ch.13 의 Code 노드로 데이터를 가공할 수 있게 됐다면, 이번엔 그걸 대량으로 처리하는 패턴. Slack 노드에 1만 건 그냥 던지면 Rate Limit 에서 폭망. OpenAI API 도 분당 호출 제한. 답은 — 100개씩 끊어 보내고 잠시 wait.

Split In Batches 노드의 동작

Split In Batches 노드 검색 결과
이전 노드 + → "split in batches" 검색. 한국어 검색은 안 되므로 영문으로.

이 노드의 동작은 살짝 특이 — 입력 items 를 N개씩 끊어 자기 자신을 여러 번 출력합니다. 한 번 실행마다 N 개씩 통과시키고, 후속 노드들이 다 끝나면 다시 다음 N 개. 모든 배치가 끝날 때까지 반복.

Split In Batches Batch Size: 100 (한 번에 통과할 item 수) Reset: false (기본) ↓ items 100개 통과 HTTP Request·Slack·기타 (이 100개에 대해 실행) ↓ 끝나면 Wait (1초) ←← 자체 루프! 다시 Split In Batches 로 돌아감

핵심 패턴 — Wait 와의 짝

Split In Batches 뒤에 일반 노드를 한 번 실행한 후 다시 처음으로 돌아가게 하려면 — Wait 노드 또는 마지막 노드 출력을 다시 Split In Batches 로 연결합니다. n8n 캔버스에서 화살표를 거꾸로 그리면 됨 (루프).

전체 워크플로 예 (1만 건 메일 발송)
ScheduleGet Rows(시트 전체) → Split In Batches(50개) → Send EmailWait(2초) → 다시 Split In Batches 로 루프

이 패턴으로 1만 건이라도 (50개 × 200 배치 × 2초 = 약 7분) 안전하게 발송. Rate Limit 안 걸림.

Rate Limit 별 권장 Batch Size

# 서비스별 안전 권장 Slack : 1개 / 1초 OpenAI (gpt-4): 60 / 분 → batch 1 + wait 1초 SendGrid : 100 / 초 → batch 100 + wait 1초 (여유) Webhook → DB : 1000 / 초 → batch 500 + wait 0.5 Google Sheets : 100 / 분(read) / 60 / 분(write) → batch 10 + wait 1

서비스 doc 확인 후 한도의 50~70% 로 설정. 너무 빠듯하면 가끔 일시적 429 발생.

실수 패턴 + 진행 상황 추적

흔한 실수 1 — 루프 안 만듦
Split In Batches 만 추가하고 다음 노드들을 일직선으로 연결 → 첫 100개만 처리되고 워크플로 끝남. 마지막 노드를 다시 Split In Batches 로 연결해야 함.
흔한 실수 2 — 메모리
1만 행을 한꺼번에 Get Rows 로 불러오면 메모리 부담. 가능하면 Limit + Offset 으로 시트도 끊어 읽기. n8n 컨테이너 메모리 1GB 라면 5천 행이 안전 상한.

진행 상황 추적은 $runIndex 로 — Split In Batches 내부 변수, 현재 몇 번째 배치인지. Slack 알림 노드에 ={{ "배치 " + $runIndex + "/" + Math.ceil($json.totalItems / 100) + " 완료" }} 식으로 매 배치마다 진행 알림 가능.

실전 — 1만 건 LLM 요약 워크플로

RSS 50 피드의 새 글 5천 건을 OpenAI gpt-4o-mini 로 요약해 시트에 누적하는 시나리오:

Schedule(매일 9시) → RSS Feed Read × 50 → Merge(all) ↓ items 5000개 Split In Batches (Batch Size: 20) ↓ 20개씩 OpenAI (gpt-4o-mini, "요약 한 줄") ↓ Google Sheets (Append Row) ↓ Wait (2초) → 다시 Split In Batches 로 루프

OpenAI gpt-4o-mini 의 분당 한도 약 500 TPM 이라 batch 20 + 2초 wait = 분당 600 호출이 안전. 5000건 처리 시간 = 약 8분. 시트 권한 제한도 함께 안 걸림.

이 패턴이 운영 환경의 "대량 처리" 표준 — Split In Batches 가 메모리·Rate Limit 두 가지 문제를 한 번에 푸는 만능 도구.

다음 Ch.15 — Merge. 여러 흐름을 다시 하나로 합치는 패턴. Split 했으면 결국 Merge 도 알아야.

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

다음 편 → Ch.15 Merge — 여러 흐름 합치기

전체 시리즈 보기

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