병렬 게이트웨이 (Parallel Gateway)
한눈에 보기
병렬 게이트웨이는 여러 경로를 동시에 실행(Fork)하거나, 여러 경로가 모두 완료될 때까지 대기(Join)하는 노드입니다. 캔버스에서 + 표시가 있는 마름모 로 표시되며, 반드시 **분기(Fork)와 합류(Join)**가 쌍으로 존재해야 합니다.
소개
제조 공정에서는 서로 독립적인 작업을 동시에 수행하여 리드타임을 단축하는 것이 중요합니다. 예를 들어 출하 전 외관 검사, 치수 검사, 기능 검사를 순차적으로 하면 3배의 시간이 걸리지만, 병렬로 수행하면 가장 오래 걸리는 검사 시간만큼만 소요됩니다.
이렇게 보입니다
캔버스 표시
○
→
◇(+) Fork
→
외관 검사 (사람)
↘
→
치수 검사 (사람)
→
◇(+) Join
→
완료
→
◎
→
기능 검사 (사람)
↗
- Fork(분기): 하나의 입력에서 여러 출력으로 — 모든 경로가 동시에 시작
- Join(합류): 여러 입력에서 하나의 출력으로 — 모든 경로가 완료되어야 진행
실행 결과
실행 중에는 각 병렬 경로의 진행 상태가 개별적으로 표시됩니다:
워크플로우 인스턴스 상태
Fork -- 완료
외관 검사: 합격 (10:05 완료)
치수 검사: 진행 중
기능 검사: 합격 (10:12 완료)
Join: 대기 중 (1/3 미완료)
설정 항목
| 항목 | 설명 |
|---|---|
| 합류 조건 | 모든 경로 완료 (기본) / N개 이상 완료 |
| 타임아웃 | 합류 대기 최대 시간 (선택) |
| 타임아웃 동작 | 시간 초과 시 처리 (중단 / 남은 경로 취소 후 진행) |
Fork와 Join의 쌍
병렬 게이트웨이는 반드시 Fork 하나에 Join 하나가 대응해야 합니다. Join 없이 Fork만 있으면 병렬 경로들이 각각 별도의 종료 이벤트로 끝나야 합니다 — 이 경우 하나의 워크플로우 인스턴스에서 여러 종료가 발생하므로 주의하세요.
설정 방법
- 캔버스에서 병렬 게이트웨이 노드를 두 개 배치합니다 (Fork, Join).
- Fork 노 드에서 동시에 실행할 각 태스크로 플로우 엣지를 연결합니다.
- 각 병렬 태스크에서 Join 노드로 플로우 엣지를 연결합니다.
- Join 노드에서 다음 태스크로 연결합니다.
- 필요 시 타임아웃을 설정합니다.
실무 예시: 출하 전 복합 검사
시나리오: 제품 출하 전 4가지 검사를 동시에 수행, 모두 합격해야 출하 승인
출하 요청 접수
↓
◇(+) Fork
→
외관 검사 (사람 작업)
결과: 합격/불합격
결과: 합격/불합격
↘
→
치수 측정 (사람 작업)
결과: 측정값, 합격/불합격
결과: 측정값, 합격/불합격
↘
→
전기 시험 (자동 작업)
설비 연동 자동 검사
설비 연동 자동 검사
↘
→
포장 상태 확인 (사람 작업)
결과: 합격/불합격
결과: 합격/불합격
↘
◇(+) Join (모두 완료 시)
↓
◇(X) 배타 게이트웨이: 전체 합격?
Yes →
출하 승인 (자동)
→
◎
No →
재작업 지시 (자동)
→
◎
병렬 + 배타 조합
위 예시처럼 병렬 게이트웨이(Join) 다음에 배타 게이트웨이를 배치하면, "모든 검사가 끝난 후 결과를 종합하여 판단"하는 패턴을 구현할 수 있습니다.