KR20200004742A - 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치 - Google Patents

이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20200004742A
KR20200004742A KR1020190016135A KR20190016135A KR20200004742A KR 20200004742 A KR20200004742 A KR 20200004742A KR 1020190016135 A KR1020190016135 A KR 1020190016135A KR 20190016135 A KR20190016135 A KR 20190016135A KR 20200004742 A KR20200004742 A KR 20200004742A
Authority
KR
South Korea
Prior art keywords
native
word
component
command data
mobile device
Prior art date
Application number
KR1020190016135A
Other languages
English (en)
Other versions
KR102173838B1 (ko
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 이인모
Publication of KR20200004742A publication Critical patent/KR20200004742A/ko
Application granted granted Critical
Publication of KR102173838B1 publication Critical patent/KR102173838B1/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

이동 장치의 네이티브 기능을 실행시키기 위한 방법이 개시된다. 상기 이동 장치의 네이티브 기능을 실행시키기 위한 방법은 상기 네이티브 기능의 실행 요구에 응답하여 웹 어플리케이션은 특수문자와 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트로 전송하는 단계; 및 상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하는 동작을 실행하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 단계를 포함한다.

Description

이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치{Method and device for excuting native features of a mobile device}
본 발명의 개념에 따른 실시 예는 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치에 관한 것으로, 특히, 하이브리드 모바일 어플리케이션(hybrid mobile application)에서 네이티브 기능을 쉽게 구현하기 위한 방법 및 장치에 관한 것이다.
모바일 앱(mobile app)은 스마트 폰(smart phone) 또는 테블릿(tablet) PC와 같은 이동 장치에서 이용되는 컴퓨터 프로그램을 의미한다. 모바일 앱은 네이티브 어플리케이션(native application), 웹 어플리케이션(web application), 및 하이브리드 모바일 어플리케이션(hybrid mobile application)으로 구분될 수 있다. 네이티브 어플리케이션은 일반적으로 컴퓨터 코드로 개발되며, 이동 장치에 구현된 프로세서에 의해 바로 실행된다. 웹 어플리케이션은 인터넷과 같은 네트워크를 웹 브라우저(web browser)를 통해 접근하는 어플리케이션이다. 웹 어플리케이션은 앱(app)처럼 보이는 모바일에 최적화된 웹페이지이다. 하이브리드 모바일 어플리케이션은 HTML5, CSS, 및 JavaScript과 같은 웹 기술들을 이용하여 작성된 어플리케이션이다.
웹 어플리케이션과 하이브리드 모바일 어플리케이션은 JavaScript와 HTML과 같은 웹 기반 언어들을 이용하여 개발된다. JavaScript와 HTML과 같은 웹 기반 언어들은 고차원 언어들(high level languages)이므로, 네이티브 어플리케이션과는 달리, 상기 고차원 언어들은 이동 장치의 하드웨어를 직접적으로 제어할 수 없다. 즉, 웹 어플리케이션과 하이브리드 모바일 어플리케이션은 카메라, 가속도계, 또는 GPS와 같은 이동장치의 특정 기능을 직접적으로 활용할 수 없다.
웹 어플리케이션 프로그래밍 환경과 네이티브 플랫폼 프로그래밍 환경 사이의 갭(gap)을 메우기 위해 개발자들에게 PhoneGap,Native Script,React Native과 같은 개발 툴(tool)이 제공되었다. 하지만 상기 개발 툴을 이용하기 위해 개발자들은 개발 툴의 전문적인 기능을 익혀야 했다. 개발자들은 개발 툴의 전문적인 기능을 익히는데 많은 시간을 소비하여야했다. 또한, 상기 개발 툴을 네이티브 코드로 변환하는 과정에서 인터페이스가 변형되는 문제가 발생하거나, 디자인이 자유롭게 적용될 수 없는 문제점이 있었다. 또한, 상기 개발 툴을 이용하여 이동 장치의 특정 기능을 활용하는 것은 직접적으로 네이티브 코드를 이용하여 이동 장치의 특정 기능을 활용하는 것보다 더 느리다는 단점이 있다.
또한, 종래에는 웹뷰내의 자바스크립트 API에서 네이티브 기능을 호출하였다. 종래와 같이 네이티브 기능을 호출하기 위해 개발자는 자바스크립트 API를 작성하여야만한다. 하지만, 전문적인 개발자가 아닌 디자이너가 하이브리드 모바일 어플리케이션을 개발할 경우, 디자이너는 상기 자바스크립트 API를 작성하기 위해 많은 시간을 소비하여 자바스크립트 API를 배워야 한다. 또한, 디자이너는 상기 자바스크립트 API를 기억하고 있어야하며, 복잡한 자바스크립트 API를 정확하게 사용하는 것은 쉽지 않다는 문제점이 있다.
본 발명이 이루고자 하는 기술적인 과제는 하이브리드 모바일 어플리케이션에서 네이티브 기능을 쉽게 구현하기 위한 방법 및 장치에 관한 것이다.
본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법은 네이티브 기능의 실행 요구에 응답하여 웹 어플리케이션은 특수문자와 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트로 전송하는 단계, 및 상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하는 동작을 실행하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 단계를 포함한다.
상기 명령 데이터를 해석하는 동작은 상기 특수문자 사이의 상기 단어를 추출하는 추출 동작을 실행하는 단계, 및 상기 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행하는 단계를 포함한다.
본 발명의 실시 예에 따른 이동 장치는 네이티브 컴포넌트, 및 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 상기 네이티브 컴포넌트로 전송하는 웹 어플리케이션를 포함한다.
상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하는 동작을 실행하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다.
본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치는 특수문자와 단어만 또는, 특수문자, 이미지, 및 단어만으로 네이티브 기능을 실행할 수 있게 함으로써 전문 개발자가 아닌 사람이라도 쉽게 하이브리드 모바일 어플리케이션을 개발할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 웹뷰에 도시되는 인터페이스의 실시 예들을 나타낸다.
도 3은 본 발명의 실시 예에 따른 이동 장치의 카메라 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 4는 본 발명의 실시 예에 따른 이동 장치의 GPS 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 5는 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
도 6은 본 발명의 다른 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
도 7은 본 발명의 또 다른 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 1을 참조하면, 시스템(100)은 이동 장치(10)와 웹 서버(30)를 포함한다. 이동 장치(10)는 스마트 폰, 테블릿 PC, 또는 이동 가능한 전자 제품을 의미한다. 이동 장치(10)는 카메라(11), GPS(Global Positioning System; 13), 및 NFC(Near Field Communication; 15)을 포함한다. 본 발명에서는 이동 장치(10)는 카메라(11), GPS(13), 및 NFC(15)를 포함한다 하였으나, 반드시 이에 한정되는 것은 아니다. 실시 예에 따라 이동 장치(10)는 다른 외부 하드웨어를 포함할 수 있다.
카메라(11)는 이동 장치(10)에 구현된 것으로, 사진을 찍을 수 있는 기능을 구현할 수 있는 하드웨어를 포함한 구성요소를 의미한다. GPS(13)는 이동 장치(10)에 구현된 것으로, 이동 장치(10)의 현재 위치를 알려줄 수 있는 기능을 구현할 수 있는 하드웨어를 포함한 구성요소를 의미한다. NFC(15)는 근거리 무선 통신을 수행할 수 있는 하드웨어를 포함한 구성요소를 의미한다.
이동 장치(10)에 설치된 모바일 앱은 하이브리드 모바일 어플리케이션으로 구현된 것으로 가정한다. 본 명세서에서 웹 어플리케이션(web application; 21)은 모바일 앱을 의미한다. 이에 앞으로 모바일 앱이라는 용어 대신에 웹 어플리케이션이라는 용어를 사용한다.
이동 장치(10)에 설치된 웹 어플리케이션(21)이 하이브리드 모바일 어플리케이션으로 구현될 때, 이동 장치(10)는 네이티브 컴포넌트(Native Component; 17), 및 웹뷰(Webview, 19)를 포함한다.
네이티브 컴포넌트(17)는 이동 장치(10)의 하드웨어의 기능을 실행하기 위한 네이티브 코드를 포함한다. 실시 예에 따라 네이티브 컴포넌트(17)는 다르게 호칭(예컨대, 네이티브, 또는 네이티브 어플리케이션)될 수 있다. 네이티브 컴포넌트(17)는 운영체제와는 구별된다.
본 명세서에서 네이티브 기능이란 이동 장치(10)의 하드웨어(예컨대, 카메라(11), GPS(13), 또는 NFC(15))의 기능(예컨대, 카메라(11)을 이용하여 사진을 찍는 동작, GPS(13)를 이용하여 현재의 위치를 파악하는 동작, NFC(15)를 이용하여 근거리 무선 통신을 수행하는 동작)을 의미한다. 네이티브 컴포넌트(17)의 자세한 동작에 대해서는 뒤에서 자세히 설명될 것이다.
웹뷰(19)는 하이브리드 모바일 어플리케이션으로 구현된 웹 어플리케이션(21)의 안에 구현된 브라우저(browser)를 의미한다. 웹뷰(19)를 이용하기 때문에 웹 어플리케이션(21)은 웹 기술들(예컨대, HTML, JavaScript, CSS 등)이용하여 생성될 수 있다.
웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트(17)로 전송할 수 있다. 상기 네이티브 기능의 실행 요구란 이동 장치(10)의 이용자가 이동 장치(10)에 구현된 하드웨어(예컨대, 카메라(11), GPS(13), 또는 NFC(15))의 기능을 실행하기 위해 웹뷰(19)에서 특정 단어, 특정 아이콘 또는 이들의 조합을 클릭하는 행위를 의미한다. 예컨대, 상기 이용자는 이동 장치(10)의 카메라(11)을 이용하여 사진을 찍기 위해 웹뷰(19)에 구현된 단어 "카메라"를 클릭하여 네이티브 기능의 실행 요구 동작을 수행할 수 있다.
웹 어플리케이션(21)은 직접적으로 이동 장치(10)의 하드웨어가 네이티브 기능을 수행하도록 할 수 없으므로, 네이티브 기능을 수행하라라는 명령 데이터를 네이티브 컴포넌트(17)로 전송한다. 상기 명령 데이터는 특수문자와 단어만으로 구현될 수 있다. 특수문자는 "!, @, #, $, %, ^, &, *, 또는 {{, }}" 일 수 있다. 단어는 개발자가 임의로 자유롭게 정할 수 있다. 예컨대, 네이티브 기능이 카메라(11)를 온(On)시키는 동작일 때, 상기 명령 데이터는 "{{카메라}}"으로 구현될 수 있다. 또는, 상기 명령 데이터는 "{{사진 찍기}}", 또는 "{{Camera}}"일 수 있다. 즉, 상기 명령 데이터에서 단어는 개발자에 의해 임의로 작성될 수 있어, 개발자는 자바스크립트 API를 배우지 않고도 쉽게 네이티브 기능을 구현할 수 있다.
본 명세서에서는 명령 데이터라고 정의하였으나, 실시 예에 따라 명령 데이터는 다른 용어로 호칭될 수 있다. 웹뷰(19)는 상기 네이티브 기능을 직접적으로 실행할 수 없다.
네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다. 즉, 네이티브 컴포넌트(17)는 상기 명령 데이터가 무슨 동작을 실행하라는 명령인지 해석한다. 구체적으로, 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 추출된 단어를 데이터베이스(미도시)에 저장된 단어와 관련이 있는지 판단하는 판단 동작을 실행한다. 상기 명령 데이터를 해석하는 동작은 상기 추출 동작과 상기 판단 동작을 포함한다. 네이티브 컴포넌트(17)는 상기 추출된 단어와 관련있는 상기 데이터베이스의 단어와 대응되는 네이티브 코드를 실행한다. 예컨대, 상기 명령 데이터가 "{{사진 찍기}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의 "사진 찍기"를 추출하고, 추출된 "사진 찍기"를 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련이 있는지 판단하며, 상기 추출된 단어인 "사진 찍기"와 관련있는 상기 데이터베이스의 단어인 "Camera On"과 대응되는 네이티브 코드를 실행한다. 상기 데이터베이스는 네이티브 코드들과, 상기 네이티브 코드들과 대응되는 단어들을 테이블 형태로 저장한다. 또한, 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어들은 네이티브 컴포넌트(17)에서 추출된 단어와 관련이 있다. 관련이 있다는 것은 추출된 단어와 상기 데이터베이스에 저장된 단어가 서로 대응됨을 의미한다. 예컨대, 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어가 "Camera On"일 때, "Camera On"은 네이티브 컴포넌트(17)에서 추출될 수 있는 단어인 "카메라", "사진 찍기", 또는 "사진 촬영" 등과 사전에 약속에 의해 관련되어 있다, 또는 서로 대응된다고 가정한다. 즉, 네이티브 컴포넌트(17)에서 추출될 수 있는 단어들, 네이티브 코드들, 및 상기 네이티브 코드들과 대응되는 단어들은 테이블 형태로 저장된다.
네이티브 컴포넌트(17)에서 추출될 수 있는 단어인 "카메라", "사진 찍기", 또는 "사진 촬영"는 개발자에 의해 임의로 작성될 수 있는 단어이다.
실시 예에 따라 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 상기 명령 데이터를 해석하는 동작은 상기 추출 동작과 상기 추론 동작을 포함한다.
예컨대, 상기 명령 데이터가 "{{풍경 촬영}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의 “풍경 촬영”라는 단어를 추출하고, 추출된 단어를 이용하여 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것으로 “풍경 촬영”라는 단어의 의도를 추론할 수 있다. 상기 데이터베이스에 저장된 단어(예컨대,“Camera On")와 개발자에 의해 작성될 단어(예컨대,“풍경 촬영")를 모두 미리 약속에 의해 연관시킬 수 없다. 즉, 개발자에 의해 작성될 단어 모두는 상기 데이터베이스에 저장된 단어와 테이블 형태로 저장될 수 없다. 개발자에 의해 작성될 단어는 다양할 수 있기 때문이다. 이 때, 개발자에 의해 작성된 단어는 상기 데이터베이스에 저장된 단어와 관련이 있는지 판단하기 어렵다. 추출된 단어“풍경 촬영"과 연관된 데이터베이스에 저장된 단어는 없지만, 추출된 단어“풍경 촬영"에서 “촬영”이라는 단어의 일부를 이용하여 단어의 의도를 추론할 수 있다. 상기 데이터베이스는 네이티브 코드들과, 상기 네이티브 코드들과 대응되는 단어들을 테이블 형태로 저장한다. 또한, 네이티브 컴포넌트(17)에서 추출된 단어의 일부는 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어와 관련이 있다. 즉, 네이티브 컴포넌트(17)에서 추출된 단어의 일부는 상기 데이터베이스에 저장된 상기 네이티브 코드들과 대응되는 단어와 서로 대응된다.
추론이라함은 "풍경 촬영"이라는 단어에서 추출된 단어인 "촬영"이라는 단어는 네이티브 코드와 대응되는 상기 데이터베이스에 저장된 단어인 "Camera On"과 관련이 있는 것(또는 서로 대응되는 것)으로 판단하는 것을 의미한다. "Camera On"과 관련 있는 것으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Camera On"과 대응되는 네이티브 코드를 실행한다. 상기 네이티브 코드를 실행하면 카메라(11)를 키는 네이티브 기능이 실행된다.
또 다른 실시 예에 따라 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 웹뷰(19)에 표시된 문구들을 분석하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 추론이라함은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 관련이 있는 것으로 판단하는 것을 의미한다. 즉, 상기 추론 동작은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 서로 대응지 판단하는 것을 의미한다.
예컨대, 상기 명령 데이터가“{{사진}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의“사진”라는 단어를 추출한다. 웹뷰(19)에 표시되는 문구가“카메라로 사진을 찍어 사진을 이쁘게 꾸며보세요”라는 문구가 있을 때, 네이티브 컴포넌트(17)는 추출된 단어“사진"에 대해 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것으로“사진”라는 단어의 의도를 추론할 수 있다. 즉, 웹뷰(19)에 특정 단어(예컨대, 카메라)가 일정 단어 이상 검색되는 경우, 네이티브 컴포넌트(17)는 추출된 단어 “사진”에 대해 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다.
반면, 웹뷰(19)에 표시되는 문구가“사진첩에 저장된 사진을 이용하여 사진을 이쁘게 꾸며보세요”라는 문구가 있을 때, 웹뷰(19)에 특정 단어(예컨대, 사진첩, 또는 갤러리)가 일정 단어 이상 검색되는지를 카운트한다. 상기 카운트된 특정 단어가 일정 단어 이상 검색되는 경우, 네이티브 컴포넌트(17)는 추출된 단어“사진"에 대해 상기 데이터베이스에 저장된 단어인 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다.“Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Pickup Photo"과 대응되는 네이티브 코드를 실행한다. 상기 네이티브 코드를 실행하면 이동 장치(10)의 저장공간(미도시)에 저장된 이미지를 불러오는 네이티브 기능이 실행된다.
실시 예에 따라, 웹뷰(19)에 특정 단어(예컨대, 카메라)가 일정 단어 이하로 검색되는 경우, 네이티브 컴포넌트(17)는 추출된 단어“사진”에 대해 상기 데이터베이스에 저장된 단어인 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 “사진”라는 단어의 의도를 추론할 수 있다.
또 다른 실시 예에 따라 네이티브 컴포넌트(17)는 네이티브 컴포넌트(17)는 특수문자 사이의 단어를 추출하는 추출 동작을 실행하고, 추출된 단어 순서를 분석하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 추론이라함은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 관련이 있는 것으로 판단하는 것을 의미한다. 즉, 상기 추론 동작은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 서로 대응지 판단하는 것을 의미한다.
예컨대, 개발자가 작성한 단어가 "사진 찍기, 또는 찍은 사진"일 때, "사진"이라는 단어를 기준으로, 앞에 단어가 있는지, 뒤에 단어가 있는지로 추출된 단어의 의도를 추론할 수 있다. "사진"이라는 단어 앞에 다른 단어가 존재할 때, 네이티브 컴포넌트(17)는 상기 데이터베이스에 저장된 단어인 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론할 수 있다. "사진"이라는 단어 뒤에 다른 단어가 존재할 때, 네이티브 컴포넌트(17)는 "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다. "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Camera On"과 대응되는 네이티브 코드를 실행한다.
실시 예에 따라 상기 명령 데이터는 특수문자, 이미지, 및 단어만으로 구현될 수 있다. 예컨대, 상기 명령 데이터는 "{{ <img src='/native/camera/image.a.jpeg'> 사진 찍기}}"일 수 있다.
도 2는 도 1에 도시된 웹뷰에 도시되는 인터페이스의 실시 예들을 나타낸다.
도 1과 도 2를 참조하면, 웹뷰(19)에는 네이티브 기능을 실행하기 위해 도 2에서와 같이 다양하게 단어와 이미지(또는 아이콘)가 사용될 수 있다. 즉, 웹뷰(19)에 "사진"이라는 같은 단어가 사용되더라도 사용된 이미지에 따라 카메라를 온(On)시키라는 의도인지, 이동 장치(10)에 저장된 사진을 불러오라는 의도인지 달라진다. 상기 명령 데이터가 특수문자, 이미지, 및 단어만으로 구현될 때, 네이티브 컴포넌트(17)는 특수문자 사이의 단어와 이미지를 추출하는 추출 동작을 실행하고, 상기 추출된 이미지를 읽는 리드 동작, 및 상기 추출된 단어와 상기 읽은 이미지를 분석하여 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 상기 명령 데이터를 해석하는 동작은 상기 추출 동작, 상기 리드 동작, 및 상기 추론 동작을 포함한다. 추론이라함은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 관련이 있는 것으로 판단하는 것을 의미한다. 즉, 상기 추론 동작은 상기 추출 동작에 의해 추출된 단어가 상기 데이터베이스에 저장된 단어와 서로 대응지 판단하는 것을 의미한다.
예컨대, 상기 명령 데이터가 "{{<img src='/native/camera/image.a.jpeg'> 사진}}"일 때, 네이티브 컴포넌트(17)는 특수문자 사이의 단어("사진")와 이미지(<img src='/native/camera/image.a.jpeg'>")를 추출하는 추출 동작을 실행한다. 네이티브 컴포넌트(17)는 추출된 이미지("<img src='/native/camera/image.a.jpeg'>")를 읽는 리드 동작을 실행한다. 예컨대, 도 2에서와 같이 추출된 단어는 "사진"이고, 추출된 이미지는 다양할 수 있다. 네이티브 컴포넌트(17)는 상기 추출된 단어("사진")와 상기 읽은 이미지("<img src='/native/camera/image.a.jpeg'>")를 분석하여 단어의 의도를 추론하는 추론 동작을 실행할 수 있다. 도 2a, 또는 도 2b에서와 같이 상기 단어가 "사진"이고, 이미지가 사각형, 또는 칠각형을 포함하고, 사각형, 또는 칠각형 안에 원, 또는 타원을 포함할 때, 네이티브 컴포넌트(17)는 상기 데이터베이스에 저장된 단어인 "Camera On"와 관련 있는 것(또는 서로 대응되는 것)으로“사진”라는 단어의 의도를 추론할 수 있다. "Camera On"와 관련 있는 것으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Camera On"과 대응되는 네이티브 코드를 실행한다.
반면, 도 2c, 또는 도 2d에서와 같이 상기 단어가 "사진"이고, 이미지가 사각형을 포함하고, 사각형 안에 원, 또는 타원을 포함하지 않거나, 원, 또는 타원 이외에 다른 도형을 포함할 때, 네이티브 컴포넌트(17)는 "Pickup Photo"와 관련 있는 것(또는 서로 대응되는 것)으로 단어의 의도를 추론할 수 있다.“Pickup Photo"와 관련 있는 것으로 단어의 의도를 추론한 후, 네이티브 컴포넌트(17)는 "Pickup Photo"과 대응되는 네이티브 코드를 실행한다.
네이티브 컴포넌트(17)는 해석된 명령 데이터에 따라 네이티브 코드를 실행하고, 실행된 네이티브 코드에 따라 상기 네이티브 기능이 실행된다.
명령 데이터를 특수문자와 단어만, 또는 특수문자, 이미지, 및 단어만으로 구현함으로써, 웹 어플리케이션(21)의 개발자는 개발 툴의 전문적인 기능을 익히는데 시간을 소비할 필요 없이 기존의 웹페이지 개발 언어(예컨대, HTML, JavaScript, CSS 등)를 그대로 사용하여 웹 어플리케이션(21)을 개발할 수 있다.
웹 서버(30)는 HTTP를 통해 요구를 처리하는 컴퓨터 시스템이다. 웹 서버(30)는 상기 네이티브 기능의 실행에 따라 얻어지는 출력의 정보를 수신한다. 예컨대, 웹 서버(30)는 카메라(11)의 동작에 따라 얻어지는 사진의 정보를 수신하거나, GPS(13)의 동작에 따라 얻어지는 이동 장치(10)의 현재 위치의 정보를 수신한다.
네이티브 기능을 수행하기 위해 웹 서버(30)와 통신 없이 이동 장치(10) 내에서 명령 데이터 전송 동작이 수행된다. 외부의 웹 서버(30)로 명령 데이터가 전송되지 않으므로 네이티브 기능을 처리하는 속도가 명령 데이터가 외부로 전송될 때보다 더 빠르고 효율적이다.
도 3은 본 발명의 실시 예에 따른 이동 장치의 카메라 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 3을 참조하면, ①이용자는 이동 장치(10)의 카메라(11)을 이용하여 사진을 찍기 위해 웹뷰(19)에 구현된 단어 "카메라"를 클릭하여 네이티브 기능의 실행 요구 동작을 수행한다. 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수 문자와 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트(17)로 전송할 수 있다. 예컨대, 상기 명령 데이터는 "{{카메라}}"일 수 있다. 실시 예에 따라 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수 문자, 이미지, 및 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트(17)로 전송할 수 있다.
②네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다. 실행된 네이티브 코드에 따라 카메라(11)에 의해 사진 파일이 생성된다.
③ 네이티브 컴포넌트(17)는 상기 사진 파일을 웹 서버(30)로 전송할 수 있다.
④웹 서버(30)는 상기 사진 파일의 정보를 네이티브 컴포넌트(17)로 콜백(callback)할 수 있다. 상기 사진 파일의 정보란 사진 파일의 형식, 사이즈, 해상도 및 생성 날짜를 포함한다.
⑤네이티브 컴포넌트(17)는 상기 사진 파일의 정보를 웹 어플리케이션(21)으로 전달한다.
⑥웹 어플리케이션(21)은 웹 서버(30)에 저장하기 위해 상기 사진 파일의 정보를 웹 서버(30)로 전송할 수 있다.
도 4는 본 발명의 실시 예에 따른 이동 장치의 GPS 기능을 실행시키기 위한 시스템의 블록도를 나타낸다.
도 4를 참조하면, ①이용자는 이동 장치(10)의 GPS(13)을 이용하여 이동 장치(10)의 현재 위치를 알기 위해 웹뷰(19)에 구현된 GPS 단어를 클릭하여 네이티브 기능의 실행 요구 동작을 수행한다. 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트(17)로 전송할 수 있다. 실시 예에 따라 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수 문자, 이미지, 및 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트(17)로 전송할 수 있다.
②네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다. 실행된 네이티브 코드에 따라 GPS(13)에 의해 현재 위치의 정보가 생성된다.
③웹 어플리케이션(21)은 웹 서버(30)에 저장하기 위해 상기 현재 위치의 정보를 웹 서버(30)로 전송할 수 있다.
도 5는 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
도 1과 도 5를 참조하면, 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자와 단어를 포함하는 명령 데이터를 네이티브 컴포넌트(17)로 전송한다(S100).
네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다(S200).
도 6은 본 발명의 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
도 1과 도 6을 참조하면, 웹 어플리케이션(21)은 네이티브 기능의 실행 요구에 응답하여 특수문자, 이미지, 및 단어를 포함하는 명령 데이터를 네이티브 컴포넌트(17)로 전송한다(S1000).
네이티브 컴포넌트(17)는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행한다(S2000).
실시 예에 따라 웹뷰(19)에 광고와 같은 다른 웹사이트도 표시될 수 있다.
도 7은 본 발명의 또 다른 실시 예에 따른 이동 장치의 네이티브 기능을 실행시키기 위한 방법을 설명하기 위한 흐름도를 나타낸다.
도 1 내지 도 3, 및 도 7을 참고하면, 실시 예에 따라 웹 어플리케이션(21)은 광고와 같은 다른 웹사이트의 내용도 웹뷰(19)에 표시하도록 구현될 수 있다. 즉, 웹뷰(19)에는 웹 어플리케이션(21)의 내용뿐만 아니라 광고와 같은 다른 웹사이트의 내용도 함께 표시될 수 있다. 상기 다른 웹사이트는 웹 어플리케이션(21)을 구현한 개발자가 아니라 제3자에 의해 구현된 사이트를 의미한다.
상기 다른 웹사이트도 네이티브 기능이 실행되도록 구현될 수 있다. 즉, 이동 장치(10)의 이용자는 웹뷰(19)에 표시된 상기 다른 웹사이트의 특정 단어, 특정 아이콘, 또는 이들의 조합을 클릭하여 이동 장치(10)의 카메라(11), GPS (13), 또는 NFC(15)의 기능의 실행 요구 동작을 수행할 수 있다.
이 때, 상기 다른 웹사이트는 웹 어플리케이션(21)을 구현한 개발자가 아니기 때문에 신뢰하기 어렵다. 예컨대, 상기 다른 웹사이트에서 표시된 특정 단어, 특정 아이콘, 또는 이들의 조합이 클릭됨으로써 이동 장치(10)의 내부에 구현된 연락처가 해킹될 수 있다.
이러한 상기 다른 웹사이트의 네이티브 기능의 실행으로 인한 이동 장치(10)의 해킹을 방지하기 위해 다음과 같은 방법이 제안될 수 있다.
웹 어플리케이션(21)의 개발자에 의해 구현된 네이티브 기능이 아니라 상기 개발자가 아닌 제3자의 웹사이트에서 구현된 네이티브 기능의 실행 요구가 있을 때, 웹 어플리케이션(21)은 먼저 플래그 값에 임의의 값이 설정되었는지 검사한다(S10000). 상기 제3자의 웹사이트는 웹 어플리케이션(21)을 구현한 개발자가 아니라 제3자에 의해 구현된 사이트로 웹 어플리케이션(21)에 의해 웹뷰(19)에서 상기 제3자의 웹사이트의 내용이 표시되도록 구현된 사이트를 의미한다. 상기 플래그 값은 임의의 비트 값을 의미한다.
상기 플래그 값에 임의의 값이 설정되었을 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 네이티브 컴포넌트(17)는 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한다(S50000).
실시 예에 따라 웹 어플리케이션(21)의 개발자에 의해 구현된 네이티브 기능이 아니라 상기 개발자가 아닌 제3자의 웹사이트에서 구현된 네이티브 기능의 실행 요구가 있을 때, 웹 어플리케이션(21)은 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트할 수 있다. 또한, 실시 예에 따라 상기 플래그 값에 임의의 값이 설정되지 않았을 때, 웹 어플리케이션(21)은 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트할 수 있다(S20000). 상기 평균 방문 횟수는 일 평균 방문 횟수, 1주일 평균 방문 횟수, 1달 평균 방문 횟수, 또는 연 평균 방문 횟수일 수 있다. 상기 제3자의 웹사이트의 내용은 웹뷰(19)에 표시되는 광고일 수 있다.
웹 어플리케이션(21)은 상기 카운트된 평균 방문 횟수가 미리 결정된 값을 넘는지 비교한다(S30000). 상기 미리 결정된 값은 임의로 설정될 수 있다. 상기 카운트된 평균 방문 횟수가 상기 미리 결정된 값을 넘을 때, 상기 제3자의 웹사이트는 많은 사람들이 방문하는 사이트로 신뢰할 수 있다.
또한, 상기 카운트된 평균 방문 횟수가 상기 미리 결정된 값을 넘을 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 네이티브 컴포넌트(17)는 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한다(S50000).
실시 예에 따라 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 네이티브 기능을 실행하도록 허락한 후, 플래그 값으로 임의의 값을 설정하고, 상기 임의의 값으로 설정된 플래그 값을 저장할 수 있다. 실시 예에 따라 상기 임의의 값으로 설정된 플래그 값은 네이티브 컴포넌트(17)로 복사되어 네이티브 컴포넌트(17)도 상기 플래그 값을 저장할 수 있다.
상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 상기 플래그 값에 설정된 상기 임의의 값에 따라 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트하지 않고, 바로 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 이미 웹 어플리케이션(21)은 상기 제3자의 웹사이트에 대해 신뢰할 수 있는 사이트라고 판단하였기 때문이다. 상기 플래그 값의 설정으로 인해 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트하는 동작을 생략할 수 있어 네이티브 기능의 속도를 향상시킬 수 있는 효과가 있다.
실시 예에 따라 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 웹 어플리케이션(21)에 저장된 상기 임의의 값으로 설정된 플래그 값과 네이티브 컴포넌트(17)에 저장된 상기 임의의 값으로 설정된 플래그 값을 비교하여 양 값들이 일치할 때만, 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 웹 어플리케이션(21)에 저장된 상기 임의의 값은 해킹에 의해 변경될 가능성이 있기 때문이다.
상기 카운트된 평균 방문 횟수가 미리 결정된 값을 넘지 않을 때, 웹 어플리케이션(21)은 웹 어플리케이션(21)에 저장된 상기 웹사이트와 대응하는 제1레지스터 값과 네이티브 컴포넌트(17)에 저장된 상기 웹사이트와 대응하는 제2레지스터 값을 서로 비교한다(S40000).
웹 어플리케이션(21)은 신뢰할 수 있는 사이트들의 리스트를 수신하여 상기 신뢰할 수 있는 사이트들에 대해서는 상기 제1레지스터 값으로 난수를 설정하고, 상기 제1레지스터 값을 네이티브 컴포넌트(17)로 전송한다. 네이티브 컴포넌트(17)는 상기 제1레지스터 값을 상기 제2레지스터 값으로서 저장한다. 상기 신뢰할 수 있는 사이트들의 리스트는 주기적으로 업데이트될 수 있다.
상기 제1레지스터 값과 상기 제2레지스터 값이 서로 일치할 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 네이티브 컴포넌트(17)는 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한다(S50000). 상기 제1레지스터 값은 해킹될 수 있지만, 제2레지스터 값은 네이티브 컴포넌트(17)에 저장된 값으로 해킹될 수 없다. 예컨대, 해커는 신뢰가능한 사이트로 보일 수 있게 상기 제1레지스터 값을 변경할 수 있지만, 제1레지스터 값과 제2레지스터 값의 비교로 이러한 해킹을 방지할 수 있다.
실시 예에 따라 상기 제1레지스터 값과 상기 제2레지스터 값이 서로 일치할 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락한 후, 웹 어플리케이션(21)은 상기 플래그 값으로 임의의 값을 설정하고, 임의의 값이 설정된 플래그 값이 저장될 수 있다. 실시 예에 따라 상기 임의의 값이 설정된 플래그 값은 네이티브 컴포넌트(17)로 복사되어 네이티브 컴포넌트(17)도 상기 플래그 값을 저장할 수 있다.
상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 상기 플래그 값에 설정된 상기 임의의 값에 따라 상기 제1레지스터 값과 제2레지스터 값을 서로 비교하지 않고, 바로 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락한다.
이미 웹 어플리케이션(21)은 상기 제1레지스터 값과 상기 제2레지스터 값의 비교를 통해 상기 제3자의 웹사이트에 대해 신뢰할 수 있는 사이트라고 판단하였기 때문이다. 상기 플래그 값의 설정으로 인해 상기 제3자의 웹사이트의 평균 방문 횟수를 카운트하는 동작과, 상기 제3자의 웹사이트에 대한 상기 제1레지스터 값과 상기 제2레지스터 값의 비교 동작을 생략할 수 있어 네이티브 기능의 속도를 향상시킬 수 있는 효과가 있다.
실시 예에 따라 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행한 후, 이동 장치(10)의 이용자는 상기 제3자의 웹사이트에서 구현된 네이티브 기능의 실행을 재요구할 때, 웹 어플리케이션(21)은 웹 어플리케이션(21)에 저장된 상기 임의의 값으로 설정된 플래그 값과 네이티브 컴포넌트(17)에 저장된 상기 임의의 값으로 설정된 플래그 값을 비교하여 양 값들이 일치할 때만, 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하도록 허락할 수 있다. 웹 어플리케이션(21)에 저장된 상기 임의의 값은 해킹에 의해 변경될 가능성이 있기 때문이다.
상기 제1레지스터 값과 상기 제2레지스터 값이 서로 일치하지 않을 때, 웹 어플리케이션(21)은 네이티브 컴포넌트(17)가 상기 제3자의 웹사이트에서 구현된 네이티브 기능을 실행하지 못하도록 한다(S60000). 신뢰성있는 제3자의 웹사이트에 대해서만 네이티브 기능이 수행되도록 함으로써 보안이 강화될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 시스템; 17: 네이티브 컴포넌트;
10: 이동 장치; 19; 웹뷰;
11: 카메라; 21; 웹 어플리케이션;
13; GPS; 30: 웹 서버;
15: NFC;

Claims (3)

  1. 네이티브 기능의 실행 요구에 응답하여 웹 어플리케이션은 특수문자와 단어만으로 구성된 명령 데이터를 네이티브 컴포넌트(native component)로 전송하는 단계; 및
    상기 네이티브 컴포넌트는 상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하는 동작을 실행하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 단계를 포함하는 이동 장치의 네이티브 기능을 실행시키기 위한 방법.
  2. 제1항에 있어서, 상기 명령 데이터를 해석하는 동작은,
    상기 특수문자 사이의 상기 단어를 추출하는 추출 동작을 실행하는 단계; 및
    상기 추출된 단어의 일부를 이용하여 개발자가 작성된 단어의 의도를 추론하는 추론 동작을 실행하는 단계를 포함하는 이동 장치의 네이티브 기능을 실행시키기 위한 방법.
  3. 네이티브 컴포넌트; 및
    네이티브 기능의 실행 요구에 응답하여 특수문자와 단어만으로 구성된 명령 데이터를 상기 네이티브 컴포넌트로 전송하는 웹 어플리케이션를 포함하며,
    상기 네이티브 컴포넌트는,
    상기 네이티브 기능을 실행하기 위해 상기 명령 데이터를 해석하는 동작을 실행하고, 해석된 명령 데이터에 따라 네이티브 코드를 실행하는 이동 장치.
KR1020190016135A 2018-07-04 2019-02-12 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치 KR102173838B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180077581 2018-07-04
KR20180077581 2018-07-04

Publications (2)

Publication Number Publication Date
KR20200004742A true KR20200004742A (ko) 2020-01-14
KR102173838B1 KR102173838B1 (ko) 2020-11-04

Family

ID=69153024

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190016135A KR102173838B1 (ko) 2018-07-04 2019-02-12 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102173838B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140021091A (ko) * 2012-08-07 2014-02-20 인크로스 주식회사 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법
KR20140021090A (ko) * 2012-08-07 2014-02-20 인크로스 주식회사 하이브리드 웹 어플리케이션에서 자바스크립트 연동을 위한 인터페이스
KR20150033754A (ko) * 2013-09-23 2015-04-02 주식회사 팬택 모바일 단말의 정보 표시 장치 및 방법
KR101562279B1 (ko) * 2013-09-16 2015-10-30 고려대학교 산학협력단 사용자 의도 추론에 기반한 휴대용 단말 장치 및 이를 이용한 컨텐츠 추천 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140021091A (ko) * 2012-08-07 2014-02-20 인크로스 주식회사 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법
KR20140021090A (ko) * 2012-08-07 2014-02-20 인크로스 주식회사 하이브리드 웹 어플리케이션에서 자바스크립트 연동을 위한 인터페이스
KR101562279B1 (ko) * 2013-09-16 2015-10-30 고려대학교 산학협력단 사용자 의도 추론에 기반한 휴대용 단말 장치 및 이를 이용한 컨텐츠 추천 방법
KR20150033754A (ko) * 2013-09-23 2015-04-02 주식회사 팬택 모바일 단말의 정보 표시 장치 및 방법

Also Published As

Publication number Publication date
KR102173838B1 (ko) 2020-11-04

Similar Documents

Publication Publication Date Title
EP3069544B1 (en) Protecting privacy in web-based immersive augmented reality
US11321925B2 (en) Mixed-reality system, program, method, and portable terminal device
EP2909998B1 (en) Webpages with onboard hardware functions
US9280665B2 (en) Fast and accurate identification of message-based API calls in application binaries
EP3416054B1 (en) Method and device for page display, and storage medium
US9934206B2 (en) Method and apparatus for extracting web page content
US9804767B2 (en) Light dismiss manager
US10754717B2 (en) Fast and accurate identification of message-based API calls in application binaries
CN111737692B (zh) 应用程序的风险检测方法及装置、设备、存储介质
US9038019B2 (en) Paige control for enterprise mobile applications
EP3016012A1 (en) Method and device for marking terminal
CN102937963A (zh) 使用协议处理程序的模板和服务器内容下载
CN105786476B (zh) 移动客户端与服务器之间的数据处理方法及系统
KR102173840B1 (ko) 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치
WO2019144259A1 (en) Transformation of resource files using mapped keys for tracking content location
CN111158777B (zh) 组件调用方法、装置及计算机可读存储介质
CN105706023A (zh) 与不支持的输入设备的通信
KR102173838B1 (ko) 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치
CN112905920A (zh) 一种页面显示的方法和装置
RU2634221C2 (ru) Способ и устройство для отрисовки представления электронного документа на экране
US11550990B2 (en) Machine first approach for identifying accessibility, non-compliances, remediation techniques and fixing at run-time
US8793342B2 (en) Interpreting web application content
US20150378530A1 (en) Command surface drill-in control
KR102476005B1 (ko) 가상의 원격 브라우저 서비스 제공 방법 및 이를 수행하는 클라우드 서버
US20230269322A1 (en) Cross-channel configurable navigation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant