> ## 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.

# 사용자 통계 시나리오

> 부울 플래그, 누적 카운터, 개인 최고 기록, 최근 값을 포함한 이벤트 기반 통계에 대한 일반적인 XBOX Live 사용자 통계 시나리오.

<a id="top" />

이 항목에서는 이벤트 기반 통계를 사용할 때 사용자 통계를 만드는 다음과 같은 일반적인 시나리오를 다룹니다.

* [조건에 부울 값 사용하기](#ubvfc)

* [누적 값에 카운터 사용하기](#ucfcv)

* [개인 최고 기록 추적하기](#tapb)

* [가장 최근 값 추적하기](#ttmr)

<a id="ubvfc" />

## 조건에 부울 값 사용하기

### 목표: 특정 조건이 충족되었는지 여부 추적

게임 로직에서 사용자가 특정 조건을 충족했는지 여부를 플래그로 표시하려는 경우 이 패턴을 사용합니다.

### 사용 사례

* 사용자의 캐릭터가 특정 레벨에서 사망했는지 여부 플래그

* 사용자가 각 특정 수집품을 잠금 해제했는지 여부 플래그

* 사용자가 현재 하드코어 난이도에서 플레이하고 있는지 여부 플래그

* 사용자가 복잡한 도전 과제를 잠금 해제하기 위한 다섯 가지 조건을 모두 충족했는지 여부 플래그

### 예시: 사용자가 샷건으로 90킬 또는 저격소총으로 10킬을 달성했는지 여부 플래그

| 필드        | 값                              |
| --------- | ------------------------------ |
| 이벤트 이름    | `AchievementUnlocked`          |
| 이벤트 필드    | `UnlockId` (데이터 형식: Int32)     |
| 통계 템플릿 이름 | `AchievementUnlocked.UnlockId` |
| 연산자       | `REPLACE`                      |
| 매개 변수     | 1                              |
| 액세스       | `Open`                         |

### 규칙

플래그를 `TRUE`로 읽어야 하는 경우 리터럴 값 "1"과 함께 `REPLACE` 연산자를 적용합니다.

플래그가 게임 로직을 트리거하기 위해 1 이상이어야 하는 경우 리터럴 값 "1"과 함께 `SUM` 연산자를 적용합니다.

### 주의 사항

필요한 경우 `REPLACE` 부울 통계 값을 초기화하거나 재설정합니다. 그렇지 않으면 가장 최근에 설정된 값이 유지됩니다.

경우에 따라서는 부울 통계를 `FALSE`로 재설정할 수 있는 이벤트를 정의하는 것이 편리합니다. 그러한 경우에는 리터럴 값 "0"과 함께 `REPLACE` 연산을 사용합니다.

[이 항목의 맨 위로 돌아가기.](#top)

<a id="ucfcv" />

## 누적 값에 카운터 사용하기

### 목표: 특정 지표에 대해 사용자의 상시 누적 값을 증가(또는 감소)

이벤트가 처리될 때마다 통계 값을 고정된 양 또는 가변적인 양만큼 증가시키려는 경우 이 패턴을 사용합니다.

### 사용 사례

* 플레이어 레벨

* 총 킬 수

* 업로드된 비디오 수

* 사용자가 각 맵에서 플레이한 횟수

* 각 차량 유형으로 운전한 누적 거리

* 인벤토리에 있는 아이템의 현재 수

### 예시: 승리한 멀티플레이어 경기 카운터

| 필드        | 값                              |
| --------- | ------------------------------ |
| 이벤트 이름    | `MatchCompleted`               |
| 이벤트 필드 1  | `Result` (데이터 형식: Int32)       |
| 이벤트 필드 2  | `Mode` (데이터 형식: 유니코드 문자열)      |
| 통계 템플릿 이름 | `MatchesCompleted.Result.Mode` |
| 연산자       | `SUM`                          |
| 매개 변수     | 1                              |
| 액세스       | `Open`                         |

### 규칙

해당 이벤트 필드에 `SUM` 연산자를 적용하거나 매개 변수로 고정 상수 값을 지정합니다.

통계 값을 감소시키려면 고정 상수 또는 이벤트 필드의 런타임 값으로 매개 변수에 음수 값을 사용합니다.

### 주의 사항

`SUM` 연산자와 함께 문자열 데이터 형식의 "리터럴" 값을 매개 변수로 사용하지 마세요.

문자열 데이터 형식의 이벤트 필드에 `SUM` 연산자를 적용하지 마세요.

동일한 통계를 업데이트하는 여러 이벤트가 있는 경우 해당 통계를 업데이트하는 모든 통계 규칙이 동일한 연산자를 사용하도록 하세요.

[이 항목의 맨 위로 돌아가기.](#top)

<a id="tapb" />

## 개인 최고 기록 추적하기

### 목표: 특정 지표에 대해 사용자의 상시 "최고" 점수 추적

사용자의 최대(`MAX`) 또는 최소(`MIN`) 기록을 유지하고 싶을 때 이 패턴을 사용합니다. 사용자의 기록을 개선하지 못하는 값은 모두 폐기합니다.

### 사용 사례

* 최장 킬 연속

* 멀티플레이어 라운드에서 가장 적은 사망 수

* 각 레이스 트랙 완주 최고 시간

* 모든 골프 코스의 각 홀에서 가장 긴 드라이브 거리

### 예시: 유럽 세트의 트랙 완주 최고 시간

| 필드        | 값                                  |
| --------- | ---------------------------------- |
| 이벤트 이름    | `TrackCompleted`                   |
| 이벤트 필드 1  | `TrackSet` (데이터 형식: 유니코드 문자열)      |
| 이벤트 필드 2  | `TimeInSeconds` (데이터 형식: Int32)    |
| 통계 템플릿 이름 | `BestFinishTimeInSeconds.TrackSet` |
| 연산자       | `MIN`                              |
| 매개 변수     | `TimeInSeconds`                    |
| 액세스       | `Open`                             |

### 규칙

해당 이벤트 필드에 `MAX` 또는 `MIN` 연산자를 적용합니다.

### 주의 사항

`MAX` 또는 `MIN` 연산자와 함께 "리터럴" 값을 매개 변수로 사용하지 마세요.

문자열 데이터 형식의 이벤트 필드에 `MAX` 또는 `MIN` 연산자를 적용하지 마세요.

동일한 통계를 업데이트하는 여러 이벤트가 있는 경우 해당 통계를 업데이트하는 모든 통계 규칙이 동일한 연산자를 사용하도록 하세요.

[이 항목의 맨 위로 돌아가기.](#top)

<a id="ttmr" />

## 가장 최근 값 추적하기

### 목표: 특정 지표에 대해 사용자가 게시한 가장 최근의 점수 추적

값이 사용자의 최고 기록을 개선하는지 여부와 관계없이 사용자의 최근 기록을 유지하려는 경우 이 패턴을 사용합니다.

### 사용 사례

* 현재 난이도

* 현재 멀티플레이어 라운드의 사망 수

* 각 트랙에 대한 가장 최근 레이스의 최고 속도

* 현재 장착된 프리미엄 골프 클럽에 대한 부울 플래그

### 예시: 임의 트랙의 가장 최근 완주 시간

| 필드        | 값                                 |
| --------- | --------------------------------- |
| 이벤트 이름    | `TrackCompleted`                  |
| 이벤트 필드 1  | `TrackId` (데이터 형식: Int32)         |
| 이벤트 필드 2  | `TimeInSeconds` (데이터 형식: Int32)   |
| 통계 템플릿 이름 | `BestFinishTimeInSeconds.TrackId` |
| 연산자       | `REPLACE`                         |
| 매개 변수     | `TimeInSeconds`                   |
| 액세스       | `Open`                            |

### 규칙

해당 이벤트 필드 또는 리터럴 값에 `REPLACE` 연산자를 적용합니다.

### 주의 사항

필요한 경우 `REPLACE` 통계 값을 초기화하거나 재설정합니다. 그렇지 않으면 가장 최근에 설정된 값이 유지됩니다.

[이 항목의 맨 위로 돌아가기.](#top)


## Related topics

- [Free to Use 시나리오 관리](/ko/publishing/game-publishing/how-to/how-to-freetouse.md)
- [이벤트 기반 업적 생성 시나리오](/ko/services/xbox-services/player-data/achievements/event-based/concepts/live-achievements-scenarios.md)
- [추천 통계 개요](/ko/services/xbox-services/player-data/stats-leaderboards/featured-stats/live-featuredstats-overview.md)
- [FMA XR-115: 플레이 중 사용자 및 컨트롤러 추가 또는 제거](/ko/publishing/certification/fma/xr-115.md)
- [FMA: XR-047 사용자 프로필 접근](/ko/publishing/certification/fma/xr-047.md)
