KR101684454B1 - 하이브리드 애플리케이션 및 이의 이벤트 처리 방법 - Google Patents

하이브리드 애플리케이션 및 이의 이벤트 처리 방법 Download PDF

Info

Publication number
KR101684454B1
KR101684454B1 KR1020150094838A KR20150094838A KR101684454B1 KR 101684454 B1 KR101684454 B1 KR 101684454B1 KR 1020150094838 A KR1020150094838 A KR 1020150094838A KR 20150094838 A KR20150094838 A KR 20150094838A KR 101684454 B1 KR101684454 B1 KR 101684454B1
Authority
KR
South Korea
Prior art keywords
plug
event
ins
native
hybrid application
Prior art date
Application number
KR1020150094838A
Other languages
English (en)
Inventor
조성만
김기현
양유라
이현민
장윤식
전만성
한만호
한성준
Original Assignee
주식회사 엘지씨엔에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지씨엔에스 filed Critical 주식회사 엘지씨엔에스
Priority to KR1020150094838A priority Critical patent/KR101684454B1/ko
Application granted granted Critical
Publication of KR101684454B1 publication Critical patent/KR101684454B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • G06F17/2705
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따르면, 사용자 단말기에서, 하이브리드 애플리케이션이 네이티브 이벤트 처리를 수행하는 방법에 있어서, 상기 사용자 단말기 상에서 발생하는 네이티브 이벤트의 종류에 따른 플러그인들의 정보를 파싱하는 단계; 상기 파싱된 플러그인 정보들을 메모리에 로드하는 단계; 및 상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 단계를 포함하는, 하이브리드 애플리케이션의 이벤트 처리 방법이 제공된다.

Description

하이브리드 애플리케이션 및 이의 이벤트 처리 방법{HYBRID APPLICATION AND EVENT HANDLING METHOD THEREOF}
본 발명은 하이브리드 애플리케이션의 이벤트 처리 방법에 관한 것으로, 상세하게는 하이브리드 애플리케이션이, 동작 과정의 전 시점(life-cycle)에서 발생하는 이벤트를 처리하는 방법에 관한 것이다.
스마트폰을 쓰는 인구가 증가하면서 그에 비례하여 사용자들이 스마트폰, 태블릿 등의 사용자 단말기 상에 설치하여 사용하는 애플리케이션의 개발 속도 또한 기하급수적으로 증가하고 있다.
애플리케이션은 크게 네이티브 애플리케이션, 웹 애플리케이션 및 이 둘을 혼합한 하이브리드 애플리케이션으로 그 종류가 나누어진다.
네이티브 애플리케이션은 iOS 또는 안드로이드와 같은 특정 플랫폼에 최적화된 언어로 구현한 애플리케이션으로 사용자 단말기 상에 탑재되어 있는 GPS, 카메라, 가속 센서 등의 기능을 모두 활용할 수 있으며 그에 따라 애플리케이션의 실행 속도가 신속하다는 장점이 있다. 하지만 네이티브 애플리케이션은 실시간으로 변화하는 서비스를 빠르게 적용하는데에 한계가 있으며, 유지보수 측면에 있어서도 새로운 기능을 추가하거나 기존 기능을 수정하려면 해당 애플리케이션을 재설치 또는 업그레이드 해야 하므로 시간과 비용이 많이 소요되는 단점이 존재하였다.
웹 애플리케이션은 사용자에게 모바일 웹사이트의 기능을 제공하여주는 애플리케이션으로 HTML, JavaScript 등 일반적인 웹 기술로 개발된 웹 페이지를 사용자 단말기 상에 표시하여 주는 역할을 수행한다. 웹 애플리케이션은 네이티브 애플리케이션과 같이 설치형이 아니기 때문에 사용자가 브라우저를 열고 해당 사이트의 URL로 접근하면 웹과의 통신을 통해 사용자에게 해당 웹사이트의 서비스를 제공하게 된다. 이 경우 사용자 단말기와 웹사이트 간의 통신이 원활하지 못할 때에는 애플리케이션의 동작이 중단될 수 있으며, 웹 애플리케이션이 사용자 단말기 상의 고유 기능을 이용할 없게 되는 단점이 존재한다.
하이브리드 애플리케이션은 네이티브 애플리케이션과 웹 애플리케이션의 장점을 결합한 것으로, 웹 애플리케이션을 네이티브 애플리케이션으로 포장한 것이라 할 수 있다. 하이브리드 애플리케이션은 웹 페이지를 구현하는 기술로 개발되었지만 그 틀은 네이티브 애플리케이션이기 때문에 사용자 단말기의 고유 기능들을 모두 사용할 수 있으며, 웹 리소스를 사용하기 때문에 사용자 단말기의 운영체제와 관계없이 동작하는 OSMU(One Source Multi Use)의 특징을 지닌다. 따라서 최근의 많은 애플리케이션들은 하이브리드 형태로 제작되고 있는데, 하이브리드 애플리케이션은 웹 리소스를 사용하여 동작되기 때문에 웹 리소스가 로딩된 후에 API(Application Programming Interface)를 사용하여 애플리케이션의 각 기능들을 동작시킬 수 있다.
따라서 하이브리드 애플리케이션은 웹 리소스가 로딩되기 전 시점 또는 웹 리소스의 종료 시점과 같은 특정 시점에 이벤트 처리를 할 수 없어 이벤트 처리시 수행되어야 할 기능을 구동시키기 어려운 단점이 있다. 예를 들어, 보안 모듈, 공인인증서, 가상키보드, 앱위변조 검증 등의 기능은 애플리케이션이 실행되는 시점에서 처리가 필요하나, 기존의 하이브리드 애플리케이션에서는 위와 같이 원하는 애플리케이션의 동작 시점(Life-Cycle)에 맞추어 처리를 수행하지 못했던 단점이 있었다.
도 1은 기존의 방식에 따른 하이브리드 애플리케이션이 동작하는 방식을 개략적으로 나타내는 블록도이다.
도 1을 참조하면, 기존의 하이브리드 애플리케이션에서는 네이티브 플랫폼 상에서 이벤트가 발생하더라도 이를 하이브리드 애플리케이션 프레임워크 즉, 폰갭(Phonegap), 앱스프레소(Appspresso), 티타니움(Titanium)등을 통해 생성된 인터페이스가 감지하고, 하이브리드 애플리케이션이 웹 리소스를 이용하여 웹 뷰(Web view)를 통해 이벤트를 처리하였다. 따라서, 기존의 하이브리드 애플리케이션 상에서는, 네이티브 플랫폼에서 수행되어야 할 이벤트가 애플리케이션 실행과정에서 감지되더라도 웹 뷰가 로딩되기 전에는 처리가 불가능하다는 단점이 존재하였고, 그에 따라 특정시점에 처리되어야만 하는 기능들을 제 시간에 수행할 수 없었다.
본 발명은 전술한 종래기술의 문제점을 해결하기 위한 것을 그 목적으로 한다.
본 발명의 목적은 하이브리드 애플리케이션이 동작하는 전 시점에서 발생한 네이티브 이벤트를 처리할 수 있도록 하는 것이다.
본 발명의 목적은 하이브리드 애플리케이션의 이벤트 처리 모듈을 확장할 수 있도록 하는 것이다.
본 발명의 다른 목적은 하이브리드 애플리케이션의 개발 영역을 확대하고, OSMU(One Source Multi Use)의 효과를 향상시켜 개발에 소요되는 시간 및 비용을 절감하기 위한 것이다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예는 사용자 단말기에서, 하이브리드 애플리케이션이 네이티브 이벤트 처리를 수행하는 방법에 있어서, 상기 사용자 단말기 상에서 발생하는 네이티브 이벤트의 종류에 따른 플러그인들의 정보를 파싱하는 단계; 상기 파싱된 플러그인 정보들을 메모리에 로드하는 단계; 및 상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 단계를 포함하는, 하이브리드 애플리케이션의 이벤트 처리 방법을 제공한다.
상기 하이브리드 애플리케이션의 이벤트 처리방법은 웹 리소스를 로딩하여 상기 사용자 단말기를 통해 제공하는 단계를 더 포함할 수 있다.
상기 네이티브 이벤트의 종류에 따라 호출되는 플러그인은 하나의 인터페이스를 통해 복수의 운영체제와 호환가능한 것일 수 있다.
상기 하이브리드 애플리케이션의 이벤트 처리 방법에서 상기 네이티브 이벤트에 따라 호출되는 플러그인은 복수일 수 있다.
상기 하이브리드 애플리케이션의 이벤트 처리 방법은 상기 복수의 플러그인들을 설정된 우선순위에 따라 순차적으로 호출할 수 있다.
상기 하이브리드 애플리케이션의 이벤트 처리 방법은 상기 복수의 플러그인들 중 상위의 우선순위를 가지는 플러그인이 그보다 하위의 우선순위를 가지는 플러그인의 호출 여부를 결정하는 단계를 더 포함할 수 있다.
상기 플러그인들의 정보는 하이브리드 애플리케이션 개발 도구를 통해 생성된 것일 수 있다.
상기 플러그인들은 하이브리드 애플리케이션의 개발 단계에서 포함되거나, 추후 업데이트를 통해 하이브리드 애플리케이션에 포함되는 것일 수 있다.
상기 네이티브 이벤트의 종류는 애플리케이션의 실행 및 종료, 웹 뷰의 실행, 하이브리드 엔진 구동, 푸쉬, 메뉴, 키, 로그, MDM 중 어느 하나 이상으로 구성될 수 있다.
상기 플러그인들의 정보를 파싱하는 단계는, 플러그인의 종류, 플러그인의 고유 아이디, 플러그인 사용 여부, 운영체제 별 플러그인의 클래스명, 플러그인의 우선순위 중 적어도 하나를 포함하는 XML 파일을 파싱하는 것일 수 있다.
상기와 같은 목적을 달성하기 위해, 본 발명의 다른 실시예는 사용자 단말기에서, 네이티브 이벤트 처리를 수행하는 하이브리드 애플리케이션으로서, 상기 사용자 단말기 상에서 발생하는 네이티브 이벤트 종류에 대응하는 플러그인들의 정보를 파싱하고 메모리에 로드하는 플러그인 준비 모듈; 상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 이벤트 처리 모듈을 실행하기 위하여 매체에 저장된, 하이브리드 애플리케이션을 제공한다.
상기 하이브리드 애플리케이션은 웹 리소스를 로딩하여 상기 사용자 단말기를 통해 제공하는 웹 뷰를 포함할 수 있다.
상기 네이티브 이벤트의 종류에 따라 호출되는 플러그인은 하나의 인터페이스를 통해 복수의 운영체제와 호환가능한 것일 수 있다.
상기 이벤트 처리 모듈은 각각의 네이티브 이벤트에 따라 복수의 플러그인을 호출하는 것을 특징으로 할 수 있다.
상기 이벤트 처리 모듈은 상기 복수의 플러그인들을 개발자가 설정한 우선순위에 따라 순차적으로 호출할 수 있다.
상기 이벤트 처리 모듈은 상기 복수의 플러그인 중 상위의 우선순위를 가지는 플러그인이 그보다 하위의 우선순위를 가지는 플러그인의 호출 여부를 결정하도록 할 수 있다.
상기 플러그인들의 정보는 하이브리드 애플리케이션 개발 도구를 통해 생성된 것일 수 있다.
상기 플러그인들은 하이브리드 애플리케이션의 개발 단계에서 포함되거나, 추후 업데이트를 통해 하이브리드 애플리케이션에 포함되는 것일 수 있다.
상기 플러그인 준비 모듈은 플러그인의 종류, 플러그인의 고유 아이디, 플러그인 사용 여부, 운영체제 별 플러그인의 클래스명, 플러그인의 우선순위 중 적어도 하나를 포함하는 XML 파일을 파싱할 수 있다.
본 발명이 다른 실시예는 하이브리드 애플리케이션을 설계하기 위한 하이브리드 애플리케이션 개발 도구에 있어서, 복수개의 플러그인들을 제공하는 플러그인 제공부; 사용자 단말기 상에서 발생하는 네이티브 이벤트들과, 상기 복수개의 플러그인 중 개발자가 선택한 플러그인들의 연동을 설정하는 이벤트 연동부; 및 상기 네이티브 이벤트 발생에 따라 상기 연동된 플러그인들의 기능이 상기 사용자 단말기 상에서 수행될 수 있도록 하는 이벤트 핸들러를 생성하는 이벤트 핸들러 생성부를 포함한, 하이브리드 애플리케이션 개발 도구.를 제공한다.
상기 이벤트 핸들러는 상기 네이티브 이벤트의 발생에 따른 알림을 개발자에게 제공하는 기능을 더 포함할 수 있다.
상기 이벤트 핸들러는 개발자로부터 커스텀 데이터를 입력받아 이벤트 처리 과정에서 이용되도록 할 수 있다.
상기 이벤트 핸들러는 개발자로부터 데이터를 입력받아 각 플러그인의 설정값을 변경하는 기능을 더 포함할 수 있다.
상기 이벤트 핸들러는 상기 플러그인들이 특정한 운영체제 하에서만 동작하도록 설정하는 기능을 포함할 수 있다.
본 발명이 다른 실시예는 네이티브 이벤트 처리를 수행하는 사용자 단말기로서, 상기 사용자 단말기 상에서 발생하는 네이티브 이벤트 종류에 대응하는 플러그인들의 정보를 파싱하고 메모리에 로드하는 플러그인 준비부; 및 상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 이벤트 처리부를 포함하는, 사용자 단말기를 제공한다.
상기 사용자 단말기는 웹 리소스를 로딩하여 제공하는 웹 뷰 제공부를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 네이티브 애플리케이션에서만 구현 가능하던 보안 기능, 공인인증서 기능, 애플리케이션 위변조 검증 기능 등을 하이브리드 애플리케이션에서도 구현할 수 있다.
본 발명의 일 실시예에 따르면 사용자 단말기 상에서의 이벤트 발생을 개발자에게 알리고 개발자가 이에 따라 원하는 기능을 원하는 시점에 동작시키도록 추가적인 설정을 수행할 수 있다.
본 발명의 일 실시예에 따르면 하이브리드 애플리케이션 상에서의 추가 기능 확장이 편리하여지고 각 기능들 간의 우선순위를 개발자가 정할 수 있으며, 상위 우선순위를 가지는 기능이 하위 우선순위를 가지는 기능을 제어하도록 설정할 수 있다.
본 발명에 따르면, 개발자가 하이브리드 애플리케이션의 확장 기능에 커스텀한 데이터를 전달할 수 있고, 각 기능의 설정값들을 이벤트 발생시 수정/변경할 수 있다.
도 1은 기존의 방식에 따른 하이브리드 애플리케이션이 동작하는 방식을 개략적으로 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 하이브리드 애플리케이션의 구성을 간략하게 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따른 하이브리드 애플리케이션의 실행 과정을 개략적으로 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 하이브리드 애플리케이션 상의 플러그인들을 설정하는 XML 파일의 예시이다.
도 5는 본 발명의 일 실시예에 따른 네이티브 코드의 예시로, 도 4에서 안드로이드의 AppNPlugin 클래스가 실행되었을 때 동작하는 네이티브 코드를 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따른 하이브리드 애플리케이션 개발 도구의 구성을 나타낸 블록도이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
본 명세서 상에서 “네이티브”란 사용자 단말기가 웹 상의 리소스를 사용하지 않고 사용자 단말기 본연의 기능만을 사용하는 것을 의미하며, “하이브리드”란 사용자 단말기가 “네이티브”의 기능과, 웹 서버에 접속하여 웹 리소스를 통해 접근 가능한 기능들을 함께 사용하는 것을 의미한다. 예를 들어, 네이티브 이벤트라 함은 사용자 단말기의 기본 운영체제 상에서 발생하여 프로그램에 의해 감지되고 처리될 수 있는 동작 또는 사건을 의미할 수 있다.
도 2는 본 발명의 일 실시예에 따른 하이브리드 애플리케이션(300)의 구성을 간략하게 나타낸 것이다.
본 발명의 하이브리드 애플리케이션(300)은 사용자 단말기(100) 상에 설치되어 구동될 수 있으며, 하이브리드 애플리케이션(300)이 사용자 단말기(100) 상에 설치되는 루트는 각종 애플리케이션 스토어를 통한 것일 수 있다. 하이브리드 애플리케이션의 다운로드는 무료로 이루어질 수도 있지만, 사용자는 애플리케이션 스토어 상에서 유료로 등록된 하이브리드 애플리케이션을 다운로드하여 사용자 단말기(100) 상에 설치하기 위해서 소정의 가격을 지불하여야 할 수 있으며, 해당 애플리케이션의 제작사는 이를 통해 수익을 창출할 수도 있다. 또한, 하이브리드 애플리케이션의 설치 자체는 무료이지만, 이후 추가적인 기능을 사용하기 위해서는 소정의 금액을 지불하여야 하는 것처럼 무료인 부분과 유료인 부분이 구분되는 부분 유료화 방식으로 수익모델이 설정될 수 있다.
본 발명의 하이브리드 애플리케이션(300)은 MXP 등의 하이브리드 애플리케이션 개발 도구를 통해 설계될 수 있다. 예를 들면, 하이브리드 애플리케이션의 개발자는 하이브리드 애플리케이션 개발 도구가 제공하는 설계 기능을 이용하여 하이브리드 애플리케이션의 뼈대를 구성하고, 추가적인 코딩을 수행하여 하이브리드 애플리케이션(300)을 설계할 수 있다. 하이브리드 애플리케이션 개발 도구에 관해서는 추후에 상세히 설명하기로 한다.
하이브리드 애플리케이션(300)이 설치되는 사용자 단말기(100)는 동작에 필요한 정보들을 저장하는 메모리, 동작에 필요한 각종 연산을 수행하는 CPU와 같은 중앙처리장치, 입출력 장치 등을 포함하여 구성될 수 있다.
이러한 사용자 단말기(100)는 휴대폰, 스마트폰, PDA(Personal Digital Assistant), PMP(Portable Multimedia Player), 태블릿 PC 등과 같이 네트워크를 통하여 웹 서버와 연결될 수 있는 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 하이브리드 애플리케이션(300)은 플러그인 준비 모듈(310), 이벤트 처리 모듈(320) 및 웹 뷰(330)로 구성될 수 있다. 플러그인 준비 모듈(310), 이벤트 처리 모듈(320) 및 웹 뷰(330)는 하이브리드 애플리케이션(300)의 구성으로서 설명되나, 사용자 단말기(100) 측면에서 본다면, 이러한 플러그인 준비 모듈(310), 이벤트 처리 모듈(320) 및 웹 뷰(330)가 사용자 단말기(100) 내에서 각각의 동작을 수행할 수 있도록 하는 프로그램 모듈들로 구비된다고 볼 수도 있다. 이러한 프로그램 모듈들은 각 동작을 수행하거나, 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하는 개념이지만, 이에 제한되지는 않는다.
도 2에 개시되는 네이티브 플랫폼(200)은 사용자 단말기(100)를 기본적으로 동작시키는 모바일 운영체제이며 사용자 단말기(100) 상에서 발생하는 각종 이벤트를 처리하는 기능을 제공할 수 있다. 모바일 운영체제는 대표적인 iOS, 안드로이드 등과 같이 사용자 단말기(100)의 종류에 따라 상이할 수 있으며, 본 발명의 하이브리드 애플리케이션(300)은 이와 같은 단말기의 종류를 인식하여 각 네이티브 플랫폼(200) 고유의 이벤트에 따라 알맞은 플러그인 기능을 사용 또는 확장하게 할 수 있다.
일 실시예에 따르면, 상기와 같은 네이티브 이벤트의 종류에는 애플리케이션의 실행, 웹 뷰의 생성 및 처리, 하이브리드 엔진 구동, 푸시, 메뉴, 키, 로그, MDM(Mobile Device Management), 애플리케이션의 종료와 관련된 것 등이 포함될 수 있다.
하이브리드 애플리케이션(300)이 실행되면, 플러그인 준비 모듈(310)은 플러그인 정보들을 파싱하고 메모리에 로드할 수 있다. 파싱이란, 일련의 문자열을 의미있는 토큰(token)으로 분해하여 분석하는 것을 의미한다. 본 발명의 일 실시예에 따르면, 플러그인 정보들은 XML 파일의 형태로 저장되어 있을 수 있으나 이에 국한되지는 않는다. 플러그인 준비 모듈(310)은 XML 파일에 저장된 플러그인 정보에 포함되어 있는 우선순위를 참조하여 우선순위가 높은 플러그인부터 순차적으로 메모리에 로드되도록 할 수 있다.
본 발명에서 개시되는 하이브리드 애플리케이션(300) 내부에 구비된 이벤트 처리 모듈(320)은 웹 뷰의 로딩 유무와 관계없이 사용자 단말기(100) 상에서 발생한 각 이벤트들에 대응되는 플러그인을 호출하고 해당 플러그인의 로직을 이용하여 이벤트를 처리할 수 있다. 즉, 이벤트 처리 모듈(320)은 웹 뷰의 로딩이 시작하기 전에도 이벤트 처리가 가능하며, 통신 장애 등으로 인해 사용자 단말기(100)가 웹 서버에 접속하고 있지 못한 상황에도 이벤트 처리를 가능케 할 수 있다.
기존의 하이브리드 애플리케이션에서는 웹 뷰 로딩 전 API 호출이 이루어지더라도, 웹 뷰의 로딩이 완료된 후 웹 뷰에서 제공하는 JavaScript API 등을 사용하여 네이티브 이벤트에 대응되는 플러그인 모듈의 로직을 수행하였지만, 본 발명에서 개시되는 하이브리드 애플리케이션(300)은 JavaScript API를 사용하지 않고 동작이 가능하도록 설계되어서, 웹 뷰의 동작과 관계없이 이벤트 처리가 가능하다.
하이브리드 애플리케이션(300)의 이벤트 처리 모듈(320)은 이벤트를 수신하여 이벤트 유형, 우선순위, 운영체제의 종류 등에 따라 사용할 플러그인을 결정하여 해당 플러그인을 호출하고 로직을 수행함으로써 모든 시점의 이벤트 처리를 가능하게 한다. 이로 인하여 기존의 하이브리드 애플리케이션에서 웹 리소스를 불러오지 못한 상태에서는 수행할 수 없었던 기능들도 수행할 수 있게 된다.
일 실시예에 따른 이벤트 처리 모듈(320)의 구성을 보다 상세하게 살펴보면, 발생하는 이벤트들의 속성을 확인하는 파라미터 확인 모듈(321)과 발생한 이벤트에 따라 호출되어야 할 플러그인의 종류와 개수 및 그 순서를 결정하는 플러그인 호출 모듈(322)으로 구성될 수 있다.
일 실시예에 따르면, 파라미터 확인 모듈(321)은 이벤트 처리 모듈(320)이 네이티브 플랫폼(200)으로부터 발생 이벤트를 수신하면 해당 이벤트의 유형, 네이티브 플랫폼(200)에 따른 운영체제 종류, 해당 이벤트와 연동되어 있는 플러그인들의 우선순위 등을 확인할 수 있다. 파라미터 확인 모듈(321)이 확인하는 이러한 설정값들은 플러그인 준비 모듈(310)이 하이브리드 애플리케이션(300)의 구동 초기에 메모리에 로드한 값과 동일할 수도 있지만, 개발자가 입력한 커스텀 데이터에 의해 변경된 값일 수도 있다.
일 실시예에 따르면, 플러그인 호출 모듈(322)은 상기 파라미터 확인 모듈(321)에서 체크된 설정값들을 토대로 해당 이벤트와 연동되어 있는 플러그인들 중 우선순위가 높은 플러그인들부터 순차적으로 호출을 수행할 수 있다. 또한, 플러그인 호출 모듈(322)은 우선순위가 높은 플러그인이 그보다 하위의 우선순위를 가진 플러그인을 호출할 것인지 여부를 결정하면, 그 결정에 따라 플러그인을 호출하거나 호출하지 않을 수 있다.
본 발명의 일 실시예에 따른 웹 뷰(330)는 웹 서버로부터 웹 리소스를 받아 사용자 단말기(100)의 표시부 등을 통해 사용자에게 제공하는 역할을 수행할 수 있다. 일 실시예에 따르면, 사용자 단말기(100)가 웹 서버와 통신하기 위해서 사용하는 통신망은 유선 및 무선 등과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 예를 들면, 근거리 통신망(LAN: Local Area Network), 도시권 통신망(MAN: Metropolitan Area Network), 광역 통신망(WAN: Wide Area Network) 등 다양한 통신망으로 구현될 수 있다. 바람직하게는, 본 발명의 일 실시예에 따른 통신망은 공지의 월드와이드웹(WWW: World Wide Web) 등일 수도 있다.
웹 뷰(330)는 사용자 단말기(100) 상에서 웹 리소스를 통해 해당 하이브리드 애플리케이션(300)이 제공하고자 하는 서비스를 제공할 수 있다. 사용자들이 가장 빈번하게 이용하는 하이브리드 애플리케이션 종류인 포탈 사이트 접속 애플리케이션을 예로 들어보면, 기본적인 웹 기능 이외에 자동 로그인 관리, 화면 캡쳐, 영어사전 기능, 메모 기능, pdf 저장 기능 등이 포함되어 있으며, 웹 뷰(330)는 사용자의 선택에 따라 이러한 기능들에 대한 플러그인을 실행시킬 수 있다.
기존의 하이브리드 애플리케이션에서는 웹 뷰가 로딩되고 나서 웹 리소스를 통해 플러그인을 호출하여 사용자 단말기(100) 상에서 발생하는 이벤트들에 대한 처리를 수행할 수 있었다. 따라서, 하이브리드 애플리케이션이 실행되고 웹 뷰가 로딩되지 않은 시점이나, 웹 뷰가 종료되고 하이브리드 애플리케이션이 종료되기 전 시점 등에는 이벤트 처리를 수행할 수 없었다. 이와 달리, 본 발명에서 플러그인 모듈을 실행하는 주체는 이벤트 처리 모듈(320)이므로 웹 뷰의 동작 상황과는 별개로 각 이벤트가 처리될 수 있다.
도 3은 본 발명의 일 실시예에 따른 하이브리드 애플리케이션(300)의 실행 과정을 개략적으로 나타낸 흐름도이다.
도 3을 참조하면, 사용자가 사용자 단말기(100) 상에서 하이브리드 애플리케이션 아이콘을 선택하는 등의 조작 또는 특정 시각의 도래와 같이 하이브리드 애플리케이션(300)의 설계 시 개발자가 설정해 놓은 세팅 값에 따라 하이브리드 애플리케이션(300)이 실행되면(S310), 하이브리드 애플리케이션(300) 내에 포함된 플러그인 정보들에 대해 파싱 및 메모리 로딩이 수행된다(S320). 하이브리드 애플리케이션(300)이 관리하는 플러그인들 간에는 메모리 로딩에 대한 우선순위가 존재할 수 있으며, 그 경우 우선순위가 높은 플러그인부터 순차적으로 메모리에 로드될 수 있다. 또한, 일 실시예에 따르면 플러그인 설정 정보는 XML 파일의 형태로 기록되어 있을 수 있으며, 추후에 도 4에서 이에 대하여 보다 상세히 설명하기로 한다.
이후, 하이브리드 애플리케이션(300)은 사용자 단말기(100) 상에서 발생하는 네이티브 이벤트를 감지하여(S340), 감지한 발생 이벤트에 해당하는 플러그인을 호출(S350)하고 그 로직을 수행함으로써, 이벤트에 따라 수행되어야 하는 하이브리드 애플리케이션(300)의 부가 기능들을 활성화시킬 수 있다. 일 실시예에 따르면, 하나의 발생 이벤트에 따라 호출되어야 하는 플러그인의 수는 복수일 수 있으며, 복수의 플러그인들 간에는 우선순위가 설정되어 있을 수 있다. 이 경우, 하이브리드 애플리케이션(300)의 이벤트 처리 모듈(320)은 파라미터 확인 모듈(321)을 통해 복수의 플러그인들의 우선순위를 확인하고 우선순위가 높은 플러그인부터 순차로 호출을 수행할 수 있다.
일 실시예에 따르면, 우선적으로 호출된 플러그인의 로직을 수행하고 난 후(S360), 수행이 완료된 플러그인은 그보다 하위 우선순위를 가지는 플러그인들의 호출 여부를 결정할 수 있다(S370). 상위 우선순위의 플러그인이 하위 우선순위의 플러그인들 중 적어도 하나를 호출하기로 결정하게 되면, 해당하는 하위 우선순위의 플러그인이 호출되고(S350), 해당 플러그인의 로직이 수행될 수 있다(S360). 이후, 같은 방식으로 플러그인들이 호출될지 여부가 결정될 수 있으며, 더 이상 호출될 플러그인이 남아 있지 않거나, 상위 우선순위의 플러그인이 하위 우선순위의 플러그인들에 대한 호출을 하지 않기로 결정한다면, 플러그인의 호출이 종료될 수 있다(S380).
상기와 같이, 하나의 네이티브 이벤트에 대한 하이브리드 애플리케이션(300)의 동작이 도 3의 S340단계부터 S380단계까지로 이루어지며, 다른 네이티브 이벤트가 발생될 때마다 상기와 같은 동작이 반복하여 이루어진다. 이와 같은 동작은 하이브리드 애플리케이션(300)의 이벤트 처리 모듈(320)에서 이루어지고, 이벤트 처리 모듈(320)은 웹 뷰(330)과는 별도로 동작하기 때문에 웹 뷰(330)가 웹 서버로부터 웹 리소스를 받지 못하는 상황, 예를 들어 하이브리드 애플리케이션(300)이 동작 시작 시점, 동작 종료 시점, 애플리케이션의 비활성화 시점 및 통신망의 불안정 상황 등에서도 이벤트 처리가 원활히 이루어질 수 있다.
또한, 웹 뷰(330) 로딩 전 처리가 수행되어야 하는 기능들, 예를 들어 보안 기능, 공인인증서 기능, 위변조 검증 기능, 애플리케이션 성능 측정 등의 기능은 기존의 하이브리드 애플리케이션에서 포함되기 힘든 기능이었는데, 본 발명과 같이 각종 플러그인들의 동작 시점을 자유로이 조절할 수 있게 되면 애플리케이션의 라이프 사이클 상의 어느 시점에서든지 필요한 플러그인을 활용할 수 있어 하이브리드 애플리케이션(300)의 기능을 확장시킬 수 있다.
전술한 바와 같이 본 발명의 하이브리드 애플리케이션(300)은 추가적으로 신규의 플러그인을 추가하거나 기존의 플러그인에 대한 업데이트 등을 수행할 수 있다. 이 경우에, 웹 뷰(330)는 신규 플러그인 또는 플러그인 업데이트 정보를 제공하게 되지만 이는 이벤트 처리 모듈(320)에 의해 관리되므로, 일단 신규 플러그인이 추가되거나 기존의 플러그인의 업데이트가 완료된 이후에는 웹 뷰(330)의 동작과 관계없이 해당 플러그인을 이용하여 네이티브 이벤트 등을 수행할 수 있다. 다만, 추가된 신규 플러그인 또는 기존 플러그인의 업데이트 기능을 사용하기 위해서는, 하이브리드 애플리케이션(300)이 사용자 단말기(100) 상에서 종료되고 다시 수행되어야 할 수 있으며, 하이브리드 애플리케이션(300)이 실행되는 과정에서는 추가된 플러그인 등을 바로 사용하지 못할 수 있다.
일 실시예에 따르면, 본 발명의 하이브리드 애플리케이션(300)이 활용하는 플러그인은 기존의 Hybrid API 플러그인과는 달리 JavaScript API를 사용하지 않고 동작이 가능할 수 있다. 따라서, 웹 리소스에 포함되어 있는 JavaScript와 무관하게 개발자가 원하는 타이밍에 플러그인의 동작을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 하이브리드 애플리케이션(300) 상의 플러그인들을 설정하는 XML 파일의 예시이다.
일 실시예에 따르면 도 3에서 개시된 플러그인 정보들을 파싱하는 단계에서 XML파일을 이용할 수 있으며, 이 과정에서 설정되는 값들은 이벤트 플러그인의 종류, 플러그인의 고유 아이디, 하이브리드 애플리케이션(300) 상에서의 플러그인 사용 여부, 사용자 단말기(100)의 운영체제에서 실제로 이벤트가 구현되어 있는 플러그인의 클래스명, 플러그인의 우선순위 등이 포함될 수 있다.
도 4에 개시된 예시 파일의 내용을 살펴보면, 하나의 이벤트 종류에 대하여 두가지 플러그인의 설정값이 개시되어 있다.
첫번째 설정값에 대한 파일 내용을 살펴보면, 이벤트 플러그인의 종류는 appContext이고 우선순위는 0으로 설정되어 있다. 본 실시예에서 플러그인의 고유 아이디는 플러그인 종류와 동일하게 appContext로 설정되어 있지만 둘은 상이하게 설정될 수 있음은 물론이다. <enable>true</enable> 부분을 살펴보면 플러그인 사용 여부가 사용함으로 설정된 것을 확인할 수 있으며, 그 하위부분을 살펴보면 사용자 단말기(100)의 운영체제가 iOS인 경우에는 호출되어야 할 플러그인의 클래스명이 AppNPlugin으로 기재되어 있고, 운영체제가 안드로이드인 경우에는 호출되어야 할 플러그인의 클래스명이 AppNPlugin으로 동일하지만 클래스 항목에 클래스 패키지명을 포함한 클래스명인 samples.com.mxp.nativeapi.sample.AppNPlugin으로 표시되어 있음을 알 수 있다.
두번째 설정값에 대한 파일 내용을 살펴보면, 첫번째 설정값과 이벤트 플러그인의 종류는 동일하지만, 플러그인의 고유 아이디 및 클래스 이름 등이 상이한 것을 볼 수 있다. 또한, 두번째 설정값의 플러그인은 우선순위가 1로 설정되어 있음을 볼 수 있다.
이와 같이 하나의 이벤트에 대한 복수개의 플러그인이 설정되어 있는 경우, 하이브리드 애플리케이션은 우선순위가 높은 플러그인부터 순차적으로 호출하여 사용하게 된다. 도 4의 예시에서는 우선순위가 0으로 설정된 플러그인이 우선순위가 1로 설정된 플러그인보다 우선순위가 높은 것으로, 우선적으로 호출될 수 있다.
또한, 하나의 이벤트에 대한 복수개의 플러그인 중 상위 우선순위에 위치한 플러그인이 하위 우선순위에 위치한 플러그인의 호출 여부를 결정할 수 있다. 도 4의 예시에서는 appContext라는 id를 지닌 첫번째 플러그인이 appContext2라는 id를 지닌 두번째 플러그인의 호출 여부를 결정할 수 있게 되는 것이다.
한편, 서로 다른 운영체제 환경에 따라 상이한 플러그인이 호출되도록 설정될 수 있으며, 상이한 플러그인이라 함은 클래스 이름이 상이한 것뿐 아니라 수행하는 동작이 상이한 것일 수 있다. 또한, 특정 운영체제의 동작 환경 하에서만 플러그인이 호출되도록 할 수 있으며, 운영체제에 따라 호출되는 플러그인의 개수가 상이하도록 설정될 수 있다.
도 5는 본 발명의 일 실시예에 따른 네이티브 코드의 예시로, 도 4에서 안드로이드의 AppNPlugin 클래스가 실행되었을 때 동작하는 네이티브 코드를 나타낸 것이다.
도 5의 코드가 최초 실행되면 코드상의 onApplicationCreate() 라는 함수가 호출되며, 이 함수에서 플러그인의 원하는 기능을 확장한 후 Boolean 값을 return 하여 우선순위가 하위인 플러그인 실행 여부 또한 결정할 수 있다.
도 5의 onApplicationCreate() 함수에서 true값을 return하게 되면 우선순위가 하위인 AppNPlugin2클래스를 호출하게 되며, 이와 반대로 onApplicationCreate()함수에서 false값을 return하게 되면 우선순위가 하위인 AppNPlugin2클래스가 호출되지 않을 수 있다.
도 6은 본 발명의 일 실시예에 따른 하이브리드 애플리케이션 개발 도구(400)의 구성을 나타낸 블록도이다.
본 발명의 일 실시예에 따른 하이브리드 애플리케이션(300)은 하이브리드 애플리케이션 개발 도구(400)에 의해 생성된 것 일 수 있다. 본 발명에서 개시되는 하이브리드 애플리케이션 개발 도구(400)는 MXP일 수 있다.
하이브리드 애플리케이션의 개발자는 상기 하이브리드 애플리케이션 개발 도구(400)를 이용하여 다양한 종류의 하이브리드 애플리케이션을 제작할 수 있다. 하이브리드 애플리케이션 개발 도구(400)는 애플리케이션을 손쉽게 구현할 수 있도록 기본적인 애플리케이션의 형태를 템플릿의 형태로 포함하고 있을 수 있다.
일 실시예에 따르면, 개발자는 하이브리드 애플리케이션 개발 도구(400)를 이용하여 자신이 원하는 구조의 애플리케이션을 선택하고, 소스코드 작성 등을 통해 각 종류의 네이티브 이벤트 발생시 사용될 플러그인들의 동작 및 설정값을 정함으로써 본 발명의 하이브리드 애플리케이션(300)을 설계할 수 있다.
도 6을 참조하면, 하이브리드 애플리케이션 개발 도구(400)는 개발자가 상기와 같은 방식으로 애플리케이션 설계를 수행함에 있어 도움이 되는 기능들을 제공하는데, 이는 플러그인 제공부(410), 이벤트 연동부(420) 및 이벤트 핸들러 생성부(430)를 통해 제공될 수 있다. 하이브리드 애플리케이션 개발 도구(400)는 플러그인 제공부(410), 이벤트 연동부(420) 및 이벤트 핸들러 생성부(430)가 개발자가 애플리케이션의 설계를 실시하는 단말기 내에서 각각의 동작을 수행할 수 있도록 하는 프로그램 모듈들로 구성될 수 있다. 이러한 프로그램 모듈들은 각 동작을 수행하거나, 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하는 개념이지만, 이에 제한되지는 않는다.
일 실시예에 따르면, 플러그인 제공부(410)는 개발자가 하이브리드 애플리케이션(300) 구축에 사용할 수 있는 플러그인의 목록 및 정보를 제공할 수 있다. 개발자는 플러그인 제공부를 통해서 자신이 원하는 기능을 지닌 플러그인을 탐색할 수 있으며, 해당 플러그인을 사용하기 위해 필요한 설정값들에 대한 정보도 확인할 수 있다.
일 실시예에 따르면, 이벤트 연동부(420)는 사용자 단말기(100) 상에서 발생할 수 있는 네이티브 이벤트들의 목록을 개발자에게 제공할 수 있으며, 개발자는 이벤트 연동부를 통해, 네이티브 이벤트에 발생시 그에 연동하여 실행되도록 할 플러그인들을 선택하여 네이티브 이벤트와 플러그인들의 연동을 수행할 수 있다. 개발자는 이벤트 연동부(420)를 통해 네이티브 이벤트들의 조합과, 플러그인들의 조합의 연동을 수행할 수 있다. 예를 들어, 개발자는 A 이벤트와 B 이벤트가 일정 시간 내에 발생하면 C 플러그인이 수행되도록 하고 이후에 D 플러그인이 수행되도록 연동해둘 수 있다.
일 실시예에 따르면, 개발자는 자신이 원하는 커스텀한 이벤트를 정의하고 이에 대한 하이브리드 애플리케이션(300)의 동작을 이벤트 연동부(420)를 통해 설정할 수 있다. 예를 들어, 사용자 단말기(100) 표시부의 특정 위치들이 개발자가 설정해 놓은 순서대로 일정 시간내에 터치된다면, 개발자가 이러한 동작들과 연동해 놓은 플러그인들의 동작이 수행될 수 있다.
상기와 같이, 개발자가 이벤트 연동부(420)를 통해 네이티브 이벤트 발생에 따른 플러그인 연동을 수행하면, 이벤트 핸들러 생성부(430)는 이벤트 핸들러를 생성하는데, 이벤트 핸들러는 개발자가 선택한 네이티브 이벤트, 또는 이벤트의 조합마다 하나씩 생성될 수 있으며, 그에 따라 복수개가 생성될 수 있다.
개발자는 이벤트 핸들러를 통해, 완성된 하이브리드 애플리케이션(300) 상에서 특정 네이티브 이벤트가 발생하였을 때 그에 반응하여 애플리케이션의 특정 동작이 수행되도록 설계할 수 있다. 예를 들면, 개발자는 이벤트 핸들러를 통해 하이브리드 애플리케이션(300)의 동작 과정에서 마우스의 클릭, 키보드의 특정키 입력과 같은 기본적인 동작에서부터 플러그인의 호출과 같은 동작을 통해 애플리케이션의 특정 동작이 수행되도록 설정할 수 있다.
이와 같이, 본 발명의 일 실시예에 따른 이벤트 핸들러 생성부(430)는 개발자가 이벤트 연동부(420)를 통해 네이티브 이벤트들과 플러그인들의 연동을 선택하면, 개발자가 선택한 네이티브 이벤트 또는 네이티브 이벤트들의 조합 별로 이벤트 핸들러를 생성하여 하이브리드 애플리케이션(300)에 삽입하는 역할을 수행할 수 있다.
이벤트 핸들러는 특정 이벤트가 발생하였을 때, 개발자가 이벤트 연동부를 통해 설정해 놓은 플러그인들을 설정된 순서대로 호출할 수 있다. 본 발명에서 이벤트 핸들러는 개발자에 의해 복수개가 설정 및 등록될 수 있으며 하나의 이벤트 핸들러 기능에서 오류가 발생하더라도 하이브리드 애플리케이션(300)의 동작에 영향을 미치지 않도록 설계될 수 있다.
일 실시예에 따르면 개발자는 생성된 이벤트 핸들러들 각각의 호출 순서를 결정할 수 있으며, 하이브리드 애플리케이션(300)의 동작 과정에서, 상위의 우선순위를 가지는 이벤트 핸들러는 그보다 하위의 우선순위를 가지는 이벤트 핸들러의 실행여부를 결정할 수 있다.
이벤트 핸들러는 사용자 단말기(100)의 각 운영체제에서 기본적으로 제공하는 API가 실행되지 않도록 제어할 수 있으며, 모든 핸들러 메소드를 구현하지 않고 필요한 기능만 구현하여 자신이 원하는 대로 이벤트 상황에서 하이브리드 애플리케이션의 제어를 수행할 수 있다. 또한, 개발자가 이벤트 핸들러를 이용하여 등록한 기능은 오류 발생이 없는 이상 모두 적용이 가능하도록 설계될 수 있다.
개발자는 이벤트 핸들러 생성부(430)가 생성하는 이벤트 핸들러를 통해 사용자 단말기(100) 상에서 특정 네이티브 이벤트가 발생한 경우 해당 이벤트에 대한 알람을 수신할 수 있으며, 개발자는 이벤트 수신 알람을 받고 자신이 원하는 플러그인 기능을 원하는 시점에 동작시킬 수 있도록 추가적인 설정을 수행할 수 있다. 또한, 개발자는 사용자 단말기(100)가 특정 운영체제 하에서 동작하는 경우에만 특정 이벤트에 대한 이벤트 핸들러가 동작하도록 설정할 수 있다.
이와 같이, 본 발명에 따르면 하이브리드 애플리케이션(300)의 개발자는 하이브리드 애플리케이션(300)의 라이프 사이클마다 발생하는 이벤트에 대한 정보를 이벤트 핸들러를 통해 얻을 수 있으며, 각각의 이벤트 정보 수신시 원하는 기능이 수행되도록 애플리케이션을 설정할 수 있다.
본 발명의 실시예들에 따르면, 하이브리드 애플리케이션 동작이 수행되는 전 시점에서, 발생하는 네이티브 이벤트를 처리할 수 있으며, 이와 같은 하이브리드 애플리케이션의 제작 수행이 가능한 제작 도구를 제공받을 수 있다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 사용자 단말기
200: 네이티브 플랫폼
300: 하이브리드 애플리케이션
310: 플러그인 준비 모듈
320: 이벤트 처리 모듈
330: 웹 뷰
400: 하이브리드 애플리케이션 개발 도구
410: 플러그인 제공부
420: 이벤트 연동부
430: 이벤트 핸들러 생성부

Claims (26)

  1. 사용자 단말기에서, 하이브리드 애플리케이션이 네이티브 이벤트 처리를 수행하는 방법에 있어서,
    상기 사용자 단말기 상에서 발생하는 네이티브 이벤트의 종류에 따른 플러그인들의 정보를 파싱하는 단계;
    상기 파싱된 플러그인 정보들을 메모리에 로드하는 단계; 및
    상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 단계를 포함하는, 하이브리드 애플리케이션의 이벤트 처리 방법.
  2. 제1항에 있어서,
    웹 리소스를 로딩하여 상기 사용자 단말기를 통해 제공하는 단계를 더 포함하는, 하이브리드 애플리케이션의 이벤트 처리 방법.
  3. 제1항에 있어서,
    상기 네이티브 이벤트의 종류에 따라 호출되는 플러그인은 하나의 인터페이스를 통해 복수의 운영체제와 호환가능한 것인, 하이브리드 애플리케이션의 이벤트 처리 방법.
  4. 제1항에 있어서,
    상기 네이티브 이벤트에 따라 호출되는 플러그인은 복수인 것을 특징으로 하는, 하이브리드 애플리케이션의 이벤트 처리 방법.
  5. 제4항에 있어서,
    상기 복수의 플러그인들을 설정된 우선순위에 따라 순차적으로 호출하는, 하이브리드 애플리케이션의 이벤트 처리 방법.
  6. 제5항에 있어서,
    상기 복수의 플러그인들 중 상위의 우선순위를 가지는 플러그인이 그보다 하위의 우선순위를 가지는 플러그인의 호출 여부를 결정하는 단계를 더 포함하는, 하이브리드 애플리케이션의 이벤트 처리 방법.
  7. 제1항에 있어서,
    상기 플러그인들의 정보는 하이브리드 애플리케이션 개발 도구를 통해 생성된 것인, 하이브리드 애플리케이션의 이벤트 처리 방법.
  8. 제1항에 있어서,
    상기 플러그인들은 하이브리드 애플리케이션의 개발 단계에서 포함되거나, 추후 업데이트를 통해 하이브리드 애플리케이션에 포함되는 것인, 하이브리드 애플리케이션의 이벤트 처리 방법.
  9. 제1항에 있어서,
    상기 네이티브 이벤트의 종류는 애플리케이션의 실행 및 종료, 웹 뷰의 실행, 하이브리드 엔진 구동, 푸쉬, 메뉴, 키, 로그, MDM 중 어느 하나 이상으로 구성되는, 하이브리드 애플리케이션의 이벤트 처리 방법.
  10. 제1항에 있어서,
    상기 플러그인들의 정보를 파싱하는 단계는, 플러그인의 종류, 플러그인의 고유 아이디, 플러그인 사용 여부, 운영체제 별 플러그인의 클래스명, 플러그인의 우선순위 중 적어도 하나를 포함하는 XML 파일을 파싱하는 것인, 하이브리드 애플리케이션의 이벤트 처리 방법.
  11. 사용자 단말기에서, 네이티브 이벤트 처리를 수행하는 하이브리드 애플리케이션으로서,
    상기 사용자 단말기 상에서 발생하는 네이티브 이벤트 종류에 대응하는 플러그인들의 정보를 파싱하고 메모리에 로드하는 플러그인 준비 모듈; 및
    상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 이벤트 처리 모듈을 실행하기 위하여 매체에 저장된, 하이브리드 애플리케이션.
  12. 제11항에 있어서,
    웹 리소스를 로딩하여 상기 사용자 단말기를 통해 제공하는 웹 뷰를 더 포함하는, 하이브리드 애플리케이션.
  13. 제11항에 있어서,
    상기 네이티브 이벤트의 종류에 따라 호출되는 플러그인은 하나의 인터페이스를 통해 복수의 운영체제와 호환가능한 것인, 하이브리드 애플리케이션.
  14. 제11항에 있어서,
    상기 이벤트 처리 모듈은 각각의 네이티브 이벤트에 따라 복수의 플러그인을 호출하는 것을 특징으로 하는, 하이브리드 애플리케이션.
  15. 제14항에 있어서,
    상기 이벤트 처리 모듈은 상기 복수의 플러그인들을 개발자가 설정한 우선순위에 따라 순차적으로 호출하는, 하이브리드 애플리케이션.
  16. 제15항에 있어서,
    상기 이벤트 처리 모듈은 상기 복수의 플러그인 중 상위의 우선순위를 가지는 플러그인이 그보다 하위의 우선순위를 가지는 플러그인의 호출 여부를 결정하도록 하는, 하이브리드 애플리케이션.
  17. 제11항에 있어서,
    상기 플러그인들의 정보는 하이브리드 애플리케이션 개발 도구를 통해 생성된 것인, 하이브리드 애플리케이션.
  18. 제11항에 있어서,
    상기 플러그인들은 하이브리드 애플리케이션의 개발 단계에서 포함되거나, 추후 업데이트를 통해 하이브리드 애플리케이션에 포함되는 것인, 하이브리드 애플리케이션.
  19. 제11항에 있어서,
    상기 플러그인 준비 모듈은 플러그인의 종류, 플러그인의 고유 아이디, 플러그인 사용 여부, 운영체제 별 플러그인의 클래스명, 플러그인의 우선순위 중 적어도 하나를 포함하는 XML 파일을 파싱하는, 하이브리드 애플리케이션.
  20. 하이브리드 애플리케이션 설계를 실시하는 개발자의 단말기와 결합된 하이브리드 애플리케이션 개발 컴퓨터 프로그램으로서,
    복수개의 플러그인들을 제공하는 단계;
    사용자 단말기 상에서 발생하는 네이티브 이벤트들과, 상기 복수개의 플러그인 중 상기 개발자가 선택한 플러그인들의 연동을 설정하는 단계; 및
    상기 네이티브 이벤트 발생에 따라 상기 연동된 플러그인들의 기능이 상기 사용자 단말기 상에서 수행될 수 있도록 하는 이벤트 핸들러를 생성하는 단계를 실행하기 위하여 매체에 저장된, 하이브리드 애플리케이션 개발 컴퓨터 프로그램.
  21. 제20항에 있어서,
    상기 이벤트 핸들러는 상기 네이티브 이벤트의 발생에 따른 알람을 개발자에게 제공하는 기능을 더 포함하는, 하이브리드 애플리케이션 개발 컴퓨터 프로그램.
  22. 제20항에 있어서,
    상기 이벤트 핸들러는 상기 개발자로부터 커스텀 데이터를 입력받아 이벤트 처리 과정에서 이용되도록 하는, 하이브리드 애플리케이션 개발 컴퓨터 프로그램.
  23. 제20항에 있어서,
    상기 이벤트 핸들러는 개발자로부터 데이터를 입력받아 각 플러그인의 설정값을 변경하는 기능을 더 포함하는, 하이브리드 애플리케이션 개발 컴퓨터 프로그램.
  24. 제20항에 있어서,
    상기 이벤트 핸들러는 상기 플러그인들이 특정한 운영체제 하에서만 동작하도록 설정하는 기능을 포함하는, 하이브리드 애플리케이션 개발 컴퓨터 프로그램.
  25. 네이티브 이벤트 처리를 수행하는 사용자 단말기로서,
    상기 사용자 단말기 상에서 발생하는 네이티브 이벤트 종류에 대응하는 플러그인들의 정보를 파싱하고 메모리에 로드하는 플러그인 준비부; 및
    상기 사용자 단말기 상에서 발생하는 상기 네이티브 이벤트의 종류를 감지하고 그에 따른 플러그인을 결정하여 호출하는 이벤트 처리부를 포함하는, 사용자 단말기.
  26. 제25항에 있어서,
    웹 리소스를 로딩하여 제공하는 웹 뷰 제공부를 더 포함하는, 사용자 단말기.
KR1020150094838A 2015-07-02 2015-07-02 하이브리드 애플리케이션 및 이의 이벤트 처리 방법 KR101684454B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150094838A KR101684454B1 (ko) 2015-07-02 2015-07-02 하이브리드 애플리케이션 및 이의 이벤트 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150094838A KR101684454B1 (ko) 2015-07-02 2015-07-02 하이브리드 애플리케이션 및 이의 이벤트 처리 방법

Publications (1)

Publication Number Publication Date
KR101684454B1 true KR101684454B1 (ko) 2016-12-08

Family

ID=57576664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150094838A KR101684454B1 (ko) 2015-07-02 2015-07-02 하이브리드 애플리케이션 및 이의 이벤트 처리 방법

Country Status (1)

Country Link
KR (1) KR101684454B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908704A (zh) * 2019-11-14 2020-03-24 亚信科技(中国)有限公司 一种移动端跨平台原生功能的调用方法及装置
KR102589543B1 (ko) * 2023-02-08 2023-10-16 주식회사 인크립팅 하드웨어보안모듈을 이용하여 사용자인증을 수행하는 암호키 관리시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050025222A (ko) * 2003-09-05 2005-03-14 삼성전자주식회사 진화하는 에이전트를 갖는 사전 행동적 사용자 인터페이스
KR20140026815A (ko) * 2012-08-23 2014-03-06 주식회사 코드앤 하이브리드 앱 제공 시스템 및 제공 방법
KR101406987B1 (ko) * 2013-11-29 2014-06-16 한상선 클라이언트 주도 앱·웹용 하이브리드 프리할인형 상품광고판매장치
KR20150013382A (ko) * 2013-07-26 2015-02-05 주현선 동영상 콘텐츠 제공 플랫폼 장치 및 그 제공 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050025222A (ko) * 2003-09-05 2005-03-14 삼성전자주식회사 진화하는 에이전트를 갖는 사전 행동적 사용자 인터페이스
KR20140026815A (ko) * 2012-08-23 2014-03-06 주식회사 코드앤 하이브리드 앱 제공 시스템 및 제공 방법
KR20150013382A (ko) * 2013-07-26 2015-02-05 주현선 동영상 콘텐츠 제공 플랫폼 장치 및 그 제공 방법
KR101406987B1 (ko) * 2013-11-29 2014-06-16 한상선 클라이언트 주도 앱·웹용 하이브리드 프리할인형 상품광고판매장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908704A (zh) * 2019-11-14 2020-03-24 亚信科技(中国)有限公司 一种移动端跨平台原生功能的调用方法及装置
KR102589543B1 (ko) * 2023-02-08 2023-10-16 주식회사 인크립팅 하드웨어보안모듈을 이용하여 사용자인증을 수행하는 암호키 관리시스템

Similar Documents

Publication Publication Date Title
KR102220127B1 (ko) 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치
KR102243793B1 (ko) 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
US8983935B2 (en) Methods for utilizing a javascript emulator in a web content proxy server and devices thereof
AU2014207730B2 (en) Systems and methods for building and using hybrid mobile applications
KR20190005855A (ko) 페이지 컴포넌트 동적 레이아웃
CN102932332B (zh) 数据校验***和数据校验方法
KR102015739B1 (ko) 스마트 카드 판독/기입 방법 및 디바이스
CN106406961A (zh) 一种基于浏览器加载、提供应用程序的方法、装置
EP2951678B1 (en) Remotely executing operations of an application using a schema that provides for executable scripts in a nodal hierarchy
KR101684454B1 (ko) 하이브리드 애플리케이션 및 이의 이벤트 처리 방법
US20140033167A1 (en) Method and system for generating a manifestation of a model in actionscript
CN111459802A (zh) 一种基于GUI的Android应用程序WebView页面的测试方法、装置及设备
CN108509228B (zh) 加载页面的方法、终端设备及计算机可读存储介质
CN115760391A (zh) 区块链中智能合约更改方法、装置、电子设备及存储介质
CN106778270B (zh) 一种恶意应用程序的检测方法及***
US9189633B2 (en) Download management method and device based on android browser
CN112068814A (zh) 可执行文件的生成方法、装置、***及介质
CN115269066B (zh) 接口调用方法、设备及存储介质
TWI705373B (zh) 終端應用程式(app)的加載方法及裝置
CN117034298A (zh) 一种xss漏洞检测方法、装置、电子设备及存储介质
CN117932604A (zh) 安全检测方法、装置、设备和计算机可读存储介质
CN112764721A (zh) 数据处理方法、装置、***及计算机可读存储介质
CN113419738A (zh) 接口文档的生成方法、装置及接口管理设备
Mabbutt et al. Handlers
Obcena Request

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191007

Year of fee payment: 4