모바일 앱 개발은 유형에 따라 대표적으로 세 가지로 나눌 수 있습니다: 네이티브 앱, 웹 기반 모바일 앱, 하이브리드 앱.
각각의 차이점: 네이티브, 하이브리드, 웹 앱
간결하게 아래와 같이 정의할 수 있습니다:
- 네이티브 앱은 디바이스에서 실행되는 컴파일된 바이너리입니다. 세 가지 중에서 가장 빠르고 안전한 방식이죠.
- 웹 앱은 브라우저에서 호스팅되고 실행되는 앱으로, 인터넷 연결이 필요합니다. 속도는 가장 느리고, 디바이스 기능들에 대한 접근 권한이 가장 낮습니다.
- 하이브리드 앱은 (이름에서 알 수 있듯) 일부는 네이티브로, 일부는 웹의 형태입니다. 속도는 중간 수준입니다.
2021년 3월 조사에 따르면 안드로이드(71.9%)와 iOS(27.33%)가 시장을 장악하고 있습니다. 즉, 안드로이드와 iOS의 UX를 갖춘 앱을 개발한다면 거의 모든 시장(99.2%)을 커버할 수 있다는 의미입니다.
![](https://i2.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/03/Native-v-Hybrid-Applications-5360502.png?resize=768%2C503&ssl=1)
네이티브 모바일 앱이란?
네이티브 앱은 일반적으로 작동하는 플랫폼에 맞추어 작성하고 컴파일되는 앱을 말합니다. 하드웨어에 맞게 컴파일되고 최적화되어 있어 가장 빠른 성능과 가장 높은 수준의 보안을 제공합니다. 하드웨어의 기능들을 완벽하게 접근할 수 있다면 생체 측정 시스템, 카메라, 센서과 같은 기능들도 활용할 수 있습니다. 네이티브 앱은 시스템 UI 요소들을 활용하기 때문에 플랫폼 UX에 “딱 알맞은” 구현이 가능합니다. 매우 직관적이어서 사용자들이 가장 많이 선택하게 되는 이유입니다. 이러한 사실은 네이티브 앱들이 각 앱 스토어의 선두를 차지하고 있다는 사실을 뒷받침해주는 근거이기도 합니다.
네이티브 앱의 접근 방식은 가장 좋은 성능, 속도, 사용성을 제공하지만 Xcode (애플 iOS용)와 안드로이드 스튜디오 (안드로이드 용)와 같은 벤더사 도구들의 경우 단 하나의 플랫폼만을 대상으로 합니다. 결국 개발 사이클은 더 길어지고, 복잡해집니다. 게다가 궁극적으로 (보여지는) 초기 비용이 더 많이 드는데, 각 플랫폼에 맞는 여러 코드베이스들이 필요하고, Q&A 사이클, 업데이트를 위한 기술 등이 추가로 계속해서 필요하기 때문이죠. 앞서 설명한 것처럼 네이티브를 선택해야 하는 이유는 많습니다. 그래서 결국은 많은 기업들이 사용자 피드백을 받은 이후에는 결국 하이브리드 앱을 네이티브로 전환합니다.
네이티브 앱 (그리고 일부 하이브리드 앱)은 초기 설정에는 시간이 더 소요될 수 있지만, 앱 스토어에 배포만 한다면 빠른 업데이트가 가능합니다 (앱 스토어가 없는 웹 앱만큼 빠르지는 않음).
단 하나의 코드 베이스, 네이티브로 컴파일되는 진정한 네이티브 앱 개발을 지원하는 것은 업계에서 유일하게 델파이 뿐입니다. 출시된 지 9년이 넘은 파이어몽키(FMX)는 수준 높은 유연한 프레임워크로 현대식 객체 지향과 컴포넌트 기반의 프로그래밍을 지원해 로우코드 RAD 접근 방식이 가능합니다. 모바일 앱 개발뿐만 아니라 안드로이드, iOS는 기본이고 맥OS, 리눅스, 윈도우 용 프로그램 개발까지 가능하죠.
하이브리드 앱이란?
하이브리드 앱은 센차, Angular Mobile, React Native, Cordova, Ionic, PhoneGap 등이 있는데 네이티브 애플리케이션 셸에서 호스팅되는 웹 기술 (HTML5, CSS, JavaScript)를 활용해 개발합니다. 본질적으로, 마이크로 웹 서버의 폰에서 로컬로 실행됩니다.
하이브리드 앱 개발의 이점은 단일 코드베이스로 여러 플랫폼을 지원할 수 있다는 점입니다. 네이티브 쉘은 HTML 언어의 확장이 가능해, 폰의 하드웨어 일부를 활용할 수 있습니다 – 하지만 네이티브 앱과 비교해보면 제한적이기는 합니다. 또한 하이브리드 앱은 실시간 연결없이도 오프라인에서되도록 설정할 수 있습니다 (단, 가능하도록 구성된 경우에 한함).
주요 단점은 웹 페이지처럼 생겼고 동작한다는 점입니다. 예를 들어, 실수로 인해 UI에서 여러 항목이 선택될 수도 있습니다. 그리고 잘 알려진 것과 같이 메모리와 프로세서 최적화 부분이 취약합니다.
보안도 고려해야 할 사항입니다. 소스 코드가 보통 애플리케이션 번들 내에 일반 텍스트로 되어 있기 때문에, 보안 정책 유지가 훨씬 더 어렵습니다. 특히 악성 코드 주입이 가장 문제이죠.
네이티브 애플리케이션에 가장 근접한 유형이 바로 React Native입니다. 일부 네이티브 컨트롤 사용이 가능하죠. React Native는 보안이 매우 중요한 경우에는 권장하지 않습니다 (예: 금융 앱).
웹 앱이란?
웹 앱은 모바일로 컨텐츠를 제공하고자 할 때 유용합니다. 설치도 없고 (라이브 데이터 연결이 필요하지도 않죠) 사용자가 확인하고, 진행하고 싶은 작업들을 빠르게 수정하고 업데이트 할 수 있죠. 웹 앱은 브라우저를 통해서 실행되기 때문에 메인 컴퓨팅이 원격으로 실행됩니다. 즉 웹 앱 실행을 위해서는 앱을 실행할 모바일 디바이스의 전력과 메모리가 필요하다는 의미이죠.
HTML5가 제공하는 강력한 기능들이 있는데 로컬 데이터 저장소가 대표적입니다. 제한된 데이터 캐싱이 가능하죠. 하지만 중요한 데이터를 저장할 수 있는 건 아닙니다!
웹 앱의 장점은 모바일 플랫폼의 틈새시장을 공략해 시장을 100% 커버할 수도 있다는 점입니다.
모바일 앱 개발, 가장 좋은 선택은?
여러분이 필요로 하는 요구사항들을 정리해보자면, 다음과 같은 답이 나올 수 있겠네요!
- 최고의 보안, 성능, 사용 편의성이 중요하다면, 언제든지 필요한 모든 것을 유연하게 구축할 수 있는 네이티브 앱을 선택하는 게 좋습니다. 특히 델파이는 가장 최고의 선택이 될 것입니다. 단 하나의 코드베이스만으로 주요 플랫폼들을 모두 지원하는 네이티브 앱을 개발할 수 있으니까요.
- 모바일 디바이스 기능을 모두 액세스할 필요가 없고, 보안 이슈가 크게 없다면 하이브리드 앱을 고려해볼 수도 있습니다.
- 여러 플랫폼에 빠르게 접근해야 하지만, 모바일 디바이스 기능 활용이나 보안 이슈가 없다면 웹 앱을 고려해보세요. 웹 앱을 신속하게 구축할 수 있는 좋은 선택은 센차 아키텍트 에디션입니다 (델파이 아키텍트 에디션에 포함되어 있죠. 그럼 네이티브와 웹 앱 모두 개발이 가능한 선택 옵션이네요).
여러 옵션들 중에서 진정한 네이티브 (속도, 성능, 디바이스 액세스)와 단 하나의 코드 베이스만으로 크로스 플랫폼 지원은 델파이만 가능합니다. 다른 개발 플랫폼에 비해 델파이가 틈새 시장의 제품으로 보일 수 있지만, 개발자들 (특히 C#에 익숙한 경우)은 굉장히 쉽게 프레임워크에 적응할 수 있을 것입니다. 여러 개발 프로젝트를 경험하면서 쌓은 스킬로 말이죠. 26년 이상의 노하우와 9년 이상의 고유한 멀티 플랫폼 접근 방식은 다른 분야들보다 분명 최소 몇 년은 앞서있습니다.
![](https://i1.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/03/Mobile-Application-Development-Options-True-Native-9499101.png?resize=1024%2C655&ssl=1)