n8n 반복 실행이 꼬일 때: Split Out·Loop·Aggregate 구분하기

n8n에서 데이터가 중복되거나 빠진다면 반복 노드를 추가하기 전에 한 item 안에 배열이 있는지, 이미 여러 item으로 나뉘었는지부터 확인하세요. 분리, 배치 처리, 합치기를 같은 동작으로 생각하면 예상한 실행 횟수와 실제 흐름이 달라져요.
아래는 외부 서비스에 메시지를 보내거나 유료 API를 호출하지 않고 구조를 점검하는 연습이에요. 실제 워크플로 성능을 측정한 결과는 아니에요.
1. 배열 10개와 item 10개는 달라요
다음 JSON은 문의 10건을 담은 하나의 객체예요. 이 객체를 한 item으로 입력했다면 inquiries 안에 배열이 있어요. 화면에 문의가 10개 보인다고 입력 item도 10개인 것은 아니에요.
{
"inquiries": [
{"id":"Q01","type":"배송"},
{"id":"Q02","type":"교환"},
{"id":"Q03","type":"상품"},
{"id":"Q04","type":"배송"},
{"id":"Q05","type":"취소"},
{"id":"Q06","type":"상품"},
{"id":"Q07","type":"교환"},
{"id":"Q08","type":"배송"},
{"id":"Q09","type":"상품"},
{"id":"Q10","type":"취소"}
]
}
Manual Trigger 다음에 Edit Fields 등으로 이 데이터를 준비하세요. 사용하는 n8n 버전에 따라 입력 화면이 다를 수 있으니, JSON을 붙인 뒤 출력의 item 수와 필드 구조부터 확인해요.
2. 세 노드의 역할을 나눠요
Split Out은 배열을 항목으로 나눠요. 위 예시라면 Field to Split Out에 inquiries를 지정해요. 원래 문의 ID가 어떤 경로로 나오는지도 출력에서 확인하세요. 다른 필드의 유지 여부는 Include 설정에 따라 달라져요. Split Out 공식 문서
Loop Over Items는 정한 크기만큼 나눠 처리해요. 다만 n8n의 많은 노드는 여러 입력 item을 기본으로 처리하므로 매번 Loop가 필요하지는 않아요. 순차·배치 처리가 필요한 이유가 있을 때 추가하세요. Loop Over Items 공식 문서
Aggregate는 항목을 모아요. 분리된 처리 결과를 목록으로 정리할 때 써요. 합친 뒤 item 수가 줄었다고 문의가 사라졌다고 단정하지 말고, 결과 배열 안의 ID를 확인하세요. Aggregate 공식 문서
3. 외부 호출 없이 흐름을 시험해요
먼저 Split Out 뒤에서 각 문의에 status: checked 같은 고정값을 붙이고 ID가 유지되는지 확인해요. 이 단계에는 Loop를 넣지 않아도 되는지 살펴보세요.
배치가 필요하다면 Batch Size를 1로 놓고 loop 출력에 처리 노드를 연결한 뒤, 처리 결과가 다음 반복으로 돌아오도록 구성해요. 모든 반복이 끝난 뒤 할 작업은 done 출력 뒤에 둬요. 처음에는 Reset을 켜지 않고 고정된 입력 목록으로 연습하는 편이 이해하기 쉬워요. 페이지를 계속 가져오는 별도 반복에서는 종료 조건이 반드시 필요해요.
4. 중복은 실행 횟수와 업무 ID를 함께 봐요
같은 노드가 여러 번 실행되는 것 자체는 배치 처리에서 정상일 수 있어요. 확인할 것은 ‘Q01의 업무가 두 번 처리됐는가’예요. 실행 기록에서 ID별 최종 상태를 적어 보세요.
- 정상 입력: Q01~Q10이 각각 최종 상태 하나를 갖는가
- 빈 배열: 처리할 업무가 없을 때 불필요한 외부 호출이 생기지 않는가
- 형식 오류: ID가 없는 항목이 조용히 빠지지 않고 오류로 구분되는가
- 재시도: 실패한 업무만 재처리되는가
운영 단계에서는 같은 요청을 다시 받아도 중복 발송·중복 등록이 생기지 않도록 고유 ID와 처리 기록을 활용해야 해요. 단순히 Loop를 지우는 것으로 이 문제가 모두 해결되지는 않아요. 성공 건수와 실패 건수를 합친 값이 입력 업무 수와 같은지, 중복 ID가 있는지를 따로 검사하세요.
자주 묻는 질문
Batch Size가 1이면 호출 간격도 보장되나요? 처리 묶음의 크기와 시간 간격은 별개예요. 외부 서비스 한도에 맞는 대기·재시도 설계가 따로 필요해요.
Aggregate 뒤에 item이 하나면 누락인가요? 그 item의 배열에 결과가 모였을 수 있어요. item 수만 보지 말고 ID 목록을 대조하세요.
참고 자료
주제 참고: Nate Herk의 n8n 노드 소개 영상. 자체 문의 데이터와 오류 점검 순서로 재구성했어요. 기능 설명은 위 n8n 공식 문서를 2026년 10월 17일 확인했어요.