SDK 연동

핵클 SDK 기능을 사용하기 위해서는 반드시 SDK 연동 작업이 필요합니다.

1 단계 : 의존성 추가

repositories {
  mavenCentral()
}

dependencies {
  implementation 'io.hackle:hackle-server-sdk:2.5.1'
}

2 단계 : SDK 초기화

HackleClient는 SDK 기능을 사용하기 위한 메소드들을 제공하는 클래스입니다.

인스턴스화

// YOUR_SERVER_SDK_KEY 자리에 SDK 키를 넣습니다.
HackleClient hackleClient = HackleClients.create("YOUR_SERVER_SDK_KEY");
// YOUR_SERVER_SDK_KEY 자리에 SDK 키를 넣습니다.
val hackleClient = Hackle.client("YOUR_SERVER_SDK_KEY")

SDK 키를 전달하여 HackleClient를 인스턴스화 합니다.
HackleClient는 필요한 정보들을 얻기 위해 백그라운드 작업으로 핵클 서버와 주기적으로 동기화합니다.

❗️

HackleClient는 반드시 싱글톤이어야 합니다.

HackleClient는 호출 쓰레드를 블록킹 하지 않고 바로 테스트 그룹을 분배하기 위해 내부적으로 상태를 관리합니다. 이를 위해 추가적인 리소스를 사용합니다. 모든 요청에 대해 새로운 클라이언트를 인스턴스화 하지 않고 어플리케이션 생명주기 동안 싱글 인스턴스로 관리되어야 합니다.

종료

hackleClient.close();
hackleClient.close()

어플리케이션이 종료될 때 close() 메소드를 호출해야 합니다. 이 과정을 통해 사용 중인 리소스를 반납하고 남아있는 이벤트를 전송합니다. 이 과정 없이 어플리케이션이 종료되면 이벤트가 누락될 수 있습니다.

👍

스프링 프레임워크를 사용 중이라면?

HackleClient를 빈(bean)으로 등록하는 것이 가장 좋은 방법입니다.
어플리케이션 생명주기 동안 싱글 인스턴스로 관리가 되며 어플리케이션 종료 시 close()까지 자동으로 호출됩니다.


Did this page help you?