앱(APP)이란?
애플리케이션(Application)의 줄임말로 PC나 스마트폰, 태블릿 PC 등 스마트기기에서 구동되는 응용프로그램을 말한다.
많은 사람들이 사용하는 메신저인 카카오톡이나 동영상 플랫폼인 유튜브 등을 예로 들 수 있다.
앱은 개발에 따라 네이티브앱 과 하이브리드 앱으로 나뉜다.
- 네이티브앱: 네이티브 앱은 모바일 기기에 최적화된 네이티브 언어인 JAVA, Kotlin, Swift 등을 이용하여 만든 앱이다. 모바일 기기에 최적화돼있기 때문에 앱의 구동 속도가 빠르고 사용자들이 사용하기 편리하다는 장점이 있다. 또한 하이브리드 앱에 비해 구현할 수 있는 기능이 많고 보다 고급적인 기술들을 사용할 수 있다. 하지만 안드로이드 앱과 ios앱을 개발할 때 각 언어가 다름으로 시간과 비용이 든다.
- 하이브리드앱: 하이브리드 앱 일반 앱처럼 보이지만 웹을 기반으로 하고 있으며 네이티브 앱처럼 보여주는 형태의 앱이다. 하이브리드 앱은 안드로이드 앱 개발과 ios앱 개발을 다른 언어를 사용하여 개발해야 하는 네이티브 앱과 달리 안드로이드 앱과 ios앱을 같은 언어로 개발할 수 있기 때문에 빠르게 앱 개발이 가능하고 유지보수 또한 용이하다. 네이티브 앱에 비해 성능이 떨어진다는 단점이 있다.
JAVA
자바는 선마이크로시스템즈의 제임스 고슬링이 개발한 객체 지향적 프로그래밍 언어이다. 웹 애플리케이션 개발, 앱 개발, 서버, 임베디드 프로그래밍 등 다양한 분야에 사용된다는 장점이 있다. 앱 분야에서는 안드로이드 앱을 개발할 수 있는 네이티브 언어이다.. 역사가 깊은 언어이면서 사용자 수도 많기 때문에 오픈소스와 라이브러리가 많다는 장점이 있다. 또한 많은 기업들이 이미 자바를 기반으로 하는 소프트웨어를 사용하고 있다는 장점이 있다.
Kotlin
코틀린은 안드로이드 앱을 개발 할 수 있는 네이티브 언어이다. 기존의 자바의 문제점을 보완하기 위하여 개발됐으며 자바보다 프로그래밍 작성을 간결하게 할 수 있다는 장점이 있다. 기존 자바의 오픈소스/라이브러리를 사용할 수 있으며 안드로이드를 개발한 구글이 코틀린을 공식 언어로 지정했기 때문에 점차 많은 사람들이 앱 개발에 코틀린을 사용하고 있는 추세이다. 단점이라면 자바에 비해 자료가 부족하다는 점이 있지만 구글이 공식 언어로 지정했기 이 단점은 점차 사라질 것으로 보인다. 때문에 안드로이드 앱을 네이티브 언어로 개발하고 싶다면 Kotlin을 사용하는 것을 추천한다.
Swift
스위프트는 ios앱을 개발하기 위한 네이티브 언어이다. 공식적으로 지원하는 IDE는 애플의 Xcode, JetBrains의 AppCode, CLion이 있다. 애플이 적극적으로 지원하고 있고 인기도 많기 때문에 ios 기반 앱을 개발하고 싶다면 Swift를 추천한다.
ReatNative
리 엑트 네이티브는 페이스북이 개발한 오픈소스 모바일 애플리케이션 프레임워크이며 안드로이드 앱과 ios앱을 개발할 수 있는 하이브리드앱 언어이다. 자바스크립트를 사용해서 안드로이드 앱과 ios앱을 모두 개발 할 수 있다는 점이 장점이다. 웹브라우저를 사용하지 않고 네이티브 스레드와 통신하면서 앱을 구동시키기 때문에 웹앱에 비해 성능이 좋다. 자바스크립트를 사용하기 때문에 프런트엔드 개발자 거나 자바스크립트를 사용할 줄 안다면 앱 개발이 가능하다.
빠르게 개발을 필요로 하는 스타트업에서는 많이 사용하는 추세이지만 고차원적인 기술을 적용할 수 없다는 점과 네이티브 앱에 비해 성능이 떨어진다는 점이 단점이다. 또한 네이티브 앱들의 라이브러리에 비해 그 수가 적고 공부를 할 수 있는 커뮤니티나 서적들이 부족하여 초보자들이 접근하기 어려운 언어이다. 현재 리 엑트 네이티브 기반으로 운영되고 있는 앱에는 페이스북, 인스타그램, 에어비엔비 등이 있다.
FLUTTER
플러터는 구글이 개발한 오픈소스 모바일 애플리케이션 개발 프레임워크이며 안드로이드 앱과 IOS 앱을 개발할 수 있는 하이브리드 앱 언어이다. 플러터는 앱의 UI 프레임워크를 만들어 다양한 위젯과 레이아웃을 제공하기 때문에 UI를 개발할 때 편하고 쉽고 빠르게 개발 할 수 있다는 장점이 있다. 하지만 Dart라는 언어를 사용하기 때문에 학습해한다는 단점과 이에 대한 서적이나 라이브러리 정보가 부족하기 때문에 학습이 어렵다는 단점이 있다. 또한 구글이 지속적으로 지원할지가 불투명하다는 단점이 있다.
'IT관련 정보 > 프로그래밍정보' 카테고리의 다른 글
[IT 관련정보] 스토리보드, 화면설계 툴 종류 및 추천 (0) | 2021.06.10 |
---|