Ruby

1. 의존성 추가

arrow-up-right

gem install hackle-ruby-sdk -v '~> 2.0.0'

2. SDK 초기화

triangle-exclamation

SDK를 사용하기 위해서 Hackle::Client를 초기화 해야 합니다.

  • Hackle::Client는 SDK의 기능을 사용하기 위한 메소드들을 제공하는 클래스입니다.

  • SDK 키는 핵클 서비스의 대시보드 안에 위치한 SDK 연동 정보arrow-up-right에서 확인하실 수 있습니다.

require 'hackle-ruby-sdk'

hackle_client = Hackle::Client.create(sdk_key: 'YOUR_SERVER_SDK_KEY')

Rails에서 SDK 사용하기

Rails에서는 아래와 같이 SDK를 초기화 및 종료를 해주세요.

# config/initializers/hackle_client.rb

$hackle_client = Hackle::Client.create(sdk_key: 'YOUR_SERVER_SDK_KEY')
at_exit { $hackle_client.close }

클러스터 모드

Application이 시작되면 SDK는 여러 쓰레드를 생성합니다. 각 쓰레드는 백그라운드에서 이벤트를 일괄 처리 및 전달 하고 A/B테스트 정보를 가져오는 무한 루프가 있습니다.

여러 하위 프로세스를 생성하는 웹서버에서 SDK를 사용하는 경우(예: Puma, Unicorn / workers > 0) application 서버는 하위 프로세스를 생성하지만 상위 프로세스에 존재하는 쓰레드를 다시 생성하지 않습니다.

따라서 Unicorn, Puma 등에서 클러스터 모드로 실행이 되는 경우 하위 프로세스 또는 Worker가 생성 된 후 SDK를 추가로 생성해야 합니다.

Unicorn

Puma


3. 이벤트 전송

사용자가 수행하는 행동을 이벤트로 전송할 수 있습니다. 전송된 이벤트는 A/B 테스트 분석, 데이터 분석 등에 사용됩니다. 예를들어, 사용자가 구매라는 행동을 했다면 아래와 같이 이벤트를 전송할 수 있습니다.

전송한 이벤트 확인하기

대시보드 이벤트관리arrow-up-right 메뉴에서 전송한 이벤트를 확인할 수 있습니다. 이벤트 전송 후 대시보드에 표시되기까지 일반적으로 ~60초가 걸립니다.


4. A/B 테스트

사용자를 테스트 그룹으로 분배하고 분배된 결과에 해당하는 로직을 작성하여 A/B 테스트를 구현합니다. variation에 실험키를 전달하여 호출하면 분배결과를 리턴받을 수 있습니다.

실험키: 각 A/B 테스트별로 갖게 되는 고유 번호입니다. A/B 테스트를 생성하면 자동으로 발급됩니다.

circle-exclamation

5. 기능 플래그

기능 플래그는 켜짐(on) 상태와 꺼짐(off) 상태가 있습니다. 상태에 따라 다른 로직을 작성하여 기능 플래그를 구현합니다. is_feature_on에 기능플래그키를 전달하여 호출하면 on/off 여부를 리턴받을 수 있습니다.

[기능플래그키](../../기능 플래그/ff-manage/ff-detail.md): 각 기능플래그별로 갖게 되는 고유 번호입니다. 기능플래그를 생성하면 자동으로 발급됩니다.


6. 종료

애플리케이션이 종료될 때 hackle_client.close 메소드를 호출하여 hackle_client를 종료시켜야 합니다. 이를 통해 클라이언트가 사용 중인 리소스를 반납하고 남아있는 이벤트를 전송합니다.

triangle-exclamation

마지막 업데이트