실행의 유형
실행의 유형
수동·부분·자동 워크플로 실행이 어떻게 다른지 다뤄볼게요.
n8n이 워크플로를 수동으로(Execute Workflow 버튼을 클릭해서) 실행하는 방식과 자동으로(워크플로가 게시(published) 되고 이벤트나 스케줄에 의해 트리거될 때) 실행하는 방식에는 몇 가지 중요한 차이가 있어요.
수동 실행
수동 실행은 캔버스[^1]에서 직접 워크플로를 실행해 워크플로 로직을 테스트할 수 있게 해줘요. 이런 실행은 "임시(ad-hoc)" 성격이라서 Execute workflow 버튼을 직접 눌렀을 때만 실행돼요.
수동 실행은 흐름 로직을 따라가며 데이터 변환을 확인하면서, 진행하는 동안 반복적으로 테스트할 수 있게 해서 워크플로를 더 쉽게 만들게 해줘요. 서로 다른 입력 항목을 제공하고 노드 옵션을 수정해서 조건부 분기, 데이터 형식 변경, 루프 동작을 테스트할 수 있어요.
{% hint style="info" %} 실행 데이터 고정(pinning)
수동 실행을 할 때 데이터 고정을 사용해서 노드의 출력 데이터를 "고정"하거나 "동결"시킬 수 있어요. 고정된 데이터를 추가로 편집할 수도 있어요.
이후 실행에서는 고정된 노드를 실행하는 대신 n8n이 고정된 데이터를 대신 사용하고 흐름 로직을 계속 따라가요. 이를 통해 가변 데이터를 다루지 않거나 외부 서비스에 반복적으로 쿼리하지 않고도 반복할 수 있어요. 프로덕션 실행은 고정된 데이터를 모두 무시해요. {% endhint %}
부분 실행
Editor 탭의 워크플로 하단에 있는 Execute workflow 버튼을 클릭하면 전체 워크플로가 수동으로 실행돼요. 또한 부분 실행(partial executions)으로 워크플로의 특정 단계만 실행할 수도 있어요. 부분 실행은 워크플로 노드의 일부만 실행하는 수동 실행이에요.
부분 실행을 하려면 노드를 선택하고 상세 뷰를 연 다음 Execute step을 선택하세요. 그러면 해당 노드와 그 입력 데이터를 채우는 데 필요한 앞선 노드들이 실행돼요. 빌드하는 동안 그 서비스들과 상호작용하지 않도록 워크플로 체인에서 특정 노드를 임시로 비활성화할 수도 있어요.
특히 부분 실행은 특정 노드의 로직을 업데이트할 때 유용해요. 같은 입력 데이터로 노드를 다시 실행할 수 있기 때문이에요.
부분 실행 문제 해결
부분 실행을 할 때 겪을 수 있는 흔한 문제들은 다음과 같아요.
대상 노드가 어떤 트리거에도 연결되어 있지 않습니다. 부분 실행에는 트리거가 필요합니다.
이 오류 메시지는 부분 실행을 시도할 때 워크플로가 트리거에 연결되어 있지 않으면 나타나요. 부분 실행을 포함한 수동 실행은 가능하면 프로덕션 실행을 흉내 내려고 해요. 그 일부로 워크플로 로직이 언제 실행되어야 하는지 설명하는 트리거 노드가 필요해요.
해결하려면 실행하려는 노드와 함께 트리거 노드를 워크플로에 연결하세요. 대부분 수동 트리거가 가장 간단한 선택이에요.
노드만 실행하지 말고 전체 워크플로를 실행해 주세요. (기존 실행 데이터가 너무 큽니다.)
이 오류는 분기가 많은 워크플로에서 부분 실행을 할 때 나타날 수 있어요. 부분 실행은 전체 실행에서는 필요하지 않은 방식으로 데이터와 워크플로 로직을 n8n 백엔드로 보내요. 워크플로가 이 메시지의 최대 허용 크기를 초과하면 이 오류가 발생해요.
이를 해결하려면 부분 실행 중에 limit 노드를 사용해 노드 출력을 제한하는 것을 고려하세요. 워크플로가 의도대로 실행되면 프로덕션 실행을 활성화하기 전에 limit 노드를 비활성화하거나 삭제하세요.
프로덕션 실행
프로덕션 실행은 트리거 이벤트나 스케줄이 워크플로를 자동으로 실행할 때 발생해요. 유료 플랜에서는 프로덕션 실행이 실행 할당량에 집계돼요. 무엇이 집계되고 무엇이 집계되지 않는지 자세한 내용은 할당량 집계 방식을 참고하세요.
프로덕션 실행을 구성하려면 트리거 노드[^2]를 붙이고(수동 트리거 외의 트리거는 모두 동작), Publish 버튼으로 워크플로를 게시해야 해요. 게시되면 트리거 조건이 발생할 때마다 워크플로가 자동으로 실행돼요.
프로덕션 실행의 실행 흐름은 수동 실행처럼 워크플로의 Editor 탭에 표시되지 않아요. 대신 워크플로 설정에 따라 워크플로의 Executions 탭에서 실행을 볼 수 있어요. 거기서 에디터에서 디버그 기능을 이용해 문제를 탐색하고 해결할 수 있어요.
[^1]: 캔버스는 n8n 에디터 UI에서 워크플로를 만들기 위한 주요 인터페이스예요. 캔버스를 사용해 노드를 추가하고 연결해서 워크플로를 구성해요.
[^2]: 트리거 노드는 특정 조건에 응답해서 워크플로를 실행하는 특수 노드예요. 모든 프로덕션 워크플로는 워크플로가 언제 실행되어야 하는지 결정하는 트리거가 최소 하나 필요해요.