PWA는 오프라인에서도 작동할 수 있도록 설계된 웹 앱으로, 원활한 사용자 경험을 제공하기 위해 설계된 앱입니다.
PWA(Progressive Web App)는 웹 기술을 사용하여 만든 애플리케이션으로, 전통적인 웹사이트와 네이티브 앱의 기능을 결합한 형태입니다. 사용자에게 네이티브 앱과 유사한 경험을 제공하면서도 웹 브라우저를 통해 접근이 가능하고, 플랫폼 독립적인 특성을 가집니다.
- 응답성: 다양한 디바이스(데스크톱, 모바일, 태블릿)에 맞춰 유연하게 적응합니다.
- 연결 독립성: Service Workers를 사용하여 오프라인에서도 작동하거나, 네트워크 연결이 불안정할 때도 사용자에게 콘텐츠를 제공할 수 있습니다.
- 앱과 같은 느낌: PWA는 "앱 셸 모델"을 사용하여 애플리케이션과 유사한 사용자 인터페이스와 상호작용을 제공합니다.
- 실시간 업데이트: 웹사이트와 마찬가지로 서버에 업데이트를 배포하면 사용자가 다음에 앱을 열 때 자동으로 최신 버전을 사용하게 됩니다.
- 안전성: HTTPS를 통해 제공되기 때문에 데이터가 암호화되고, 보안성이 강화됩니다.
- 검색 가능성: 웹 앱이므로 검색 엔진을 통해 발견될 수 있어서 앱 스토어를 통하지 않고도 접근이 용이합니다.
- 설치성: 사용자는 앱 스토어를 거치지 않고도 PWA를 자신의 홈 화면에 추가할 수 있어, 간편하게 액세스할 수 있습니다.
- 푸시 알림: 네이티브 앱처럼 푸시 알림을 사용하여 사용자의 관심을 끌고, 중요한 업데이트나 정보를 전달할 수 있습니다.
- Service Workers: 백그라운드에서 실행되는 스크립트로, 네트워크 요청을 가로채 캐시 관리, 푸시 알림 등의 기능을 수행합니다.
- Manifest File: 웹 애플리케이션의 이름, 아이콘, 시작 URL 등과 같은 정보를 담은 JSON 파일로, 앱을 설치할 때 사용됩니다.
- Application Shell Architecture: 사용자 인터페이스의 기본 구조를 즉시 로드하고 콘텐츠는 필요에 따라 동적으로 로드하여 빠른 초기 로딩과 캐싱을 가능하게 합니다.
PWA는 모바일 우선의 웹 전략에 적합하며, 개발자는 하나의 코드 베이스로 여러 플랫폼에서 앱을 배포할 수 있어 개발 및 유지 관리 비용을 절감할 수 있습니다.