원격 구성 적용

원격 구성은 애플리케이션에서 관리되고 있는 값, 또는 속성들을 핵클 대시보드에서 정의한 파라미터 값들로 대체하여 실시간으로 애플리케이션의 동작 및 설정 값들을 제어할 수 있는 기능입니다.

핵클의 대시보드의 원격 구성 화면으로 이동하여 파라미터 정보들을 설정하고, 사용자 식별 규칙에 따른 값들을 설정할 수 있습니다.

remoteConfig

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

import "github.com/hackle-io/hackle-go-sdk/hackle"


//사용자 객체 - 사용자 식별자와 속성 가이드 참조
user := hackle.NewUserBuilder().ID("ae2182e0").Build()

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

원격 구성 파라미터 조회

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

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

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

GetString

  • STRING, JSON 유형으로 설정된 파라미터 값을 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import "github.com/hackle-io/hackle-go-sdk/hackle"

//사용자 객체 - 사용자 식별자와 속성 가이드 참조
user := hackle.NewUserBuilder().ID("ae2182e0").Build()

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

stringValue := remoteConfig.GetString("string_key", "default_value")

//JSON Type
jsonValue := remoteConfig.GetString("json_key", "{}")

GetNumber

  • Number 유형으로 설정된 parameter 값을 float64 타입으로 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import "github.com/hackle-io/hackle-go-sdk/hackle"

//사용자 객체 - 사용자 식별자와 속성 가이드 참조
user := hackle.NewUserBuilder().ID("ae2182e0").Build()

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

numberValue := remoteConfig.GetNumber("number_key", 42.0)

GetBool

  • Boolean 유형으로 설정된 parameter값을 반환합니다.
  • 상태 결정에 따라 기본 값 혹은 규칙에 설정된 값을 반환합니다.
import "github.com/hackle-io/hackle-go-sdk/hackle"

//사용자 객체 - 사용자 식별자와 속성 가이드 참조
user := hackle.NewUserBuilder().ID("ae2182e0").Build()

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

boolValue := hackleClient.GetBool("bool_key", false)