> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Actions & Rules quickstart

> Build your first PlayStream Rule with triggers, conditions, and actions to react to player events in real time and drive automated LiveOps responses.

# 작업 및 규칙 빠른 시작

PlayStream 규칙을 사용하면 특정 유형의 PlayStream 이벤트의 일부에 실시간으로 반응할 수 있습니다.

## 요구 사항

* [Game Manager 빠른 시작](/services/playfab/live-service-management/gamemanager/quickstart)
* [플레이어 통계 사용](/services/playfab/community/leaderboards/tournaments-leaderboards/using-player-statistics) (이 튜토리얼의 예시에 도움이 되는 정보를 포함합니다).

관련 용어의 간단한 용어집:

* **PlayStream**: PlayFab Event 파이프라인을 구성하는 기능 그룹입니다.
  * **PlayStream Event**는 플레이어 또는 타이틀에 대한 이벤트를 설명하는 JSON 형식의 문자열입니다.
  * **PlayStream Event**의 최대 크기는 자동화 기능 계층에 따라 다릅니다.

* **Rule**: 한 가지 유형의 PlayStream 이벤트에 대해 실시간으로 추가 로직을 수행합니다.
  * 하나의 **Event Trigger**, 선택적 **Conditions** 목록, 선택적 **Actions** 목록의 합계입니다.

* **Trigger**: 이 규칙을 활성화하는 이벤트의 이름입니다.

* **Condition**: 규칙 및 기타 PlayStream 기능에 대한 콘텐츠 필터입니다.
  * PlayStream 이벤트 JSON 개체에 대해 매우 가벼운 평가를 수행하고, 요구 사항과 일치하지 않는 이벤트는 건너뜁니다.

* **Action**: 적절한 엔티티에 대해 수행할 상황별 작업입니다.

규칙은 정확히 하나의 트리거, 선택적 조건 목록, 일반적으로 최소 하나의 작업(필수는 아니지만 그 없이는 쓸모가 없음)으로 구성됩니다.

트리거, 조건, 작업은 다른 시스템의 일부이기도 합니다: [대량 작업](/services/playfab/data-analytics/acting-data/action-rules-bulk-actions-for-an-entire-player-segment) 및 [토너먼트 리더보드(사용 중단)](/services/playfab/community/leaderboards/tournaments-leaderboards/using-resettable-statistics-and-leaderboards).

## 예시: 클라이언트에서 사용자 지정 이벤트 계산

아래 예시에서는 클라이언트에서 다음의 사용자 지정 이벤트를 게시합니다.

```csharp theme={null}
public void WriteEvent() {
    PlayFabClientAPI.WritePlayerEvent(new WriteClientPlayerEventRequest {
        EventName = "ForumPostEvent",
        Body = new Dictionary<string, object> {
            { "Subject", "My First Post" },
            { "Body", "My awesome Post." }
        }
    }, LogSuccess, LogFailure);
}
```

이 경우 클라이언트가 수동으로 사용자 지정 `ForumPostEvent`를 보고합니다(이는 현재 PlayFab 또는 지원되는 파트너의 어떤 자동 이벤트에도 해당하지 않습니다).

이 방식으로 플레이어가 포럼 게시물을 보고한 횟수를 세기 위해 PlayStream 규칙을 사용할 것입니다.

**요구 사항**: 이 유형의 이벤트를 트리거로 하는 규칙을 만들 수 있도록 게임이 *이미* 이러한 이벤트를 게시하고 있어야 Game Manager GUI에서 규칙을 만들 수 있습니다.

**Game Manager**로 이동합니다.

* **Title**로 이동합니다.
* **Automation**을 선택합니다.
* **Rules**로 이동합니다.
* **New Rule**을 선택합니다.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-new-rule.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=bd467d6b0caea0e4a258bf1c6b2a7cd8" alt="Game Manager - automation - new rule" width="897" height="1036" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-new-rule.png" />

이 예시의 **New Rule**을 단계별로 평가해 봅시다.

* **`title.6195.ForumPostEvent`**
  * `6195`는 이 튜토리얼에서 사용된 타이틀입니다. 여러분의 titleId는 여러분의 타이틀에 맞을 것입니다.
  * `ForumPostEvent`는 이 예시 사례에서 코드에 사용된 이벤트 이름입니다.
  * 이 라인은 타이틀에서 최근에 최소 하나의 `ForumPostEvent`를 게시한 경우에만 사용할 수 있습니다.
* 이 예시에서 특별히 사용된 **Conditions**는 활용도가 최소한입니다.
  * 그러나 **Body** 사전의 **Body** 키가 **Invalid string**에 매핑되면 사용자 지정 이벤트를 필터링하는 것을 *실제로* 시연합니다.
  * 필터는 선택 사항이며 규칙에서 관련 없는 플레이어를 제거해야 합니다.
* 이 경우 선택된 **Actions**는 통계 카운터를 1씩 증가시킵니다.
  * **요구 사항**: **Forum Posts** 통계가 Game Manager의 Leaderboards 아래에 정의되어 있어야 합니다.

Game Manager **PlayStream Debugger**(아래 표시)에서 트리거가 효과를 발휘하는 것을 볼 수 있습니다.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-event-trigger.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=7fbbc21d4c1f53db11e54c647d9610fa" alt="Game Manager - PlayStream - debugger - event trigger" width="452" height="213" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-event-trigger.png" />

보시다시피 사용자 지정 `ForumPostEvent`는 새 규칙에 대해 **Actions** 아래에 설정한 통계를 자동으로 트리거합니다.

## 고급: CloudScript 작업

**PlayFab**의 많은 기본 제공 작업은 상당히 단순하며 필요한 모든 기능을 제공하지 못할 수 있습니다. 그렇기 때문에 CloudScript로 작업 로직을 완전히 사용자 지정할 수 있게 해줍니다.

**Rule**을 편집해 봅시다.

* **Condition**을 제거합니다.
* **Action**을 **Execute CloudScript**로 설정합니다.
* **Save Action** 버튼을 선택합니다.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-edit-rule.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=b69ba07416a1d485dc29b4e69637dfe0" alt="Game Manager - automation - edit rule" width="914" height="802" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-automation-edit-rule.png" />

이제 새 **ForumPostEvent**를 게시하면 CloudScript 실행을 볼 수 있습니다.

<img src="https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-cloudscript-execution.png?fit=max&auto=format&n=IwSYTY5BEqd_x-HK&q=85&s=f0cdab71d528049e20c131b846a84eb5" alt="Game Manager - PlayStream - debugger - CloudScript execution" width="462" height="167" data-path="images/playfab/data-analytics/acting-data/tutorials/game-manager-playstream-debugger-cloudscript-execution.png" />

PlayStream 규칙에 반응하는 CloudScript 작성은 튜토리얼에서 다루는 고급 주제입니다: [PlayStream과 함께 CloudScript 작업 사용](/services/playfab/data-analytics/acting-data/action-rules-using-cloudscript-actions-with-playstream).


## Related topics

- [Actions & Rules](/ko/services/playfab/data-analytics/acting-data/action-rules-overview.md)
- [ActionTrigger](/ko/services/playfab/api-references/events/data-types/actiontrigger.md)
- [플레이어 사용자 지정 속성 빠른 시작](/ko/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties-qs.md)
- [player_action_executed](/ko/services/playfab/api-references/events/Player/player-action-executed.md)
- [Bulk Actions for an entire Player Segment](/ko/services/playfab/data-analytics/acting-data/action-rules-bulk-actions-for-an-entire-player-segment.md)
