Skip to content

TypeScript SDK 0.4.0

Ilhwan Seo edited this page Aug 29, 2026 · 2 revisions

TypeScript SDK 0.4.0

현재 권장 버전입니다.

  • package: @seorilabs/platform-sdk@0.4.0
  • tag: sdk-ts-v0.4.0
  • tarball: 통합 릴리스 v0.6.7의 seorilabs-platform-sdk-0.4.0.tgz — sha256 8d7151f6ec7ff0c0fe8c9fe6fee2e6aa5a1158bd394dc03cc09a4e40f5a6abd7
  • 기준 commit: 64abc0f580be08b2fcbd75da1b484fc748683711

주요 변경

0.3.0의 인증, 이벤트, IAP, Remote Config, Ads, Content, Identity API를 유지하면서 선택적 RPI Presence를 추가한 additive release입니다.

새 공개 API:

  • PlatformOptions.presenceEnabled?: boolean
  • PlatformOptions.presenceContext?: PresenceContext | (() => PresenceContext)
  • platform.presence.start()
  • platform.presence.stop()
  • platform.presence.resume()
  • Presence, PresenceContext, PresencePlatform export

안전한 초기 통합

const platform = createPlatform({
  baseUrl: PLATFORM_API_URL,
  ingestBaseUrl: PLATFORM_INGEST_URL,
  appId: "my-app",
  eventContext: {
    platform: "android",
    appVersion: "1.2.3",
  },
  presenceEnabled: false,
});

platform.start();

presenceContext를 생략하면 eventContext의 platform, appVersion을 사용합니다. platform이 없으면 heartbeat를 보내지 않습니다.

활성화

아래 조건을 모두 만족한 앱만 presenceEnabled: true로 바꿉니다.

  1. SDK 0.4.0 설치와 기존 기능 회귀 검증 완료
  2. Platform app registry 등록 완료
  3. 서버의 features.presence=true 적용 및 readback 완료
  4. canary 범위와 관찰 담당자 확정

SDK flag와 서버 feature가 모두 켜져야 Edge heartbeat가 동작합니다.

장애 내구성

  • start()는 즉시 반환하며 첫 네트워크 요청을 기다리지 않습니다.
  • token 요청은 일반 재시도 없이 최대 5초, Edge heartbeat는 별도 최대 2초입니다.
  • heartbeat 실패를 호출자에게 throw하지 않습니다.
  • 같은 heartbeat를 재시도하거나 outbox/local queue에 보존하지 않습니다.
  • 실패 시 jitter가 있는 backoff를 적용하며 상한은 5분입니다.
  • 서버에서 비활성화한 앱은 Edge 요청 없이 5분 뒤 다시 bootstrap합니다.
  • Web hidden 상태에서는 timer를 멈추고 visible 복귀 시 resume()합니다.

데이터 범위

heartbeat에는 익명 session ID, 증가 sequence, platform, 선택적 appVersion만 포함합니다. Firebase UID, 광고 ID, 이메일과 원시 사용자 식별자를 보내지 않습니다.

0.3.0에서 이동

pnpm add https://github.com/seorilabs/platform/releases/download/v0.6.7/seorilabs-platform-sdk-0.4.0.tgz
# 또는 GitHub Packages
pnpm add @seorilabs/platform-sdk@0.4.0

먼저 presenceEnabled: false를 명시하고 기존 test/build를 통과시킵니다. 옵션을 생략해도 기본값은 비활성이지만, 도입 상태를 코드 리뷰에서 식별할 수 있도록 명시를 권장합니다. canary 승인 전에는 true로 바꾸지 않습니다.

Clone this wiki locally