오케스트레이션 로직
오케스트레이션 로직
워크플로나 챗플로우를 만들 때 노드를 어떻게 배치·중첩·재사용하는지 다루는 페이지예요. 직렬·병렬 실행과 노드 복사·붙여넣기, 그리고 반복·루프의 활용을 중심으로 설명합니다.
출처: 공식문서
직렬과 병렬 실행
워크플로를 만들 때 노드를 직렬 또는 병렬로 배치할 수 있어요.
- **직렬(In series)**로 배치하면 노드가 하나씩 차례로 실행됩니다. 각 노드는 체인에서 앞선 어떤 노드의 변수든 읽을 수 있습니다.
- **병렬(In parallel)**로 배치하면 노드가 동시에 실행됩니다. 서로의 변수는 읽을 수 없지만, 병렬 분기가 수렴하는 지점에서는 다운스트림 노드가 분기 전체의 변수를 읽을 수 있어요.
노드 재사용
User Input을 제외한 모든 노드는 같은 워크플로 안에서, 워크플로 간에, 또는 Dify 인스턴스 간에 복사·붙여넣기할 수 있습니다. 다만 Dify 버전 사이에 호환성 문제가 있을 수 있어요. 노드를 붙여넣으면 그 구성이 함께 이동하지만, 주변 환경에 의존하는 것들의 가용성은 대상 위치에서 다시 평가됩니다.
- 워크플로 특화 리소스: 변수 같은 것.
- 워크스페이스 특화 리소스: 도구, 플러그인, 지식 베이스 같은 것.
즉, 붙여넣은 노드가 참조하던 변수나 도구가 대상 워크플로/워크스페이스에 없다면 그 부분은 새 환경에 맞춰 다시 걸러진다는 뜻이에요.
반복(Iteration)과 루프(Loop)
여러 번 실행해야 하는 노드(리스트의 항목마다, 또는 조건이 충족될 때까지)는 Iteration 또는 Loop 노드 안에 넣으세요. Iteration은 배열을 요소별로 처리하고, Loop는 반복적 개선이 있는 반복 워크플로를 실행하는 데 씁니다.
더 알아보기 (Learn more)
- 워크플로 & 챗플로우 — 두 앱 유형의 직렬·병렬 구성
- 핵심 개념 — 워크플로·챗플로우의 기본