본문 바로가기
기술 분석

모바일 어플리케이션 개발 방식 3가지

by eurowondollaryen 2021. 9. 8.

서론

제가 대학교에서 한창 공부하던 2016년때만 해도, 모바일 어플리케이션을 개발하는 잘 알려진 방법은 네이티브 개발 방식밖에 없었습니다. (안드로이드 기준 OS 버전이 아이스크림 샌드위치에서 젤리빈으로 넘어가던 시기) 학교에서도 실제로 안드로이드 스튜디오로 텀 프로젝트를 진행했었습니다. 하지만 2021년이 끝나가는 지금, 모바일 어플리케이션을 개발하는 방법이 너무 많아서, 어떤 방법을 선택해야 할 지 막막합니다. 그래서 한 번 가볍게 조사를 해보았습니다.

 

1. 하이브리드

- Apache Cordova & Ionic

- PhoneGap

동작 원리

- 어플인 것 처럼 흉내내는 것이며, 실제로는 Native Application의 WebView 위에서 동작합니다.

장점

- Native Application에 대한 지식이 필요없으며, HTML, CSS, JS만 알면 되어서 상대적으로 만들기 쉽습니다.

단점

- UI를 한땀한땀 다 짜야합니다.

- OS 단의 고성능을 요하는 기능을 사용할 수 없습니다. ex) 비디오 관련 기능 등..(카메라, 위치, 네트워크 정보, 연락처, 파일 시스템 정도는 지원합니다.)

 

2. 크로스플랫폼

- Flutter (Dart -> C/C++)

- Xamarin(C# -> IL(Intermediate Language, iOS/Android 둘 다 이해 가능한 언어)

- React Native, Vue Native

동작 원리

- 네이티브 코드가 아닌 것으로 코딩한 후, iOS/Android Native 어플리케이션으로 변환한 뒤 구동합니다.

장점

- 백엔드 개발자 등 다양한 개발자들이 개발할 수 있습니다.

- 여러 플랫폼을 별도로 개발하지 않아도 되어서, 개발비용이 적으며, 관리가 편리합니다. (low cost & large reach)

단점

- WebView로 감싸는 것 보다는 낫지만, 그래도 Native 앱보다는 성능적으로 좋지는 않습니다.

- 그래픽의 퀄리티를 높게 가져가기에는 좋지 않습니다.

- 네이티브만의 기능이 없습니다.

- 업데이트가 느립니다.

 

3. 네이티브

- Java/Kotlin(Android Studio, Android IDE, Intellij IDEA)

- Swift(XCode, AppCode, Atom)

동작 원리

- 별도 가공 과정을 거치지 않고 머신에서 컴파일되어 동작합니다.

장점

- 디바이스의 모든 기능, 성능을 모두 끌어올려서 사용 가능합니다. ex) 3d 그래픽

단점

- 2가지 플랫폼의 언어를 배워야 하는 점

- 둘 다 개발하려면 맥북을 사야합니다...

 

개인적인 생각 및 결론

React Native는 써봤는데, 어플 자체가 좀 무겁다는 생각이 들었고, Ionic & Cordova도 사용해보았는데, 확실히 개발이 편하지만, 웹에서 동작하는 티가 나는 것을 느꼈습니다. Android Studio로 피아노 앱을 개발해본 적이 있는데, 확실히 앞선 두 방법보다 빠른 것이 느껴졌습니다.

 

React.js로 웹 개발을 하고 있는데, 어플리케이션도 동일하게 개발하고 싶다면 React Native,

React 또는 네이티브 어플리케이션 지식이 없는 상태에서, 복잡하지 않은 토이프로젝트를 개발하려면 Ionic & Cordova를 사용하는 것이 좋을 것 같고,

사용자 입장에서의 레이턴시를 용납할 수 없다면 네이티브로 하는 것이 좋을 것 같습니다.