앱 개발 방법 / 네이티브 앱, 하이브리드 앱, 크로스플랫폼 앱 장단점

네이티브 앱

Android, iOS 등 각각의 언어로 개발한 앱입니다.

네이티브 앱 종류

Android
Android Studio에서 java 또는 kotlin으로 개발합니다.
Java와 함께 사용 가능한 코틀린은 Java로 변환되기 때문에 컴파일 속도가 느립니다.

iOS
Xcode에서 swift(과거에는 Object-c) 언어로 개발합니다.

네이티브 앱 장점

  • 모든 모바일 네이티브 API 활용이 가능합니다.
  • 3D, 비디오 프로세싱처럼 퍼포먼스가 중요한 앱 개발이 가능합니다.

네이티브 앱 단점

  • Android, iOS 각각 개발하니 중복적인 개발이 발생하고, 언어 습득 시간과 개발 시간이 늘어납니다.

하이브리드 앱

웹뷰에 웹 URL을 감싸서 html, css, js로 개발한 앱입니다.

하이브리드 앱 장점

  • 웹 URL만 있으면 Android, iOS 등 여러 플랫폼을 한 번에 개발 가능합니다.

하이브리드 앱 단점

  • 한정적인 네이티브 API들만 이용 가능합니다. (기본 카메라, 위치, 네트워크 정보, 연락처, 기본 파일 시스템 등)
  • Apache Cordova, PhoneGap 등으로 감싸면 네이티브 API 사용이 좀 더 수월해지나,
    중간다리 역할의 Cordova의 엔진 등을 함께 배포하니 앱 사이즈가 늘어나고 메모리를 더 차지하여 성능에 문제가 갈 수 있습니다.
  • 웹 페이지를 호출하니 느리고, 네트워크가 끊기면 작동이 불가합니다.
  • 웹이 sql injection 공격에 취약해 해킹의 소지가 있습니다.
  • 네비게이션 바, 버튼 등을 js로 자연스럽게 직접 구현하기 어렵습니다.

크로스플랫폼 앱

Android, iOS가 이해할 수 있는 코드로 변환되는 언어로 개발한 앱입니다.

크로스플랫폼 앱 종류

리액트 네이티브
리액트로 개발 > js로 컴파일 > js 엔진으로 실행합니다.

Flutter
Dart 언어로 개발 > c, c++로 컴파일합니다.
Canvas UI 컴포넌트를 이용해 자체적으로 화면을 그립니다.

Xamarin
C#으로 개발 > intermediate(IL)로 컴파일 > 네이티브 어셈블리 코드로 컴파일링합니다.

크로스플랫폼 앱 장점

  • 안드로이드, iOS 여러 플랫폼을 한 번에 개발할 수 있습니다.

크로스플랫폼 앱 단점

  • 앱 배포 시 그래픽 엔진 코드와 함께 패키지되니 무겁고, 호스트 플랫폼의 UI 컴포넌트를 사용할 수 없습니다.
  • 변환 프로세스가 있기에 수백만 명이 사용하거나 퍼포먼스가 중요한 경우 약간 느려서 이슈가 생길 수 있습니다.
  • 크로스플랫폼 단에서 버그가 발생하거나 디버깅이 까다로운 등 한계점에 부딪힐 수 있습니다.
  • 크로스플랫폼 서비스가 중지되면 유지보수 받기 어렵고 새로 개발해야할 수 있습니다.

Leave a comment