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

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

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

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

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 14387
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13023
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 15532
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 21064
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 22297
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 17933
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 38228
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 173741
423 헬스케어 분야에서의 델파이 - 코로나에 맞서며 file 김원경 2020.04.29 604
422 [도서/PDF/소스코드] 델파이 Begin...End - 5장. 디버깅 사용하기 관리자 2019.08.09 604
421 파이어몽키 TListBox 컴포넌트 사용방법: 사용자 정의 아이템데이터 동적으로 표시하기 file 김원경 2020.01.20 603
420 [온라인 세미나 시리즈] 윈도우 10으로 현대화 할 때 확인해야 할 개발팁 file 관리자 2019.09.09 602
» 모바일 앱 개발, 가장 좋은 선택은? 관리자 2021.03.18 601
418 [10.4 시드니 신기능] Win64 C++용 새로운 디버거 험프리 2020.05.26 601
417 이 달의 기술자료 - 2018년 10월 file 험프리 2018.10.01 597
416 델파이 코드 컨버전 빠르게 완료하기 관리자 2019.11.06 595
415 [10.4 시드니 신기능] 겟잇 패키지 매니저(GetIt Package Manager) 개선 험프리 2020.05.21 593
414 [도서/PDF/소스코드] 델파이 Begin...End - 4장. 컴포넌트 라이브러리와 패키지 관리자 2019.08.09 592
413 IDE의 -r 커맨드라인 스위치로 IDE 시작 오류를 해결할 수 있습니다. file 험프리 2016.01.08 590
412 파이어몽키를 사용하여 멀티 플랫폼/아키텍처 용 소프트웨어 개발 file 김원경 2020.03.25 589
411 [10.3 리오][업데이트 2] C++ 코드인사이트 기능 업데이트 관리자 2019.08.23 589
410 올 해의 기술자료 TOP 10 - 개발자들이 가장 많이 클릭한 기술자료는? 관리자 2018.10.24 589
409 [발표자료] 20151019 David I 초청 워크샵: 윈도우 애플리케이션 개발자를 위한 DeepDive! 관리자 2015.10.20 588
408 이 달의 기술자료 - 2016년 09월 file 험프리 2016.08.25 588
407 VCL의 역할과 방향 - 마르코 칸투의 VCL 이야기! 관리자 2019.12.17 587
406 [도서/PDF/소스코드] 델파이 Begin...End - 9장. 예외(Exception) 처리 [1] 관리자 2019.08.19 587
405 Connascence: 커필링을 측정하는 방법(닉 하지스) 험프리 2016.10.17 587
404 [도서/PDF/소스코드] 델파이 Begin...End - 15장. 웹 브로커를 이용한 웹 프로그래밍 [1] 관리자 2019.08.20 586