모바일 앱 종류 총정리

rloo8·2024년 5월 9일
post-thumbnail

앱은 크게 네이티브 앱, 웹 앱, 하이브리드 앱으로 나뉜다.
여기서 더 나아가 크로스 플랫폼 앱, 프로그레시브 웹 앱이라는 유형이 더 있다.


네이티브 앱 (Native App)

네이티브 앱은 스마트폰의 가장 기본적인 앱 형태이다.
모바일 기기에 최적화된 앱으로, 안드로이드 또는 iOS 환경에 각각 그 전용으로 개발된 소프트웨어이다.

아이폰 앱은 Objective-C나 Swift 언어로 개발하고, 안드로이드 앱은 Java나 Kotlin으로 개발한다.

이렇게 개발한 앱들은 각각 iOS의 앱스토어, 안드로이드의 플레이스토어에 등록 후 다운로드 받을 수 있다.

장점

이렇게 전용으로 개발되었기 때문에 각각의 운영체제가 제공하는 모든 자원과 기능들을 활용할 수 있다.
즉, 스마트폰 성능을 최대한 활용할 수 있는 고퀄리티의 앱을 만들 수 있다.

단점

하지만 안드로이드 개발자, iOS 개발자가 모두 필요하기 때문에 개발에 드는 인력과 시간이 늘어난다는 단점이 있다.
또한 스토어에 올릴때 각각의 검수 기간이 있기 때문에 버전을 업데이트 하기에도 까다롭다.


모바일 웹 (Mobile Web) / 웹 앱 (Web App)

모바일 웹과 웹 앱의 구분은 뚜렷하지 않은데,

pc 웹페이지를 스마트폰의 좁은 세로 화면에서 보기 편안하도록 만들어진 것이 모바일 웹이고,
보다 앱에 가까운 사용자 경험을 제공하도록 만들어진 모바일 웹을 웹 앱이라고 한다.

네이버 pc 웹 페이지
(웹 URL: naver.com)
네이버 모바일 웹 페이지
(모바일 URL: m.naver.com)


장점

둘은 웹 개발과 동일하게(html, css, javaScript 등) 만들어지기 때문에
모바일 운영체제 별로 개발할 필요가 없어 시간과 비용 측면에서 효율적이다.

수정을 할 때도, 사이트만 업데이트 하면 되기 때문에 스토어의 검수를 기다릴 필요 없이 언제든 수정이 가능하다.

단점

하지만 핸드폰에 설치해서 사용하는 것이 아니라 (스토어에 올릴 수 없다.)
브라우저 안에서 주소로 찾아 들어가는 것이기 때문에 접근성이 떨어지며 주소창 없이 풀 화면으로 사용할 수 없다.

또한 브라우저에서 돌아가는 것이기 때문에, 브라우저에서 제공하는 기능들만 사용할 수 있다.
스마트폰의 자원과 기능(카메라, 센서 등)을 활용할 수 있는 고성능 앱을 만들기에는 한계가 있다.


하이브리드 앱 (Hybrid App)

모바일 웹의 단점을 보완하고 네이티브 앱 성능을 따라가기 위해 만들어진 것이 하이브리드 앱이다.

각각 네이티브 앱 안에 웹뷰를 넣은 형태
쉽게 설명하면, 내용물은 웹이고 포장지는 앱이다.

웬만한 기능들은 웹사이트로 만들어서 이 웹뷰 안에서 이용할 수 있도록 만들고, 웹사이트로 구현할 수 없는 기능들은 네이티브 레벨에서 처리하도록 한다.

네이버 앱을 실행하면 모바일 웹 사이트에선 사용할 수 없었던 기능들을 확인할 수 있다.

이러한 네이티브 기능들에 대해서만 스토어를 이용한 업데이트가 필요하고,
웹뷰에 나타나는 컨텐츠들은 웹에서만 수정해주면 되기 때문에 네이티브 앱보다 더 유연한 운영이 가능하다.


크로스 플랫폼 앱 (Cross-platform App)

네이티브 앱 개발의 단점을 보안하기 위한 대안으로,
하나의 언어, 한 번의 개발로 iOS와 안드로이드 모두에서 동작하는 네이티브 앱을 만드는 것을 말한다.

구글에서 개발한 플러터, 페이스북이 개발한 리액트 네이티브, 마이크로소프트에서 개발한 자마린(Xamarin)
이러한 개발 도구 중 하나를 활용하여 개발을 하면, IOS와 안드로이드에서 각각 이해할 수 언어로 컴파일하고 실행할 수 있다.

물론 정통 네이티브 앱처럼 각 운영체제의 모든 기능을 다 사용할 수 없고 속도 등의 성능이 떨어지지만 계속 발전되고 있다.


프로그레시브 웹 앱 (PWA, Progressive Web App)

PWA는 모바일 웹의 한계를 브라우저의 발전을 통해 끌어올린 것이다.
즉 모바일 웹을 PWA로 업그레이드하여 활용할 수 있다.

모바일 웹을 PWA로 만들면,
스토어에 등록하지 않아도 핸드폰 바탕화면에 아이콘을 생성할 수 있고, 이 아이콘을 통해 네이티브 앱처럼 사용할 수 있다.

또한 푸시 알림 등의 기능이 제공되고, 데이터의 캐싱을 통해 오프라인에서도 동작할 수 있게 할 수 있다.


어떤 유형을 선택해야 할까?

이것이 더 좋다, 저것이 더 좋다 할 정답은 없다.
어떤 앱을 만들지에 따라 장단점을 따져보고, 개발 리소스를 줄일 수 있는 방법을 선택하면 된다고 생각한다.

웹 개발자인 나는
반응형 웹으로 pc와 모바일 둘 다 적합한 웹을 개발하고, 후에 앱과 같은 기능이 필요하다면 PWA 작업을 추가할 것 같다.


참조

https://www.youtube.com/watch?v=NMdnzvPsGu8
https://brunch.co.kr/@ogaa2143/29

0개의 댓글