PWA는 한 마디로, 웹 기술 만으로 앱과 같은 기능을 갖춘 웹앱이다.
비교
모바일웹 :
- PC 웹 페이지를 모바일에 맞게 줄인 것
- 웹 개발
- 풀 브라우저 방식 (화면 일부분이 변경될 때 화면 전체 내용을 서버에서 새로 받아옴)
- 웹 브라우저에서 검색 혹은 URL로 접근해야 하는 불편함
네이티브 앱 :
- 우리가 일반적으로 알고있는 앱
- 앱 개발 : 운영체제에 따른 각 네이티브 언어(개발언어)로 개발
- 네이티브 API 사용 가능
- 높은 퍼포먼스
- 업데이트할 때마다 플레이스토어~앱스토어를 통해야 함 (+심사과정)
웹앱 :
- 모바일에 최적화된 웹
- 웹 개발
- 구동 방식이 마치 네이티브와 같음
- SPA (최초 한 번 페이지 전체를 받아온 후, 화면 일부분이 변경될 때 해당 부분만 데이터를 바인딩)
- 웹 브라우저에서 검색 혹은 URL로 접근해야 하는 불편함
하이브리드 앱 :
- 웹 앱과 네이티브 앱의 기능을 결합하여 개발된 앱 (ex. 네이버 앱)
- 외부는 앱개발 / 내부는 웹개발
- 네이티브 API와 브라우저 API를 이용해 다양한 개발 가능
- 업데이트할 때마다 플레이스토어~앱스토어를 통해야 함 (+심사과정)
프로그레시브 웹앱 (PWA):
- 웹 앱을 하이브리드 앱처럼 최대한 비슷하게 만들어줌
- 웹 개발
- 화면은 하이브리드 같음
- 네이티브 API와 브라우저 API를 이용해 다양한 개발 가능
- 웹 브라우저에서 검색 혹은 URL 또는 플레이스토어~앱스토어 둘다 가능 (단 ios 제외)
- 관련하여 아래 자세한 내용 참고
장점
웹 장점
- 검색 엔진을 통해 검색이 가능(SEO)하며 이를 통한 사용자 유입
앱 장점
- 데스크톱이나 모바일 환경에 설치가 가능
- 오프라인, 저속도 환경에서도 동작
- Service Worker로 인해 앱 동작에 필요한 asset과 일부 API call들에 대한 캐싱 가능
- 캐싱된 리소스로 오프라인, 저속도 환경에서도 캐싱된 리소스로 안정적인 앱 사용 지원
- 백그라운드 동기화
- 푸시 알림
- 네이티브 앱, 하이브리드(크로스 플랫폼 포함)의 장점
- 사용자 위치, 카메라, 진동, AR, VR 등 네이티브 앱과 같은 사용성
- HTTPS 프로토콜을 통해 제공
단점
1. 일반 사용자에게 브라우저의 '홈 화면 추가' 기능을 통한 앱 설치를 유도해야 함.
- PWA 개념에 익숙하지 않은 사용자에게 초기 접근성이 낮을 수 있다는 우려가 있음
- 보통은 앱스토어에서 앱을 설치하는 것으로 알고 있기 때문
- 해결방안 )
- 구글, Microsoft는 스토어에 PWA가 가능함
- 남은 문제 )
- Apple은 아직 이와 관련된 확실한 지원이 언급되지 않고 있음
2. 네이티브 앱이 가져다 주는 각 운영 체제 고유의 UI, 사용자 경험 제공에는 한계가 있음
3. 게임 등 고사양 앱 개발은 힘듬
- 2~3 문제가 중요한 경우에는 네이티브 앱 개발을 고려해봄직함.
다시 말해 PWA로 현재 관건은 다시 말해 아래와 같다.
PWA로 개발해도 애플 앱스토어에 배포가 가능한가?
PWABuilder 공식 문서 속 참조
- PWABuilder : PWA 배포 절차를 간소화하는, Microsoft에서 개발한 오픈 소스 도구
- 공식 문서를 들어가보면 아래와 같이 PWA 앱의 애플 앱 스토어 배포 여부를 보장할 수 없다는 문구가 들어 있다.

참고
https://docs.pwabuilder.com/#/builder/app-store
https://www.sepoasoft.co.kr/?p=7411
앱 개발 “PWA(Progressive Web Application)” 정의/요소/장단점/사례/트위터 예시 - Sepoasoft
모바일 앱의 종류와 PWA(Progressive Web Application) by 강주임 2022.10 안녕하세요, 전자구매 / 경비출장관리 / 전자계약 / 전자인장 솔루션 구축 및 클라우드 서비스 #세포아소프트 입니다:) 지난번 기술
www.sepoasoft.co.kr
https://okky.kr/questions/635661
https://okky.kr/questions/1439215
728x90
'📌 대외 활동 > 2311~ Look : AI 기록 서비스' 카테고리의 다른 글
[PWA] FCM으로 알림 기능 구현하기 (3) : 포그라운드 (0) | 2024.01.18 |
---|---|
[PWA] FCM으로 알람 기능 구현하기 (2) : 백그라운드 (0) | 2024.01.15 |
[PWA] FCM으로 알림 기능 구현하기 (1) : Notification API (0) | 2024.01.14 |
[Nuxt3 / PWA] service worker로 앱 오프라인 캐싱하기 (0) | 2023.12.04 |
react와 vue 비교 (0) | 2023.11.24 |