menu
Is this helpful?

# 디버그 모드

디버그 모드는 개발자가 데이터 전송을 쉽게 디버깅할 수 있도록 설계되었으며, 테스트 단계에서 데이터 검증에만 사용됩니다. 디버그 모드는 데이터 수집의 품질과 앱의 안정성에 영향을 줄 수 있으므로, 실제 운영 환경에서는 사용하지 말고 반드시 테스트 환경에서 사용해야 합니다.

# 1. 디버그 모드 활성화

(1) Android SDK

Android SDK 인스턴스는 TDConfig에서 정의된 3가지 작동 모드를 지원합니다. DEBUG 또는 DEBUG_ONLY 모드를 선택하세요.

/**
 * Instance operation mode, which is the NORMAL mode by default.
 */
public enum ModeEnum {
    /* In Normal mode, data will be stored in the cache and reported as per a certain cache strategy */
    NORMAL,
    /* Debug Debug mode, data is reported in an entry-by-entry manner. When a problem arises, the system will notify the user in the form of a log and exception */
    DEBUG,
    /* Debug Only Only mode only verifies data without storing the data */
    DEBUG_ONLY
}

예를 들어, 다음 코드는 디버그 모드를 사용하여 SDK의 초기 설정을 완료합니다.

// TDConfig 인스턴스 획득
TDConfig config = TDConfig.getInstance(mContext, TA_APP_ID, TA_SERVER_URL);
// 작동 모드를 디버그 모드로 설정
config.setMode(TDConfig.ModeEnum.DEBUG);
// SDK 초기화
instance = ThinkingAnalyticsSDK.sharedInstance(config);

(2)iOS SDK

iOS SDK 인스턴스도 TDConfig에서 정의된 3가지 실행 모드를 지원합니다. DEBUG 또는 DEBUG_ONLY 모드를 선택하세요.

/**
디버그 모드

- ThinkingAnalyticsDebugOff: 기본적으로 디버그 모드가 활성화되지 않음
*/
typedef NS_OPTIONS(NSInteger, ThinkingAnalyticsDebugMode) {
    /**
     기본적으로 Debug 모드가 활성화되지 않음
     */
    ThinkingAnalyticsDebugOff      = 0,

    /**
      Debug_only 모드가 활성화되어 데이터를 검증만 하고 저장하지 않음
     */
    ThinkingAnalyticsDebugOnly     = 1 << 0,

    /**
     디버그 모드, 데이터는 항목별로 보고됩니다. 문제가 발생하면 시스템은 로그와 예외의 형태로 사용자에게 알립니다
     */
    ThinkingAnalyticsDebug         = 1 << 1
};

예를 들어, 다음 코드는 디버그 모드를 사용하여 SDK의 초기 설정을 완료합니다.

// TDConfig 인스턴스 획득
TDConfig *config = [[TDConfig alloc] init];
// 운영 모드를 디버그 Mode로 설정
config.debugMode = ThinkingAnalyticsDebug;
// SDK 초기화
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];

(3) 기타 클라이언트

  • Unity SDK
  • Unreal Engine SDK
  • Cross Platform

# 2. 디버그 디바이스 추가

운영 환경에서 디버그 모드 실행을 피하기 위해, 디바이스를 지정하여 디버그 모드를 활성화할 필요가 있습니다. 디버그 모드는 클라이언트 측에서 디버그 모드를 활성화하고 [데이터 수집 관리] - [디버그 모드]에서 구성한 디바이스에서만 활성화됩니다.

디바이스 ID는 다음 두 가지 방법으로 얻을 수 있습니다.

  • 클라이언트 로그: SDK의 초기 설정이 완료되면, DeviceId가 출력됩니다.
  • getDeviceId를 호출하여 디바이스 ID를 얻습니다.

# 3. 사용 설명

디바이스를 연결하면 디바이스에서 전송된 데이터가 실시간으로 데이터 목록에 표시되며, 오류가 발생한 데이터에 대해서는 오류의 구체적인 원인이 표시됩니다.

  • 설정: 현재 연결된 디바이스를 전환하거나, 새로운 디바이스를 추가하거나, 디버그 기능의 설정이 전반적으로 가능합니다.
  • 읽기 일시 정지: 테스트 중에 추가 처리를 원할 때 '일시 정지'할 수 있습니다. 또한, 보조 정보로 '읽기 시작'을 클릭하면 실시간 로드 상태로 전환됩니다. 데이터 수집(자동으로 설정된 이벤트 등)이 일시 정지 상태라도, 상단의 데이터 테이블에 표시됩니다.
  • 이벤트 검색: 검색 필터는 지정된 이벤트 또는 사용자 속성만을 표시합니다.
  • 목록 지우기: [목록 지우기]를 클릭하면 현재의 데이터 리스트가 삭제되며, 클리어된 데이터는 표시되지 않습니다. 클리어 작업은 로그만을 삭제하며, 이미 저장된 이벤트는 삭제하지 않습니다.
  • 데이터 트래킹 정책 비교: 테스트 데이터를 얻기 전에 [데이터 수집 관리] - [트래킹 정책]에서 데이터 수집을 관리하는 경우 [데이터 트래킹 비교]를 활성화할 수 있습니다. 이를 통해 테스트 단계에서 테스트 데이터와 데이터 트래킹 정책의 차이를 얻어 신속하게 조정할 수 있습니다. 수집 데이터 비교를 활성화하면 데이터 트래킹 정책 비교에 기반한 오류 정보가 오류 원인에 추가됩니다 (비교 내용에는 프리셋 속성은 포함되지 않습니다). 오류는 다음과 같습니다.
    • 이벤트가 데이터 트래킹 정책에 없음
    • 데이터 트래킹 정책에는 포함되어 있지 않지만, 실제로 전송된 속성이 있음
    • 데이터 트래킹 정책에는 있지만, 실제로는 전송된 속성이 없음
    • 전송된 속성 타입과 데이터 트래킹 정책의 속성 타입 사이에 불일치가 있음

# 4. 사례

# 4.1 디버그 모드를 사용하여 데이터 트래킹 정책을 조정

디버그 모드는 새로운 트래킹 정책을 추가했을 때, 트래킹 정책의 정확성을 검증하는 데 적합합니다. 트래킹 정책을 테스트하기 전에, TE의 SDK로 디바이스의 디바이스 ID를 얻고, 디버그 모드에서 디바이스를 추가합니다. 그 다음, IDE 또는 독자적인 디바이스로 트래킹 정책을 트리거하고, 디버그 모드에서 표시되는 데이터를 주의 깊게 관찰합니다. 데이터가 업로드되었는지 여부와 데이터의 정확성을 확인하세요.

# 4.2 트래킹 정책 비교를 활성화

[트래킹 정책]에서 업로드 후 '데이터 트래킹 비교'를 활성화할 수 있습니다. 테스트 단계에서 테스트 데이터와 데이터 트래킹 정책의 차이를 얻어, 시기적절하게 트래킹 정책 코드를 조정할 수 있습니다. 이 기능의 검증 결과에는 프리셋 속성의 검증은 포함되지 않습니다.