SDK 연동

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

1 단계 : 의존성 추가

pip install hackle-sdk

2 단계 : SDK 초기화

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

인스턴스화

from hackle import hackle

// YOUR_SERVER_SDK_KEY 자리에 SDK 키를 넣습니다.
hackle_client = hackle.Client(sdk_key='YOUR_SERVER_SDK_KEY')

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

❗️

hackle_client는 전역변수이며, 반드시 한 번만 생성해야 합니다.

hackle_client는 쓰레드에서 I/O없이 바로 결과를 평가하기 위해 내부적으로 상태를 관리합니다. 이를 위해 추가적인 리소스를 사용합니다. 모든 요청에 대해 새로운 인스턴스를 생성하지 않고, 이미 생성되어 있는 인스턴스를 사용합니다.

hackle_client 는 싱글톤(Singleton) 객체로 만들어져 있기 때문에, 다른 함수에서 사용할 때 hackle.Client()로 사용해도 재생성하지 않습니다.

종료

hackle_client.close()

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

▼ Flask나 Django를 사용 중 이라면?

@atexit.register를 통해 어플리케이션 종료 시 자동으로 hackle_client를 종료시킬 수 있습니다.

import atexit

@atexit.register
def __exit__():
    hackle_client.close()

Did this page help you?