PWA (Progressive Web APP)
웹 앱과 네이티브 앱은 각자의 장점을 가진다. 웹 앱은 사용자에게 노출의 측면에서 접근성이 좋다는 장점을 가진다. 반면 네이티브 앱은 해당 OS에 최적화된 부드러운 사용자 경험을 제공해줄 수 있다. 또한 설치된 이후에는 오프라인에서도 동작할 수 있다. 2016년 구글이 새롭게 소개한 기술인 PWA는 두 가지 장점이 동시에 결합된 웹 앱을 구현할 수 있게 해 준다. 보다 정확히 표현하자면 PWA는 새로운 기술이라기 보다는 기존 시스템들의 장점이 결합된 새로운 형태의 애플리케이션을 구축하는 하나의 철학이라고 표현할 수 있다.
PWA의 조건 및 기능
어떠한 웹 앱이 PWA인지 판단하는 데 절대적인 지표는 존재하지 않는다. 그러나 다음과 같은 핵심적인 조건들이 충족되었을 때 우리는 해당 웹 애플리케이션을 PWA라고 간주한다. (괄호친 내용은 해당 특성이 웹 애플리케이션 혹은 네이티브 애플리케이션의 원래 장점임을 의미)
(1) 발견 가능 : 검색 엔진을 통해 찾을 수 있음 (웹)
(2) 설치 가능 : 홈 화면의 아이콘을 통해 사용 가능 (네이티브)
(3) 연결 가능 : 간단하게 URL 통해 공유 가능 (웹)
(4) 네트워크 독립적 : 오프라인에서 네트워크 상태가 불안해도 사용 가능 (네이티브)
(5) 재참여 가능 : 새 컨텐츠가 이용 가능할 때마다 푸쉬 알람 전송 가능 (네이티브)
(6) 반응형 : 모든 기기 및 브라우저 환경에서 사용 가능 (네이티브)
(7) 안전 : 앱과 사용자 사이의 제3자로부터 민감한 데이터를 보호할 수 있어야 한다.
PWA의 장점
(1) Service Workers API를 통해 캐싱을 수행함으로써 설치 후 로딩으로 인한 시간과 데이터를 절약한다.
(2) 업데이트가 있을 때 변경된 부분만을 갱신할 수 있다. (네이티브 앱의 경우 업데이트가 있을 때마다 어플을 통째로 재설치해야됨)
(3) 홈 화면의 아이콘, 전체화면 실행 등 플랫폼에 최적화된 앱을 제공한다.
(4) 알림 및 푸쉬 메시지를 통해 사용자와의 인터렉션을 상승시킨다.
'잡다한 교훈' 카테고리의 다른 글
[Network] 프론트엔드에서 리소스 요청 부담 줄이기 (0) | 2022.04.20 |
---|---|
[Network] 웹 캐시로 트래픽 부담 줄이기 (0) | 2022.04.20 |
[React] Warning: unstable_flushDiscreteUpdates: Cannot flush updates when React is already rendering. (React Video Problems) (0) | 2022.04.17 |
[@testing-library] TypeError : (0 , _reactTestRenderer.act) is not a function (0) | 2022.04.15 |
[Heroku] Heroku 배포 이후 request.session이 제대로 저장되지 않을 때 (0) | 2022.04.08 |