본문으로 건너뛰기

실시간 디버깅

최근 업데이트 2026. 10. 02.
주의

SDK 디버그 모드는 연동 디버깅에만 사용하며, 운영 환경에서는 절대 사용하지 마십시오.

로그 출력 활성화​

td_enableLog(1);

DebugConsumer 사용​

SDK 연동 과정에서 AE의 디버그 기능을 사용하여 실시간으로 디버깅할 수 있습니다. 디버그 기능을 사용하려면 다음 두 단계가 필요합니다.

  1. DebugConsumer 사용
  • debugConsumer 기능을 포함하도록 .a 파일을 패키징합니다. CMakeLists.txt 수정 예시는 다음과 같습니다.
# Debug Library: debug consumer
if(WIN32)
add_compile_definitions(USE_WIN)
set(CMAKE_C_FLAGS "-std=c99 -pedantic-errors -m64")
else()
add_compile_definitions(USE_POSIX)
set(CMAKE_C_FLAGS "-std=c99")
endif()
SET(TE_LIB_NAME thinkingDataDebug)
add_library(${TE_LIB_NAME} src/thinkingdata.c src/td_json.c src/td_list.c src/td_util.c src/td_debug_consumer.c src/td_http_client.c)
if(WIN32)
add_compile_definitions(BUILDING_LIBCURL)
include_directories(thirdparty/pcre/include thirdparty/curl/include)
link_directories(thirdparty/pcre/lib thirdparty/curl/lib)
target_link_libraries(${TE_LIB_NAME} pcre_x64 libcurl)
else()
target_link_libraries(${TE_LIB_NAME} curl)
endif()
  • 다음은 DebugConsumer를 사용하는 예시 코드입니다.
struct TDAnalytics* ta = NULL;
struct TDConsumer* consumer = NULL;
/*
* DebugConsumer: 데이터를 한 건씩 전송합니다. 문제가 발생하면 로그와 예외로 유저에게 알립니다. 운영 환경에서는 사용하지 않는 것을 권장합니다
*/
TDConfig *config = td_init_config();
// debug_mode: 0이면 저장, 그 외에는 저장하지 않음
TD_ASSERT(TD_OK == td_add_int("debug_mode", 0, config));
// AE 백엔드 테스트 디바이스의 id: 123456789
TD_ASSERT(TD_OK == td_add_string("device_id", "123456789", strlen("123456789"), config));
// appid와 url 설정
char* appid = "APPID";
char* serverURL = "SERVER_URL";
TD_ASSERT(TD_OK == td_add_string("push_url", serverURL, strlen(serverURL), config));
TD_ASSERT(TD_OK == td_add_string("appid", appid, strlen(appid), config));

//SDK 인스턴스 생성
if (TD_OK != td_init_consumer(&consumer, config)) {
fprintf(stderr, "Failed to initialize the consumer.");
return 1;
}
td_free_properties(config);
if (TD_OK != td_init(consumer, &ta)) {
fprintf(stderr, "Failed to initialize the SDK.");
return 1;
}

// 커스텀 속성 생성
TDProperties *properties = td_init_properties();
// 디바이스 ID 속성 추가(디바이스 ID 값은 td_device_id)
TD_ASSERT(TD_OK == td_add_string("#device_id", "td_device_id", strlen("td_device_id"), properties));
//커스텀 속성을 포함한 이벤트 데이터 전송(마찬가지로 account_id와 distinct_id 중 하나 이상을 반드시 설정해야 함)
TD_ASSERT(TD_OK == td_track("account_id", "distinct_id", "test", properties, ta));
td_free_properties(properties);
  1. AE 백엔드에 디버그 디바이스 추가

디버그 모드가 운영 환경에 배포되는 것을 막기 위해 지정된 디바이스에서만 디버그 모드를 활성화할 수 있도록 제한합니다. 클라이언트에서 디버그 모드를 활성화했고, 디바이스 ID가 AE 백엔드의 데이터 → 트래킹 관리 → 디버그 모드 페이지에 추가된 디바이스만 디버그 모드를 활성화할 수 있습니다. 추가 방법: 페이지 오른쪽 상단의 디바이스 연동을 클릭하고 디바이스 선택 드로어에서 디바이스 추가를 클릭한 후 디바이스 ID를 입력합니다.

디버그 모드는 데이터 수집 품질과 App의 안정성에 영향을 줄 수 있으므로 연동 단계의 데이터 검증에만 사용하고 운영 환경에서는 사용하지 마십시오.

이 문서가 도움이 되었나요?