brunch

You can make anything
by writing

C.S.Lewis

by 해원 Jul 02. 2022

모바일 앱(App)의 4가지 유형

[코드스테이츠 PMB 11] Ep25. 모바일 앱 유형

우리가 흔히들 얘기하는 모바일 앱이란 무엇일까? 일상에서 매우 익숙하게 사용하는 용어지만 막상 설명하려니 난감하다. 모바일 앱은 스마트폰의 앱 스토어 또는 구글 플레이를 통해 다운로드하는 모바일 애플리케이션의 약칭이다.


즉, Mobile Application 스마트폰을 사용하면서 누구나 다운로드하여 서비스를 즐길 수 있도록 만든 응용프로그램이다.


스마트폰의 OS(운영체제)는 IOS(아이폰)과 AOS(안드로이드)로 구분되며 해당하는 OS에 적합하도록 프로그램 개발을 하게 된다. IOS는 Objective-언어로 개발되며 애플의 앱스토어에 1차로 개발을 하고 나서 심사를 받아야 한다. IOS에 비해서 안드로이드의 구글 플레이에서는 이보다는 더 수월하게 검수할 수 있으며, APK라는 확장 파일로 로컬 테스트를 진행한다는 장점이 있다. 안드로이드 앱은 자바(java)라고 하는 언어로 개발이 된다.


이와 같은 스마트폰 운영체제에 따른 구분 외에도 모바일 앱은 앱 개발 방법에 따라 그 종류가 다양한데, 이번 포스팅에서는 PM이라면 꼭 알아야 할 모바일 앱의 4가지 유형을 정리해 보고자 한다.






1. 모바일 앱의 4가지 유형


모바일 앱의 종류 / 출처: http://uxstory.co.kr/




네이티브 앱 (Native App)


모바일 운영체제의 공급자는 대표적으로 안드로이드의 구글, IOS의 애플이 있다. 구글과 애플은 해당 OS에서 구동되는 개발에 최적화된 프레임워크를 제공하는데 이 프레임워크를 사용하여 개발한 앱이 네이티브 앱이다.


네이티브 앱은 안드로이드 SDK를 이용해 Java, Kotlin로 개발하거나, iOS SDK*를 이용해 Object C, Swift 언어로 개발하며 기기의 고유 정보에 직접 접근하여 아이디어 구현이 거의 가능하다. 개발자는 앱 마켓에 등록 및 판매가 가능하고, 사용자는 다운로드하여 설치 및 사용할 수 있다.

*SDK는 Software Development Kit의 약자로 소프트웨어를 개발하는 도구


장점

 Android, iOS 기반의 API로 개발하여 속도가 빠르고 안정적이다.

성능이 웹앱, 하이브리드 앱에 비해 가장 높다.

동적인 효과를 구현하기에 좋다.


단점

 Android, iOS 개발자가 각각 두 개의 버전으로 개발해야 하므로 비용과 시간 소요가 크다.

앱 수정, 추가 개발을 했을 경우 앱스토어에 심사 요청 및 승인 후에 업데이트가 진행되어야 한다.

하이브리드 앱에 비해 용량이 크다.




모바일 웹 (Mobile Web)


모바일 웹은 PC에서 보는 웹을 모바일에서 볼 수 있도록 처리한 것으로 PC 화면을 모바일에 맞게 최적화시켜 놓았다고 볼 수 있다. 별도의 앱을 설치하지 않고 크롬, 네이버, 사파리 등에서 이용 가능하며, 웹사이트를 접속하듯 URL이나 브라우저 검색을 통해 접근 가능하다. 홈페이지(웹사이트)를 만드는 HTML, CSS,  Javascript, PHP 등의 일반적인 웹 기술로 개발된다.


이러한 웹의 종류로 반응형 웹과 적응형 웹이 있다. 반응형 웹웹 브라우저 크기에 따라 자동으로 웹의 구성 요소의 크기와 구조가 변경되는 형태의 웹 페이지이고, 적응형 웹접속 기기의 종류(PC, 스마트폰, 패드)를 인식해 자동으로 웹의 구성 요소의 크기와 구조가 변경되는 형태의 웹 페이지이다.


장점

 OS별로 별도의 플랫폼이 필요하지 않고, 표준 웹 언어(HTML, CSS, JS, PHP)로 만들어지기 때문에 네이티브, 하이브리드 앱에 비해 적은 리소스(비용, 시간)가 소요된다.

반응형 웹으로 제작 시 PC, 태블릿, 모바일 모두 대응 가능하다.

사용자가 앱을 설치할 필요가 없어 수정 사항이 발생해도 업데이트할 필요가 없다.


단점

검색엔진이나 URL을 통해 접속해야 하기 때문에 네이티브 앱, 하이브리드 앱보다 실행이 까다롭다.

스마트폰의 기능(카메라, 마이크, 푸시 알림 등)을 사용할 수 없거나 제한된 기능만을 사용할 수 있다.

서버에서 모든 데이터를 가져오는 '풀브라우징' 방식이어서 로딩 속도가 느리다.




모바일 웹앱 (Mobile Web App)


모바일 웹앱은 모바일 웹보다는 더 모바일에 최적화되어 네이티브 액화된 형태이다. 즉, 모바일 웹과 네이티브 앱을 결합한 형태로 모바일 웹의 특징을 가지면서 네이티브 앱의 장점도 갖고 있다. 모바일 웹에 사용되는 기술적인 언어를 사용하지만 '풀브라우징' 방식이 아닌 단일 페이지 모델을 사용해서 전환되기 때문에 모바일 웹보다 빠른 실행 속도를 유지하게 된다.


모바일 웹과 웹앱의 차이
모바일 웹과 웹 앱은 비슷한 점이 많지만, 실행 방법에서 다음과 같은 차이가 있다.

· 모바일 웹 : 풀 브라우저 방식 (Full Browing)
풀 브라우저 방식은 화면 일부분이 변경될 때 화면 전체 내용을 서버에서 새로 받아오는 방식이다. URL을 통해 접근하며 모바일 기기의 특성상 이동 중에 서버 접속 장애가 발생할 위험이 있다.  

· 웹앱 : 단일 페이지 방식 (SPA, Single Page Application)
단일 페이지 방식은 최초에 한번 페이지 전체를 받아오는 방식이다. 웹뷰라는 것을 띄워놓고 그 내부의 URL을 통해 접근하기 때문에 하나의 브라우저를 독점하는 형태이다. 


장점

모바일 웹처럼 웹 기술로 개발되고 모바일 브라우저에서 실행되지만 좀 더 모바일에 최적화되어 있다.

별도의 설치 및 승인과정이 필요 없기 때문에 유지 보수가 용이하고, 개발 및 유지보수 비용이 적다.


단점

모바일 웹에 비해 개선되기는 했지만 여전히 네이티브 앱, 하이브리드 앱에 비해 성능이 떨어진다.

(모바일 웹과 마찬가지로) 스마트폰의 기능(카메라, 마이크, 푸시 알림 등)을 사용할 수 없거나 제한된 기능만을 사용할 수 있다.




하이브리드 앱 (Hybrid App)


하이브리드 앱은 모바일 웹과 웹앱의 단점을 보완하여, 겉으로 보기에는 앱이지만 웹을 기반으로 앱의 기능을 차용한 형태의 앱이다. 기본 기능은 HTML 등의 웹 문서로 구현하고, 패키징은 iOS, Android 등 모바일 운영체제(OS) 별로 구현한다. 


모바일 UI를 제작한 후 아이폰/안드로이드 웹뷰로 패키징하여 앱스토어에 출시하는 방식이고 적은 비용으로 빠르게 개발할 수 있다. 


장점

웹 기술을 사용하여 빠르게 개발하면서도 네이티브 앱의 기술을 대부분 사용이 가능하다.

iOS나 Android에서 동일한 웹페이지를 사용할 수 있으므로 개발 비용 및 시간이 네이티브 앱에 비해 적게 소요된다.

앱 안에 웹페이지를 불러오는 방식이므로 웹상에 수정 사항이 있는 경우 사용자가 업데이트할 필요가 없다.


단점

네이티브 앱보다 동적인 요소의 구현이 어렵다.

네트워크 환경과 웹사이트 용량에 따라 속도가 느려지는 등 브라우저 성능에 따라 앱의 성능이 좌우된다.

궁극적으로는 앱 스토어에서 배포를 해야 하기에 웹에 비해 업데이트 반영이 느리다.



+) 크로스-플랫폼 앱


크로스-플랫폼 앱은 스마트폰의 운영체제를 신경 쓰지 않고 하나의 언어로 개발할 수 있는 네이티브 앱이다. React Native, Flutter, Xamarin 등이 대표적인 크로스-플랫폼 앱 개발 도구이다. React Native라면 JavaScript로, Flutter라면 Dart로, Xamarin이라면 C#으로 개발을 하게 되고, 이는 빌드 타임에 안드로이드와 iOS에서 이해할 수 있는 언어로 자동 변환된다.



모바일 웹은 브라우저나 웹뷰에서 제공하는 기능들까지만 활용이 가능한 반면, 크로스-플랫폼 앱은 여러 운영체제들이 제공하는 공통적인 기능들까지 활용이 가능하다. 운영체제별 네이티브 앱을 만드는 것보다는 아직 활용할 수 있는 기능이나 그 성능에 한계가 있지만 이미 충분히 좋은 퀄리티의 앱을 개발할 수 있는 정도로 발전했기 때문에 필요에 따라 여러 방식을 조합하여 원하는 앱을 만들 수 있다는 점이 장점이다.



2.  앱 유형과 개발방식은 어떻게 선택해야 할까?


프로덕트의 PM이나 기획자로서 앱 유형과 개발 방식을 선택한다면, 여러 기준을 고려해야 한다. 현재 팀의 업무 상황과 프로덕트에 따라 아래와 같은 다양한 기준이 존재할 수 있다.


목적 : 무엇을 위해 만드는 것인가. 정말 개발이 필요한가
시간 : QA 또는 배포까지 얼마만큼의 시간이 있는가
비용 : 개발에 소요되는 예산은 얼마인가 
인력 : 내부 개발인력이 있는가. 유지・보수와 향후 추가 개발은 어떻게 할 것인가
완성도 : 어느 정도의 완성도를 달성할 것인가   
           (단순 기능 추가인지, 대대적인 구현 방식의 변경인지)


개발 방식에 대한 고민은 문제를 정의하고 솔루션을 도출하는 과정에서 함께 진행될 것이다. '솔루션을 실현할 수 있는가'에 대한 부분은 앱 유형을 선택하는 것부터 개발의 전 과정이 포함된다고 생각한다. 주어진 예산과 인력, 시간에 따라 개발 계획이 수정될 수도 있고, 이상적인 개발 방식은 존재하지만 한정된 리소스로 인해 차선책을 택해야 하는 상황도 발생할 수 있을 것이다.




개발이 필요한 상황을 가정해보자


짧은 시간 내에 안드로이드와 iOS를 한 번에 개발해야 하고, 예산이 빠듯한 경우 : 모바일 웹앱

빠른 속도와 앱 화면을 통해 제공하고자 하는 사용자 경험이 가장 중요한 경우 : 네이티브 앱

한 번의 개발로 안드로이드와 iOS의 화면을 동시에 개발하면서, 디바이스의 내부 API와 고유 기능들을 모두 활용해야 하는 경우 : 하이브리드 앱

하드웨어 및 기능을 구현하는 데 제약 조건이 없어야 하는 모바일 게임을 개발할 때 : 네이티브 앱






무엇보다도 가장 중요한 것은 어진 최소한의 자원으로 가장 큰 임팩트를 가져올 수 있는 솔루션을 제시하는 것이라고 생각한다. PM은 적은 Input으로 보다 큰 Output을 낼 수 있는 효율적인 의사결정을 해야 하기 때문이다.


따라서 솔루션 개발에 한정짓기보다 고객이 겪는 문제를 정확하게 파악했는지, 솔루션에 대한 고객의 반응은 어떠한 지 검증하는데 초점을 맞추어야 할 것이다. 궁극적으로 개발을 통해 프로덕트가 세상에 나오겠지만 그 개발방식의 선택 또는 새로운 개발방식으로의 변경이 고객의 문제를 해결하고 사업가치를 창출할 수 있는지 재고할 필요가 있다. 


결과적으로 개발방식에 변화를 가져와야 하는 상황이라면, 앞서 살펴본 모바일 앱의 장·단점과 기술 스택, 현재 자원의 리소스를 고려하여 적절한 방식을 택해야 한다. 'Back to the Basic'이라는 말처럼 처음 앱을 만들었을 때의 목적과 진짜 고객의 문제를 해결할 수 있는가에 초점을 맞춰 의사결정한다면 보다 나은 결과를 불러올 수 있지 않을까:)



참고자료


http://uxstory.co.kr/blog/2018/08/10/app_list/

https://hwanine.github.io/others/APP/

https://it-eldorado.tistory.com/132

https://uracle.blog/2020/11/09/native_vs_web_vs_hybrid/ 

https://m.blog.naver.com/acornedu/221012420292


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari