Loop 프로세스(노드)

  • Loop 기능은 주어진 배열(Loop 대상 항목)의 각 요소에 대해 동일한 워크플로우 과정을 반복 실행하는 기능을 제공합니다.

주요 특징

  • 반복 처리: 배열의 각 요소에 대해 지정된 워크플로우를 순차적으로 실행합니다.

  • 분기 제어: 루프 진행 중에는 'loop' 분기로, 완료 시에는 'done' 분기로 이동합니다.

  • 결과 수집: 각 반복의 결과를 수집하여 최종적으로 전체 결과 배열을 제공합니다.

파라미터 설정

Loop 프로세스를 사용하기 위해서는 다음 파라미터를 설정해야 합니다:

  • Loop 대상 항목 (필수)

    • 반복 처리할 데이터 배열을 지정합니다.

    • List 객체 또는 JSON 배열 문자열 형태로 제공할 수 있습니다.

    • 템플릿 변수를 사용하여 동적으로 생성할 수 있습니다.

    // 직접 배열 지정
    ["item1", "item2", "item3"]
    
    // 템플릿 변수 사용
    ${previousResult.dataList}
    
    // JSON 문자열 형태
    "[{\"id\":1,\"name\":\"첫번째\"},{\"id\":2,\"name\":\"두번째\"}]"
    

분기 구조 (Target ID)

Loop 프로세스는 특별한 분기 구조를 사용합니다:

{
    "loop": "반복_진행중_다음_프로세스_ID",
    "done": "반복_완료후_다음_프로세스_ID"
}
  • loop: 각 반복 시 실행될 다음 프로세스의 ID를 지정합니다.

  • done: 모든 반복이 완료된 후 실행될 프로세스의 ID를 지정합니다.

동작 흐름

  1. 초기화: Loop 프로세스가 시작되면 items 배열을 파싱하고 검증합니다.

  2. 반복 시작: 첫 번째 아이템을 결과로 출력하고 'loop' 분기로 이동합니다.

  3. 반복 진행: 각 반복마다 현재 아이템을 출력하고 이전 결과를 수집합니다.

  4. 완료 처리: 모든 아이템 처리가 완료되면 전체 결과를 출력하고 'done' 분기로 이동합니다.

결과 데이터

Loop 프로세스는 반복 상황에 따라 다른 결과를 제공합니다:

  • 반복 진행 중: 현재 처리 중인 아이템의 JSON 문자열

  • 반복 완료 시: 모든 반복 결과를 포함하는 배열의 JSON 문자열

사용 예시

다음은 사용자 목록에 대해 이메일을 발송하는 Loop 워크플로우 예시입니다:

// Loop 프로세스 파라미터
{
    "items": [
        {"email": "user1@example.com", "name": "김철수"},
        {"email": "user2@example.com", "name": "이영희"},
        {"email": "user3@example.com", "name": "박민수"}
    ]
}

// 각 반복에서 출력되는 데이터
// 1회차: {"email": "user1@example.com", "name": "김철수"}
// 2회차: {"email": "user2@example.com", "name": "이영희"}
// 3회차: {"email": "user3@example.com", "name": "박민수"}

// 완료 시 최종 결과: 모든 반복 결과가 포함된 배열

제한 사항 및 주의사항

  • 최대 항목 수: 성능과 안정성을 위해 items 배열의 최대 크기(1000)가 제한됩니다.

  • 빈 배열 처리: 빈 배열이 입력되면 오류가 발생하므로 사전에 검증이 필요합니다.

  • 메모리 사용: 대용량 데이터 처리 시 메모리 사용량을 고려해야 합니다.

  • 무한 루프 방지: 잘못된 분기 설정으로 인한 무한 루프를 방지하기 위한 검증이 포함되어 있습니다.

템플릿 변수 활용

Loop 프로세스에서는 다음과 같은 템플릿 변수를 활용할 수 있습니다:

// 이전 프로세스 결과를 items로 사용
{
    "items": "${httpRequest.responseData}"
}

// 조건부로 아이템 필터링 후 사용
{
    "items": "${filteredItems}"
}

오류 처리

Loop 프로세스는 다음과 같은 상황에서 오류를 발생시킵니다:

  • items 파라미터가 누락되거나 null인 경우

  • items가 올바른 배열 형식이 아닌 경우

  • 배열이 비어있는 경우

  • 최대 항목 수를 초과하는 경우

  • 반복 인덱스가 유효하지 않은 경우

이러한 오류들은 워크플로우 실행을 중단시키므로, 사전에 데이터 검증을 수행하는 것이 좋습니다.