디버그 모드
디버그 모드는 개발자가 데이터 전송을 쉽게 디버깅할 수 있도록 마련된 모드로, 연동 단계의 데이터 검증에만 사용합니다. 디버그 모드는 데이터 수집 품질과 App의 안정성에 영향을 줄 수 있으므로 운영 환경에서는 사용하지 마십시오.
1. 디버그 모드 활성화
(1)Android SDK
Android SDK 인스턴스는 TDConfig에 정의된 세 가지 실행 모드를 지원합니다. DEBUG 또는 DEBUG_ONLY 모드를 선택하십시오.
/**
* 인스턴스 실행 모드, 기본값은 NORMAL 모드.
*/
public enum ModeEnum {
/* 일반 모드, 데이터를 캐시에 저장하고 일정한 캐시 전략에 따라 전송 */
NORMAL,
/* Debug 모드, 데이터를 한 건씩 전송. 문제가 발생하면 로그와 예외로 사용자에게 알림 */
DEBUG,
/* Debug Only 모드, 데이터 검증만 하고 적재하지 않음 */
DEBUG_ONLY
}
예를 들어 다음 코드는 디버그 모드로 SDK 초기화를 완료합니다.
// TDConfig 인스턴스 가져오기
TDConfig config = TDConfig.getInstance(mContext, TA_APP_ID, TA_SERVER_URL);
// 실행 모드를 Debug 모드로 설정
config.setMode(TDConfig.ModeEnum.DEBUG);
// SDK 초기화
instance = ThinkingAnalyticsSDK.sharedInstance(config);
(2)iOS SDK
iOS SDK 인스턴스는 TDConfig에 정의된 세 가지 실행 모드를 지원합니다. DEBUG 또는 DEBUG_ONLY 모드를 선택하십시오.
/**
Debug 모드
- ThinkingAnalyticsDebugOff : 기본값, Debug 모드 비활성화
*/
typedef NS_OPTIONS(NSInteger, ThinkingAnalyticsDebugMode) {
/**
기본값, Debug 모드 비활성화
*/
ThinkingAnalyticsDebugOff = 0,
/**
Debug_only 모드 활성화, 데이터 검증만 하고 적재하지 않음
*/
ThinkingAnalyticsDebugOnly = 1 << 0,
/**
Debug 모드, 데이터를 한 건씩 전송. 문제가 발생하면 로그와 예외로 사용자에게 알림
*/
ThinkingAnalyticsDebug = 1 << 1
};
예를 들어 다음 코드는 디버그 모드로 SDK 초기화를 완료합니다.
// TDConfig 인스턴스 가져오기
TDConfig *config = [[TDConfig alloc] init];
// 실행 모드를 Debug 모드로 설정
config.debugMode = ThinkingAnalyticsDebug;
// SDK 초기화
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];
(3) 기타 클라이언트
2. 디버그 디바이스 추가
디버그 모드가 운영 환경에 배포되는 것을 막기 위해, 디버그 모드는 지정한 디바이스에서만 활성화할 수 있습니다. 클라이언트에서 디버그 모드를 활성화하고 트래킹 관리 - 디버그 모드에서 연동 설정을 마친 디바이스만 디버그 모드를 활성화할 수 있습니다.
디바이스 ID는 다음 두 가지 방법으로 확인할 수 있습니다.
- 클라이언트 로그: SDK 초기화가 완료되면 디바이스
DeviceId가 출력됩니다 getDeviceId를 호출하여 디바이스 ID 가져오기
4. 사용 방법
디바이스를 연결하면 디바이스에서 전송한 데이터가 데이터 리스트에 실시간으로 표시되며, 유효성 검사에서 오류가 발생한 데이터에는 문제 해결을 돕기 위해 구체적인 오류 원인이 표시됩니다.
- 설정: 클릭하면 현재 연동된 디바이스를 선택·전환하거나 새 디바이스를 추가할 수 있습니다.
- 로드 일시 중지: 테스트 중 현재 특정 이벤트에 머물러 추가로 확인하려면 로드 일시 중지를 클릭합니다. 일시 중지 상태에서 생성된 데이터(설정된 자동 수집 이벤트 등)는 데이터 테이블 위쪽에 알림으로 표시됩니다. 로드 시작을 클릭하면 실시간 로드 상태로 전환됩니다.
- 이벤트 검색: 검색으로 필터링하여 지정한 이벤트 또는 유저 속성만 표시합니다.
- 목록 삭제: 목록 삭제를 클릭하면 현재 데이터 리스트를 비울 수 있으며, 비운 데이터는 더 이상 표시되지 않습니다. 이 작업은 로그만 비우며 이미 적재된 이벤트는 삭제하지 않습니다.
- 트래킹 비교: 데이터를 테스트하기 전에 트래킹 관리 - 트래킹 방안 모듈에서 트래킹 방안 정보를 관리해 두었다면 트래킹 비교를 활성화할 수 있습니다. 그러면 테스트 단계에서 테스트 데이터와 트래킹 방안의 차이를 확인하여 트래킹 코드를 바로 수정할 수 있습니다.
트래킹 비교를 활성화하면 오류 원인에 트래킹 방안 비교 기반의 오류 정보가 추가로 반환됩니다(비교 내용에 시스템 속성은 포함되지 않음). 발생할 수 있는 오류는 다음과 같습니다.
- 이벤트가 트래킹 방안에 없음
- 트래킹 방안에 없지만 실제로 전송된 속성이 있음
- 누락된 속성이 있음, 즉 트래킹 방안에는 있지만 실제로 전송되지 않은 속성이 있음
- 전송된 속성 타입이 트래킹 방안의 속성 타입과 일치하지 않음
4. 모범 사례
4.1 디버그 모드로 트래킹 디버깅
디버그 모드는 트래킹을 새로 추가할 때 트래킹의 정확성을 검증하는 데 매우 적합합니다. 트래킹을 테스트하기 전에 먼저 AE SDK에서 디바이스의 디바이스 ID #device_id를 확인하고 디버그 모드에 해당 디바이스를 추가합니다. 그런 다음 IDE 또는 본인의 디바이스에서 트래킹을 트리거하면서 디버그 모드에 표시되는 데이터를 확인합니다. 주로 데이터가 업로드되었는지, 데이터가 정확한지를 확인합니다.
4.2 트래킹 비교 활성화
트래킹 방안 페이지에서 방안을 업로드한 후 트래킹 비교를 활성화하면 테스트 단계에서 테스트 데이터와 트래킹 방안의 차이를 확인하여 트래킹 코드를 바로 수정할 수 있습니다. 이 기능의 검증 결과에는 시스템 속성 검증이 포함되지 않습니다.

