AGENT SKILL
10-remote-data-manager
MobilePackage RemoteDataManager를 통해 VersionCheck(플랫폼 URL 기반)와 Server UTC 동기화(HTTP Date header)를 단일 경로로 제공할 때 사용한다.
适用职业数据分析师
- License 许可
- MIT
- 最近更新
- 2026-04-12
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- 10-remote-data-manager
- description
- MobilePackage RemoteDataManager를 통해 VersionCheck(플랫폼 URL 기반)와 Server UTC 동기화(HTTP Date header)를 단일 경로로 제공할 때 사용한다.
03 SKILL.md 正文
10-remote-data-manager
Status: ACTIVE AppliesTo: v10
RemoteDataManager는 LoginManager/MobileApplication에서 사용하는 버전 체크와 서버 UTC 동기화 기능의 단일 진입점이다.
1. Class
public sealed class RemoteDataManager : CompoSingleton<RemoteDataManager>
- namespace:
Devian - asmdef:
Devian.Samples.MobilePackage MobileApplication에서RequireComponent(typeof(RemoteDataManager))로 보장한다.
2. Public API
public Task<CommonResult<VersionCheckResult>> InitializeAsync(VersionNumber clientVersion, CancellationToken ct = default)
public Task<CommonResult<VersionCheckResult>> VersionCheckAsync(VersionNumber clientVersion, CancellationToken ct = default)
public Task<CommonResult> SyncServerUtcAsync(CancellationToken ct = default)
public static long ServerNowUtcMs { get; }
public VersionNumber CurrentVersionNumber { get; }
public VersionNumber MinVersionNumber { get; }
InitializeAsync: 로그인 진입 초기에 호출되는 단일 초기화 API. 버전 체크와 서버 UTC 동기화를 순서대로 수행한다.VersionCheckAsync:MobileApplication.VersionCheckAOS/VersionCheckIOSURL에서 JSON을 받아VersionCheckConfig(15-version-check-config)로 파싱 후 버전 판정한다.SyncServerUtcAsync:HEAD https://worldtimeapi.org응답의Date헤더를 파싱해 서버 UTC 스냅샷을 갱신한다.ServerNowUtcMs: 추정 서버 UTC(ms)를 반환하는 static property. 동기화 스냅샷 + 경과 시간으로 계산하며, 인스턴스가 없으면 클라이언트 UTC fallback.CurrentVersionNumber/MinVersionNumber: 최근 버전 체크로 해석된 버전값을 보유한다.
3. Hard Rules
- VersionCheck URL owner는
MobileApplication이다. (VersionCheckAOS,VersionCheckIOS) LoginManager는 로그인 초기화 진입 시RemoteDataManager.InitializeAsync를 가장 먼저 호출한다.LoginManager는 버전 체크/서버 UTC fetch 실구현을 소유하지 않는다.- 서버 UTC는 Date header 기반으로 획득한다. (
worldtimeapiHEAD) - 실패 시 앱 흐름을 강제 중단하지 않고 fallback 경로를 허용한다.
- 과거 RemoteConfig storage/snapshot/save-codec/firebase-config 연동 같은 중복 기능은 유지하지 않는다.
- VersionCheck 실패 시 전용 에러 코드를 사용한다 (범용
COMMON_SERVER/COMMON_NETWORK사용 금지):VERSION_CHECK_URL_NOT_CONFIGURED— 플랫폼 URL 미설정VERSION_CHECK_NETWORK_FAILED— 네트워크 요청 실패VERSION_CHECK_RESPONSE_EMPTY— 응답 본문 비어있음VERSION_CHECK_PARSE_FAILED— JSON 파싱 실패
4. Implementation Location (3-path mirror)
- UPM (정본):
framework-cs/upm/com.devian.foundation/Samples~/MobilePackage/Runtime/RemoteData/RemoteDataManager.cs - Packages (sync):
framework-cs/apps/UnityExample/Packages/com.devian.foundation/Samples~/MobilePackage/Runtime/RemoteData/RemoteDataManager.cs - Assets/Samples (import):
framework-cs/apps/UnityExample/Assets/Samples/Devian Samples/{version}/MobilePackage/Runtime/RemoteData/RemoteDataManager.cs