기술 자료

지원

Remote Config

Remote Config

Game Overrides 및 Settings

Configure Game Overrides and settings in Remote Config.
읽는 시간 3분최근 업데이트: 한 달 전

Unity Remote Config에서는 Game Overrides(이전 명칭: Campaigns)를 사용하여 특정 사용자 그룹을 타게팅하고 각 그룹별로 서로 다른 설정을 지원합니다. Game Overrides는 __Settings__와 연결되어 있으며 Game Overrides의 잠재 고객 기준이 충족되면 기본값을 오버라이드하도록 게임 코드의 변수에 매핑됩니다. 게임을 디자인하거나 새로 배포하기 전에 초기에 Remote Config 설정을 계획합니다. 유니티는 초기 배포 시 Remote Config 설정을 비활성 상태로 포함하는 방법을 권장합니다. 이렇게 하면 잠재 고객이 게임을 사용하는 방식과 다양한 기기에서 게임이 수행되는 방식을 파악한 다음 나중에 적용할 수 있기 때문입니다. Unity 에디터에서 Window > Remote Config를 선택하여 Remote Config 창을 열고 Settings 작업을 시작합니다.
Unity 에디터에서 Remote Config 창으로 이동합니다.
Remote Config 창에서 Remote Config Settings를 구성합니다. Game Overrides는 Open Dashboard 버튼을 사용해 액세스할 수 있는 웹 대시보드에서 구성 가능합니다. Game Overrides는 표면 Settings를 통해서 조건이나 플레이어 세그먼트를 지정합니다. 기본적으로 Settings Config 구성 하나로 시작할 수 있습니다. 이 구성에는 우선순위가 높은 활성 Game Overrides가 적용되지 않는 한 모든 사용자에게 제공되는 기본 Settings가 포함되어 있습니다. 중요: 각 환경에는 각각의 Game Overrides 세트가 있습니다. 게임에 Game Overrides를 구성하기 전에 Remote Config 창에서 적절한 Remote Config 환경을 선택해야 합니다. Settings는 키-값 쌍으로 이뤄져 있습니다. 키 이름을 게임 코드의 변수에 매핑하므로 코드를 변경하지 않고도 해당 값을 동적으로 변경할 수 있습니다.

새 Settings 추가

기본 Settings Config 구성에는 특정 환경을 위해 생성한 각 Settings가 포함되어 있습니다. 새 Settings를 만들려면 Settings Config 구성을 강조 표시한 다음 오른쪽 패널 하단에 있는 Add Setting 버튼을 클릭합니다. 참고: 게임 코드가 Settings를 사용할 수 있는 곳이므로 에디터에서 Settings를 생성해야 합니다. 그러나 게임 바이너리에서 Settings를 생성하고 나서 Remote Config REST API 또는 Remote Config 웹 대시보드를 사용하여 업데이트할 수도 있습니다. 자세한 내용은 인터페이스를 참고하십시오. 각 Settings는 다음과 같이 , 유형, 으로 구성되어 있습니다.

파라미터

설명

예시

KeySettings의 이름은 다음의 Game Overrides 기준을 준수해야 합니다.

  • 해당 환경에서 중복되지 않아야 합니다.
  • 문자로 시작해야 합니다.
  • 문자, 숫자, 마침표, 밑줄, 하이픈만 포함할 수 있습니다.
  • 255자를 초과할 수 없습니다.
  • enemyHealth
  • eventPackPrice
  • enableBetaFeature
TypeSettings 값의 C# 변수 데이터 유형입니다. 지원되는 유형은 다음과 같습니다.

  • Int
  • Float
  • Bool
  • String
  • Long
  • Json
  • int
  • float
  • bool
  • string
  • long
  • json
Value이 Settings의 값은 다음의 Game Overrides 기준을 준수해야 합니다.

  • Int 값은 32비트 정수여야 합니다(-2147483648에서 2147483647 범위).
  • 플로트 값은 단일 정밀도의 32비트 플로트 소수점 숫자입니다.
  • Strings는 10,000자로 제한됩니다.
  • 부울은 참 혹은 거짓만 가능합니다.
  • Long 값은 부호 포함 64비트 정수여야 합니다(-9,223,372,036,854,775,808에서 9,223,372,036,854,775,807 범위).
  • JSON 값은 ECMA-404 표준에서 지원되는 모든 유효한 JSON입니다.
  • 100
  • 4.99
  • true
  • ‘jack-o-lantern’
  • 123456789012345
  • {"jsonKey1": {"jsonSubKey1": "on","jsonSubKey2": "off"}}
Settings 파라미터의 예시입니다.

새 Game Overrides 추가

새 Remote Config Game Overrides를 생성하려면 Open Dashboard 버튼을 선택하여 웹 브라우저를 열고 Remote Config 페이지로 이동합니다. View Overrides 버튼을 클릭한 다음 Create Override를 선택합니다. 각 Game Overrides에는 5개의 파라미터가 있으며, 아래에 자세히 나와 있습니다.

이름

이름은 Game Overrides의 이름입니다. 예를 들어 Game Overrides
level_1_enemies
에 대한 난이도 커브 또는 시즌 이벤트
halloween_event
의 이름을 지정할 수 있습니다.

타게팅 전략

타게팅 전략에서는 Game Overrides의 잠재 고객 유형을 정의합니다. ‘모든 지출자’ 혹은 ‘기존 플레이어’ 등 잠재 고객을 선택하는
Stateful
이거나
Stateless
을 기준으로 타겟 잠재 고객을 정의할 수 있는
Condition
일 수 있습니다.

조건

조건은 Game Overrides를 적용하려는 잠재 고객을 정의하는 데 사용되는 컨텍스트화된 데이터 속성의 JEXL 표현식(아래 JEXL 지원 섹션 참고)입니다. 여러 기준을 사용하여 이 세그먼트를 정의할 수 있습니다. 현재 Remote Config는 다음의 속성 카테고리 3개를 지원합니다.

속성

설명

예시

unity.appBuildVersion
실행 중인 애플리케이션의 빌드 번호입니다(에디터에서 Edit > Project Settings > Player로 이동하여 설정).
unity.appBuildVersion == '1'
unity.appVersion
실행 중인 애플리케이션의 버전입니다(에디터에서 Edit > Project Settings > Player로 이동하여 설정).
unity.appVersion == '1.0'
unity.cpu
CPU 프로세서의 이름입니다.
unity.cpu == 'Intel(R) Core(TM) i7-7920 HQ CPU @ 3.10GHz'
unity.cpuFrequency
앱을 실행 중인 기기의 프로세서 주파수(MHz 기준)입니다.
unity.cpuFrequency >= 3100
unity.country
적용 가능한 국가입니다. 이 속성은 ISO 3166-1 alpha2 국가 코드를 사용합니다.

커스텀 속성 정의에 관한 내용은 코드 연동 관련 기술 자료를 참고하십시오.
unity.country == 'US'
unity.language
적용 가능한 언어입니다. 이 속성은 ISO 639-1 언어 코드를 사용합니다.

커스텀 속성 정의에 관한 내용은 코드 연동 관련 기술 자료를 참고하십시오.
unity.language == 'en'
unity.osVersion
앱을 실행 중인 기기의 운영체제 버전입니다.
unity.osVersion == 'Mac OS X 10.14.4'
unity.platform
적용 가능한 기기 또는 플랫폼입니다. 유효한 값은 다음과 같습니다.

  • Android
  • iOS
  • Linux
  • macOS
  • PS4
  • PS5
  • Switch
  • WebGL
  • Wii
  • Windows
  • XboxOne
  • XboxSeriesS
  • XboxSeriesX
unity.platform == 'iOS'
unity.timeSinceStart
앱 세션이 시작된 이후의 시간(밀리초 기준)입니다.
unity.timeSinceStart >= 60000
unity.graphicsDeviceVendor
사용자의 그래픽 카드 벤더입니다.
unity.graphicsDeviceVendor == 'ATI Technologies Inc.'
unity.ram
기기의 RAM 메모리 양(MB 기준)입니다.
unity.ram >= 16384
unity.model
기기의 모델입니다.
unity.model == "LGE Nexus 5"
또는
unity.model.contains("Nexus")
참고: 나열된
unity
속성은 변경될 수 있습니다. 전체 최신 목록은 REST API 기술 자료를 확인하십시오.
예컨대 점수가 10보다 큰 사용자를 타게팅하는 Game Overrides를 정의하려는 경우 도트 표기법을 사용하여
score
컨텍스트에서
app
프로퍼티를 정의할 수 있습니다.
app.score >= 10
동일한 Game Overrides에서 여러 속성을 참조하는 방법도 있습니다.
user.score >= 10 && app.level == 5
모든 조건과 일치하고 상시 적용되는 Game Overrides를 정의하려면
true
를 입력하기만 하면 됩니다.

JEXL 지원

Remote Config는 일부 예외를 제외하고 JEXL(Java Expression Language) 사양을 지원합니다.
  • Remote Config는 표현식만 지원합니다.
  • Remote Config는 스크립트는 지원하지 않습니다.
  • Remote Config는 함수나 조건부를 동시에 지원하지 않습니다.
  • Remote Config는
    &&
    ||
    문을 사용해 여러 기준을 지원하지만 JEXL 문자열은 500자를 초과할 수 없습니다.
참고: 속성은 중첩할 수 없습니다(예:
app.level1.score
). 유효하지 않은 JEXL 문자열을 사용하거나 Condition 필드가 비어 있으면 오류가 발생합니다.

롤아웃 비율

롤아웃 비율에서는 Game Overrides를 준수하는 사용자 기반 비율을 지정합니다. 값이 100보다 작으면 Unity는 사용자 ID를 기준으로 해당 비율의 플레이어에게 Game Overrides를 임의로 할당합니다. 플레이어마다 경험이 다를 수는 있지만 개별 플레이어는 플레이 세션 전체에서 일관성 있는 경험을 하게 됩니다. 이 파라미터는 분석과 통합하여 결과를 파싱할 때 특히 유용합니다.

콘텐츠 유형

사용하는 서비스에 따라 특정 Game Overrides나 Remote Config에서 활용되는
Config Overrides
또는 Economy 서비스에서 활용되는
Currency
Inventor Item
등의 기타 콘텐츠에 대해 선택할 수 있는 다양한 유형의 콘텐츠가 있습니다.

시작일 및 시간

필요에 따라 Game Overrides가 적용되는 시점을 나타내는 시작일과 시간을 지정할 수 있습니다. 타임스탬프는 ISO 8601 UTC 형식(
YYYY-MM-DDThh:mm:ssZ
)의 문자열로 표시됩니다. 값을 지정하지 않으면 Game Overrides는 활성화 여부에 따라 즉시 적용됩니다.

종료일 및 시간

필요에 따라 Game Overrides의 활성 상태가 중단되는 시점을 나타내는 종료일과 시간을 지정할 수 있습니다. 타임스탬프는 ISO 8601 UTC 형식(
YYYY-MM-DDThh:mm:ssZ
)의 문자열로 표시됩니다. 값을 지정하지 않으면 Game Overrides는 비활성화될 때까지 계속 적용됩니다.

Game Overrides에 Settings 적용

Game Overrides에 Settings를 적용하려면 원하는 Game Overrides로 이동하여 콘텐츠 블록을 편집한 후 사용 가능한 모든 Settings 목록을 확인합니다.

Game Overrides 활성화 및 비활성화

Game Overrides 페이지 상단에 있는 버튼을 사용해 활성화 또는 비활성화합니다.

에디터 창에서 Settings 편집

에디터의 Remote Config 창에서 Settings 키와 값을 편집하려면 변경 사항을 저장하고 푸시해야 합니다. 이렇게 하지 않으면 구성이 로컬에만 저장됩니다. Remote Config 환경을 전환하기 전에 변경 사항을 푸시하여 저장합니다. 삭제하려는 각 요소 옆에 있는 trashcan 버튼을 클릭하면 Settings를 삭제할 수 있습니다. 활성 Game Overrides가 현재 사용 중이면 Settings를 삭제할 수 없으니 참고하시기 바랍니다.

Game Overrides 우선순위 지정

각 Game Overrides에 가중치가 부여된 우선순위 값을
Low
Medium
,
High
로 할당할 수 있습니다. 우순순위 값을 숫자로 할당하고 싶으면 Advanced Editor를 통해
1
(가장 높은 우선순위)부터
1000
(가장 낮은 우선순위)까지 지정할 수 있는 기능을 사용합니다. 이렇게 하려면 Game Overrides의 Edit Schedule > Scheduling 필드를 클릭한 후 Use Advanced Editor를 선택하고 정숫값을 입력합니다.
  • 새 Game Overrides 및 Settings Config 구성의 기본값은
    medium
    입니다.
  • 충돌이 발생하면 먼저 생성된 Game Overrides에 우선순위가 부여됩니다.

Game Overrides 및 Settings 업데이트

Game Overrides를 편집하고 변경 사항을 저장하는 방법은 다음과 같습니다.
  1. Game Overrides를 비활성화합니다.
  2. 에디터 창이나 WebUI에서 원하는 키 값 필드를 편집합니다.
  3. Push 버튼을 클릭하여 원격 서비스에 대한 변경 사항을 저장합니다.
  4. Pull 버튼을 클릭하여 서비스의 최신 원격 설정을 검색합니다.
    1. 업데이트가 적용되었는지 확인합니다.
  5. Game Overrides를 활성화합니다.
    1. 다시 검색하여 Game Overrides가 제대로 업데이트되고 활성 상태인지 확인합니다.
참고: 로컬 구성에 대한 원격 변경 사항을 가져오면 서비스에서 검색된 설정이 로컬 설정을 삭제하고 덮어씁니다.

JSON 설정 값

JSON 유형의 설정을 사용하는 경우 Remote Config 창에 JSON 에디터 다이얼로그가 나타납니다. 여기서 JSON 값의 형식을 지정하고 유효성을 검사할 수 있습니다. 이 창을 열려면 Edit 버튼을 눌러 JSON 설정을 확인합니다.
JsonValidFormatted
입력된 값이 유효하지만 형식이 미지정된 JSON 값이면 확인 표시기에 녹색이 나타납니다. Format 버튼을 사용해 JSON 객체의 형식을 다시 지정합니다.
JsonUnformatted
JSON 값이 유효하지 않으면 확인 표시기에 빨간색이 표시되고, JSON 객체를 제출할 수 없게 됩니다.
JsonInvalid
Select json object 필드에는 JSON 파일을 로드할 수 있습니다(
/Assets
폴더에서 사용 가능한 경우). 파일을 선택하려면 필드 오른쪽에 있는 버튼을 클릭합니다.
OpenJsonFromFile

업데이트 및 클라이언트 세션

새 버전의 애플리케이션을 배포하지 않고도 구성에 변경 사항을 전파할 수 있습니다. 클라이언트 기기는 플레이어가 애플리케이션에서 새 세션을 시작할 때마다 Remote Config 설정의 새로고침을 요청합니다. Remote Config는 사용자가 애플리케이션을 실행하거나 최소 30분 동안 백그라운드에 머문 후 애플리케이션에 돌아올 때 새 세션을 정의합니다. 클라이언트가 인터넷에 연결되지 않아 Remote Config 서비스와 통신할 수 없으면 애플리케이션에서는 수신하고 캐싱했던 마지막 설정을 사용합니다. 참고: Remote Config 서비스에서 설정을 요청하는 것은 비동기식 프로세스입니다. 초기 씬이 로딩을 마치기 전에 완료되지 않을 수 있고, 매우 이례적이지만 아예 완료되지 않을 수도 있습니다. 따라서 적정한 기본값으로 게임 변수를 초기화하시기 바랍니다.

코드 연동

Game Overrides와 Settings를 구성한 다음 게임 코드와 Remote Config를 연동합니다.