본문으로 건너뛰기

테스트 시작하기

이 가이드에서는 Test Solution SDK의 핵심 진입점인 startTest 메소드를 사용하여 성격 유형 검사를 시작하는 방법을 상세히 알아봅니다.

startTest는 필수 파라미터와 다양한 선택 파라미터를 조합하여, Host 앱의 요구사항에 맞게 SDK의 동작과 모양을 제어할 수 있습니다.

기본 사용법: 필수 파라미터

테스트를 시작하기 위해서는 최소한으로 3개의 필수 파라미터가 필요합니다. 이 값들은 검사를 식별하고 사용자를 구분하기 위한 핵심 정보입니다.

  • goodsId (String): 제휴사에게 발급된 고유 상품 ID입니다.
  • suid (String): 검사를 진행하는 사용자를 식별하기 위해 발급된 고유 사용자 ID입니다.
  • language (String): 검사 문항에 사용될 언어 코드입니다. (예: 'kr')

아래는 필수 파라미터만을 사용하여 테스트를 시작하는 가장 기본적인 코드 예제입니다.

Android (Kotlin)

MainActivity.kt
// ...

class MainActivity : AppCompatActivity() {
// ...

private fun startTest() {
// ...

val startData = mapOf(
"goodsId" to "[GOODS_ID]",
"suid" to "[SUID]",
"language" to "[LANGUAGE]"
)
channel.invokeMethod("startTest", startData)
}
}

iOS (Swift)

ViewController.swift
// ...

class ViewController: UIViewController {
// ...

@IBAction func didTapStartTestButton(_ sender: UIButton) {
// ...

let startData: [String: Any] = [
"goodsId": "[GOODS_ID]",
"suid": "[SUID]",
"language": "[LANGUAGE]"
]

channel.invokeMethod("startTest", arguments: startData)

present(flutterViewController, animated: true, completion: nil)
}
}

고급 사용법: 선택 파라미터 활용하기

Test Solution SDK는 더 나은 개발 경험과 앱 통합을 위해 다양한 선택 파라미터를 제공합니다.

1. 개발 및 디버깅

개발 과정에서 유용한 파라미터들입니다.

  • isDevelopment (Boolean): true로 설정 시, 테스트용 API 서버로 요청을 보냅니다. 앱 출시 시 반드시 false로 설정하거나 제거해야 합니다.
  • enableHostLogging (Boolean): true로 설정 시, SDK 내부의 주요 로그가 Host 앱의 onLog 콜백으로 전달됩니다. 연동 문제를 디버깅할 때 유용합니다.
// Android (Kotlin) 예제
val options = mapOf(
// ... 필수 파라미터
"isDevelopment" to true,
"enableHostLogging" to true
)

2. UI 커스터마이징

SDK의 UI를 Host 앱의 디자인과 유사하게 맞출 수 있습니다.

  • themeColor (Integer): SDK의 주요 UI 요소(버튼, 선택된 답변 등)에 적용될 색상입니다. 0xAARRGGBB (알파, 레드, 그린, 블루) 또는 0xRRGGBB (레드, 그린, 블루) 형식의 헥스 코드를 사용합니다. (예: 0xFF00DDCC, 0x00DDCC)
  • themeMode (String): SDK의 전체적인 테마를 설정합니다. 'light', 'dark', 'system' 중 하나를 선택할 수 있습니다.
  • titleText (String): 테스트 화면 상단에 표시될 제목을 직접 지정할 수 있습니다.
// iOS (Swift) 예제
let options: [String: Any] = [
// ... 필수 파라미터
"themeColor": 0xFFFF8C00, // DarkOrange 색상
"themeMode": "dark",
"titleText": "나의 성향 알아보기"
]

🎨 더 자세한 UI 변경 모습은 커스터마이징 가이드를 참고하세요.

3. 데이터 전달 (customData)

Host 앱의 특정 데이터를 SDK에 전달했다가, 테스트 종료 후 onResult 콜백으로 그대로 돌려받을 수 있습니다. 세션 ID, 캠페인 정보 등 컨텍스트 유지가 필요할 때 유용합니다.

  • customData (Map<String, Any>): SDK에 전달할 사용자 정의 데이터 객체입니다.
// Android (Kotlin) 예제
val customInfo = mapOf(
"sessionId" to "session_abc_123",
"entryPoint" to "main_banner"
)

val options = mapOf(
// ... 필수 파라미터
"customData" to customInfo
)

종합 예제: 모든 파라미터 사용하기

아래는 모든 선택 파라미터를 활용하여 테스트를 시작하는 전체 코드 예제입니다.

Android (Kotlin)

private fun startFullOptionTest() {
val customInfo = mapOf(
"sessionId" to "session_abc_123",
"entryPoint" to "main_banner"
)

val options = mapOf(
// 필수
"goodsId" to "[GOODS_ID]",
"suid" to "[SUID]",
"language" to "[LANGUAGE]",

// 선택
"isDevelopment" to true, // 개발 모드 활성화
"enableHostLogging" to true, // Host 앱으로 로그 전송
"themeColor" to 0xFF5A278A, // 메인 색상을 보라색으로
"themeMode" to "system", // 시스템 설정에 따라 라이트/다크 모드 결정
"titleText" to "내 마음 탐험하기", // 상단 타이틀 변경
"customData" to customInfo // 커스텀 데이터 전달
)

val mergedMap = customInfo + options

channel.invokeMethod("startTest", mergedMap)
}

iOS (Swift)

func startFullOptionTest() {
var customInfo: [String: Any] = [
"sessionId": "session_xyz_987",
"entryPoint": "profile_button"
]

let options: [String: Any] = [
// 필수
"goodsId": "[GOODS_ID]",
"suid": "[SUID]",
"language": "[LANGUAGE]",

// 선택
"isDevelopment": true, // 개발 모드 활성화
"enableHostLogging": true, // Host 앱으로 로그 전송
"themeColor": 0xFF5A278A, // 메인 색상을 보라색으로
"themeMode": "system", // 시스템 설정에 따라 라이트/다크 모드 결정
"titleText": "Explore My Mind", // 상단 타이틀 변경
"customData": customInfo // 커스텀 데이터 전달
]

customInfo.merge(options) { (current, new) in new }

channel.invokeMethod("startTest", arguments: customInfo)
}

다음으로

테스트를 성공적으로 시작했다면, 이제 테스트가 완료되거나 특정 이벤트가 발생했을 때 SDK가 전달하는 결과와 로그를 처리하는 방법을 알아볼 차례입니다.