Loop Over Items (Split in Batches)
n8n v2.29Loop Over Items 노드는 필요할 때 데이터를 반복 처리할 수 있도록 도와줍니다. 이 노드는 원본으로 들어온 데이터를 저장하며, 각 반복마다 미리 정의된 양의 데이터를 loop 출력을 통해 반환합니다. 노드 실행이 완료되면 처리된 모든 데이터를 결합하여 done 출력을 통해 반환합니다.
Loop Over Items 노드는 필요할 때 데이터를 반복 처리할 수 있도록 도와줍니다.
이 노드는 원본으로 들어온 데이터를 저장하며, 각 반복마다 미리 정의된 양의 데이터를 loop 출력을 통해 반환합니다.
노드 실행이 완료되면 처리된 모든 데이터를 결합하여 done 출력을 통해 반환합니다.
Loop Over Items 노드를 사용하는 경우#
기본적으로 n8n 노드는 입력 항목 목록을 처리하도록 설계되어 있습니다(아래에서 자세히 설명하는 몇 가지 예외 제외). 달성하려는 목표에 따라 워크플로에 Loop Over Items 노드가 필요하지 않은 경우가 많습니다. n8n이 여러 항목을 처리하는 방식에 대해서는 n8n에서의 루핑 페이지에서 자세히 알아볼 수 있습니다.
다음 링크는 Loop Over Items 노드가 유용하게 쓰일 수 있는 몇 가지 사례를 보여줍니다.
- 모든 항목이 처리될 때까지 반복: Loop Over Items 노드가 일반적인 항목 처리 방식과 어떻게 다른지, 그리고 이 노드를 언제 사용하면 좋은지 설명합니다.
- 노드 예외 사항: 루프 로직을 수동으로 구성하기 위해 Loop Over Items 노드를 사용해야 할 수도 있는 특정 사례와 노드를 설명합니다.
- 속도 제한 피하기: 다른 서비스의 속도 제한을 피하기 위해 API 요청을 일괄 처리하는 방법을 보여줍니다.
노드 매개변수#
배치 크기#
각 호출마다 반환할 항목 수를 입력합니다.
노드 옵션#
재설정#
이 옵션을 켜면 노드는 매 반복마다 현재 입력 데이터로 새로 초기화되어 재설정됩니다. Loop Over Items 노드가 들어오는 데이터를 이전 항목의 연속이 아닌 새로운 데이터 집합으로 취급하도록 하려는 경우 이 옵션을 사용합니다.
예를 들어, 미리 몇 개의 페이지가 필요한지 모르는 상태에서 페이지네이션된 서비스를 조회할 때, reset 옵션이 적용된 Loop Over Items 노드와 If node를 함께 사용할 수 있습니다. 루프는 페이지를 한 번에 하나씩 조회하고, 필요한 처리를 수행한 다음 페이지 번호를 증가시킵니다. 루프 reset을 통해 루프가 각 반복을 새로운 데이터 집합으로 인식하도록 보장합니다. If 노드는 종료 조건을 평가하여 반복을 계속할지 여부를 결정합니다.
유효한 종료 조건을 포함하세요
위에서 설명한 것과 같은 워크플로의 경우, 루프에 대한 유효한 종료 조건을 포함하는 것이 매우 중요합니다. 종료 조건이 절대 일치하지 않으면 워크플로 실행이 무한 루프에 갇히게 됩니다.
이 옵션을 활성화하면 매개변수 표현 방식을 Fixed에서 Expression으로 전환하여 reset 조건을 조정할 수 있습니다. 표현식 평가 결과에 따라 노드가 항목 처리를 재설정하는 시점이 결정됩니다.
템플릿 및 예제#
Loop Over Items (Split in Batches) 통합 템플릿 둘러보기 또는 모든 템플릿 검색
두 개의 서로 다른 소스에서 RSS 피드 읽기#
이 워크플로는 Loop Over Items 노드를 사용하여 두 개의 서로 다른 소스에서 RSS 피드를 읽을 수 있게 해줍니다. RSS Feed Read 노드는 받은 첫 번째 항목만 처리하므로 워크플로에 Loop Over Items 노드가 필요합니다. n8n.io에서 이 워크플로를 찾을 수도 있습니다.
이 예제는 워크플로를 구축하는 과정을 안내하지만, n8n에 이미 익숙하다고 가정합니다. 워크플로에 노드를 추가하는 방법을 포함하여 첫 워크플로를 만드는 방법을 배우려면 사용해보기를 참고하세요.
완성된 워크플로는 다음과 같습니다.
대화형 워크플로 데모입니다. 워크플로 JSON 보기 또는 n8n 공식 문서에서 확인하세요.
위 워크플로 파일을 복사하여 인스턴스에 붙여넣거나, 다음 단계에 따라 직접 만들 수 있습니다.
- 수동 트리거(manual trigger)를 추가합니다.
- Code 노드를 추가합니다.
- 다음 코드를 Code 노드에 복사합니다.
return [ { json: { url: 'https://medium.com/feed/n8n-io', } }, { json: { url: 'https://dev.to/feed/n8n', } } ]; - Loop Over Items 노드를 추가합니다.
- Loop Over Items를 구성합니다. Batch Size 필드에 배치 크기를
1로 설정합니다. - RSS Feed Read 노드를 추가합니다.
- Execute Workflow를 선택합니다. 이렇게 하면 워크플로가 실행되어 RSS Feed Read 노드로 데이터가 로드됩니다.
- RSS Feed Read를 구성합니다. 입력에서
url을 URL 필드로 매핑합니다. INPUT 패널에서 드래그 앤 드롭하거나 다음 표현식을 사용하여 매핑할 수 있습니다:{{ $json.url }}. - Execute Workflow를 선택하여 워크플로를 실행하고 결과 데이터를 확인합니다.
노드가 모든 항목을 처리했는지 확인하기#
노드에 아직 처리할 항목이 남아 있는지 확인하려면 다음 표현식을 사용합니다: {{$("Loop Over Items").context["noItemsLeft"]}}. 이 표현식은 불리언 값을 반환합니다. 노드에 처리할 데이터가 남아 있으면 표현식은 false를 반환하고, 그렇지 않으면 true를 반환합니다.
노드의 현재 실행 인덱스 가져오기#
노드의 현재 실행 인덱스를 가져오려면 다음 표현식을 사용합니다: {{$("Loop Over Items").context["currentRunIndex"];}}.