> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-ko/deploy/device-manager/making-changes/trigger-a-stream.md).

# 스트림 트리거

"Triggered" 모드로 설정된 Stream은 매 프레임마다 inference를 실행하지 않습니다. 대신 카메라에서 프레임을 계속 캡처하면서, 가장 최근 프레임에 대해 구성된 Workflow를 실행할 명시적 trigger를 기다립니다. 이는 inference 비용이 클 때, 결과가 특정 시점에만 필요할 때(예: PLC가 부품이 위치에 놓였다고 신호를 보낼 때), 또는 외부 시스템이 검사 주기를 제어할 때 유용합니다.

Stream을 trigger하는 방법은 두 가지입니다:

1. Cloud에서 Deployment Manager 대시보드를 사용합니다.
2. Edge에서 디바이스의 로컬 HTTP endpoint를 호출합니다.

어느 방법을 사용하든, 스트림은 다음과 같이 할 때 이미 "Triggered" 모드로 설정되어 있어야 합니다: [추가할 때](/roboflow/roboflow-ko/deploy/device-manager/setting-up/add-a-stream.md) 또는 [디바이스 구성을 업데이트하여](/roboflow/roboflow-ko/deploy/device-manager/making-changes/update-device-configuration.md).

## Cloud Trigger

Cloud trigger는 Roboflow 앱에서 발행되어 Deployment Manager를 통해 디바이스로 전달됩니다. 수동 trigger, 데모, 또는 trigger를 시작하는 시스템이 인터넷에는 연결되어 있지만 디바이스의 로컬 네트워크에는 있지 않은 경우에 사용합니다.

Deployment Manager 대시보드에서 스트림이 호스팅된 Device를 클릭합니다. 각 Triggered stream에는 "Trigger" 버튼이 있습니다. 최신 프레임에 대해 단일 inference 실행을 요청하려면 "Trigger"를 클릭합니다:

디바이스가 trigger를 처리하는 동안 stream에는 "Waiting for device..."가 표시됩니다. 디바이스가 결과를 반환하면 상태가 "Inference complete"로 업데이트되고 렌더링된 프레임은 Workflow 출력으로 새로 고쳐집니다.

trigger는 디바이스의 command로 큐에 들어가며, 디바이스가 다음에 Deployment Manager를 폴링할 때 처리됩니다(일반적으로 몇 초 이내). Cloud trigger는 고빈도 trigger 용도로 설계되지 않았습니다. 1초 미만의 지연 시간이 필요하거나 분당 몇 번보다 더 많은 trigger를 발행하는 경우에는 대신 edge trigger를 사용하세요.

## Edge Trigger

Edge trigger는 디바이스에서 실행 중인 inference server에 직접 요청하는 HTTP 호출입니다. PLC, 로컬 스크립트 또는 디바이스와 동일한 네트워크에 있는 모든 시스템에서 production triggering할 때 사용합니다. Edge trigger는 Deployment Manager를 거치는 왕복을 피할 수 있으며, 지연 시간에 민감한 통합에 권장되는 방식입니다.

디바이스의 inference server는 실행 중인 각 stream에 대해 trigger endpoint를 노출합니다:

```
POST http://<device-ip>:8000/inference_pipelines/{pipeline_id}/trigger
```

다음을 `<device-ip>` 는 네트워크상의 디바이스 IP 주소로, `{pipeline_id}` 는 trigger하려는 stream의 ID로 바꿉니다. Deployment Manager의 stream 세부 정보에서 pipeline ID를 찾을 수 있습니다.

request body는 선택 사항입니다. 단일 trigger에 대해 stream에 구성된 Workflow parameters를 덮어쓰려면 body에 포함하세요:

```json
{
  "workflows_parameters": {
    "confidence": 0.7
  }
}
```

성공적인 trigger는 캡처된 프레임에 대한 Workflow 출력을 반환합니다:

```json
{
  "success": true,
  "data": {
    "frame_id": 1024,
    "timestamp": 1716220800.123,
    "workflow_output": [
      {
        "predictions": []
      }
    ]
  }
}
```

디바이스가 아직 프레임을 캡처하지 않았거나 pipeline이 실행 중이 아니면, 응답은 다음을 반환합니다 `success: false` 와 함께 원인을 설명하는 메시지를 반환합니다.

{% hint style="info" %}
edge trigger endpoint는 디바이스의 로컬 네트워크에서만 접근할 수 있습니다. 외부에서 호출하려면 자체 네트워크 인프라를 통해 디바이스를 노출하거나 cloud trigger를 사용하세요.
{% endhint %}

## Cloud Trigger와 Edge Trigger 선택하기

| 사용 사례                                             | 권장 trigger |
| ------------------------------------------------- | ---------- |
| Roboflow 앱에서 stream을 수동으로 검사하기                    | Cloud      |
| Triggered stream을 데모하거나 테스트하기                     | Cloud      |
| 디바이스와 동일한 네트워크에 있는 PLC, sensor 또는 barcode scanner | Edge       |
| 같은 request에서 inference 결과를 다시 받아야 하는 로컬 스크립트      | Edge       |
| 고빈도 trigger(분당 몇 번보다 많은 경우)                       | Edge       |
