이끼의 생각

[네이티브앱 vs 모바일웹앱 vs 하이브리드앱] 01. 네이티브 앱 본문

Mobile App

[네이티브앱 vs 모바일웹앱 vs 하이브리드앱] 01. 네이티브 앱

IKKIson 2019. 4. 2. 17:11

 남녀노소 할꺼없이 전세계 수많은 사람들이 스마트폰을 사용하고 있다. 일상생활에 필요한 서비스들이 데스크탑 기반 웹 서비스에서 스마트폰 어플리케이션으로 사용자들의 접근매체가 확장되었다. 그리고 서비스를 제공하는 공급자들도 이젠 웹을 확장하여 모바일까지 당연하게 제공을 해야 수요를 만들 수 있다.

이러한 상황에서 기술선택을 위해선 그룹(기업, 팀)의 환경과 프로젝트의 요구사항 판단이 선행되어야한다. 물론 개발자를 꿈꾸는 CS학생들이나 예비 개발자분들이라면 1번 쯤은 코딩을 해보는 것이 식견과 기량을 높이는데 분명 도움이 될것이다.

 

'모바일 기반 SW를 개발하고 싶은 분들에게 도움이되는 글이 되길 바랍니다.'

 

 모바일 서비스 방식은 Native App(네이티브 앱), Mobile Web&App(모바일 웹앱), Hybrid App(하이브리드 앱) 3가지이며 특징은 다음과 같다.

 

 

Native APP

 네이티브 앱은 흔히 말하는 App(Application)이다. 자신의 스마트폰에서 스토어에서 다운받아 사용하는 앱들이 네이티브 앱이라고 생각하면 된다.

모바일 기기에 최적화 된 언어로 앱스토어에 배포하여 다운로드 가능하다. 버전 관리 시 업데이트는 앱스토어나 플레이스토어에 재배포 후 클라이언트에서 다운로드 해야 한다.

 스마트폰이 처음 등장하고 초기에 모바일앱 시장은 네이티브 앱을 중심으로 형성되어 지금까지도도 가장 큰 부분을 차지하고 있다.

 

 Android는 안드로이드 SDK를 이용하여 Java(자바) 언어로 앱을 개발한다. 최근엔 IntelliJ IDEA의 개발사 JetBrains에서 2011년에 공개한 프로그래밍 언어  Kotlin(코틀린)언어도 공식언어가 되었다. 코틀린은 JVM기반으로 Java와 100% 상호운용이 가능하다.

개발 환경은 자바언어는 예전엔 이클립스를 사용하였고 JetBrains에서 제공하는 Android Studio가 공식 IDE로 사용하면되며 JetBrains의 통합IDE인 IntelliJ에서도 가능하다.

코틀린 역시 Android Studio와 JetBrains에서 사용할 수 있다.

 

 Apple의 아이폰 앱을 개발하기 위해선 iOS 기반 SDK를 이용해 Swift (스위프트)를 이용한다. 스위프트 이전엔 Objective-C를 사용하였고 지금까지 아주 좋은 성능을 보여주고 있다. 스위프트 언어는 2015년에 공개되었으며 클로저, 다중 리턴 타입, 네임스페이스, 제네릭, 타입 인터페이스, 함수형 등 최근의 프로그래밍 패러다임이 들어있는 언어이다.

스위프트와 Objective-C 모두 Apple의 Mac OS에서만 사용가능한 Xcode를 이용하여 개발한다.

1) 좋은 점 
- 웹앱 , 하이브리드 앱보다 높은 성능 

- 고성능이 필요한 개발에 유리.(게임, 고성능 그래픽이나 다양한 멀티미디어를 사용 시)
- 네이티브 API나 라이브러리를 호출하여 플랫폼 기반의 기능 구현

- 각 컴포넌트들이 패키징되있는 형태이며 코드가 기계어로 작성되있어 보안에 유리

- 카메라, GPS 등 모바일 디바이스의 수많은 센서들을 접근 및 사용 가능

- 어플 간 확장성이 높아 기본 앱에 쉽게 접근 및 사용 가능.

- On/Off-line에서 일부 기능들 사용 가능.

- 기존 언어에 익숙한 개발자들이 쉽게 접근

- 플랫폼 공식 앱 스토어를 통한 배포.

2) 아쉬운 점
- 각각의 플랫폼에 한정됨.(타 플랫폼 재사용 불가능)
- 해당 플랫폼에서 요구하는 언어에 제약적

- 안드로이드, 아이폰, 웹 등 각 플랫폼을 별도로 개발해야됨.

- 개발 기간, 비용이 높음.

각 기능과 코드 베이스들의 일관성 보장이 힘듬.

- 해당 언어와 플랫폼의 네이티브 API에 숙련이 필요함.

- 플랫폼 기업의 공식 개발 도구로만 개발가능

배포 및 업데이트 시 앱스토어 및 플레이스토어의 승인절차를 거쳐야 하므로 배포 속도가 느릴 수 있음.

Comments