모바일 앱 개발은 유형에 따라 대표적으로 세 가지로 나눌 수 있습니다: 네이티브 앱, 웹 기반 모바일 앱, 하이브리드 앱.

각각의 차이점: 네이티브, 하이브리드, 웹 앱

간결하게 아래와 같이 정의할 수 있습니다:

  • 네이티브 앱은 디바이스에서 실행되는 컴파일된 바이너리입니다. 세 가지 중에서 가장 빠르고 안전한 방식이죠.
  • 웹 앱은 브라우저에서 호스팅되고 실행되는 앱으로, 인터넷 연결이 필요합니다. 속도는 가장 느리고, 디바이스 기능들에 대한 접근 권한이 가장 낮습니다.
  • 하이브리드 앱은 (이름에서 알 수 있듯) 일부는 네이티브로, 일부는 웹의 형태입니다. 속도는 중간 수준입니다.

2021년 3월 조사에 따르면 안드로이드(71.9%)와 iOS(27.33%)가 시장을 장악하고 있습니다. 즉, 안드로이드와 iOS의 UX를 갖춘 앱을 개발한다면 거의 모든 시장(99.2%)을 커버할 수 있다는 의미입니다.

네이티브 모바일 앱이란?

네이티브 앱은 일반적으로 작동하는 플랫폼에 맞추어 작성하고 컴파일되는 앱을 말합니다. 하드웨어에 맞게 컴파일되고 최적화되어 있어 가장 빠른 성능과 가장 높은 수준의 보안을 제공합니다. 하드웨어의 기능들을 완벽하게 접근할 수 있다면 생체 측정 시스템, 카메라, 센서과 같은 기능들도 활용할 수 있습니다. 네이티브 앱은 시스템 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년 이상의 고유한 멀티 플랫폼 접근 방식은 다른 분야들보다 분명 최소 몇 년은 앞서있습니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 14353
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13021
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15529
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21047
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22296
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17929
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38218
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173732
» 모바일 앱 개발, 가장 좋은 선택은? 관리자 2021.03.18 601
125 안드로이드 SDK 수동 설치 방법 file 김원경 2020.07.15 3860
124 iOS 앱스토어 1024x1024 아이콘 문제에 대한 해결 방법 김원경 2020.07.08 468
123 파이어몽키를 사용하여 멀티 플랫폼/아키텍처 용 소프트웨어 개발 file 김원경 2020.03.25 589
122 RAD Studio 10.3.3 안드로이드 앱에서 센서 컴포넌트 사용시 링크 오류 해결방법 김원경 2020.03.18 341
121 [델파이 안드로이드 64비트 오류 수정] TInAppPurchase 컴포넌트 수정 file 김원경 2020.03.18 332
120 파이어몽키에서 Message 대화상자 사용하기/Message 대화상자와 유사하게 폼 사용하기 file 김원경 2020.01.23 2271
119 파이어몽키 TListBox 컴포넌트 사용방법: 사용자 정의 아이템데이터 동적으로 표시하기 file 김원경 2020.01.20 600
118 리눅스용 앱에 다양한 스타일 적용하기 (FMX 스타일들을 리눅스 앱에도!) 관리자 2019.09.17 441
117 밝은 톤의 사용자 친화적인 디자인을 찾고있다면 - 푸에르토 리코(Puerto Rico) FMX 스타일 관리자 2019.09.17 504
116 과감하면서도 볼드한 효과를 주고 싶다면 - Ruby Graphite FMX 스타일 관리자 2019.09.17 461
115 그라데이션이 적용된 멋진 스타일을 적용하고 싶다면 - 스텔라(Stellar) FMX 스타일 관리자 2019.09.17 556
114 리눅스 앱에 파이어몽키에서 적용했던 스타일을 똑같이 적용하세요 - Wedgewood Light 스타일 관리자 2019.09.09 351
113 리눅스 앱에 '깔끔하면서도 샤프한' 스타일을 적용하고 싶다면 - Air 스타일 관리자 2019.09.09 358
112 '눈에 확 띄는' 리눅스 앱을 만들고 싶다면 - Amakrits 스타일 관리자 2019.09.09 325
111 리눅스 앱에 '윈도우 10 컬러 스타일'을 적용하고 싶다면 - Aqua Graphite 스타일 관리자 2019.09.09 421
110 리눅스 앱에 '프로페셔널' 해보이는 스타일을 적용하고 싶다면 - Blend FMX 스타일 관리자 2019.09.09 370
109 FmxLinux - 델파이, RAD스튜디오에 추가되었습니다! 관리자 2019.06.26 498
108 [무료 제공툴] 파이어몽키 스텐실(FMX Stencils) [3] 관리자 2018.08.24 1186
107 10.2.3 새로운 기능: 파이어몽키 UI 템플릿 - 프로필 화면 관리자 2018.04.24 736