루프(Loop)
루프(Loop)
루핑은 여러 항목을 처리하거나 주소록의 모든 연락처에 메시지를 보내는 것처럼 어떤 작업을 반복하고 싶을 때 유용해요. n8n은 이런 반복 처리를 자동으로 처리해서, 워크플로에 루프를 명시적으로 만들 필요가 없어요. 예외인 노드도 몇 개 있지만요.
n8n에서 루프 사용하기
n8n 노드는 원하는 수의 항목을 입력으로 받아서 이 항목들을 처리하고 결과를 출력해요. 각 항목을 단일 데이터 포인트, 즉 노드 출력 표의 한 행이라고 생각할 수 있어요.

노드는 보통 각 항목에 대해 한 번씩 실행돼요. 예를 들어 Customer Datastore 노드의 고객 이름과 메모를 Slack 메시지로 보내고 싶다고 해볼게요.
- Slack 노드를 Customer Datastore 노드에 연결하세요.
- 파라미터를 구성하세요.
- 노드를 실행하세요.
그러면 메시지가 다섯 개 도착해요. 항목마다 하나씩이에요.
이게 노드를 루프로 명시적으로 연결하지 않고도 여러 항목을 처리하는 방법이에요.
노드 한 번만 실행하기
노드가 받은 모든 항목을 처리하기 원하지 않는 상황, 예를 들어 첫 번째 고객에게만 Slack 메시지를 보내고 싶은 경우에는 해당 노드의 Settings 탭에서 Execute Once 파라미터를 켜면 돼요. 이 설정은 들어오는 데이터에 여러 항목이 있고 첫 번째 것만 처리하고 싶을 때 유용해요.
루프 만들기
n8n은 일반적으로 모든 들어오는 항목에 대한 반복(iteration)을 처리해요. 하지만 모든 항목을 반복하려면 직접 루프를 만들어야 하는 시나리오도 있어요. 자동으로 반복하지 않는 노드 목록은 노드 예외를 참고하세요.
조건이 충족될 때까지 루프
n8n 워크플로에서 루프를 만들려면 한 노드의 출력을 이전 노드의 입력에 연결하세요. 루프를 언제 멈출지 확인하는 IF 노드를 추가하세요.
IF 노드로 루프를 구현한 예제 워크플로입니다.

모든 항목이 처리될 때까지 루프
모든 항목이 처리될 때까지 루프하고 싶다면 Loop Over Items 노드를 사용하세요. 각 항목을 개별적으로 처리하려면 Batch Size를 1로 설정하세요.
데이터를 그룹으로 묶어(batch) 이 배치들을 처리할 수 있어요. 이 방법은 큰 들어오는 데이터를 처리할 때 API 속도 제한(rate limit)을 피하거나, 반환된 항목의 특정 그룹을 처리하고 싶을 때 유용해요.
Loop Over Items 노드는 모든 들어오는 항목이 배치로 나뉘어 워크플로의 다음 노드로 전달된 후 실행을 멈춰요. 그래서 루프를 멈출 IF 노드를 추가할 필요가 없어요.
노드 예외
워크플로에 루프를 직접 설계해야 하는 노드와 작업:
- CrateDB는
insert와update에 대해 한 번 실행돼요. - Run Once for All Items 모드의 Code 노드: 입력된 코드 스니펫에 따라 모든 항목을 처리해요.
- Run Once for All Items 모드의 Execute Workflow 노드.
- HTTP Request: 페이지네이션을 직접 처리해야 해요. API 호출이 페이지네이션된 결과를 반환하면 한 번에 한 페이지씩 가져오도록 루프를 만들어야 해요.
- Microsoft SQL은
insert,update,delete에 대해 한 번 실행돼요. - MongoDB는
insert와update에 대해 한 번 실행돼요. - QuestDB는
insert에 대해 한 번 실행돼요. - Redis:
- Info: 이 작업은 들어오는 데이터의 항목 수와 관계없이 한 번만 실행돼요.
- RSS Read는 요청된 URL에 대해 한 번 실행돼요.
- TimescaleDB는
insert와update에 대해 한 번 실행돼요.