SDK 초기화¶
이 문서는 Flutter SDK 초기화 및 런타임 기능 관련 내용을 포함합니다.
기본 설정¶
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 로컬 환경 배포, Datakit 배포
await FTMobileFlutter.sdkConfig(
datakitUrl: datakitUrl,
);
// 공용 DataWay 사용
await FTMobileFlutter.sdkConfig(
datawayUrl: datawayUrl,
cliToken: cliToken,
);
}
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
| datakitUrl | String | 예 | 로컬 환경 배포(Datakit) 전송 URL 주소, 예시: http://10.0.0.1:9529, 포트 기본값은 9529, SDK를 설치한 디바이스에서 해당 주소에 접근 가능해야 합니다. 참고: datakitUrl과 datawayUrl 중 하나만 선택 |
| datawayUrl | String | 예 | 공용 DataWay 전송 URL 주소, [실제 사용자 모니터링(RUM)] 애플리케이션에서 획득, 예시: https://open.dataway.url, SDK를 설치한 디바이스에서 해당 주소에 접근 가능해야 합니다. 참고: datakitUrl과 datawayUrl 중 하나만 선택 |
| cliToken | String | 예 | 인증 토큰, datawayUrl과 함께 설정해야 함 |
| debug | bool | 아니요 | 로그 출력 허용 여부 설정, 기본값 false |
| env | String | 아니요 | 환경 설정, 기본값 prod,任意 문자, 단일 단어 사용 권장, 예: test |
| envType | enum EnvType | 아니요 | 환경 설정, 기본값 EnvType.prod。참고: env와 envType 중 하나만 설정하면 됨 |
| autoSync | bool | 아니요 | 데이터 수집 후 서버에 자동 동기화 여부, 기본값 true。false인 경우 FTMobileFlutter.flushSyncData()를 사용하여 데이터 동기화를 직접 관리 |
| syncPageSize | enum | 아니요 | 동기화 요청 항목 수 설정, SyncPageSize.mini 5개, SyncPageSize.medium 10개, SyncPageSize.large 50개, 기본값 SyncPageSize.medium |
| customSyncPageSize | number | 아니요 | 동기화 요청 항목 수 설정, 범위 [5, ). 요청 항목 수가 많을수록 데이터 동기화가 더 많은 컴퓨팅 리소스를 사용함을 의미 |
| syncSleepTime | number | 아니요 | 동기화 간격 시간 설정, 범위 [0,5000], 기본값은 설정되지 않음 |
| globalContext | object | 아니요 | 사용자 정의 태그 추가. 추가 규칙은 충돌 필드 설명 참조 |
| serviceName | String | 아니요 | 서비스명 |
| customHttpOverrides | HttpOverrides | 아니요 | 사용자 정의 HTTP Overrides. HTTP 자동 수집 활성화 시, 프로젝트에서 이미 HttpOverrides.global을 사용자 정의한 경우 이 매개변수를 통해 사용자 정의 구현을 전달할 수 있으며, SDK는 수집 체인에서 해당 구현을 재사용 |
| enableLimitWithDbSize | boolean | 아니요 | DB를 사용한 데이터 크기 제한 활성화, 기본값 100MB, 단위 Byte, 기본적으로 비활성화. 활성화 시 logCacheLimitCount 및 rumCacheLimitCount는 무효화됨. SDK 0.5.3-pre.2 이상 지원 |
| dbCacheLimit | number | 아니요 | DB 캐시 제한 크기, 범위 [30MB, ), 기본값 100MB, 단위 byte, SDK 0.5.3-pre.2 이상 지원 |
| dbCacheDiscard | string | 아니요 | 데이터베이스 데이터 폐기 규칙 설정. FTDBCacheDiscard.discard는 새 데이터 폐기(기본값), FTDBCacheDiscard.discardOldest는 오래된 데이터 폐기. SDK 0.5.3-pre.2 이상 지원 |
| enableLimitWithCacheSize | boolean | 아니요 | 캐시 크기를 사용한 데이터 크기 제한 활성화. Android는 캐시 총 크기 제한 사용; iOS는 DB 캐시 크기 제한에 매핑. 활성화 시 우선 cacheLimit 사용, 설정되지 않은 경우 dbCacheLimit 호환 사용 |
| cacheLimit | number | 아니요 | 캐시 제한 크기, 단위 byte. Android는 캐시 총 크기; iOS는 DB 캐시 제한 |
| cacheDiscard | enum FTCacheDiscard | 아니요 | 캐시 데이터 폐기 규칙 설정. Android는 캐시 폐기 전략 사용; iOS는 DB 데이터 폐기 규칙에 매핑. FTCacheDiscard.discard는 새 데이터 폐기(기본값), FTCacheDiscard.discardOldest는 오래된 데이터 폐기 |
| enableFileDataStore | boolean | 아니요 | Android: FileStore 파일 캐시 활성화 여부 |
| needTransformOldCache | boolean | 아니요 | Android: FileStore 활성화 시 이전 SQLite 캐시 데이터 마이그레이션 여부 |
| fileDataStoreShadow | boolean | 아니요 | Android: SQLite 읽기 경로 사용 시 FileStore에 동시 쓰기 여부 |
| compressIntakeRequests | boolean | 아니요 | 업로드 동기화 데이터에 대해 deflate 압축 수행, SDK 0.5.3-pre.2 이상 지원, 기본적으로 비활성화 |
| enableDataIntegerCompatible | boolean | 아니요 | Web 데이터와 공존해야 하는 경우 활성화 권장, Web 데이터 타입 저장 호환성 처리용. 0.5.4-pre.1 이상부터 기본적으로 활성화 |
| dataModifier | Map |
아니요 | 단일 필드 변경, 사용 예시는 데이터 수집 마스킹 참조 |
| lineDataModifier | Map |
아니요 | 단일 데이터 변경, 사용 예시는 데이터 수집 마스킹 참조 |
| enableDataFilter | boolean | 아니요 | SDK 측 DataKit 호환 필터 규칙 활성화 여부. 기본적으로 네이티브 SDK 설정을 따름 |
| dataFilters | Map |
아니요 | 로컬 DataKit 호환 필터 규칙, 데이터 타입별 그룹화, 현재 logging 및 rum 지원 |
| enableRemoteConfiguration | boolean | 아니요 | 원격 구성 활성화 여부. 활성화 시 SDK는 설정된 간격에 따라 원격 구성을 가져와 현재 런타임에 적용 |
| remoteConfigMiniUpdateInterval | number | 아니요 | 원격 구성 최소 업데이트 간격, enableRemoteConfiguration과 함께 사용해야 함 |
| remoteConfigOverrideRules | List | 아니요 | 원격 구성 로컬 재정의 규칙, 디버깅 또는 특정 시나리오에서 원격 구성 결과 재정의용 |
| iOSGroupIdentifiers | List |
아니요 | iOS App Group 식별자 목록, Extension과 메인 앱 간 캐시 데이터 공유용 |
사용자 정보 바인딩 및 해제¶
사용 방법¶
/// 사용자 바인딩
///
/// [userid] 사용자 ID
/// [userName] 사용자 이름
/// [userEmail] 사용자 이메일
/// [userExt] 확장 데이터
static Future<void> bindRUMUserData(String userId,
{String? userName, String? userEmail, Map<String, String>? ext})
/// 사용자 해제
static Future<void> unbindRUMUserData()
코드 예시¶
ext 추가 규칙은 충돌 필드 설명을 참조하세요.
런타임 기능¶
수동 데이터 동기화¶
autoSync: false인 경우에만 데이터 동기화를 직접 수행해야 합니다.