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

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

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

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

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 22115
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20659
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22701
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28461
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29722
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25071
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46008
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181771
1363 [TCoffeeAndCode 세미나] 보안, 인공지능, 데브옵스 등 관리자 2021.04.21 396
1362 보안을 주제로 한 가장 훌륭한 컨텐츠 TOP 4 관리자 2021.04.20 461
1361 윈도우 & 리눅스에 RAD서버 손쉽게 배포하기 관리자 2021.04.12 560
1360 플루언트 디자인 시스템으로 애플리케이션 현대화하기 관리자 2021.04.08 425
1359 C++에서 루프(FOR LOOPS) 활용하기 관리자 2021.04.06 456
1358 MODERNLISTVIEW 라이브러리 – 커스터마이징 가능한 강력한 크로스 플랫폼 라이브러리 활용 방법 관리자 2021.04.06 432
1357 파스칼(PASCAL) 언어 50년과 델파이(DELPHI) 관리자 2021.03.31 1353
1356 이 달의 기술자료 - 2021년 04월 험프리 2021.03.25 624
» 모바일 앱 개발, 가장 좋은 선택은? 관리자 2021.03.18 664
1354 [10.4 시드니][업데이트 2] TNUMBERBOX – 새로운 VCL 컨트롤 관리자 2021.03.08 581
1353 가장 강력한 ‘데이터베이스 연동’ 기능을 자체적으로 제공하는 프레임워크는? (델파이 VS. WPF VS. ELECTRON) 관리자 2021.03.04 767
1352 [UX Summit 요약] 윈도우10에 멋진 플루언트UI 룩앤필을 델파이로 구현하기 #2 (Giving your Apps the Fluent UI Look and Feel with Delphi #2) 관리자 2021.03.02 760
1351 [10.4 시드니][업데이트 2] TCONTROLLIST – 새로운 VCL 컨트롤 관리자 2021.03.02 515
1350 네이티브로 IOS 월렛 개발하기 (델파이, C++빌더) 관리자 2021.03.02 556
1349 [10.4 시드니][업데이트 2] RAD스튜디오 10.4.2 자동 설치(SILENT INSTALLER) 관리자 2021.03.02 605
1348 이 달의 기술자료 - 2021년 03월 험프리 2021.02.26 473
1347 [10.4 시드니][업데이트 2] What's NEW! 신기능 자세히 보기 관리자 2021.02.26 608
1346 [고객 사례- 델파이, 교육] 교육용 프로그래밍 도구 – DEVFLOWCHARTER 관리자 2021.02.19 596
1345 TCOFFEE & CODE WEEK 관리자 2021.02.19 403
1344 26년, 델파이 이야기 관리자 2021.02.17 2348