원격 구성 적용

📘

원격 구성

원격 구성은 애플리케이션에서 관리되고 있는 값, 또는 속성들을 핵클 대시보드에서 정의한 파라미터 값들로 대체하여 실시간으로 애플리케이션의 동작 및 설정 값들을 제어할 수 있는 기능입니다. 파라미터에는 클라이언트/서버 측 애플리케이션의 모든 속성을 대상으로 값을 설정할 수 있습니다. (예. 버튼 색상, 외부 링크)

핵클의 대시보드의 원격 구성 화면으로 이동하여 파라미터 정보들을 설정하고, 사용자 식별 규칙에 따른 값들을 설정할 수 있습니다. 애플리케이션에서 핵클 원격 구성 화면에서 설정한 값들을 적용시키려면 핵클 SDK에서 제공되는 아래 기능들을 활용해야 합니다.
핵클 SDK에서 제공되는 아래 기능들을 통해 적용하고자 하는 값들을 코드에 적용시킨 이후, 원격 구성화면에서 간단하게 값과 규칙들을 변경하여 배포 없이 변경 사항들을 바로 적용시킬 수 있습니다.

📘

원격 구성은 SDK 버전 2.11.0 이상인 경우 사용 가능합니다.

원격 구성을 사용하시는 경우 의존성 추가 시 SDK 버전을 2.11.0 이상으로 적용하시기 바랍니다.

remoteConfig

remoteConfig() 메소드를 호출하면 사용자에 대한 원격 구성 정보(설정한 파라미터 및 규칙 정보)를 담고 있는 HackleRemoteConfig 인스턴스를 얻을 수 있습니다.
remoteConfig() 는 사용자 속성을 원격 구성의 규칙 정보와 매칭시키기 위해 사용자 식별자 정보를 전달 받을 수 있습니다.
HackleRemoteConfig 에서 제공하는 메소드들을 통해 원하는 파라미터에 접근하여 값을 제공받을 수 있습니다.

import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig

// 원격 구성 정보 담은 인스턴스를 반환합니다. 
HackleRemoteConfig remoteConfig = hackleApp.remoteConfig();
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig

// 원격 구성 정보 담은 인스턴스를 반환합니다. 
val remoteConfig: HackleRemoteConfig = hackleApp.remoteConfig()

원격 구성 파라미터 조회

  • 핵클의 원격 구성 화면에서 설정한 파라미터 값이 key, value 형태로 존재하기 때문에, 설정한 파라미터 유형에 따라 아래 메소드를 사용하여 설정한 파라미터 값을 반환받을 수 있습니다.

🚧

보관 후 원격 구성과 관련된 코드를 제거하세요.

원격 구성 파라미터를 보관한 경우 더이상 파라미터 정보에 접근 할 수 없습니다. 따라서 원격 구성 파라미터 보관 후에는 반드시 관련된 코드를 정리해주시기 바랍니다.

getString

  • STRING, JSON 유형으로 설정된 파라미터 값을 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
HackleRemoteConfig remoteConfig = hackleApp.remoteConfig();

String strValue = remoteConfig.getString(“parameter_key_string_type”, “defaultValue”);
  
String jsonValue = remoteConfig.getString(“parameter_key_json_type”, “defaultValue”);
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig

val remoteConfig: HackleRemoteConfig = hackleApp.remoteConfig()

val strValue: String = remoteConfig.getString(“parameter_key_string_type”, “defaultValue”)

val jsonValue: String = remoteConfig.getString(“parameter_key_json_type”, “defaultValue”)

getInt

  • Number 유형으로 설정된 parameter 값을 Int 타입으로 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
HackleRemoteConfig remoteConfig = hackleApp.remoteConfig();

int intValue = remoteConfig.getInt(“parameter_key_int_type”, 0);
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
val remoteConfig: HackleRemoteConfig = hackleApp.remoteConfig()

val intValue: Int = remoteConfig.getInt(“parameter_key_int_type”, 0)

getDouble

  • Number 유형으로 설정된 parameter 값을 Double 타입으로 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
HackleRemoteConfig remoteConfig = hackleApp.remoteConfig();

double doubleValue = remoteConfig.getDouble(“parameter_key_double_type”, 0.0);
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
val remoteConfig: HackleRemoteConfig = hackleApp.remoteConfig()

val doubleValue: Double = remoteConfig.getDouble(“parameter_key_double_type”, 0.0)

getLong

  • Number 유형으로 설정된 parameter 값을 Long 타입으로 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
HackleRemoteConfig remoteConfig = hackleApp.remoteConfig();

long longValue = remoteConfig.getLong(“parameter_key_long_type”, 0L);
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
val remoteConfig: HackleRemoteConfig = hackleApp.remoteConfig()

val longValue: Long = remoteConfig.getLong(“parameter_key_long_type”, 0L)

getBoolean

  • Boolean 유형으로 설정된 parameter값을 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
HackleRemoteConfig remoteConfig = hackleApp.remoteConfig();

boolean booleanValue = remoteConfig.getBoolean(“parameter_key_boolean_type”, false);
import io.hackle.android.HackleApp
import io.hackle.sdk.common.HackleRemoteConfig
  
val remoteConfig: HackleRemoteConfig = hackleApp.remoteConfig()

val booleanValue: Boolean = remoteConfig.getBoolean(“parameter_key_boolean_type”, false)