오늘은 앱의 4가지 형태에 대해서 알아보고 각각의 특징과 장단점을 정리해 보는 시간이다. 일단 앱의 4가지 형태가 무엇이 있는지 알아보겠다. 아래는 오늘 교육 자료에서 나온 앱의 4가지 형태를 간략하게 설명한 내용이다.
- 네이티브 앱(Native App) - 모바일 운영체제에 최적화된 언어를 사용해 개발한 앱으로서 안드로이드, iOS에서 제공하는 SDK를 사용해 개발한다.
- 모바일 웹(Mobile Web) - 모바일 기기에서 사용하기 편한 방식으로 개발된 '웹 페이지' 기반 서비스를 의미한다. 웹브라우저에서 동작한다.
- 웹 앱(Web App) - 앱의 형태를 가지고 있지만 실제 내용은 대부분 웹에서 구현해 보여주는 페이지다. 네이티브 앱에 비해 간단하게 구현이 가능하다.
- 하이브리드 앱(Hybrid App) - 네이티브 앱의 구조로 되어 있으나, 일부 기능들을 웹으로 구현해 개발하는 방식이다. 웹의 기능을 쉽게 연결할 수 있는 특징이 있다.
그렇다면 이제 각 종류에 따라 어떠한 특징과 장단점이 있는지 알아보고, 예시를 통해 이해가 되도록 설명을 해보겠다.
네이티브 앱(Native Apps)
네이티브 앱은 우리가 일반적으로 iOS나 안드로이드에서 흔히 사용하는 카카오톡과 포켓몬고 같은 앱을 말하며, 우리가 핸드폰에서 사용하는 대부분의 앱이 네이티브 앱이라고 말할 수 있다. 네이티브앱은 지정된 OS에서만 작동하며, 앱스토어나 구글 플레이 등 앱 다운로드 플랫폼에서 다운로드하여 설치를 해야 실행이 가능하다. 같은 OS라도 구동 환경이 다를 수 있기 때문에, 개발자들은 여러 디바이스를 고려해서 최적화된 앱을 유저에게 제공한다.


네이티브 앱의 장점
- 4가지 형태 중 가장 속도가 빠르고 안정적이며 유저와의 상호작용이 가장 원할하다.
- 핸드폰의 여러 하드웨어 기능(카메라, 마이크, 컴퍼스, 가속도계, 스와이프 기능)들과 원활한 상호작용이 가능하다.
- 푸시 알림 사용이 가능하다.
- 핸드폰의 OS에 최적화된 UI를 제공한다.
- 앱스토어/구글플레이 등을 통해 앱의 품질에 대해 쉽게 알 수 있다.
네이티브 앱의 단점
- iOS와 Android 등 각 OS에 대한 앱을 따로 개발해야 한다. (iOS: Objective-C, Swift / Android: Java)
- 따라서, 여러 OS에 출시를 희망할 경우 개발에 대한 시간과 비용이 추가적으로 요구된다.
- 앱 업데이트가 필요할 시 OS마다 업데이트를 따로 진행해야 한다.
하이브리드 앱 (Hybrid Apps)
이번 과제를 통해 배운 유형 중 가장 이해가 힘들었고, 근 몇 년간 많은 발전을 해온 하이브리드 앱에서 다뤄보겠다. 처음 과제를 작성할 때만 해도, 내가 이해했던 하이브리드 앱의 개념은 아래와 같았다.
네이티브 앱과 같이 다운로드하여 OS에서 구동하지만, 사실상 속 내용은 웹 앱과 동일하다. (웹 앱에 대해서는 뒤에서 설명하겠다.) 일반적으로 하이브리드 앱은 스타트업에서 많이 사용한다. 우리가 어떤 프로덕트를 개발할 때 사람들이 좋아하는지 아닐지는 제품을 출시하기 전까지는 알 수 없다. 따라서, 스타트업에서는 개발 시간과 비용이 비교적 적게 요구되는 하이브리드 앱을 출시해서 잠재 고객들이 MVP(Minimum Viable Product)를 경험하도록 한다.
하지만 트위터, 페이스북, 스포티파이와 같은 앱이 모두 하이브리드 앱이라는 사실을 알고, 내가 완전히 잘못 이해했다는 걸 깨닫게 되었다. 단순히 눈으로 트위터, 페이스북을 봤을 때, "이건 무조건 네이티브 앱이다"라고 생각했지만, 하이브리드 앱의 기술 발전으로 인해 이제 네이티브나 하이브리드를 시각적으로 구분할 수 없다는 사실을 알게 되었다.
하이브리드/네이티브 앱 개발에 사용되는 크로스 플랫폼(Cross Platform) 프레임워크
위에서 네이티브 앱의 단점으로 각 OS에 대해서 다른 소스 코드로 개발해야만 하는 불편함을 언급했다. 이런 불편함을 해소하기 위해 2011년부터 여러 회사들이 크로스 플랫폼 프레임워크를 개발하기 시작했고, 대표적으로 구글의 플러터(Flutter), 페이스북의 리엑트 네이티브 (React Native), 마이크로소트의 닷넷 마우이(.Net Multi-platform App UI) 등이 있다. 크로스 플랫폼은 단순히 안드로이드와 iOS에 국한되지 않고 macOS와 윈도우와 같은 PC 운영체제에서도 한 번에 프로그래밍할 수 있는 기술이다. 이렇게 여러 플랫폼에서 하나의 언어로 프로그래밍 할 수 있는 장점을 가지고 있지만, 각 운영체제에 100% 최적화되지 않았기 때문에 성능이 떨어진다는 단점이 있다.

하이브리드 앱의 특징과 장단점
일단 오늘 하이브리드 앱에 대해서 얘기할 때, 요즘 트렌드가 그렇듯이 크로스 플랫폼 프레임워크로 개발된다는 가정하에 이야기를 진행하겠다. 하이브리드 앱의 특징은 앱의 외형을 지니고 있지만, 사실 우리가 보는 화면은 웹 화면이라는 것이다. 이걸 구현하기 위해 하이브리드 앱은 웹 뷰(Web View)라는 요소를 사용하여 앱이 지정한 주소를 볼 수 있도록 한다. 인터넷에서 아주 좋은 예시가 있어 아래에 첨부하였다.

이제 하이브래드 앱의 화면은 웹에서 가져온다는 사실을 이제 알게 되었다. 그리고 화면만 웹에서 가져온 것뿐이지, 기본적인 형태는 앱의 형태를 지니고 있기 때문에, 네이티브의 장점으로 앞에서 언급한 핸드폰의 하드웨어 기능도 문제없이 사용할 수 있다. 또한, 크로스 플랫폼 프레임워크로 제작하기 때문에 코드 작성과 테스트를 한 가지 코딩 언어로 진행하고, 마지막에 iOS나 Android에 맞게 옷만 잘 입혀서 나가게 해 주면 된다.
이제 장점과 단점을 알아보겠다.
| 장점 | 단점 |
|
|
모바일 웹
모바일 웹에 대해서는 굳이 설명이 필요 없다고 생각한다. 흔히 우리가 핸드폰에서 크롬이나, 엣지 등 인터넷 브라우저로 웹 서핑을 할 때 보는 화면을 모바일 웹이라고 한다.

모바일 웹의 장단점
| 장점 | 단점 |
|
|
웹 앱
웹 앱은 간단하게 말하면 우리가 모바일 기기에서 url을 입력하여 들어간 웹사이트가 앱의 형태를 지니고 있는 것을 말한다. 핸드폰 브라우저에서 gmail.com을 접속하면, 우리가 흔히 아는 웹사이트의 형태가 아닌 앱의 형태를 갖춘 걸 볼 수 있다. (아래 예시 참고)

웹 앱의 장단점
| 장점 | 단점 |
|
|
내가 PM이라면 어떤 형태의 앱을 사용할까?
이제 내가 어떤 프로덕트의 PM이라고 가정하고, 기획하는 과정에서 어떤 형태의 앱을 쓸 수 있을지 생각해보려 한다.
좋은 사업 아이디어가 있어 제품의 PMF을 확인하기 위해 초기 단계에서는 HTML, CSS, JavaScript를 사용하여 프론트엔드 개발이 비교적 간편한 웹 앱 혹은 모바일 웹을 만들어 일단 인터넷 상에 노출시키려 할 것이다. 또한, 서비스 초기에는 이용자가 많지 않기 때문에 작업용 pc를 서버로 활용하여 서비스를 구동하도록 할것이다.
간단한 구성을 가진 앱을 출시한 뒤 사업의 발전 가능성과 이용자 증가가 눈에 보인다면, 슬슬 앱의 발전 방향을 정해야 할 것으로 생각한다.
개인적으로 아래와 같은 사항을 고려해야한다고 생각한다:
- 개발자가 어떤 방식의 앱 개발을 제일 잘하는지 알아야 한다.
- 우리가 제공하는 서비스의 기술적 특징이 무엇이 있는지 (예: 트래픽이 특정 시간대에 몰리는 서비스라면, 서버 트래픽을 잘 관리하는 기술 스택을 선택해야 한다)
- 제품 출시 기한은 언제인지 (기한이 임박했을 경우 빠르게 개발할 수 있는 하이브리드 앱을 고려 할 수 있다)
- 우리가 제품에서 원하는 기능을 구현할 수 있는 기술 스택인지 고려
- 서비스의 최적화를 위해 꼭 앱을 개발해야하는지 혹은 그냥 웹 앱/모바일 웹으로 진행해도 되는지 생각 해야한다.
- 현재 회사 인재풀로 원하는 앱을 개발 할 수 없을 경우, 어떻게 개발팀 인력을 증원할 지 고려
위에 대해서 고민한 뒤 방향이 정해졌다면 개발에 착수한다.
오늘은 모바일 앱의 4가지 종류를 알아보았다. 단순히 이용자로써 이런 측면을 전혀 생각해보지 못했었는데, 리서치를 통해 많은 지식을 얻게 되어 유익한 시간이었다.