다크 모드
Variable Assigner 노드
Variable Assigner는 현재 Loop가 소유한 변수를 변경합니다. Loop 내부에서 생성한 값을 다음 회차로 넘기거나 숫자를 누적하고 배열에 항목을 추가할 때 사용합니다.
언제 사용하나요?
- 내부 노드의 결과로 Loop 변수 값을 교체할 때
- 카운터를 더하거나 빼고, 누적 배열에 결과를 모을 때
- 문자열을 이어 붙이거나 상태를 초기값으로 비울 때
Variable Assigner는 독립적인 데이터 변환 노드가 아니라 Loop의 상태를 변경하는 내부 전용 노드입니다.
입력
각 할당 항목에는 다음 세 가지를 지정합니다.
| 입력 | 설명 |
|---|---|
| 대상 변수 | Variable Assigner를 포함한 현재 Loop에 선언된 변수입니다. |
| 연산 | 대상 변수의 타입에 허용된 갱신 방식입니다. |
| 값 | 연산에 사용할 상수 또는 실행 순서상 접근 가능한 변수입니다. 값을 사용하지 않는 연산에서는 생략됩니다. |
내부 노드 출력을 값으로 선택하려면 해당 노드가 Variable Assigner보다 먼저 실행되는 경로에 있어야 합니다. 현재 Loop 변수와 Loop보다 앞서 실행된 상위 노드 값도 참조할 수 있습니다. Variable Assigner 자신의 출력은 입력으로 참조할 수 없습니다.
주요 설정
한 Variable Assigner에 하나 이상의 할당 항목을 추가할 수 있습니다. 항목은 목록에 표시된 순서대로 적용되며, 앞선 항목이 바꾼 Loop 변수 값은 뒤의 항목과 후속 노드에서 사용할 수 있습니다.
| 변수 타입 | 사용할 수 있는 연산 |
|---|---|
| 문자열 | 덮어쓰기(over-write), 설정(set), 비우기(clear), 이어 붙이기(append) |
| 숫자 | 덮어쓰기, 설정, 비우기, 더하기(+=), 빼기(-=), 곱하기(*=), 나누기(/=) |
| 불리언 | 덮어쓰기, 설정, 비우기 |
| 객체 | 덮어쓰기, 설정, 비우기 |
| 배열 | 덮어쓰기, 설정, 비우기, 항목 추가(append), 배열 합치기(extend), 첫/마지막 항목 제거 |
연산별 동작은 다음과 같습니다.
- 덮어쓰기/설정: 대상 변수 전체를 새 값으로 교체합니다.
- 비우기: 문자열은
"", 숫자는0, 불리언은false, 객체는{}, 배열은[]로 바꿉니다. - 이어 붙이기/항목 추가: 문자열에는 문자열을 이어 붙이고, 배열에는 JSON 값 하나를 새 항목으로 추가합니다.
- 배열 합치기: 입력 배열의 요소들을 대상 배열 뒤에 추가합니다.
- 첫/마지막 항목 제거: 배열이 비어 있지 않을 때 해당 위치의 항목을 하나 제거합니다.
출력
Variable Assigner 자체는 다음 노드에서 사용할 별도의 업무 데이터를 반환하지 않습니다. 대신 현재 Loop의 변수 상태를 즉시 갱신합니다. 후속 내부 노드는 Loop에서 해당 변수를 참조하고, Loop가 종료되면 최종 변수 값이 Loop의 출력이 됩니다.
예를 들어 count += 1을 실행하면 후속 노드와 다음 회차에서 Loop의 count가 증가한 값으로 보입니다.
연결과 배치 제약
- Variable Assigner는 반드시 Loop 본문 안에 있어야 합니다.
- 루트 워크플로우나 Iteration 본문에는 배치할 수 없습니다.
- 대상은 자신을 포함한 현재 Loop에 선언된 변수만 선택할 수 있습니다. 다른 Loop나 일반 노드의 출력은 대상 변수가 될 수 없습니다.
- Variable Assigner에는 할당 항목이 하나 이상 있어야 합니다.
- Loop의 일반 내부 노드와 마찬가지로 후속 연결을 하나만 가질 수 있습니다. 분기가 필요하면 Condition을 사용하세요.
- 연결선은 Loop 경계를 가로지를 수 없습니다.
예시
각 회차의 생성 결과를 배열에 모으고 실행 횟수를 증가시키는 예시입니다.
- Loop에 숫자 변수
count = 0과 배열 변수results = []를 만듭니다. - 본문의 LLM 또는 Code 노드에서
result를 생성합니다. - Variable Assigner에
count += 1항목을 추가합니다. - 같은 노드에
results append result항목을 추가합니다. - Loop 종료 조건을
count >= 3으로 설정합니다.
세 회차가 끝나면 Loop 출력의 count는 3이고, results에는 각 회차 결과가 실행 순서대로 담깁니다.
주의사항
- 연산과 입력 값의 타입이 대상 변수와 맞아야 합니다. 배열의
append만 예외적으로 어떤 JSON 값이든 항목 하나로 받을 수 있습니다. - 배열 전체의 요소를 이어 붙이려면
append가 아니라extend를 사용하세요.append에 배열을 넣으면 그 배열 자체가 하나의 중첩 항목이 됩니다. - 숫자를
0으로 나누거나 연산 결과가 유한한 숫자가 아니면 Loop가 실패합니다. clear, 첫 항목 제거, 마지막 항목 제거는 입력 값을 사용하지 않습니다.- Loop의 오류 정책은
fail-fast이므로 잘못된 타입이나 연산 오류가 발생하면 전체 Loop가 종료됩니다. - Loop 변수의 이름이나 타입을 바꾸면 기존 할당 항목의 대상과 값 타입이 여전히 유효한지 확인하세요.