개발자 가이드

핵클은 웹 사이트, 모바일 앱, API 등 클라이언트와 서버에서 동작하는 모든 기능을 테스트 및 분석할 수 있는 플랫폼입니다. 핵클을 사용하기 위해 SDK 연동은 필수입니다. 한번의 SDK 연동으로 핵클이 제공하고 있는 모든 기능을 사용해보실 수 있습니다.

개발자 가이드 대상자

SDK 연동은 개발 작업이 필요합니다. 연동 과정에서 나오는 질문은 핵클 슬랙 커뮤니티에 언제든지 문의하세요.

SDK 소개

핵클 플랫폼에서 제공하는 기능을 활용하기 위해서는 SDK 연동이 필요합니다.
SDK는 Software Development Kit의 약자로, 핵클에서 제공하는 개발 도구 모음입니다. SDK를 연동한 사용자의 서비스는 핵클 플랫폼이 제공하는 여러 기능을 활용할 수 있습니다.

SDK 유형 및 종류

클라이언트 측, 서버 측 두 가지 유형의 SDK를 지원합니다. 사용 사례에 따라 두 가지 유형 중 하나를 선택하여 사용합니다. 필요한 경우 두 가지 유형을 모두 사용하는 경우도 있습니다.

자세히 알아보려면 클라이언트 SDK와 서버 SDK 문서를 확인해주세요.

유형설명
클라이언트 측- 브라우저, 모바일 앱 등 사용자 디바이스에서 SDK 기능이 실행됩니다.
- JavaScript, Android, iOS, React, React Native, Unity, Flutter SDK 등이 해당됩니다.
서버 측- 서비스를 제공하는 서버에서 SDK 기능이 실행됩니다.
- Java/Kotlin, Python, Node.js, PHP, Ruby SDK 등이 해당됩니다.

SDK 기능

SDK는 아래와 같은 기능을 제공합니다.

  1. 테스트 그룹 분배
    A/B 테스트에서 사용하는 기능으로, 사용자를 A, B, C 등 특정 테스트 그룹으로 분배하여 할당하고 분배된 그룹을 반환합니다. 사용자가 A/B 테스트에 노출되었음을 기록하기 위해 할당된 그룹 정보를 핵클로 전송합니다.

  2. 기능 플래그
    기능 플래그에서 사용하는 기능으로, 사용자에 대해 특정 기능의 출시 여부를 반환합니다. 해당 값은 대시보드에 보여주기 위해 핵클로 전송됩니다.

  3. 사용자 이벤트 전송
    사용자의 행동을 분석하기 위해 정의한 이벤트 키를 핵클로 전송합니다.
    핵클로 전송된 정보는 A/B 테스트의 결과 계산이나 퍼널 분석 등에 사용됩니다.

  4. 데이터 세부 분석
    핵클은 사용자에 대해 특정 분석 기준의 값을 수집하여 보다 심도있는 분석을 할 수 있게 합니다.
    이를 위해서는 분석 기준에 해당하는 사용자 속성을 정의하고 핵클로 전송해야 합니다.

  5. 타겟팅
    A/B 테스트 및 기능 플래그에서 특정 속성을 가진 사용자를 타겟(Target)으로 삼을 수 있게 합니다.
    A/B 테스트의 경우 특정 속성을 가진 사용자만 A/B 테스트에 참여하게 할 수 있으며, 기능 플래그의 경우 특정 속성을 가진 사용자에게 기능 플래그를 적용할 수 있습니다.

클라이언트 측 SDK

SDK테스트 그룹 분배사용자 이벤트 전송기능 플래그데이터 세부 분석타겟팅상호 배타적 설정파라미터 설정통합 식별자원격 구성
Android모든 버전모든 버전2.0.0+2.0.0+2.1.0+2.6.0+2.9.0+2.5.0+2.11.0+
iOS모든 버전모든 버전2.0.0+2.0.0+2.0.0+2.6.0+2.9.0+2.5.0+2.11.0+
JavaScript모든 버전모든 버전2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+3.4.0+11.7.3+
React모든 버전모든 버전2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+3.4.0+11.7.3+
React Native모든 버전모든 버전2.0.0+2.0.0+2.0.0+3.3.0+3.3.0+3.3.0+3.3.0+
Unity모든 버전모든 버전모든 버전모든 버전모든 버전1.2.0+1.3.0+미지원1.4.0+
Flutter모든 버전모든 버전모든 버전모든 버전모든 버전모든 버전모든 버전모든 버전모든 버전

서버 측 SDK

SDK테스트 그룹 분배사용자 이벤트 전송기능 플래그데이터 세부 분석타겟팅상호 배타적 설정파라미터 설정통합 식별자원격 구성
Java/Kotlin모든 버전모든 버전2.0.0+2.0.0+2.1.0+2.6.0+2.8.0+2.5.0+2.9.0+
Python모든 버전모든 버전2.0.0+2.0.0+2.1.0+2.3.0+3.1.0+2.3.0+3.2.0+
Node.js모든 버전모든 버전2.0.0+2.0.0+2.1.0+3.5.0+11.3.0+3.4.0+11.5.0+
PHP모든 버전모든 버전1.0.0+1.0.0+1.0.0+1.0.0+1.0.0+1.0.0+1.0.0+
Ruby모든 버전모든 버전미지원미지원미지원미지원미지원미지원미지원

SDK 버전

SDK 유형SDK최신 버전
클라이언트 측AndroidMaven Central
iOSCocoapods Version
JavaScriptnpm
Reactnpm
React Nativenpm
UnityGitHub release (with filter)
FlutterPub Version (including pre-releases)
서버 측Java/KotlinMaven Central
PythonPyPI - Version
Node.jsnpm
PHPPackagist Version (custom server)
RubyGem (including prereleases)
GoGitHub tag (with filter)

📘

SDK 업데이트

대부분의 SDK는 자동으로 업데이트되지만 일부 수동으로 업데이트해야 하는 SDK가 있습니다.
Android, iOS, Java/Kotlin, PHP, Ruby의 경우 의존성 추가 단계에서 최신 버전을 기입하시기 바랍니다.

비디오 가이드

문서보다 보는 영상을 선호하시나요?
아래의 SDK 연동 가이드 영상을 확인해보세요.