PWA의 오프라인 계약은 설치, 캐시, fetch, fallback으로 구성된다
앱처럼 보이는 것보다 네트워크가 끊겼을 때 무엇을 보여 줄지와 오래된 캐시를 어떻게 정리할지가 더 중요하다.
| 계약 | 하는 일 | 좋은 기준 | 위험 신호 |
|---|---|---|---|
| Install info | manifest와 HTTPS 조건 제공 | 홈 화면 이름과 아이콘이 명확 | 설치가 목적처럼 과장됨 |
| Cache policy | 정적 자산과 API 캐시 분리 | 자원별 전략이 문서화됨 | 모든 요청을 같은 캐시로 처리 |
| Fetch handling | 네트워크 우선/캐시 우선 선택 | 최신성과 속도 균형 | 오래된 데이터를 새 데이터처럼 표시 |
| Fallback | 오프라인 페이지와 저장된 데이터 제공 | 빈 오류 대신 의미 있는 상태 | 첫 방문 오프라인 경로 없음 |
| Cleanup | 오래된 캐시와 SW 정리 | 버전 충돌이 없음 | 새 배포 후 구버전 파일 참조 |
PWA 검증은 설치 버튼보다 업데이트, 오프라인, 캐시 정리 흐름이 실제로 동작하는지를 본다.