> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Version 마스터 데이터 레퍼런스

마스터 데이터 포맷과 임포트할 각종 모델의 레퍼런스




## 마스터 데이터 포맷


**JSON**
```json
{
  "version": "2019-10-09",
  "versionModels": [
    {
      "name": "[string]버전 모델 이름",
      "metadata": "[string?]메타데이터",
      "scope": "[문자열 열거형]판정에 사용할 버전 값의 종류",
      "type": "[문자열 열거형]버전 체크 모드",
      "currentVersion": {
        "major": "[int]메이저 버전",
        "minor": "[int]마이너 버전",
        "micro": "[int]마이크로 버전"
      },
      "warningVersion": {
        "major": "[int]메이저 버전",
        "minor": "[int]마이너 버전",
        "micro": "[int]마이크로 버전"
      },
      "errorVersion": {
        "major": "[int]메이저 버전",
        "minor": "[int]마이너 버전",
        "micro": "[int]마이크로 버전"
      },
      "scheduleVersions": [
        {
          "currentVersion": {
            "major": "[int]메이저 버전",
            "minor": "[int]마이너 버전",
            "micro": "[int]마이크로 버전"
          },
          "warningVersion": {
            "major": "[int]메이저 버전",
            "minor": "[int]마이너 버전",
            "micro": "[int]마이크로 버전"
          },
          "errorVersion": {
            "major": "[int]메이저 버전",
            "minor": "[int]마이너 버전",
            "micro": "[int]마이크로 버전"
          },
          "scheduleEventId": "[string?]버전 체크를 활성화하는 GS2-Schedule 이벤트 GRN"
        }
      ],
      "needSignature": "[bool]판정할 버전 값에 서명 검증이 필요한지 여부",
      "signatureKeyId": "[string]암호화 키 GRN",
      "approveRequirement": "[문자열 열거형]승인 필요 여부"
    }
  ]
}
```


|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| version | string | | ✓ | 2019-10-09 | | 마스터 데이터 포맷 버전 |
| versionModels | [List&lt;VersionModel&gt;](#versionmodel) |  |  |  |  ~ 100 items | 버전 모델<br>버전 모델에는 로그인은 허용하지만 버전 업그레이드가 가능함을 알리는 경고 버전과, 로그인을 허용하지 않는 에러 버전을 설정할 수 있습니다.<br><br>현재 버전을 클라이언트에 신고하도록 할 때, 서명 유무를 지정할 수 있습니다.<br>서명 있음을 선택한 경우, 클라이언트는 허위 버전을 신고할 수 없게 됩니다. |

## 모델

### VersionModel

버전 모델<br>

버전 모델에는 로그인은 허용하지만 버전 업그레이드가 가능함을 알리는 경고 버전과, 로그인을 허용하지 않는 에러 버전을 설정할 수 있습니다.<br>

현재 버전을 클라이언트에 신고하도록 할 때, 서명 유무를 지정할 수 있습니다.<br>
서명 있음을 선택한 경우, 클라이언트는 허위 버전을 신고할 수 없게 됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| versionModelId | string |  | ※ |  |  ~ 1024자 | 버전 모델 GRN<br>※ 서버가 자동으로 설정 |
| name | string |  | ✓ |  |  ~ 128자 | 버전 모델 이름<br>버전 모델 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| metadata | string |  |  |  |  ~ 2048자 | 메타데이터<br>메타데이터에는 임의의 값을 설정할 수 있습니다.<br>이 값들은 GS2의 동작에는 영향을 주지 않으므로, 게임 내에서 사용하는 정보를 저장하는 용도로 사용할 수 있습니다. |
| scope | 문자열 열거형<br>enum {<br>"passive",<br>"active"<br>}<br> |  | ✓ |  |  | 판정에 사용할 버전 값의 종류<br>버전 체크에 사용할 버전 값을 얻는 방법을 결정합니다. "passive"는 체크 시점에 클라이언트가 현재 버전을 신고하는 방식이며, "active"는 사용자가 과거에 명시적으로 승인한 버전(이용약관 동의 등)을 사용하는 방식입니다.passive: 클라이언트에서 전송 / active: 과거 명시적으로 승인한 버전 /  |
| type | 문자열 열거형<br>enum {<br>"simple",<br>"schedule"<br>}<br> |  |  | "simple" |  | 버전 체크 모드<br>버전 체크 방식을 선택합니다. "simple"은 고정된 경고·에러 버전 임계값을 사용하며, "schedule"은 GS2-Schedule의 이벤트를 이용하여 시기에 따라 다른 버전 임계값을 적용합니다.simple: 심플 / schedule: 시계열 전환 /  |
| currentVersion | [Version](#version) | {type} == "simple" and {scope} == "active" | ✓※ |  |  | 현재 버전<br>이 버전 모델의 최신 버전입니다. "simple" 모드의 "active" 스코프에서만 사용되며, 사용자가 버전 업데이트를 승인·확인할 때 현재 버전을 알립니다.<br>※ type이(가) "simple"이고 scope이(가) "active" 이면 필수 |
| warningVersion | [Version](#version) | {type} == "simple" | ✓※ |  |  | 버전 업그레이드를 촉구하는 버전<br>업그레이드 알림을 표시하는 최소 버전 임계값입니다. 클라이언트의 버전이 이 값보다 낮은 경우에도 로그인은 허용되지만 사용자에게 업그레이드가 권장됩니다. 비교는 메이저, 마이너, 마이크로 순으로 계층적으로 수행됩니다.<br>※ type이(가) "simple" 이면 필수 |
| errorVersion | [Version](#version) | {type} == "simple" | ✓※ |  |  | 버전 체크에서 에러로 판정되는 버전<br>로그인을 허용하는 최소 버전 임계값입니다. 클라이언트의 버전이 이 값보다 낮으면 버전 체크가 에러로 판정되어 로그인이 차단됩니다. 비교는 메이저, 마이너, 마이크로 순으로 계층적으로 수행됩니다.<br>※ type이(가) "simple" 이면 필수 |
| scheduleVersions | [List&lt;ScheduleVersion&gt;](#scheduleversion) | {type} == "schedule" |  |  | 0 ~ 10 items | 시계열로 전환되는 버전 체크 내용 목록<br>GS2-Schedule의 이벤트를 기준으로 서로 다른 시점에 유효해지는 버전 체크 설정 목록입니다. 업데이트를 필수로 만들기 전에 경고를 표시하는 등 단계적인 버전 강제가 가능해집니다.<br>※ type이(가) "schedule" 이면 활성화 |
| needSignature | bool | {scope} == "passive" | ✓※ |  |  | 판정할 버전 값에 서명 검증이 필요한지 여부<br>활성화하면 클라이언트는 버전 신고와 함께 암호 서명을 제공해야 합니다. 이를 통해 클라이언트가 버전 체크를 회피하기 위해 허위 버전을 신고하는 것을 방지합니다. 스코프가 "passive"인 경우에만 적용됩니다.<br>※ scope이(가) "passive" 이면 필수 |
| signatureKeyId | string | {needSignature} | ✓※ |  |  ~ 1024자 | 암호화 키 GRN<br>※ needSignature이(가) "true" 이면 필수 |
| approveRequirement | 문자열 열거형<br>enum {<br>"required",<br>"optional"<br>}<br> | {scope} == "active" |  | "required" |  | 승인 필요 여부<br>이 버전 모델에 대한 사용자 승인이 필수인지 임의인지를 제어합니다. "required"인 경우, 사용자가 현재 버전을 승인하지 않으면 버전 체크가 실패합니다. "optional"인 경우, 승인 상태와 관계없이 버전 체크가 통과합니다. 스코프가 "active"인 경우에만 적용됩니다.required: 승인 필요 / optional: 임의 승인 / <br>※ scope이(가) "active" 이면 활성화 |

---

### Version

버전<br>

3단계 계층(메이저, 마이너, 마이크로)으로 구성된 버전 번호를 나타냅니다. 버전 비교는 메이저, 마이너, 마이크로 순으로 계층적으로 수행됩니다. 버전 체크의 경고·에러 임계값 정의에 사용됩니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| major | int |  | ✓ |  | 0 ~ 2147483646 | 메이저 버전<br>버전 비교에서 가장 우선순위가 높은 구성 요소입니다. 메이저 버전의 차이는 마이너 버전 및 마이크로 버전보다 우선합니다. |
| minor | int |  | ✓ |  | 0 ~ 2147483646 | 마이너 버전<br>버전 비교에서 두 번째로 우선순위가 높은 구성 요소입니다. 메이저 버전이 동일한 경우에만 비교됩니다. |
| micro | int |  | ✓ |  | 0 ~ 2147483646 | 마이크로 버전<br>버전 비교에서 가장 우선순위가 낮은 구성 요소입니다. 메이저 버전과 마이너 버전이 모두 동일한 경우에만 비교됩니다. |

---

### ScheduleVersion

시계열로 전환되는 버전<br>

GS2-Schedule의 이벤트로 제어되는 특정 기간 동안 유효해지는 버전 임계값(현재, 경고, 에러) 세트를 정의합니다. 여러 개의 스케줄 버전을 설정함으로써, 오래된 클라이언트를 차단하기 전에 사용자에게 경고하는 등 단계적인 버전 강제를 구현할 수 있습니다.

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| currentVersion | [Version](#version) |  | ✓ |  |  | 현재 버전<br>이 스케줄 기간 동안 사용 가능한 최신 버전입니다. "active" 스코프에서 사용자가 업데이트를 승인할 때 현재 버전을 알리는 데 사용됩니다. |
| warningVersion | [Version](#version) |  | ✓ |  |  | 버전 업그레이드를 촉구하는 버전<br>이 스케줄 기간 동안 업그레이드 알림을 표시하는 최소 버전 임계값입니다. 로그인은 허용되지만 사용자에게 업그레이드가 권장됩니다. |
| errorVersion | [Version](#version) |  | ✓ |  |  | 버전 체크에서 에러로 판정되는 버전<br>이 스케줄 기간 동안 로그인을 허용하는 최소 버전 임계값입니다. 클라이언트의 버전이 이 값보다 낮으면 버전 체크가 에러로 판정되어 로그인이 차단됩니다. |
| scheduleEventId | string |  |  |  |  ~ 1024자 | 버전 체크를 활성화하는 GS2-Schedule 이벤트 GRN<br>이 버전 임계값 세트가 유효해지는 기간을 제어하는 GS2-Schedule의 이벤트를 지정합니다. 여기서 정의된 버전 체크 설정은 지정한 이벤트가 활성화되어 있는 기간에만 적용됩니다. |

---



