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) {
    /**
     기본적으로 디버그 모드가 활성화되지 않음
     */
    ThinkingAnalyticsDebugOff      = 0,

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

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

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

// TDConfig 인스턴스 획득
TDConfig *config = [[TDConfig alloc] init];
// 운영 모드를 Debug 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. Debug 디바이스 추가

실제 환경에서 Debug 모드 실행을 피하려면, 디바이스를 지정하여 Debug 모드를 활성화해야 합니다. Debug 모드는 클라이언트에서 Debug 모드를 활성화하고 "데이터 수집 관리 - Debug 모드"에서 설정한 디바이스에서만 활성화할 수 있습니다.

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

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

# 3. 사용 설명

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

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

# 4. 사례

# 4.1 디버그 모드를 사용하여 데이터 수집 플랜 조정

디버그 모드는 새로운 수집 플랜을 추가할 때, 수집 플랜의 정확성을 검증하는 데 적합합니다. 수집 플랜을 테스트하기 전에, TE의 SDK로 디바이스의 디바이스 ID#device_id를 얻고, 디버그 모드에서 디바이스를 추가합니다. 그 다음, IDE 또는 자체 디바이스에서 수집 플랜을 트리거하고, 디버그 모드에서 표시되는 데이터에 주의합니다. 데이터가 업로드되었는지 여부, 그리고 데이터가 정확한지 여부를 주의해야 합니다.

# 4.2 수집 플랜 비교 활성화

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