# 트리거 구조

> Understand the structure of a trigger configuration that defines what to invoke when an event fires.

트리거 구성은 이벤트가 발생할 때 호출해야 할 항목을 정의합니다.

예시는 다음과 같습니다.

```json
{
  "name" : "example-trigger",
  "eventType" : "com.unity.services.{{SERVICE_NAME}}.{{EVENT_NAME}}.v{{EVENT_VERSION}}",
  "actionUrn" : "urn:ugs:cloud-code:{{SCRIPT}}",
  "actionType" : "cloud-code",
  "filter": "data['parameter'] == 'value'"
}
```

* `name`: 트리거 이름으로, 프로젝트별로 고유해야 합니다.
* `eventType`: 트리거와 이벤트를 일치시킬 때 사용합니다. `eventName` 및 `eventVersion` 필드로 구성되며, 각각 이벤트 구성의 `eventName` 및 `payloadVersion` 필드와 상응합니다.
* `actionUrn`: 트리거가 발동할 때 호출할 항목을 정의합니다. 예를 들어, `urn:ugs:cloud-code:TestScript`는 `TestScript` Cloud Code 스크립트를 호출하고, `urn:ugs:cloud-code:TestModule/TestFunction`은 `TestModule` Cloud Code 모듈의 `TestFunction` 함수를 호출합니다.
* `actionType`: 트리거가 발동할 때 실행할 작업 유형입니다. 현재 `cloud-code`만 지원됩니다.
* `filter`: 트리거가 실행되기 위해 충족되어야 하는 조건을 정의하는 선택 사항 필드입니다. 조건이 충족되지 않으면 트리거가 실행되지 않습니다. 자세한 내용은 [필터](./filters.md)를 참고하십시오.

> **Note:**
>
> **참고:** CLI를 통해 필터로 트리거를 생성할 수 없습니다. [Triggers API](/triggers/tutorials/define-triggers/rest-api.md)나 [Unity Dashboard](/triggers/tutorials/define-triggers/unity-dashboard.md)를 사용합니다.

## 이벤트와 오버랩##overlap-with-events

트리거는 이벤트와 연결됩니다. 이벤트가 발생하면 연결된 트리거가 호출됩니다. 이벤트와 트리거는 동일한 `eventName` 및 `payloadVersion` 구성을 공유해야 합니다.

> **Note:**
>
> **참고:** `eventType`은 이벤트를 트리거에 매핑합니다.

### 예약된 이벤트##scheduled-events

다음과 같은 일정 구성을 사용한다고 가정해 보겠습니다.

```json
{
  "name" : "recurring-schedule",
  "eventName": "example-event",
  "type": "recurring",
  "schedule": "0 0 * * *",
  "payloadVersion": 1,
  "payload": "{\"someBoolean\": true, \"someString\": \"something\"}"
}
```

또한 다음과 같은 트리거 구성을 사용합니다.

```json
{
  "name" : "example-trigger",
  "eventType" : "com.unity.services.scheduler.example-event.v1",
  "actionUrn" : "urn:ugs:cloud-code:my-script",
  "actionType" : "cloud-code"
}
```

트리거 구성의 `eventType` 필드를 일정 구성의 `eventName` 및 `payloadVersion` 필드에 설정하여 트리거를 이벤트 유형과 연결할 수 있습니다.

일정 구성을 배포하면 지정된 시간에 일정이 트리거되면서 이벤트를 Triggers 서비스로 전송하며, Triggers 서비스는 다시 연결된 Cloud Code 리소스를 호출합니다.

### UGS 이벤트##ugs-events

트리거를 UGS의 이벤트 유형과 연결하려면 트리거 구성에서 이벤트 유형을 지정해야 합니다.

예를 들어 [Authentication의 가입](/triggers/manage-events/supported-ugs-events.md#signed-up) 이벤트에서 트리거를 발생시키려면 다음과 같은 트리거 구성을 생성하면 됩니다.

```json
{
  "name" : "example-trigger",
  "eventType" : "com.unity.services.player-auth.signed-up.v1",
  "actionUrn" : "urn:ugs:cloud-code:my-script",
  "actionType" : "cloud-code"
}
```

사용자가 가입할 때마다 트리거가 발동하여 `my-script` Cloud Code 스크립트를 호출합니다.

### 복수 이벤트(트리거당)##multiple-events-per-trigger

여러 트리거를 사용하여 동일한 이벤트를 연결할 수 있습니다.

> **Note:**
>
> **참고:** 현재 이벤트 유형당 트리거 수는 32개로 제한됩니다.

예를 들어 사용자가 가입할 때 호출하는 트리거 2개를 생성할 수 있습니다.

첫 번째 트리거는 `add-cloud-save-data` 스크립트를 호출하여 인증된 사용자에 대한 Cloud Save 데이터 엔트리를 추가합니다.

```json
{
  "name" : "auth-cloud-save",
  "eventType" : "com.unity.services.player-auth.signed-up.v1",
  "actionUrn" : "urn:ugs:cloud-code:add-cloud-save-data",
  "actionType" : "cloud-code"
}
```

두 번째 트리거는 `Economy` 모듈에서 `add-economy-items` 엔드포인트를 호출하여 가상 아이템을 인증된 사용자에게 추가합니다.

```json
{
  "name" : "auth-economy",
  "eventType" : "com.unity.services.player-auth.signed-up.v1",
  "actionUrn" : "urn:ugs:cloud-code:Economy/add-economy-items",
  "actionType" : "cloud-code"
}
```

사용자가 가입할 때마다 두 트리거가 실행되며, 관련 Cloud Code 리소스가 호출됩니다.
