SDK ์ฐ๋
Hackle PHP SDK๋ PHP 7.1.33 ๋ฒ์ ์ด์์ ์ง์ํฉ๋๋ค.
PHP SDK๋ 1.0.0 ๋ฒ์ ๋ถํฐ ์ ์ฉํ์๊ธธ ๋ฐ๋๋๋ค.
1. SDK ์์กด์ฑ ์ถ๊ฐ
SDK ์์กด์ฑ์ ์ถ๊ฐ ํฉ๋๋ค.
php composer.phar require hackle/hackle-php-sdk:{sdk_version}
//OR
composer require hackle/hackle-php-sdk:{sdk_version}๊ทธ ๋ค์ autoload ์ํต๋๋ค.
require 'vendor/autoload.php';2. SDK ์ด๊ธฐํ
HackleClient๋ SDK ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํ ๋ฉ์๋๋ค์ ์ ๊ณตํ๋ ํด๋์ค์
๋๋ค.
SDK ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ HackleClient ์ด๊ธฐํ๊ฐ ํ์ํฉ๋๋ค.
์ธ์คํด์คํ
SDK ํค๋ฅผ ์ ๋ฌํ์ฌ HackleClient๋ฅผ ์ธ์คํด์คํ ํฉ๋๋ค.
HackleClient๋ ํ์ํ ์ ๋ณด๋ค์ ์ป๊ธฐ ์ํด, ํตํด์์ ์ ๊ณตํ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋๋ง๋ค ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์บ์ํฉ๋๋ค.
- SDK ํค๋ ํตํด ์๋น์ค์ ๋์๋ณด๋ ์์ ์์นํ SDK ์ฐ๋ ์ ๋ณด์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
- ์บ์ ์ ๋ณด๋
/tmp/hackle/์ ์ ์ฅ๋ฉ๋๋ค.
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");3. ์ด๋ฒคํธ ์ ์ก
ํตํด SDK๋ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ํตํด๋ก ์ ์กํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ฌ์ฉ์ ํ๋์ ๋ณํ๊ฐ ์ผ์ด๋๋ ์ง์ ๋ง๋ค ์ด ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ์ฌ์ฉ์ ํ๋์ ๋ํ ์ ์๋ฏธํ ๋ฐ์ดํฐ๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ, ๊ทธ๋ ๊ฒ ๋ชจ์ธ ๋ฐ์ดํฐ๋ฅผ ํตํด ์ฌ์ฉ์ ํ๋ ๋ถ์์ ํ ์ ์์ต๋๋ค.
track
track() ๋ฉ์๋์ ์ด๋ฒคํธ ํค์ ์ฌ์ฉ์๋ฅผ ์ ๋ฌํ์ฌ ์ฌ์ฉ์ ์ด๋ฒคํธ๋ฅผ ์ ์กํ ์ ์์ต๋๋ค. ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ด๋ฒคํธ ์ ์ก ์ ์ซ์ ๊ฐ์ value์ ๋ฃ์ด ํจ๊ป ์ ์กํ ์ ์์ต๋๋ค.
value๋ number ํ์ ๋ง ๋ฃ์ ์ ์์ต๋๋ค.
์์
์ฌ์ฉ์๊ฐ ๊ตฌ๋งคํ๊ธฐ ๋ฒํผ์ ๋๋ ์ ๋ ์ด๋ฒคํธ๋ฅผ ์์งํ๊ธฐ ์ํด purchase ๋ผ๋ ์ด๋ฒคํธ ํค๋ฅผ ์ ์ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ด ๋ ๊ตฌ๋งค ์์ฑ์ ๋ณด๋ฅผ ๊ฐ์ด ์์งํ๊ณ ์ถ์ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ property์ ๊ตฌ๋งค ์์ฑ์ ๋ณด๋ฅผ ํจ๊ป ๋ฐ์ ์ ์์ต๋๋ค.
<?php
require 'vendor/autoload.php';
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
$user = \Hackle\Common\HackleUser::builder()
->deviceId("ae2182e0")
->build();
$event = \Hackle\Common\HackleEvent::builder("purchase")
->property("pay_method", "CARD")
->property("discount_amount", 800)
->property("is_discount", true)
->build();
$client->track($event, $user);
?>์ฌ์ฉ์ ์ด๋ฒคํธ ์ ์ก ํ์ธํ๊ธฐ
SDK ์์ ์ ์กํ ์ฌ์ฉ์ ์ด๋ฒคํธ๊ฐ ์ ์์ ์ผ๋ก ์์ง๋๊ณ ์๋์ง ํ์ธํด๋ณด์ธ์.
ํตํด ๋์๋ณด๋ ์์ [์ผ์ชฝ ๋ฉ๋ด๋ฐ] - [์ด๋ฒคํธ ๊ด๋ฆฌ] ๋ฉ๋ด์์ SDK๋ก ์ ์กํ ์ด๋ฒคํธ๋ฅผ ์ฐพ์ ์ค์๊ฐ ์ด๋ฒคํธ ์์งํํฉ์ ํ์ธํด๋ณผ ์ ์์ต๋๋ค.
4. A/B ํ
์คํธ, ๊ธฐ๋ฅํ๋๊ทธ
A/B ํ
์คํธ
A/B ํ ์คํธ๋ฅผ ์งํํ ๋, ํ ์คํธ ๊ทธ๋ฃน์ ๋์์ผ๋ก ์ฌ์ฉ์๋ฅผ ๋ถ๋ฐฐํ๊ณ ๊ฐ ํ ์คํธ ๊ทธ๋ฃน์ ํด๋นํ๋ ๋ก์ง์ ์์ฑํด์ผ ํฉ๋๋ค. ์ด ๋ ์ฌ์ฉ์ ๋ถ๋ฐฐ๋ฅผ ํตํด SDK๋ฅผ ํตํด ์งํํ ์ ์์ต๋๋ค.
ํ ์คํธ ๊ทธ๋ฃนํ ์คํธ ๊ทธ๋ฃน์ ํ ์คํธ ๋์์ด ๋๋ ๊ธฐ์กด์(๋์กฐ๊ตฐ)๊ณผ ๊ฐ์ ์(์คํ๊ตฐ)์ ์๋ฏธํ๋ฉฐ, ๊ฐ์ ์์ 1๊ฐ ์ด์์ผ ์ ์์ต๋๋ค. ๋์๋ณด๋์์ ์ค์ ๊ฐ๋ฅํ๋ฉฐ, ํ ์คํธ ๊ทธ๋ฃน์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ A/B ํ ์คํธ ์ค์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
variation
variation() ๋ฉ์๋์ ์คํ ํค์ ์ฌ์ฉ์ ์๋ณ์๋ฅผ ์ ๋ฌํ๋ฉด ์ฌ์ฉ์๋ฅผ ๋ถ๋ฐฐํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌ๋ฐ์ ์ ์์ต๋๋ค. ์ดํ ํ
์คํธ ๊ทธ๋ฃน ๋ณ ๋ก์ง์ ๊ตฌํํฉ๋๋ค.
์คํ ํค๋ ๊ฐ A/B ํ
์คํธ๋ณ๋ก ๊ฐ๊ฒ ๋๋ ๊ณ ์ ๋ฒํธ์ด๋ฉฐ, ํตํด ์๋น์ค ๋ด์ ๋์๋ณด๋์์ ํ์ธํ ์ ์์ต๋๋ค.
์๋ ์์ ์ฝ๋์์๋ ์คํ ํค 42๋ฅผ ์ ๋ฌํ๊ณ ์์ผ๋ฉฐ, ์ฌ์ฉ์ ์๋ณ์๋ "ae2182e0" ์
๋๋ค. ํ
์คํธ ๊ทธ๋ฃน์ A์ B ๋ ๊ฐ๊ฐ ์กด์ฌํฉ๋๋ค.
<?php
require 'vendor/autoload.php';
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
$user = \Hackle\Common\HackleUser::builder()
->deviceId("ae2182e0")
->build();
$variation = $client->variation(42, $user);
if ($variation === "A") {
//๊ทธ๋ฃน A ๋ก์ง
} elseif ($variation === "B") {
//๊ทธ๋ฃน B ๋ก์ง
}
?>๊ธฐ๋ฅํ๋๊ทธ
๊ธฐ๋ฅ ํ๋๊ทธ๋ ์ผ์ง(on) ์ํ์ ๊บผ์ง(off) ์ํ๊ฐ ์์ต๋๋ค. ๊ฐ ์ํ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ค์ ํ๊ฒ ๋ฉ๋๋ค.
๊ธฐ๋ฅ ํ๋๊ทธ๋ฅผ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ด๋ค ์ฌ์ฉ์๊ฐ ์ ๊ทผํ ๊ฒฝ์ฐ ์ผ์ง ํน์ ๊บผ์ง ์ํ๋ฅผ ๋ฐ์ ์ ์์ด์ผ ํฉ๋๋ค. ์ด ์ํ ๊ฒฐ์ ์ ํตํด SDK๋ฅผ ํตํด ์งํํ ์ ์์ต๋๋ค.
isFeatureOn
isFeatureOn() ๋ฉ์๋์ ๊ธฐ๋ฅ ํค๋ฅผ ์ ๋ฌํ๋ฉด ์ฌ์ฉ์์ ๋ํ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌ๋ฐ์ ์ ์์ต๋๋ค. ์ดํ ์ํ์ ๋ฐ๋ฅธ ๋ก์ง์ ๊ตฌํํฉ๋๋ค.
๊ธฐ๋ฅ ํค๋ ๊ฐ ๊ธฐ๋ฅ ํ๋๊ทธ๋ณ๋ก ๊ฐ๊ฒ ๋๋ ๊ณ ์ ๋ฒํธ์ด๋ฉฐ ํตํด ์๋น์ค ๋ด์ ๋์๋ณด๋์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
์๋ ์์ ์ฝ๋์์๋ ๊ธฐ๋ฅ ํค 42๋ฅผ ์ ๋ฌํ๊ณ ์์ผ๋ฉฐ, ์ํ๋ฅผ ๋ฐ์ ์ฌ์ฉ์์ ์ฌ์ฉ์ ์๋ณ์๋ "ae03e1adf" ์
๋๋ค.
<?php
require 'vendor/autoload.php';
$client = \Hackle\HackleClients::create("YOUR_SERVER_SDK_KEY");
$user = \Hackle\Common\HackleUser::builder()
->deviceId("ae2182e0")
->build();
$isFeatureOn = $client->isFeatureOn(42, $user);
if ($isFeatureOn) {
// ON ๊ธฐ๋ฅ
} else {
// OFF ๊ธฐ๋ฅ
}
?>๋ถ๋ฐฐ๊ฒฐ๊ณผ ํ์ธํ๊ธฐ
ํตํด ๋์๋ณด๋ ์์ [์ผ์ชฝ ๋ฉ๋ด๋ฐ] - ๋๋ ๊ธฐ๋ฅํ๋๊ทธ] ํ๋ฉด์์ ๋ ธ์ถ ํ๋ฉด์์ ๋ ธ์ถ๋๋ A/Bํ ์คํธ ๋๋ ๊ธฐ๋ฅํ๋๊ทธ ๋ฆฌ์คํธ ์ค ์ฐ๋ํ ๋์์ ์ฐพ์ ์์ธ ํ์ด์ง๋ก ์ด๋ ํ ํ ํ๋ฉด ์ค๊ฐ์ [์ค์๊ฐ ๋ ธ์ถ ํํฉ] ํญ์ ํด๋ฆญํ๋ฉด SDK๋ก ์ฐ๋ ๋ ๋ถ๋ฐฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.

Updated 15 days ago
