콘텐츠로 이동

동적 구성 및 동적 주소 업데이트

동적 구성 활성화

동적 구성은 기본적으로 비활성화되어 있습니다. 활성화하면 SDK가 설치 시 로컬 캐시를 읽습니다. RUM 구성이 설치되어 있고 유효한 전송 주소가 존재하는 경우, SDK는 RUM 애플리케이션 ID를 사용하여 서버 구성을 가져옵니다. 전송 주소가 런타임에 설정된 경우, SDK는 주소가 유효해진 후 동적 구성을 계속 가져옵니다.

import {
  FTSDK,
  FTSDKConfig,
  FTRUMConfig,
  FTRemoteConfigFetchResult,
  RemoteConfigBean
} from '@guancecloud/ft_sdk/Index';

const remoteConfigResult: FTRemoteConfigFetchResult = {
  // 서버에서 유효하고 변경된 구성을 반환했을 때 호출됩니다.
  onConfigSuccessFetched(configBean: RemoteConfigBean, jsonConfig: string): RemoteConfigBean | null {
    // jsonConfig를 기반으로 사용자 정의 환경 변수를 파싱하고 수정된 구성을 반환할 수 있습니다.
    return configBean;
  },
  // 성공적으로 가져오거나 서버 구성이 변경되지 않은 경우 true; 요청 실패 또는 새로 고침 간격이 충족되지 않은 경우 false입니다.
  onResult(success: boolean): void {
    // 필요에 따라 가져오기 결과를 기록합니다.
  }
};

const sdkConfig = FTSDKConfig.builder()
  .setRemoteConfiguration(true)
  .setRemoteConfigMiniUpdateInterval(43200)
  .setRemoteConfigurationCallBack(remoteConfigResult);

FTSDK.install(sdkConfig, this.context);
FTSDK.installRUMConfig(new FTRUMConfig().setRumAppId('your-rum-app-id'));
메서드 유형 기본값 설명
setRemoteConfiguration boolean false 동적 구성 활성화 여부
setRemoteConfigMiniUpdateInterval number 43200 최소 가져오기 간격(초). 소수점 이하는 버림, 음수는 0으로 처리, 0을 전달하면 즉시 새로 고침에 사용 가능
setRemoteConfigurationCallBack FTRemoteConfigFetchResult \| null null 가져오기 결과 콜백 설정. onConfigSuccessFetched는 수정된 RemoteConfigBean을 반환 가능, onResult는 결과 수신에 사용

로컬 캐시는 각 구성 설치 전에 병합됩니다. 기본 SDK는 환경, 서비스 이름 및 업로드 관련 구성을 지원합니다. RUM은 샘플링 비율, 자동 수집 스위치 및 WebView Host 허용 목록을 지원합니다. Log는 샘플링 비율, 수준 및 스위치를 지원합니다. Trace는 샘플링 비율, 자동 추적 및 유형을 지원합니다. 온라인에서 새 구성을 가져온 후에는 업로드 스위치 및 매개변수, Log 구성, Trace 샘플링 비율, RUM 샘플링 비율 및 오류 샘플링 비율만 즉시 적용됩니다. 다른 구성은 다음 초기화 시 적용됩니다.

동적 구성 수동 동기화

FTSDK를 사용하여 동적 구성을 수동으로 동기화합니다. 자동 업데이트가 요구 사항을 충족하지 못하는 경우 수동 호출을 통해 업데이트 시점을 조정할 수 있습니다.

/**
 * 원격 구성을 수동으로 업데이트합니다. 호출 빈도는 FTSDKConfig.setRemoteConfigMiniUpdateInterval의 영향을 받습니다.
 */
FTSDK.updateRemoteConfig();

/**
 * 지정된 최소 업데이트 간격을 사용하여 원격 구성을 수동으로 업데이트합니다.
 * 0을 전달하면 즉시 요청합니다.
 *
 * @param intervalSeconds 최소 업데이트 간격(초). 음수는 0으로 처리됩니다.
 * @param result 가져오기 결과 콜백으로, 초기화 시 설정된 콜백을 재정의할 수 있습니다.
 */
FTSDK.updateRemoteConfig(intervalSeconds, result);

코드 예제

import {
  FTSDK,
  FTRemoteConfigFetchResult,
  RemoteConfigBean
} from '@guancecloud/ft_sdk/Index';

const result: FTRemoteConfigFetchResult = {
  onResult(success: boolean): void {
    // 가져오기 성공 또는 서버 구성이 변경되지 않은 경우 true입니다.
  },
  onConfigSuccessFetched(configBean: RemoteConfigBean, jsonConfig: string): RemoteConfigBean | null {
    // 선택적 확장: jsonConfig를 기반으로 사용자 정의 환경 변수를 파싱하고 configBean을 수정합니다.
    return configBean;
  }
};

// 0을 전달하면 즉시 요청하며, 이번 콜백으로 초기화 시 설정된 콜백을 재정의합니다.
FTSDK.updateRemoteConfig(0, result);

기기 식별자 동적 활성화 및 비활성화

FTSDK를 사용하여 SDK에서 시스템 기기 식별자를 가져올지 여부를 설정합니다. 기본적으로 SDK는 영구적인 개인정보 보호 UUID를 device_uuid로 사용합니다. 활성화하면 SDK가 ODID를 우선 가져오고, ODID를 사용할 수 없으면 UDID로 대체하며, UDID도 사용할 수 없으면 개인정보 보호 UUID를 사용합니다.

// 시스템 기기 식별자 액세스 활성화
FTSDK.setEnableAccessDeviceID(true);

// SDK 개인정보 보호 UUID로 전환
FTSDK.setEnableAccessDeviceID(false);

전송 주소 동적 업데이트

FTSDK를 사용하여 SDK 런타임에 데이터 전송 주소를 동적으로 전환합니다. FTSDK.install(...) 완료 후 호출하세요. 설정이 성공하면 이후 데이터는 새 주소로 계속 업로드됩니다.

setDatakitUrlsetDatawayUrl 중 하나를 선택하여 사용하세요. setDatawayUrl을 사용하는 경우 새 clientToken도 함께 전달해야 합니다.

사용 사례 설명

FTSDKConfig.builder()는 초기화 시 datakitUrl 또는 datawayUrl을 전달하지 않는 것을 지원합니다. 이 시나리오에서 SDK는 데이터 수집을 먼저 실행하지만 데이터를 업로드하지는 않습니다.

이후 FTSDK.setDatakitUrl(...) 또는 FTSDK.setDatawayUrl(..., ...)을 호출하여 완전하고 유효한 HTTP(S) 전송 주소를 설정하면 SDK가 로컬 캐시를 소비하고 자동 업로드를 재개합니다. DataWay 모드에는 유효한 클라이언트 토큰도 필요합니다. 상대 경로, 비 HTTP(S) 프로토콜 또는 형식이 잘못된 주소는 자동 업로드를 재개하지 않습니다. 즉시 업로드를 요청해야 하는 경우 FTSDK.flushSyncData()를 호출할 수 있습니다.

동적 구성이 이미 활성화된 경우 유효한 전송 주소로 전환하면 SDK가 새 주소에서 즉시 원격 구성을 새로 고칩니다. 이전 주소의 진행 중인 요청 결과는 무시됩니다. 블랙리스트 필터가 이미 활성화된 경우 SDK는 이전 주소의 원격 규칙을 지우고 즉시 새 주소에서 다시 가져옵니다. 로컬 규칙은 계속 유지됩니다.

런타임에 설정된 주소는 메모리에만 저장되며, 애플리케이션을 다시 시작하면 다시 설정해야 합니다. SDK 설치 전에 전송 주소를 설정해야 하는 경우 FTSDKConfig.builder()가 반환한 구성 객체에서 setDatakitUrl(...) 또는 setDatawayUrl(...)을 호출할 수 있습니다. 자세한 내용은 SDK 초기화를 참조하세요.

전송 주소가 설정되지 않은 기간 동안 수집된 데이터는 계속 로컬 캐시 상한 제한을 받습니다. 캐시가 상한에 도달하면 초과 데이터는 폐기될 수 있으므로 가능한 한 빨리 전송 주소를 설정하고 비즈니스 시나리오에 맞게 캐시 제한을 적절히 설정하는 것이 좋습니다.

import { FTSDK } from '@guancecloud/ft_sdk/Index';

// DataKit을 사용한 전송
FTSDK.setDatakitUrl('http://10.0.0.1:9529');

// 또는 DataWay를 사용한 전송
FTSDK.setDatawayUrl('https://open.dataway.url', 'your-client-token');
메서드명 유형 필수 의미
setDatakitUrl string FTSDK.install(...) 후 DataKit 전송 주소를 동적으로 설정합니다. 설정이 성공하면 SDK는 새 DataKit 주소로 계속 데이터를 업로드합니다.
setDatawayUrl string, string FTSDK.install(...) 후 DataWay 전송 주소와 clientToken을 동적으로 설정합니다. 설정이 성공하면 SDK는 새 DataWay 주소로 계속 데이터를 업로드합니다.

문서 평가

이 페이지가 도움이 되었나요?