Android Shuttle 사용법 - skpdi/sentinel-document GitHub Wiki
Sentinel 로그정의서 페이지에서 생성한 Android용 Shuttle 라이브러리 사용법 입니다.
Android용 Shuttle은 Java로 개발되었습니다.
Android APK 난독화 시에는, Shuttle 을 난독화 대상에서 반드시 제외해야 합니다.
-keep class com.skplanet.pdp.sentinel.shuttle.** { *; }
Shuttle jar 파일을 클래스패스에 포함하고 아래처럼 사용할 수 있습니다.
// Shuttle 인스턴스를 생성합니다.
SampleSentinelShuttle shuttle = new SampleSentinelShuttle();
// Header 또는 Body에 값을 기록하기 위해 같은 이름을 가진 setter 메소드를 이용할 수 있습니다.
// 예를 들어 `page_id` 값을 기록해야 한다면 `page_id` 메소드를 이용하면 됩니다.
shuttle.page_id("/main/card/list")
.action_id("tap.my_card")
.card_num("2012-3XXX-XXXX-XXXX")
.card_company("Hana SK")
.expired_date("MM/YY");
// 또는 `setBodyOf` 메소드를 이용해서 한번에 세팅할 수 있습니다.
// 이 경우 메소드 이름처럼 *Body* 만 세팅되고, 메소드 이름에 나와있는 *KEY* 헤더값이 자동 세팅됩니다.
// 'setBodyOf' 메소드를 이용할 경우, 이전에 입력했던 모든 body 값을 삭제한 다음 인자로 받은 body 값을 새로 입력합니다.
// (이 예제에서는 `page_id`, `action_id` 가 `main_card_list`, `tap_my_card` 로 세팅)
shuttle.setBodyOfMain_card_list__tap_my_card(
"2012-3XXX-XXXX-XXXX",
null /* 값을 기록하고 싶지 않은 경우 null 입력 */,
"MM/YY"
);
// session_id 헤더 값을 기록하고, 나머지 Body 값을 setBodyOf 메소드를 이용해서 기록하는 경우
shuttle.session_id("AF0EF")
.setBodyOfMain_card_list__tap_my_card(
"2012-3XXX-XXXX-XXXX",
null ,
"MM/YY"
);
Rake Android 에 값을 기록한 Shuttle 을 넘겨주려면 다음처럼 사용합니다. (Rake-Android API 참고)
rake.track(shuttle.toJSONObject());
디버깅을 위해 toJSONString()
메소드를 사용할 수 있습니다.
Log.d(shuttle.toJSONString());
// Shuttle 인스턴스를 생성합니다.
var shuttle = new SampleSentinelShuttle()
// Header 또는 Body에 값을 기록하기 위해 같은 이름을 가진 setter 메소드를 이용할 수 있습니다.
// 예를 들어 `page_id` 값을 기록해야 한다면 `page_id` 메소드를 이용하면 됩니다.
shuttle.page_id("/main/card/list")
.action_id("tap.my_card")
.card_num("2012-3XXX-XXXX-XXXX")
.card_company("Hana SK")
.expired_date("MM/YY")
// 또는 `setBodyOf` 메소드를 이용해서 한번에 세팅할 수 있습니다.
// 이 경우 메소드 이름처럼 *Body* 만 세팅되고, 메소드 이름에 나와있는 *KEY* 헤더값이 자동 세팅됩니다.
// 'setBodyOf' 메소드를 이용할 경우, 이전에 입력했던 모든 body 값을 삭제한 다음 인자로 받은 body 값을 새로 입력합니다.
// (이 예제에서는 `page_id`, `action_id` 가 `main_card_list`, `tap_my_card` 로 세팅)
shuttle.setBodyOfMain_card_list__tap_my_card(
"2012-3XXX-XXXX-XXXX",
null /* 값을 기록하고 싶지 않은 경우 null 입력 */,
"MM/YY"
)
// session_id 헤더 값을 기록하고, 나머지 Body 값을 setBodyOf 메소드를 이용해서 기록하는 경우
shuttle.session_id("AF0EF")
.setBodyOfMain_card_list__tap_my_card(
"2012-3XXX-XXXX-XXXX",
null ,
"MM/YY"
)
Rake Android 에 값을 기록한 Shuttle 을 넘겨주려면 다음처럼 사용합니다. (Rake-Android API 참고)
rake?.track(shuttle.toJSONObject())
디버깅을 위해 toJSONString()
메소드를 사용할 수 있습니다.
Log.d(shuttle.toJSONString())