[코드스테이츠 PMB 13기] | PM이 알아야 할 앱의 4가지 형태
금일 몰입 학습을 통해 어플리케이션의 종류에는 어떤 것들이 있는지, 앱 개발 형식을 정해야하는 이유는 무엇이고 어떤 점을 고려해야 하는지 배웠다. 이를 기반으로 각 앱 형태별 특징과 장단점을 정리해보고, 내가 PM이라면 어떤 형태의 앱을 선정할 것인지 정리해본다.
정의
모바일 기기에 설치된 웹 브라우저에서 작동할 수 있도록 만든 인터넷 웹사이트
브라우저(Safari, Chrome 등)에 URL을 입력해 접속
장점
사용자가 앱을 따로 설치할 필요가 없어 접근성이 좋다.
반응형 웹으로 제작할 경우, PC/태블릿/모바일 등 모든 기기와 브라우저에서 사용 가능하다.
Android/iOS 동시 개발이 가능해 개발 시간, 비용이 가장 적다.
단점
별도의 URL을 통해 접속해야해 실행이 까다롭다.
페이지를 호출할 때마다 서버에서 정보를 다운로드해야 하는 '풀 브라우징' 방식 -> 로딩 속도가 느리다.
기기 접근이 불가능해 OS에서 제공하는 기능 활용이 어렵다.
모바일 특성 상 이동 시 서버 접속 장애가 발생할 수 있어 불안정하다.
정의
모바일 기기에서 인터넷 웹사이트에 접속하기 위해 사용하는 모바일 애플리케이션
모바일 웹보다 모바일에 최적화되어 네이티브 앱 화된 것
장점
유지, 보수 및 업데이트가 용이함 -> 별도의 심사나 배포 과정을 거치지 않고, 서버에서 사이트 내용을 변경하면 사용자 모바일 기기에서도 즉시 변경된 내용을 확인할 수 있다.
모든 기기와 브라우저에서 접근이 가능하다.
개발 기간 및 비용이 상대적으로 적게 든다.
단점
모바일 웹보다 개선되기는 했지만, 네이티브 앱, 하이브리드 앱에 비해 성능이 떨어진다.
플랫폼 API를 사용할 수 없고 브라우저 API만 사용 가능해 OS에서 제공하는 기능 활용이 어렵다.
정의
웹 앱과 네이티브 앱의 기능을 결합한 혼합형 모바일 어플리케이션
보통 외부는 네이티브 앱 방식으로, 내부는 인터넷 웹 방식으로 개발한다.
장점
네이티브 앱보다 개발 비용과 시간이 절약된다.
서버의 HTML, CSS, Javascript만 수정하면 따로 심사 받거나 설치할 필요가 없어 유지 보수도 쉬운 편이다.
하나의 코드 베이스 : 하나의 앱을 빌드하고 약간 조정하여 두 플랫폼에서 모두 작동할 수 있다.
단점
네트워크에 종속돼 네트워크 환경과 웹 사이트 용량에 따라 속도가 느려질 수 있다.
네이티브 앱과 비교하면 사용자 편리성이나 디자인이 취약하고 성능이 떨어진다.
크로스 플랫폼 개발과 UX/UI 구성에 어려움이 있다.
정의
모바일 기기에 최적화된 네이티브 언어(개발언어)로 개발된 앱
Ex) iOS : Objective-C, Swift(스위프트) / Android : Kotlin, Java
장점
특정 플랫폼에 최적화된 언어로 개발되기 때문에 카메라, GPS 등 그 플랫폼을 이용한 디바이스의 최신 기능을 활용할 수 있다.
모바일 운영체제에 있는 커널과 UI 프레임 워크가 제공하는 서비스를 직접 호출해 실행하므로 실행속도가 빠르고 안정적이다.
네트워크를 최소한으로 이용하도록 코딩한다면, 인터넷이 느린 환경에서도 빠르게 동작한다.
고성능의 그래픽 처리가 가능하며, 모바일 기기에 최적화되어 있다.
단점
둘 이상의 코드 베이스 : 네이티브 앱은 Android와 IOS의 호환이 되지 않기 때문에 별도로 제작해야 한다.
배포 시 각 앱 스토어의 승인절차를 거쳐야 하므로 배포 속도가 느리다.
다른 방식들보다 높은 수준의 기술력이 요구되며, 개발 기간이 오래 걸리며, 개발 비용도 다른 앱들에 비해 많이 든다.
모바일 게임도 점점 고사양과 높은 그래픽 수준을 요구하기 때문에, 만약 내가 모바일 게임 회사의 PM이라면 네이티브 앱을 선택할 것 같다. 네이티브 앱이 모바일 기기에 최적화돼 있을 뿐 더러 고성능 그래픽 처리가 가능하고 마이크 같은 네이티브 기능을 쉽게 활용할 수 있기 때문이다. 때문에 안드로이드와 iOS 버전을 각각 빌드하는 데 시간이 더 소요되고 비용이 들더라도, 충분한 퀄리티와 퍼포먼스를 구현하는 게임을 출시하는 데 중점을 둬야 한다고 생각한다.
*최근엔 Java나 Swift/Objective C 를 통한 네이티브 앱 개발 외에, 크로스 플랫폼 프레임 워크(Cross-platform frameworks)의 인기가 증가하고 있다고 한다. 크로스 플랫폼은 둘 이상의 플랫폼에서 실행 가능한 소프트웨어라는 것을 뜻하는 용어로, 예를 들어 네이티브 코드가 아닌 코드로 작성을 한 후, 각각의 운영체제가 이해할 수 있는 코드로 변환해 실행하는 것이다. 대표적으로 구글의 Flutter, 리액트의 React Native가 있으며, 단일한 코드 베이스로 개발 시간을 단축할 수 있고 유지 보수가 쉬우며, 네이티브 앱과 성능 차이가 크지 않아 각광받고 있다고 한다.
11번가나 쿠팡 등 이커머스 플랫폼의 PM이라면 하이브리드 앱 선택을 고려할 것이다. 웹과 앱 모두 서비스해야하기 때문에 이를 한 번에 구축할 수 있는 이점이 있고, 컨텐츠가 지속적으로 업데이트되기 때문에 웹 기반의 UI를 한 번만 수정하면 동시에 두 곳에 적용이 되는 하이브리드 앱이 유리하다고 봤다. 다만 웹 브라우저를 실행하여 콘텐츠를 제공하기 때문에 네트워크 환경에 따라 속도가 느릴 수 있고, 네이티브 앱보다 디자인이나 성능에서 떨어지기 때문에, 서비스 특성과 함께 가용한 시간과 개발 리소스, 타겟 고객 등을 총체적으로 고려해 적합한 솔루션을 선택해야할 것이다.
http://wiki.hash.kr/index.php/%EB%84%A4%EC%9D%B4%ED%8B%B0%EB%B8%8C%EC%95%B1
https://www.hanl.tech/blog/native-vs-hybrid-vs-pwa/
https://lovefor-you.tistory.com/405
*코드스테이츠 PMB 과정을 수강하며 과제로 작성한 내용입니다. 사실과 다르거나 부족한 부분이 있을 수 있으니 자유롭게 피드백주시면 감사하겠습니다!