Loop 노드 — 점진적 개선을 위한 반복 실행

Loop 노드 — 점진적 개선을 위한 반복 실행

Loop 노드는 각 주기가 이전 주기의 결과를 바탕으로 실행되는 반복 워크플로를 수행합니다. Iteration이 배열 요소를 독립적으로 처리하는 것과 달리, 루프는 반복할 때마다 진화하는 점진적(progressive) 워크플로를 만듭니다.

출처: 공식문서 — Loop Node

Loop vs Iteration

두 반복 패턴을 언제 써야 하는지 이해하는 게 핵심입니다.

Loop

  • 순차 처리 — 각 주기가 이전 결과에 의존
  • 점진적 개선 — 출력이 반복을 거치며 향상·진화
  • 상태 관리 — 변수가 주기 사이에 유지·누적
  • 활용 사례 — 콘텐츠 다듬기, 문제 해결, 품질 보증

Iteration

  • 독립 처리 — 각 항목을 별도로 처리
  • 병렬 실행 — 항목을 동시에 처리 가능
  • 배치 연산 — 여러 데이터 포인트에 같은 연산 적용
  • 활용 사례 — 데이터 변환, 대량 처리, 병렬 분석

설정

루프 변수

루프 반복 사이에 유지되고 루프 완료 후에도 접근 가능한 변수를 정의합니다. 이 변수들이 상태를 유지하고 점진적 워크플로를 가능하게 해요.

종료 조건

루프가 언제 멈출지 구성합니다.

Loop Termination Condition — 언제 빠져나갈지 결정하는 표현식 (예: quality_score > 0.9)

Maximum Loop Count — 무한 루프를 막는 안전장치

Exit Loop Node — 이 노드에 도달하면 즉시 종료

루프는 종료 조건이 충족되거나, 최대 횟수에 도달하거나, Exit Loop 노드가 실행될 때 종료됩니다. 조건을 지정하지 않으면 최대 횟수까지 루프가 계속됩니다.

기본 루프 예시

50보다 작은 수를 찾을 때까지 난수를 생성합니다.

워크플로 단계

  1. Code 노드가 1~100 사이의 정수 난수 생성
  2. If-Else 노드가 숫자가 50보다 작은지 확인
  3. Template 노드가 50 미만 숫자에 "done"을 반환해 루프 종료 트리거
  4. 종료 조건이 충족될 때까지 루프 계속

고급 루프 예시

이전 버전을 바탕으로 각 버전을 다듬는 방식으로 시를 만듭니다.

루프 변수

  • num — 0에서 시작해 반복마다 증가하는 카운터
  • verse — 현재 시 버전을 담는 텍스트 변수

워크플로 로직

  1. If-Else 노드num > 3인지 확인해 언제 빠져나갈지 결정
  2. LLM 노드가 이전 버전을 바탕으로 개선된 시 생성
  3. Variable Assigner가 카운터와 시 콘텐츠를 모두 갱신
  4. Exit Loop 노드가 4번의 다듬기 주기 후 종료

LLM 프롬프트는 현재 절과 반복 컨텍스트를 모두 참조합니다.

You are a European literary figure creating poetic verses.

Current verse: {{verse}}

Refine and improve this poem based on your previous work.

더 알아보기