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

# 시즌별 통계

> PlayFab 시즌별 통계와 버전 관리를 사용하여 일정에 따라 플레이어 점수를 재설정하고, 시즌, 순위, 기간 한정 진행 이벤트를 지원하세요.

이 튜토리얼에서는 통계에 대한 버전 관리 개념을 설명합니다. 특정 통계의 다양한 버전을 유지하고자 하는
여러 경우가 있습니다. 예를 들어 게임에 시즌이 있는 경우, 새 시즌이 시작될 때 통계를 재설정할
가능성이 매우 높습니다.

[기본 통계 만들기](/services/playfab/player-progression/statistics/create-basic-statistics)의 예제에서 계속합니다. 우리의 슈팅 게임이 정말 인기를 얻고 있다고 상상해 봅시다. 따라서 시즌 개념이 도입됩니다. 매월 게임은 모든 플레이어 기반을 위한 새 테마 시즌을 출시합니다. 그래서 시즌별로 독립적인 통계를 유지하고자 합니다.

## 버전 관리를 위한 통계 정의 생성

이전 예제에서 통계 정의를 만들 때 버전 관리에 대한 `VersionConfiguration` 매개변수의 중요성에 대한 힌트가
있었습니다. 여기에서는 이를 사용하는 방법과 작동 방식을 자세히 설명합니다.

```C# theme={null}
public static async Task CreateStatisticDefinitionAsync(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
    {
        Name = statName,
        AuthenticationContext = context,
        EntityType = "title_player_account",
        VersionConfiguration = new VersionConfiguration()
        {
            MaxQueryableVersions = 12,
            ResetInterval = ResetInterval.Month,
        },
        Columns = new List<StatisticColumn>()
        {
            new StatisticColumn()
            {
                Name = "Longshots",
                AggregationMethod = StatisticAggregationMethod.Max,
            }
        },
    };
    
    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}
```

이 예제와 기본 통계의 주요 차이점은 `VersionConfiguration` 매개변수입니다. 이 매개변수를 통해 동일한 통계의
몇 개 버전을 쿼리할 수 있는지 지정하는 `MaxQueryableVersions` 설정을 정의할 수 있습니다. 이 경우, 12개 버전을
쿼리하도록 설정합니다. `ResetInterval` 매개변수는 재설정 프로세스가 얼마나 자주 발생하는지 정의합니다. 이 프로세스에는
값 없이 이전과 동일한 구성으로 통계를 만드는 과정이 포함되며, 버전 매개변수는 다음과 같이 변경됩니다:
N = N + 1, 통계 정의 생성 시 N = 0입니다.

예를 들어, 특정 값을 가진 버전 매개변수가 2인 통계가 있다고 가정합니다. 이제
해당 통계의 버전을 증가시키면, 결과는 값이 없는 버전 매개변수가 3인 새 통계가 됩니다.
한편 이전 통계는 쿼리를 위해 시스템에 남아 있습니다.

`ResetInterval`은 여러 방식으로 작동할 수 있습니다. 이 예제에서는 매월이지만, 개발자의 필요에 따라 변경할 수 있습니다. 이 특정
경우에는 구성된 순간부터 매월 자동으로 리더보드가 재설정된다는 의미입니다. 다음과 같은 재설정 전략을 지원합니다:

* Day
* Hour
* Manual
* Month
* Week

[통계 만들기에 대한 API 참조](https://learn.microsoft.com/en-us/rest/api/playfab/progression/statistics/create-statistic-definition)

## 통계 버전 증가

이 새로운 구성으로, 다른 시즌을 위한 동일한 통계의 여러 버전을 가질 수 있습니다.
그런데 문제 때문에 리더보드를 수동으로 재설정하고 시즌을 다시 시작해야 하는 경우 어떻게 해야 할까요?
이러한 경우에는 API를 사용하여 수동 재설정을 수행할 수 있습니다. 다음은 SDK를 사용한 예제입니다:

```C# theme={null}
public static async Task ResetStatistic(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    IncrementStatisticVersionRequest resetStatRequest = new IncrementStatisticVersionRequest()
    {
        AuthenticationContext = context,
        Name = statName,
    };

    PlayFabResult<PlayFab.LeaderboardsModels.IncrementStatisticVersionResponse> resetStatResponse = await statsAPI.IncrementStatisticVersionAsync(resetStatRequest);
}
```

이제 통계의 버전 관리에 대한 어떤 문제도 처리할 수 있습니다. 여기서 중요한 점은 버전으로 유지하기로 결정한
통계 정의의 수가 서비스 내 저장소를 사용하므로 미터링된다는 것입니다. 이에 대한 자세한 내용은 다음을 참조하세요:

* [Statistics](/services/playfab/pricing/meters/statistics-meters).

## 결론

이 튜토리얼에서는 다음 작업을 수행하는 방법을 배웠습니다:

* 올바른 재설정 전략으로 통계 만들기
* 통계 버전 증가

## 참고 자료

* [통계로 더 많은 작업하기](/services/playfab/player-progression/statistics/doing-more-statistics).
* [기본 통계 만들기](/services/playfab/player-progression/statistics/create-basic-statistics).
* [통계에 컨텍스트 데이터 추가](/services/playfab/player-progression/statistics/metadata-statistics).
* [트랜잭션 쓰기](/services/playfab/player-progression/statistics/transactional-writes)
* [API 참조](/services/playfab/player-progression/statistics/api-reference).
* [제한](/services/playfab/player-progression/statistics/limits-statistics).
* [할당량](/services/playfab/player-progression/statistics/quota-statistics)


## Related topics

- [API 통계 참조](/ko/services/playfab/player-progression/statistics/api-reference.md)
- [통계 제한 사항](/ko/services/playfab/player-progression/statistics/limits-statistics.md)
- [통계 할당량](/ko/services/playfab/player-progression/statistics/quota-statistics.md)
- [통계 빠른 시작](/ko/services/playfab/player-progression/statistics/quickstart-statistics.md)
- [기본 통계 만들기](/ko/services/playfab/player-progression/statistics/create-basic-statistics.md)
