본문 바로가기

Mobile/Progressive Web App

왜 PWA인가? | 네이티브, 크로스플랫폼, 하이브리드, 모바일웹과의 비교

PWA가 모든걸 만족하지는 않지만, 각종 장점들을 모두 가져온다

PWA(프로그레시브 웹앱)이 타 모바일앱 방식과 어떤 점이 다른지를 정리해보았다.

 

우선, 모바일앱 개발이란 그 종류가 무척 다양하다. 가장 초기에 등장한 것이 네이티브개발이다. 안드로이드면 안드로이드, IOS면 IOS에 맞게, 해당 OS에만 맞는 코드를 작성해서 앱을 개발한다. 그런만큼 성능이 뛰어나지만, 동시에 개발에 있어서 편의성이 떨어진다.

 

OS마다 개발하는 것이 귀찮기 때문에 크로스플랫폼이라는 방식이 등장했다. IOS와 안드로이드 앱을 동시에 만들 수 있는 각종 프레임워크가 존재한다. React Native, Flutter같은 것이 대표적이다. 헌데, 모든 기능을 크로스플랫폼으로 만들수도 없고, 아무래도 네이티브보다는 오류가 존재한다.

 

여기서 이제 좀 더 개발이 편리한 것이 하이브리드앱이다. 앱이라는 껍데기 안에, 알맹이는 웹페이지로 구현하는 것이다. 그러면 생김새는 그럴듯한 앱이 탄생한다. 문제는 아무래도 알맹이가 웹페이지인 만큼 성능이 아쉽다는 것에 있다.

 

아무래도 편의성만 생각한다면 모바일 웹페이지(웹앱)이 가장 좋을 것이다. 브라우저만 있다면, 바로 볼 수 있기 때문이다. 하지만 모바일에 설치되는 것이 아닌, 브라우저를 통해 구동되는 것이기 때문에 성능면에서 아쉬움이 많다.

 

PWA는 성능은 네이티브앱보다는 떨어지고, 개발의 편의성도 단순히 모바일웹페이지를 만드는 것보다는 떨어지지만, 두 가지를 적절히 섞어놓은 방식이다. 웹페이지를 만든 소스코드를 그대로 가지고 와 모바일 앱을 만들 수 있다. 즉 생김새만 JavaScript, React였던, React Native와 달리, 정말로 JavaScript로 앱을 만든다. 만약 웹 상에서 React로 화면을 구성했다면, 그 화면 그대로 사용하면 된다. 명령어 한 줄 치면 끝이다. 동시에 모바일앱에 설치되는 형식이기 때문에 모바일 자체의 기능을 사용할 수 있다. 모바일의 저장소와 카메라같은 기능, 그리고 알람기능까지 네이티브앱처럼 구현할 수 있다. 물론 이를 위해서는 ServiceWorker.js와 Manifest 파일을 살짝 손보면 된다. 

 

가장 사기적인 점은, 앱스토어 상위노출에 대한 고민이 적은 부분에 있다고 생각한다. 마케팅적인 측면에서도, 사용자 편의성 측면에서도 이 부분에 강점이 있다.

 

PWA를 안 쓸이유가 없다고 생각한다. 특히 스타트업, 소규모 비즈니스에서 프로덕트 빌딩을 하는 경우에는, 과도한 개발비용과 마케팅비용을 줄이면서 프로덕트를 디벨롭할 수 있다는 점이 강점이라 생각한다.