서론

하이브리드 앱을 제작하고자 할 때 사용되는 여러 프레임워크 중 하나인 코르도바(cordova)의 특징에 대해 살펴보고자 한다.



Cordova 란?

Cordova 는 Apache 재단에서 지원하고 있는 하이브리드 앱을 제작하는 프레임워크이다. 대표적으로 지원하는 플랫폼에는

  • Andriod
  • iOS
  • window Phone 등이 존재한다.

Cordova 기반의 여러 프로젝트

Cordova 프로젝트를 기반으로 여러 프로젝트들이 진행되고 있고 그 중에 대표적인 프로젝트에는

  • PhoneGap : 대표적인 모바일 개발 프레임워크로 HTML, CSS, JS를 활용해 모바일 기기를 위한 앱개발이 가능하다
  • Ionic : Angular.js를 활용한 프레임워크로 다양한 유틸리티를 지원하여 iOS, 안드로이드처럼 각 운영체제에 따른 개별적 수정이 가능하며 UI 컴포넌트 제공으로 넓은 사용자층을 보유하고 있다.
  • Monaca

등이 존재한다.

Cordova 아키텍처

아래 그림을 통해 전체적인 코르도바의 아키텍처를 살펴보면

cordova아키텍처


  1. WebView

코르도바 사용이 가능한 웹뷰는 전체 사용자 인터페이스와 함께 애플리케이션을 제공할 수 있다. 일부 플랫폼에서는 웹뷰와 네이티브 애플리케이션 구성요소를 혼합한 대규모 하이브리드 애플리케이션 내의 구성요소가 될 수도 있다.

  1. Web App

응용 프로그램 코드가 있는 부분이다. 응용 프로그램 자체는 웹 페이지로 구현되며, 기본적으로 CSS, Javascript, 이미지, 미디어 파일이나 기타 리소스를 참조하는 index.html 이름의 로컬 파일로 구현된다. 이 앱은 기본 응용 프로그램 래퍼 내의 웹뷰에서 실행되고 이 래퍼는 앱 스토어에 배포된다. 이 컨테이너에는 매우 중요한 파일 - config.xml 이 있다. 이 파일은 앱에 대한 정보를 제공하고 방향 전환에 응답하는지 여부와 같이 앱 작동방식에 영향을 미치는 매개변수를 지정한다.

  1. Plugins

플러그인은 코르도바 생태계의 필수적인 부분이다. 코르도바와 네이티브 구성요소들이 서로 통신할 수 있는 인터페이스를 제공하고 표준 장치 API에 바인딩할 수 있으며 자바스크립트에서 네이티브 코드를 호출할 수 있다. 아파치 코르도바 프로젝트는 CorePlug-in 이라는 플러그인 세트를 유지한다. 이러한 코어 플러그인을 통해 응용 프로그램은 배터리, 카메라, 연락처 등의 기능에 접근할 수 있다. 코어 플러그인 외에도 모든 플랫폼에서 사용할 수 없는 기능에 추가 바인딩을 제공하는 여러 플러그인도 있다. 플러그인 검색이나 npm 사용으로 코르도바 플러그인 검색을 하고 플러그인 개발 가이드에 설명된 대로 직접 플러그인을 개발할 수도 있다.

*[출처] 모바일 하이브리드 앱개발을 위한 아파치 코르도바(Cordova) 작성자 SD아카데미*



정리하며..

일반적인 웹프로그래밍 언어와 코드로 앱의 연동까지 할 수 있다고 하니 서비스 개발자라면 반드시 하나의 프레임워크 정도는 공부해볼 필요가 있을 것 같다. 만약 모바일 기기의 고유의 기능이 필요한 경우가 아니라면 요새는 보통 웹앱으로 모바일 환경에서도 자연스러운 UI로 웹페이지나 서비스를 만드는 경우가 보통이지만, 모바일 카메라를 액세스 한다던지 GPS 기능을 필요로 한다던지 모바일 기기의 API 사용이 필요한 경우라면 이렇게 웹과 코르도바 기반의 프레임워크를 조합하여 웹앱에서 모든 기능을 파워풀하게 제공하는 서비스로 개발할 수 있을거라는 생각이 든다.