콘텐츠로 이동

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

이 문서는 React Native SDK의 원격 구성, 능동 업데이트 및 동적 업데이트 전송 주소 기능을 설명합니다.

동적 구성

사전 조건

FTMobileConfig.remoteConfiguration = true인 경우에만 동적 구성 관련 기능이 활성화됩니다.

원격 구성 업데이트 리스닝

원격 구성을 활성화하면 SDK가 자동으로 트리거하는 원격 구성 업데이트 결과를 리스닝할 수 있습니다.

/**
 * 기본 SDK가 자동으로 트리거하는 원격 구성 업데이트를 리스닝합니다.
 * 능동 동기화 동적 구성 메서드의 Promise 반환은 이 이벤트 콜백을 통해 전달되지 않습니다.
 */
addRemoteConfigListener(
  listener: (result: FTRemoteConfigResult) => void,
): EmitterSubscription;

사용 예시

FTMobileReactNative.addRemoteConfigListener((result) => {
  console.log('자동 원격 구성 업데이트 결과:', result);
});

동적 구성 능동 동기화

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

/**
 * 원격 구성을 능동적으로 업데이트합니다. 호출 빈도는 FTMobileConfig.remoteConfigMiniUpdateInterval의 영향을 받습니다.
 */
updateRemoteConfig(): Promise<FTRemoteConfigResult>;

/**
 * 원격 구성을 능동적으로 업데이트하며, 전역 최소 업데이트 간격 구성을 무시할 수 있습니다.
 * 마지막 업데이트로부터 지정된 간격보다 짧은 시간이 경과한 경우 업데이트 작업이 수행되지 않습니다.
 * @param interval 최소 업데이트 간격 (단위: 초)
 * @param rules 원격 구성 재정의 규칙
 */
updateRemoteConfigWithMiniUpdateInterval(
  interval: number,
  rules?: Array<FTRemoteConfigOverrideRule>,
): Promise<FTRemoteConfigResult>;

사용 예시

// 기본 능동 동기화 업데이트 (전역 최소 간격 제한 적용)
FTMobileReactNative.updateRemoteConfig();

const rule: FTRemoteConfigOverrideRule = {
  id: 'test_rule',
  match: {
    customKeys: {
      custom_key: 'custom_value',
      vip_user_id: {
        contains: 'test_user_1001',
      },
    },
  },
  override: {
    rumSampleRate: 1,
    traceSampleRate: 1,
    logSampleRate: 1,
    logLevelFilters: ['info', 'warn'],
  },
};

const result = await FTMobileReactNative.updateRemoteConfigWithMiniUpdateInterval(0, [rule]);
console.log('updateRemoteConfigWithMiniUpdateInterval 결과 ', result);

FTMobileReactNative.updateRemoteConfigWithMiniUpdateInterval(0, null);

customKeys의 값이 일반 값인 경우 완전 일치로 처리되며, 값이 { contains: value }인 경우 포함 일치로 처리됩니다.

contains는 주로 고정 키로 특정 사용자를 매칭하는 시나리오(예: vip_user_id)에 적합합니다. 서버 측에서 해당 필드가 다음 형식 중 하나로 반환되는 경우 모두 매칭될 수 있습니다:

  • 단일 문자열, 예: "test_user_1001"
  • JSON 배열, 예: ["test_user_1001", "test_user_1002"]
  • JSON 문자열 배열, 예: "[\"test_user_1001\",\"test_user_1002\"]"

동적 업데이트 전송 주소

FTMobileReactNative를 사용하여 SDK 런타임 중에 데이터 전송 주소를 동적으로 전환합니다. 설정이 성공하면 이후 데이터는 새 주소로 계속 업로드됩니다.

React Native SDK >= 0.4.1에서 지원합니다. setDatakitURLsetDatawayURL 중 하나를 선택하여 사용합니다. setDatawayURL 사용 시 새로운 clientToken을 함께 전달해야 합니다.

사용 시나리오 설명

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

이후 FTMobileReactNative.setDatakitURL(...) 또는 FTMobileReactNative.setDatawayURL(..., ...)를 호출하여 전송 주소를 동적으로 설정하면 SDK가 로컬 캐시를 소비하고 데이터 전송을 시작합니다.

전송 주소가 설정되지 않은 기간 동안 수집된 데이터는 여전히 로컬 캐시 상한 제한의 영향을 받습니다. 캐시 상한은 주로 다음 구성의 영향을 받습니다:

  • FTLogConfig.logCacheLimitCount
  • FTRUMConfig.rumCacheLimitCount
  • FTMobileConfig.enableLimitWithDbSize에 해당하는 데이터베이스 캐시 상한

캐시가 상한에 도달하면 초과된 데이터는 폐기될 수 있으므로, 이 모드에서는 가능한 한 빨리 전송 주소를 설정하거나 비즈니스 시나리오에 맞게 캐시 제한을 적절히 설정하는 것이 좋습니다.

/**
 * Datakit 전송 주소를 동적으로 설정합니다. 설정 성공 후 SDK는 새로운 Datakit 주소로 데이터를 계속 업로드합니다.
 */
setDatakitURL(datakitUrl: string): Promise<void>;

/**
 * Dataway 전송 주소와 clientToken을 동적으로 설정합니다. 설정 성공 후 SDK는 새로운 Dataway 주소로 데이터를 계속 업로드합니다.
 */
setDatawayURL(datawayUrl: string, clientToken: string): Promise<void>;

사용 예시

await FTMobileReactNative.setDatakitURL('http://10.0.0.1:9529');

await FTMobileReactNative.setDatawayURL(
  'https://open.dataway.url',
  'your-client-token',
);
메서드명 타입 필수 의미
setDatakitURL string Datakit 전송 주소를 동적으로 설정합니다. 설정 성공 후 SDK는 새로운 Datakit 주소로 데이터를 계속 업로드합니다.
setDatawayURL string, string Dataway 전송 주소와 clientToken을 동적으로 설정합니다. 설정 성공 후 SDK는 새로운 Dataway 주소로 데이터를 계속 업로드합니다.

문서 평가

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