핵심 요약
Expo SDK 53 + EAS Update로 OTA 배포 자동화. 사내 RN 앱 1개(MAU 18만) 4개월 운영, 매주 평균 12회 OTA. 크리티컬 버그 발견 시 평균 11분에 rollback. 사용자 영향(crash 증가) 평균 0.3%.
1. branch 정책 — 3단계
- canary (internal) — 사내 직원 + QA, 매 PR merge 시 자동 push
- beta (5% 사용자) — 24시간 모니터링 후 prod로 promote
- prod — 전체 사용자
2. CI 통합 — GitHub Actions
- name: EAS Update
run: |
eas update --branch beta \
--message "${{ github.event.head_commit.message }}" \
--non-interactive
env:
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
merge to main 후 자동 beta로. 24시간 후 일정 통과하면 cron job이 prod로 promote.
3. rollback 안전망
Sentry crash rate가 5분간 0.5%p 상승 시 자동 alert. 운영 담당이 EAS dashboard에서 1클릭 rollback. EAS는 이전 update를 그대로 다시 push.
4. 데이터 — 매주 OTA 12회
| 지표 | 값 |
|---|---|
| 평균 OTA 빈도 | 12회/주 |
| 배포 → 95% 적용 | 14분 |
| rollback 평균 시간 | 11분 |
| crash rate 영향(평균) | +0.3%p |
5. 함정
- Native code 변경은 OTA 불가 — App Store/Play Store 재제출 필수, runtime version 명확히
- OTA 큐 — 동시 여러 사용자 다운로드 시 EAS bandwidth 한도(Free 1GB/월) 도달, Pro 권장
- Asset 누락 — 새 이미지/폰트 추가 후 OTA만 보내면 일부 디바이스 깨짐, prebuild 필수
- App Store 정책 — Apple은 큰 기능 변경 OTA를 제한, 7-day rolling window 권장

댓글 0