피드로 돌아가기
Dev.toFrontend
원문 읽기
OTA 기반 Web Layer 분리로 배포 주기 며칠에서 분 단위로 단축
Capacitor Live Updates: A Complete Guide to OTA Updates
AI 요약
Context
Native Binary 업데이트 시 앱 스토어 심사로 인한 수일간의 배포 지연 발생. Native 레이어와 Web 레이어가 결합된 구조로 인해 단순 UI 수정이나 JS 버그 수정에도 전체 바이너리 재배포가 강제되는 아키텍처적 한계 존재.
Technical Solution
- WebView 내 HTML, CSS, JS 등 정적 자산만 별도로 업데이트하는 Over-the-Air(OTA) 구조 설계
- Native Binary 변경 없는 Binary-compatible 변경 사항만 선별하여 웹 번들 형태로 배포하는 제약 조건 설정
- Background, Always Latest, Force Update, Instant 등 UX 요구사항에 따른 4가지 업데이트 전략 제공
- Native 버전과 매핑되는 Versioned Channels를 통한 바이너리 호환성 보장 및 자동 롤백 메커니즘 구현
nextBundleSet이벤트 리스너를 통한 비동기 다운로드 및 사용자 승인 기반의 런타임 Reload 로직 적용- GitHub Actions 기반의 Idempotent CLI 워크플로우를 통한 배포 자동화 파이프라인 구축
실천 포인트
- 업데이트 대상이 Native Code 또는 Plugin 변경을 포함하는지 Binary-compatibility 여부 우선 검증 - 사용자 경험 저해를 방지하기 위해 Background 다운로드 후 사용자 승인을 받는 'Always Latest' 전략 검토 - 버전 불일치로 인한 크래시 방지를 위해 Native Version과 1:1 매핑되는 배포 채널 설계 적용 - 치명적 결함 대응을 위한 Silent Push 기반의 Instant 업데이트 경로 확보