# 이벤트 전송

## 이벤트 전송

Workflow block, REST API 또는 edge device backup을 사용해 Vision Events를 전송할 수 있습니다.

* [Workflow Block](#workflow-block) - Workflows 사용자는 공식 Roboflow block을 사용하는 것이 가장 쉬울 것입니다
* [REST API](#rest-api) - Workflows 외부에 모델을 배포하려는 사용자는 REST API를 사용할 수 있습니다
* [Edge Device Backup](#edge-device-backup) - Roboflow Edge devices를 배포하는 사용자는 장치의 로컬 event store에서 자동 backup을 구성하는 것이 가장 편리하다는 것을 알게 될 것입니다

### Workflow Block

대부분의 사용자에게 권장되는 방식입니다. 다음을 추가하세요. **Vision Event** block을 어떤 Roboflow Workflow에도 추가하면 코드 없이 추론 결과로부터 이벤트를 자동으로 생성할 수 있습니다.

#### 설정

{% stepper %}
{% step %}
**Workflow Editor 열기**

다음으로 이동하세요 **Workflows** workspace에서 이벤트를 추가하려는 workflow를 엽니다.
{% endstep %}

{% step %}
**Vision Event Block 추가**

block catalog에서 "Vision Event"를 검색하여 workflow에 추가합니다.
{% endstep %}

{% step %}
**입력 연결**

이미지 입력과 model prediction 출력을 Vision Event block에 연결합니다.
{% endstep %}

{% step %}
**Use Case 구성**

Use Case 이름을 설정합니다(`useCaseId`). 상위 block의 사용자 지정 메타데이터도 매핑할 수 있습니다.
{% endstep %}

{% step %}
**Workflow 배포**

workflow를 배포하거나 업데이트합니다. workflow가 실행될 때마다 이벤트가 자동으로 생성됩니다.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
Workflow block은 이미지 업로드와 이벤트 생성을 한 번에 처리합니다.
{% endhint %}

### REST API

Workflows를 사용하지 않는 맞춤형 통합 또는 파이프라인의 경우 REST API를 통해 직접 이벤트를 보낼 수 있습니다. 전체 요청 및 응답 schema는 다음을 참조하세요. [Vision Events API Reference](https://docs.roboflow.com/developer/rest-api/vision-events).

#### 인증

모든 쓰기 endpoint에는 다음 scope가 있는 API key가 필요합니다. `visionEvents.write` 또는 `device.update` scope. API key를 Bearer token으로 전달하세요:

```
Authorization: Bearer YOUR_API_KEY
```

#### 종단 간 예시: 이미지 업로드 + 이벤트 생성

{% hint style="warning" %}
이벤트를 보내기 전에 Use Case를 생성해야 합니다. 존재하지 않는 `useCaseId` 을(를) 참조하는 이벤트는 거부됩니다.
{% endhint %}

API를 통해 이벤트를 보낼 때는 먼저 이미지를 업로드한 다음 업로드된 이미지를 참조하는 이벤트를 생성합니다.

**1단계: 이미지 업로드**

```bash
curl -X POST "https://api.roboflow.com/vision-events/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@inspection_photo.jpg"
```

**응답:**

```json
{
  "success": true,
  "sourceId": "abc123def456",
  "url": "https://storage.googleapis.com/your-workspace/abc123def456/original.jpg"
}
```

**2단계: 업로드된 이미지를 참조하여 이벤트 생성**

```bash
curl -X POST "https://api.roboflow.com/vision-events" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "eventType": "quality_check",
    "useCaseId": "assembly-line-qa",
    "timestamp": "2026-03-30T14:30:00.000Z",
    "deviceId": "factory-cam-01",
    "streamId": "line-3",
    "images": [
      {
        "sourceId": "abc123def456",
        "objectDetections": [
          {
            "class": "defect",
            "x": 320,
            "y": 240,
            "width": 50,
            "height": 40,
            "confidence": 0.95
          }
        ]
      }
    ],
    "eventData": {
      "result": "fail"
    },
    "customMetadata": {
      "line_id": "line-3",
      "shift": "morning",
      "part_number": "PN-4421"
    }
  }'
```

**응답:**

```json
{
  "eventId": "evt-789ghi",
  "created": true
}
```

#### 배치 이벤트 생성

batch endpoint를 사용해 한 번의 요청으로 최대 100개의 이벤트를 보낼 수 있습니다:

```bash
curl -X POST "https://api.roboflow.com/vision-events/batch" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "events": [
      {
        "eventType": "quality_check",
        "useCaseId": "alksjdflaalsf32",
        "eventData": { "result": "pass" },
        "customMetadata": { "line_id": "line-1" }
      },
      {
        "eventType": "quality_check",
        "useCaseId": "alksjdflaalsf32",
        "eventData": { "result": "fail" },
        "customMetadata": { "line_id": "line-2" }
      }
    ]
  }'
```

{% hint style="info" %}
배치 요청당 최대 100개 이벤트입니다.
{% endhint %}

### Edge Device Backup

연결이 간헐적으로 끊길 수 있는 엔터프라이즈 배포의 경우, edge device가 이벤트를 로컬에 저장하고 연결이 복구되면 Roboflow에 동기화합니다.

{% hint style="info" %}
Edge Device Backup에는 Deployment Manager가 필요합니다. 설정 방법은 Deployment Manager 문서를 참조하세요.
{% endhint %}

Vision Events backup을 사용하려면:

1. 열기 **Deployment Manager** workspace에서
2. 구성할 장치를 선택합니다
3. 사용 **Vision Events Backup** 을 장치의 Event Store 구성에서
4. 이벤트는 장치의 로컬 event store에 기록됩니다
5. 장치가 다시 연결되면 이벤트가 Roboflow에 자동으로 동기화됩니다

동기화가 완료되면 이벤트가 Vision Events 대시보드에 표시됩니다.

<figure><img src="https://3958014485-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M6S9nPJhEX9FYH6clfW%2Fuploads%2FxsgkG53PwvUtPzZIi1ez%2Fimage.png?alt=media&#x26;token=58085ee0-285e-4a76-8a5a-1fda3efd59a3" alt="" width="375"><figcaption></figcaption></figure>
