스마트폰 OS(운영체제)라고 하면 안드로이드와 iOS가 가장 먼저 떠오르실겁니다.
우리나라에서의 두 운영체제의 점유율(2020.6월 기준)을 살펴보면
 안드로이드가 76.5%, iOS가 23.4%입니다. 

  

우리가 이미 알고있듯이 

안드로이드는 구글의 플레이스토어에서 운영되며, iOS는 애플사의 앱스토어에서 운영됩니다.

 

두 운영체제 모두에 앱을 상용화 및 수익화하려는 경우, 

당연히 2개의 앱/2배의 개발 리소스가 필요합니다. 

 

그렇다면 안드로이드와 iOS는 각각 어떤 특징을 갖고 있을까요?

 

안드로이드

 앞서 말한 것처럼 안드로이드는 구글에서 제작한 모바일 운영체제 입니다. 개발된 어플리케이션은 안드로이드 플랫폼에서 동작을 합니다. 구글에서 제공하는 안드로이드 스튜디오로 개발되며 개발언어는 Java 또는 Kotiln을 사용하게 됩니다. 이렇게 만들어진 앱은 구글 플레이 스토어에서 다운받을 수 있으며, 삼성/LG 등의 스마트폰 태블릿 PC 등 안드로이드 운영체제를 지원하는 모든 기기에서 작동이 가능합니다.

 

 

- 장점: 

안드로이드의 최대 장점은 구글에서 제공하는 앱과 호환이 뛰어나다는 점입니다. 로그인 한 번으로 구글 플레이, 지메일, 구글 크롬, 구글 문서, 유튜브 등 구글에서 제공하는 모든 앱에서 막힘없이 사용하라 수 있습니다. 또한, 앱 사이의 연동성도 뛰어나다. 안드로이드 사용자가 구글 캘린더에 일정을 기록했는데 구글 지도상 교통체증이 심각한 상황이라면 구글 어시스턴트는 안드로이드 사용자에게 예상 도착시간을 안내하고 평소보다 일찍 출발할 것을 권해주기도 합니다. 개발자의 입장에선 어플 심사가 비교적 빠르다는 장점도 있습니다.

 

- 단점 : 

IOS에 비해 상대적으로 보안하다는 단점이 있습니다. 

iOS

IOS는 애플의 아이폰, 아이패드 등에 내장된 모바일 운영체제입니다. 애플에서 제공하는 XCode로 개발되며, 개발언어는 Objective-C 또는 Swift를 사용합니다. 최근에는 Swift가 자주 사용된다고 하네요. 앱스토어에서 개발된 어플을 다운받게되면 애플에서 제공되는 모바일 기기에서만 사용이 가능합니다. 폐쇄성이 짙은 특징을 가지고 있죠.

 

iOS

IOS는 애플의 아이폰, 아이패드 등에 내장된 모바일 운영체제입니다. 애플에서 제공하는 XCode로 개발되며, 개발언어는 Objective-C 또는 Swift를 사용합니다. 최근에는 Swift가 자주 사용된다고 하네요. 앱스토어에서 개발된 어플을 다운받게되면 애플에서 제공되는 모바일 기기에서만 사용이 가능합니다. 폐쇄성이 짙은 특징을 가지고 있죠.

 

- 장점 : 

ios의 경우 아이폰, 맥북, 아이패드,애플워치 등 기기 간 연동이 뛰어납니다. 사용자가 ios의 잠금을 해제하면 애플워치의 잠금도 해제된다거나 ios에서 살피던 웹페이지를 아이패드와 맥북으로 이동해서 계속 탐색하는 기능도 제공합니다. 안드로이드는 다양한 제조사에서 제품을 생산하지만 ios는 애플에서 생산하는 제품에만 탑재되기 때문에 가능한 것입니다. 또한, 보안성이 우수하며, iCloud 시스템을 통한 애플의 제품끼리 컴퓨터의 문서, 어플리케이션,연락처, 사진등 공유가 용이합니다.

 

- 단점 : 

운영체제의 소유권은 애플에게만 있는 폐쇄성이 가장 눈에 띕니다. 안드로이드에 비해 개발자가 적고, 안드로이드에 비해 낮은 점유율이 낮습니다. 또한, 안드로이드 운영체제에 비해 어플 심사가 까다로워 개발자 입장에선 피로도가 쌓일 수도 있습니다.

 


 

우리는 스마트폰의 채팅어플을 열고 확인하지 못한 메시지를 확인하거나, 날씨 어플, 뉴스 어플의 정보를 읽으며 하루를 시작합니다. 잠이 유독 깨지 않는 날에는 유튜브에서 아침 기상에 도움이 되는 노래를 듣기도 합니다.

 

그렇다면 우리가 구글 플레이스토어나 앱스토어에서 다운받아 사용하는 그  수많은 앱들은 어떻게 개발될까요?

 

크게 네이티브앱 개발, 모바일웹앱 개발, 하이브리드 앱 개발 방법으로 나눠집니다.

 

기기에 최적화된 기능을 제공하는 네이티브앱

네이티브 앱이란 모바일 기기에 직접 다운로드하여 사용하는 앱을 말합니다. 네이티브 앱은 사용자가 공용 앱스토어에서 직접 설치할 수도 있고, 모바일 공급업체에서 제공할 수도 있습니다. 구글의 안드로이드 스튜디오로 안드로이폰용 앱 개발, 애플의 XCode를 사용하여 아이폰용 앱을 각각 개발합니다. 따라서 최소 2명의 개발자가 필요하며 비용이 높아집니다. 

 

네이티브 어플을 만들기 위해서는 개발자가 사람이 읽을 수 있는 형식으로 소스코드를 작성하고, 운영체제(OS: Operation System) 별로 선언 파일이나 이미지, 오디오 등의 리소스를 만들어야 합니다. 그다음, 모바일 운영체제(OS)에서 제공하는 툴을 활용하여 소스코드를 컴파일하고, 여러 실행 파일을 만들어야 하지요.

 

이처럼 네이티브 앱은 각기의 모바일 운영체제(OS)에서 제공하는 툴과 언어 등에 따라 기능들을 최대한 살리기 때문에, 높은 사양의 그래픽과 성능을 자랑하면서도 구동 속도가 빠른 편입니다. 뿐만 아니라 디바이스 전체에 액세스 권한을 가질 수 있어, 기기에 저장된 주소록, 캘린더 등의 고유 정보를 사용할 수도 있지요. 

 

- 장점 : 

성능이 하이브리드앱, 모바일 웹앱에 비해 우수하며, 모바일 기기의 고유기능을 사용하고자 하는 경우 구현유리, GPS, 카메라, NFC, 기타 장치제어등에 유리합니다. 

 

- 단점 : 앞서 말한 것처럼 개발 비용이 높고, 어플 심사를 2번 진행해야 합니다.

 

비용이 저렴하고, 업데이트가 쉬운 모바일 웹앱

모바일 웹 앱이란 PC나 스마트폰 등 단말기의 기종에 관계없이 모든 단말기에서 같은 콘텐츠를 볼 수 있도록 해주는 앱입니다. 운영체제(OS)와 직접 통신하는 네이티브 앱과 다르게 웹 앱은 브라우저 내에서 동작합니다. 따라서 앱을 따로 다운로드하거나 업그레이드하지 않고, 항상 최신 버전을 유지할 수 있습니다. 또한, OS별로 별도의 플랫폼이 필요하지 않고, HTML5,CSS3와 같은 표준 웹 언어로 만들어지기 때문에 제작 비용도 저렴하고, 개발 기간도 다른 앱 개발방법에 비해 비교적 짧은 편입니다. 디자인 과정 이외의 퍼블리싱 작업이 필요하다는 특징도 있습니다.

 

웹 앱 방식은 상대적으로 개발 공수가 적게 들고, 업데이트가 쉽지만 기능상 제한이 많이 따릅니다. 웹 앱은 처음부터 디바이스에 적합한 형태로 만들어지는 것이 아니기 때문입니다. 따라서 네이티브 앱과 비교해 봤을 때  느리기도 하고, 앱을 통해 기기 고유의 정보를 사용할 수도 없습니다.

 

- 장점 : 네이티브앱에 비해 제작비용 저렴하며, 개발기간이 단축됩니다.

- 단점 : 모바일기기의 주변기능 사용하기 어렵고, 앱의 실행이 느립니다.

 

네이티브 앱과 웹 앱의 장점만 합친 하이브리드 앱

하이브리드 앱은 네이티브 개발과 웹 기술을 융합한 방식입니다. 기본 기능은 HTML5,CSS5 등의 웹 표준으로 개발하고, 패키징은 아이폰, 안드로이드 등 모바일 운영 체제(OS) 별로 구현하게 됩니다. 따라서 네이티브 앱과 마찬가지로 앱 스토어에서 다운로드하여 사용할 수 있고, 기기에 저장된 고유 파일이나 카메라와 같은 하드웨어적인 부분에 접근성을 가질 수도 있습니다. 

 

또한, 근본적으로는 웹 기술을 이용한 것이기에 빠르고, 편리하게 앱을 유지보수할 수 있습니다. 개발방식은 Phone Gap, Cordova, ionic, react native 등의 개발플렛폼이 있으며 최근에는 react native 많이 사용됩니다. 하나의 개발로 안드로이드와 iOS 동시에 구현가능하며, 유지보수가 용이합니다. 

 

- 장점 : 

네이티브앱과 같이 앱스토어,플레이스토어에서 다운로드 받아 사용 가능합니다. 기기에 저장된 고유 파일이나 카메라와 같은 모바일 기기에 접근 가능하며, 모바일 웹 앱에 비해 상대적으로 성능이 우수합니다.

- 단점 : 

네이티브 앱보다 UI구성하는 디자인 부분 취약하며, 네이티브앱에 비해 성능 떨어질 수   웹 브라우저를 실행하여 콘텐츠를 제공하기에 인터넷 속도에 따라 구동 속도가 느려질 수도 있습니다.

 

 

구축하고자 하는 사이트가 아래의 조건이라면 하이브리드앱 개발을 검토해 보세요!

 

- 안드로이드 앱과 IOS앱을 동시에 개발하고자 하는 경우

- 모바일 기기의 카메라, GPS, NFC, SMS, PUSH, 전화등의 기능을 사용하고자 하는 경우

- 개발 비용과 유지보수 비용을 줄이고자 하는 경우

- 고도의 모바일 디바이스 기능을 사용할 필요는 없는 경우

- 앱을 업그레이드를 보다 용이하게 하고자 하는 경우(안드로이드와 IOS를 각각 업데이트 안하고 한번에 개발로 2개의 플렛폼 업그레이드 가능)

 

결국, 내가 구현하고 싶은 앱의 용도에 따라 어떤 방법을 선택하냐가 중요합니다.  

네이티브앱/모바일웹앱/하이브리드앱의 장단점을 잘 살펴보고 결정하시면 좋을 것 같습니다!

 

인천일보 아카데미는 고용노동부 지정 IT 우수 교육기관으로 다양한 웹/앱 개발자 양성과정을 보유하고 있습니다.

아래 링크를 클릭하여 인천일보 아카데미의 교육 과정들과 커리큘럼을 함께 확인해보세요 :)

https://www.icia.co.kr/course/list/



-출처 및 참고글: https://moneys.mt.co.kr/news/mwView.php?no=2020070111268036630