콘텐츠로 이동

Configuration 클래스

Configuration 클래스를 사용하면 앱 실행 중(=런타임)에 설정값을 조회(get)하거나 변경(set)할 수 있습니다. 예를 들어, 앱 서버 정보를 조회할 때는 getServerId() 메서드를, 변경할 때는 setServerId() 메서드를 사용합니다.

Configuration 클래스를 사용하는 한 예시로, 앱 실행중에 유저의 zone 설정을 Configuration 클래스로 변경할 수 있습니다.

API Reference: hive.Configuration.setZone

using hive;  

Configuration.setZone(ZoneType.REAL);

API Reference: hive::Configuration::setZone

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;      

Configuration::setZone(ZoneType::REAL);

API Reference: Configuration.setZone

import com.hive.Configuration    

Configuration.zone = Configuration.ZoneType.REAL

API Reference: Configuration.setZone

import com.hive.Configuration;    

Configuration.INSTANCE.setZone(Configuration.ZoneType.REAL);

API Reference: ConfigurationInterface.setZone

import HIVEService    

ConfigurationInterface.setZone(.real)

API Reference: HIVEConfiguration:setZone

#import <HIVEService/HIVEService-Swift.h>    

[HIVEConfiguration setZone: HIVEZoneTypeReal];
Note

Configuration 클래스 setZone 메서드는 setup 함수를 호출하기 전에 호출해야 정상 작동합니다.

Configuration 클래스 사용 상황

앱 실행 중 Hive SDK 설정을 변경해야 하는 경우는 다음과 같습니다.

Hive SDK 초기화 전

Hive SDK를 초기화하기 전 게임 서버나 게임 언어를 설정에 반영합니다.

Hive SDK 초기화 후 ~ 서버 점검 팝업 이전

Hive SDK 초기화 후 서버 점검 팝업을 띄우기 전 사용자가 게임 서버를 선택하는 경우입니다. Hive SDK를 초기화한 뒤 게임 서버 선택 UI를 노출하고, 사용자가 고른 게임 서버를 설정에 반영합니다. 이 과정을 실행한 후 서버 점검 팝업을 띄웁니다.

예시: 게임 서버 선택 UI

게임 진입 후

게임 진입 후 게임 설정에서 유저가 게임 언어 또는 게임 서버를 변경하는 경우, 게임을 플레이하는 도중에 게임 설정이나 다른 메뉴에서 게임 서버 또는 게임 언어 변경 UI를 구성할 수 있습니다. 사용자가 해당 UI를 이용해 서버나 언어를 변경했다면 이 내용을 설정에도 반영해야 합니다.

예시: 게임 언어 선택 UI

기타 상황

게임 기획 등 기타 상황에 따라 게임 정보가 변경되는 경우 등 여러가지 상황으로 기존에 설정했던 값을 변경합니다.

Info

Configuration 클래스로 런타임 설정값을 변경하지는 못하고 조회만 가능한 항목도 있습니다.

Configuration 클래스 사용 예시

Configuration 클래스를 사용하는 예시를 추가로 안내합니다.

Hive 테마 설정

Configuration.setHiveTheme을 사용하여 어두운 테마를 노출 할 수 있습니다.

API Reference: hive.Configuration.setHiveTheme

using hive;

Configuration.setHiveTheme(HiveThemeType.hiveLight);
Configuration.setHiveTheme(HiveThemeType.hiveDark);

API Reference: hive::Configuration::setHiveTheme

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

Configuration::setHiveTheme(HiveThemeType::hiveLight);
Configuration::setHiveTheme(HiveThemeType::hiveDark);

API Reference: hiveTheme

import com.hive.Configuration

Configuration.hiveTheme = HiveTheme.hiveLight
Configuration.hiveTheme = HiveTheme.hiveDark

API Reference: Configuration.setHiveTheme

import com.hive.Configuration;

Configuration.INSTANCE.setHiveTheme(Configuration.HiveTheme.HiveLight);
Configuration.INSTANCE.setHiveTheme(Configuration.HiveTheme.HiveDark);

API Reference: HIVEConfiguration:setHiveTheme

#import <HIVEService/HIVEService-Swift.h>

[HIVEConfiguration setHiveTheme: HIVEThemeTypeHiveLight];
[HIVEConfiguration setHiveTheme: HIVEThemeTypeHiveDark];

API Reference: HIVEConfiguration:setHiveTheme

import HIVEService

ConfigurationInterface.setHiveTheme(.hiveLight)
ConfigurationInterface.setHiveTheme(.hiveDark)

Configuration 클래스와 hive_config.xml 파일

Configuration 클래스에 있는 메서드들로 설정(런타임 설정)을 변경하면 hive_config.xml에 설정(빌드 타임 설정)된 값을 덮어씁니다. 즉, Configuration 클래스로 설정한 값이 우선 순위가 더 높습니다. 단, Hive SDK 내부에서 Configuration 클래스로 설정한 값을 우선으로 사용하는 것이며, hive_config.xml 파일에 있는 기존 값이 변경되지는 않습니다.

예를 들어, 위 zone 설정에서 hive_config.xmlzonesandbox로 설정했어도, Configuration 클래스로 이 값을 real로 변경한 후 Hive SDK를 초기화하면, Hive SDK는 real을 기준으로 동작합니다. 하지만, hive_config.xml에 있는 zone은 여전히 sandbox로 남아있습니다.

Configuration 클래스로 조회(Get) 가능한 설정

Configuration 클래스 메서드로 값 조회(get) 가능한 설정 항목들은 아래와 같습니다.

항목 OS Hive SDK 기능 설명 SDK 기본값
hiveSDKVersion Android, iOS, Windows Hive SDK 공통 Hive SDK 버전입니다. 적용한 HiveSDK 버전값
referenceSDKVersion Android, iOS, Windows Hive SDK 공통 Hive SDK가 참조하는 SDK 버전입니다. 적용한 HiveSDK가 참조하는 라이브러리 및 버전 정보
hiveCountry Android, iOS, Windows Hive SDK 공통 Hive SDK 서버에서 판단한 국가 코드입니다. HiveSDK 서버에서 전달된 정보
appId Android, iOS, Windows Hive SDK 공통 게임 빌드 식별자입니다. X
serverId Android, iOS, Windows Hive SDK 공통 게임에서 서버를 지역별로 분리 운영할 때 확인할 수 있는 각 게임 서버 식별자입니다. Hive 식별자 정책에 따라 작성되어야 합니다. 공백
zone Android, iOS, Windows Hive SDK 공통 Hive 클라이언트가 접속할 서버입니다.
  • real: 운영 서버
  • sandbox: 테스트 서버
REAL
useLog Android, iOS, Windows Hive SDK 공통 Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부입니다. 로그를 활성화하면 개발 도구 화면에 로그를 출력합니다.
  • true: 로그 활성화
  • false: 로그 비활성화
false
channel Android, iOS, Windows Hive SDK 공통 게임 앱에서 사용하는 로그인 및 인앱 지원 서비스 플랫폼입니다. Hive SDK를 통해 외부 소셜에 로그인하거나 인앱 구매를 사용하는 경우 C2S에 해당합니다. Hive SDK 애널리틱스 데이터 수집 용도로 사용됩니다.
  • C2S: Hive 플랫폼
  • KAK: 카카오
  • LIN: 라인
  • STE: 스팀
  • EPI: 에픽 스토어
  • FAS: FastSprint
C2S
market Android, iOS, Windows Hive SDK 공통 인앱 구매를 결제할 마켓입니다. Hive SDK 애널리틱스 수집 용도로 사용됩니다.
  • GO: Google PlayStore
  • AP: Apple AppStore
  • ON: OneStore
  • AM: Amazon AppStore
  • LE: Com2us Lebi
  • HS: Hive Store
  • GA: Samsung GalaxyStore
  • HU: Huawei AppGallery
공백
httpConnectTimeout Android, iOS, Windows Hive SDK 공통 Hive 클라이언트 내부에서 사용하는 HTTP Connect의 타임아웃 시간(초)입니다. 기본 값은 8초로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. 8(단위: 초)
httpReadTimeout Android, iOS, Windows Hive SDK 공통 Hive 클라이언트 내부에서 사용하는 HTTP Read 타임아웃 시간(초)입니다. 기본값은 8초로 설정되어 있으며 특수한 상황(네크워크 지연 또는 단절이 자주 발생하여 로그 수집이 정상적이지 않다고 확인된 경우 등)이 아닌 이상 값 변경을 금지합니다. 8(단위: 초)
gameLanguage Android, iOS Hive SDK 공통 Hive SDK에 설정하는 게임 언어입니다. 기기 언어 설정
ageGateU13 Android, iOS, Windows 프로비저닝 COPPA ageGateU13 적용 여부입니다. Hive SDK에 COPPA ageGateU13을 적용하려면, Hive 콘솔에 COPPA 약관을 등록한 후 Hive SDK를 초기화하기 전에 이 값을 true로 설정해야 합니다. COPPA ageGateU13을 적용하지 않으려면, Hive 콘솔에 COPPA 약관이 아닌 다른 약관을 등록한 상태에서 Hive SDK를 초기화하기 전에 이 값을 false로 설정해야 합니다.
  • true: Hive SDK에 COPPA ageGateU13을 적용
  • false: Hive SDK에 COPPA ageGateU13을 적용하지 않음
false
agreementDetermineBase Android, iOS 프로비저닝 약관 동의를 받는 기준을 결정합니다.

device 또는 account를 선택할 수 있으며 기본값은 device입니다.
  • device 선택 시 약관 동의 팝업을 초기화 단계인 AuthV4.setup() 실행중에 노출하며 기기 기반으로 한번만 동의를 받습니다. 기기 기반으로 일단 동의를 받으면, 같은 기기에서 유저가 다른 계정으로 로그인해도 약관 동의를 받지 않습니다. resetAgreement()로 약관 동의 기록을 지울 수 있습니다.
  • account 선택 시 약관 동의 팝업을 로그인중에 노출하며 PlayerId 별로 한번만 동의를 받습니다. COPPA ageGateU13을 적용하지 않을 때에만 사용할 수 있습니다. resetAgreement()로 약관 동의 기록을 지울 수 없습니다. 마케팅 추적 도구들은 약관 동의 이후부터 동작합니다.
device
enableGameController Windows Hive SDK 공통 Hive SDK가 제공하는 UI에서 '게임 컨트롤러' 활성화 유무를 설정하는 기능입니다.
  • true: 게임 컨트롤러 기능을 활성화합니다.
  • false: 게임 컨트롤러 기능을 비활성화합니다.
설정 파일에서 마지막 값을 기억하며, get 함수를 통해 현재 값을 확인할 수 있습니다.
true
usePrivateBrowsingForAuth Windows 인증 구글 로그인 인증 시, 시크릿 모드 사용 여부를 결정합니다.
  • true: 시크릿 모드 인증을 사용합니다.
  • false: 일반 모드 인증을 사용합니다.
hive_config.xml 초기값으로 작동하며, PC SDK에서만 지원합니다.
true
maxGameLogSize Android, iOS, Windows 애널리틱스 비정형 데이터 파일로 저장하는 게임 로그의 최대 저장 개수입니다. 기본값은 50개이며 HiveSDK 애널리틱스 서버에서 이 값을 수집합니다. 50
analyticsSendLimit Android, iOS, Windows 애널리틱스 애널리틱스 로그 전송 주기마다 전송할 로그 최대치입니다. 기본값은 5입니다. 5
analyticsQueueLimit Android, iOS, Windows 애널리틱스 쌓을 수 있는 애널리틱스 로그 최대치입니다. 기본값은 50입니다. 50
analyticsSendCycle Android, iOS, Windows 애널리틱스 애널리틱스 로그 전송 주기입니다. 초 단위로 설정 가능하며 설정한 주기마다 애널리틱스 로그를 전송합니다. 기본값은 1초입니다. 1
hiveTheme Android, iOS, Windows Hive SDK 공통 Hive 테마를 설정하여 밝은 또는 어두운 테마를 사용할 수 있습니다. HiveTheme.HiveLight

Configuration 클래스로 변경(Set) 가능한 설정

Configuration 클래스 메서드로 값 변경(set)이 가능한 항목들은 아래와 같습니다. 필수 항목은 반드시 입력해야 하며, 선택 항목은 필요에 따라 입력합니다. 선택 항목을 입력하지 않으면 Hive SDK 기본값으로 동작합니다. 필수 항목일지라도 hive_config.xml에 이미 입력했었고 런타임 시 변경할 필요가 없다면 Configuration 클래스로 변경할 필요가 없습니다.

Warning

serverId는 오직 런타임에서만 필수로 설정해야 하는 값입니다. 따라서 이 값은 Configuration 클래스로 반드시 설정해야 합니다.

항목 OS Hive SDK 기능 설명 필수 여부 SDK 기본값
appId Android, iOS, Windows Hive SDK 공통 게임 빌드 식별자입니다. X - Android: 앱 기본 패키지명
- iOS: 번들 ID
serverId Android, iOS, Windows Hive SDK 공통 게임에서 서버를 지역별로 분리 운영할 때 확인할 수 있는 각 게임 서버 식별자입니다. Hive 식별자 정책에 따라 작성되어야 합니다. O 공백
zone Android, iOS, Windows Hive SDK 공통 Hive 클라이언트가 접속할 서버입니다.
  • real: 운영 서버
  • sandbox: 테스트 서버
X REAL
useLog Android, iOS, Windows Hive SDK 공통 Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부입니다. 로그를 활성화하면 개발 도구 화면에 로그를 출력합니다.
  • true: 로그 활성화
  • false: 로그 비활성화
X false
channel Android, iOS, Windows Hive SDK 공통 게임 앱에서 사용하는 로그인 및 인앱 지원 서비스 플랫폼입니다. Hive SDK를 통해 외부 소셜에 로그인하거나 인앱 구매를 사용하는 경우 C2S에 해당합니다. Hive SDK 애널리틱스 데이터 수집 용도로 사용됩니다.
  • C2S: Hive 플랫폼
  • KAK: 카카오
  • LIN: 라인
  • STE: 스팀
  • EPI: 에픽 스토어
  • FAS: FastSprint
O C2S
market Android, iOS, Windows Hive SDK 공통 인앱 구매를 결제할 마켓입니다. Hive SDK 애널리틱스 수집 용도로 사용됩니다.
  • GO: Google PlayStore
  • AP: Apple AppStore
  • ON: OneStore
  • AM: Amazon AppStore
  • LE: Com2us Lebi
  • HS: Hive Store
  • GA: Samsung GalaxyStore
  • HU: Huawei AppGallery
O 공백
httpConnectTimeout Android, iOS, Windows Hive SDK 공통 Hive 클라이언트 내부에서 사용하는 HTTP Connect의 타임아웃 시간(초)입니다. 기본 값은 8초로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. X 8(단위: 초)
httpReadTimeout Android, iOS, Windows Hive SDK 공통 Hive 클라이언트 내부에서 사용하는 HTTP Read 타임아웃 시간(초)입니다. 기본값은 8초로 설정되어 있으며 특수한 상황(네크워크 지연 또는 단절이 자주 발생하여 로그 수집이 정상적이지 않다고 확인된 경우 등)이 아닌 이상 값 변경을 금지합니다. X 8(단위: 초)
gameLanguage Android, iOS Hive SDK 공통 Hive SDK에 설정하는 게임 언어입니다. X 기기 언어 설정
ageGateU13 Android, iOS, Windows 프로비저닝 COPPA ageGateU13 적용 여부입니다. Hive SDK에 COPPA ageGateU13을 적용하려면, Hive 콘솔에 COPPA 약관을 등록한 후 Hive SDK를 초기화하기 전에 이 값을 true로 설정해야 합니다. COPPA ageGateU13을 적용하지 않으려면, Hive 콘솔에 COPPA 약관이 아닌 다른 약관을 등록한 상태에서 Hive SDK를 초기화하기 전에 이 값을 false로 설정해야 합니다.
  • true: Hive SDK에 COPPA ageGateU13을 적용
  • false: Hive SDK에 COPPA ageGateU13을 적용하지 않음
X false
agreementDetermineBase Android, iOS 프로비저닝 약관 동의를 받는 기준을 결정합니다.

device 또는 account를 선택할 수 있으며 기본값은 device입니다.
  • device 선택 시 약관 동의 팝업을 초기화 단계인 AuthV4.setup() 실행중에 노출하며 기기 기반으로 한번만 동의를 받습니다. 기기 기반으로 일단 동의를 받으면, 같은 기기에서 유저가 다른 계정으로 로그인해도 약관 동의를 받지 않습니다. resetAgreement()로 약관 동의 기록을 지울 수 있습니다.
  • account 선택 시 약관 동의 팝업을 로그인중에 노출하며 PlayerId 별로 한번만 동의를 받습니다. COPPA ageGateU13을 적용하지 않을 때에만 사용할 수 있습니다. resetAgreement()로 약관 동의 기록을 지울 수 없습니다. 마케팅 추적 도구들은 약관 동의 이후부터 동작합니다.
X device
enableGameController Windows Hive SDK 공통 Hive SDK가 제공하는 UI에서 '게임 컨트롤러' 활성화 유무를 설정하는 기능입니다.
  • true: 게임 컨트롤러 기능을 활성화합니다.
  • false: 게임 컨트롤러 기능을 비활성화합니다.
설정 파일에서 마지막 값을 기억하며, get 함수를 통해 현재 값을 확인할 수 있습니다.
X true
usePrivateBrowsingForAuth Windows 인증 구글 로그인 인증 시, 시크릿 모드 사용 여부를 결정합니다.
  • true: 시크릿 모드 인증을 사용합니다.
  • false: 일반 모드 인증을 사용합니다.
hive_config.xml 초기값으로 작동하며, PC SDK에서만 지원합니다.
X true
maxGameLogSize Android, iOS, Windows 애널리틱스 비정형 데이터 파일로 저장하는 게임 로그의 최대 저장 개수입니다. 기본값은 50개이며 HiveSDK 애널리틱스 서버에서 이 값을 수집합니다. X 50
analyticsSendLimit Android, iOS, Windows 애널리틱스 애널리틱스 로그 전송 주기마다 전송할 로그 최대치입니다. 기본값은 5입니다. X 5
analyticsQueueLimit Android, iOS, Windows 애널리틱스 쌓을 수 있는 애널리틱스 로그 최대치입니다. 기본값은 50입니다. X 50
analyticsSendCycle Android, iOS, Windows 애널리틱스 애널리틱스 로그 전송 주기입니다. 초 단위로 설정 가능하며 설정한 주기마다 애널리틱스 로그를 전송합니다. 기본값은 1초입니다. X 1
hiveTheme Android, iOS, Windows Hive SDK 공통 Hive 테마를 설정하여 밝은 또는 어두운 테마를 사용할 수 있습니다. X HiveTheme.HiveLight
Note

COPPA ageGateU13 적용 시, 기기(device) 기반 약관 동의 팝업만 노출할 수 있습니다.
COPPA ageGateU13 적용 시, 약관 동의 과정에서 어떤 유저가 13세 이상이라고 응답하면 Hive SDK는 해당 유저에게 COPPA ageGateU13을 적용하지 않습니다. 단, hive_config.xml에 설정한 값(true) 자체는 변하지 않습니다.

지원하지 않는 항목

Configuration 클래스 메서드들 중 더는 지원하지 않는 메서드들은 다음과 같습니다.

항목 OS Hive SDK 기능 설명 필수 여부 SDK 기본값
permissions Android Hive SDK 공통 (v4.16.3부터 deprecated)
권한 종류별로 설정하는 권한 요청 여부입니다. 권한 이름을 Android 전용 기능입니다.
X 없음
hivePermissionViewOn Android Hive SDK 공통 (v4.162부터 deprecated)
Hive SDK 권한고지 팝업 노출 여부입니다.
  • true: 노출
  • false: 노출 안 함
X true
company Android, iOS, Windows Hive SDK 공통 (v4.23.0부터 deprecated)
게임 퍼블리싱 업체 이름 입니다.
X 없음