KR20190134880A - Method for analyzing detail page of web-application using document of model and apparatus thereof - Google Patents

Method for analyzing detail page of web-application using document of model and apparatus thereof Download PDF

Info

Publication number
KR20190134880A
KR20190134880A KR1020180051424A KR20180051424A KR20190134880A KR 20190134880 A KR20190134880 A KR 20190134880A KR 1020180051424 A KR1020180051424 A KR 1020180051424A KR 20180051424 A KR20180051424 A KR 20180051424A KR 20190134880 A KR20190134880 A KR 20190134880A
Authority
KR
South Korea
Prior art keywords
web application
pages
page
user interface
object model
Prior art date
Application number
KR1020180051424A
Other languages
Korean (ko)
Other versions
KR102131080B1 (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 KR1020180051424A priority Critical patent/KR102131080B1/en
Publication of KR20190134880A publication Critical patent/KR20190134880A/en
Application granted granted Critical
Publication of KR102131080B1 publication Critical patent/KR102131080B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Disclosed are a method for analyzing a web application detail page using a document object model and an apparatus therefor. The method extracts a document object model based on a plurality of pages comprising a web application, detects a feature value for each of the plurality of pages based on at least two elements included in the document object model, clusters the feature value based on multidimensional coordinates, and classifies the plurality of pages for the web application for each user interface based on the clustering result.

Description

문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법 및 이를 위한 장치 {METHOD FOR ANALYZING DETAIL PAGE OF WEB-APPLICATION USING DOCUMENT OF MODEL AND APPARATUS THEREOF}Method for analyzing detailed page of web application using document object model and device therefor {METHOD FOR ANALYZING DETAIL PAGE OF WEB-APPLICATION USING DOCUMENT OF MODEL AND APPARATUS THEREOF}

본 발명은 웹 어플리케이션의 세부 페이지를 분류하는 기술에 관한 것으로, 특히 웹 어플리케이션(Web Application)이 URL(Uniform Resource Locator) 변경없이 다양한 UI(User Interface)로 구성된 경우에 각각의 사용자 인터페이스가 구성하는 DOM(Document of Model) 데이터를 분석하여 세부 페이지를 분류하는 기술에 관한 것이다.The present invention relates to a technology for classifying detailed pages of a web application, and particularly, a DOM configured by each user interface when a web application is configured with various user interfaces (UIs) without changing a uniform resource locator (URL). (Document of Model) It is about a technique of classifying detailed pages by analyzing data.

일반적으로 웹 어플리케이션이 다양한 사용자 인터페이스(User Interface, UI)를 제공하는 경우, 각각의 사용자 인터페이스를 구성하는 페이지 별로 URL(Uniform Resource Locator)을 설정하게 된다. 따라서, 웹 어플리케이션에서는 URL이 변경됨에 따라 변경된 페이지를 제공한다. Generally, when a web application provides various user interfaces (UIs), a URL (Uniform Resource Locator) is set for each page constituting each user interface. Therefore, the web application provides the changed page as the URL is changed.

그러나 최근 SPA(Single page web Application) 기술이 발전함에 따라 URL을 변경하지 않아도 다양한 사용자 인터페이스를 가지도록 화면을 구성할 수 있다. 따라서, URL 변경없이 다양한 사용자 인터페이스 구성을 가지는 웹 어플리케이션은 제작 또는 설계 단계에서 사용자 인터페이스 구성이 정의된다. However, with the recent development of SPA (Single page web application) technology, the screen can be configured to have various user interfaces without changing the URL. Therefore, in the web application having various user interface configurations without changing the URL, the user interface configuration is defined at the production or design stage.

또한, 이러한 사용자 인터페이스 구성은 웹 어플리케이션의 동작을 제어하는 자바스크립트(JavaScript)에서 구현된다. 따라서, 웹 어플리케이션 설계자와 개발자는 각기 다른 사용자 인터페이스를 가지는 웹 페이지를 정의할 수 있다. This user interface configuration is also implemented in JavaScript, which controls the behavior of the web application. Thus, web application designers and developers can define web pages with different user interfaces.

그러나, 이러한 경우에는 설계자와 개발자의 도움 없이 웹 어플리케이션이 가지는 각각의 사용자 인터페이스를 페이지 단위로 정의 및 분류하는 하는 것에 어려움이 따른다. 이러한 문제점은 페이지를 분류하여 페이지 별 웹 어플리케이션의 사용자 활동을 분석하는 웹 분석(Web Analytics)분야에서도 신속하게 해결해야 할 부분일 수 있다.However, in this case, it is difficult to define and classify each user interface of a web application in units of pages without the help of designers and developers. This problem may be a part that needs to be solved quickly in the field of web analytics that classifies pages and analyzes user activities of web applications.

한국 공개 특허 제10-2012-0022893호, 2012년 3월 12일 공개 (명칭: 이력적 검색 결과들을 사용한 향상된 문서 분류 데이터 생성)Korean Unexamined Patent Publication No. 10-2012-0022893, published March 12, 2012 (Name: Improved document classification data generation using historical search results)

본 발명의 목적은, 웹 어플리케이션의 페이지 구성을 알지 못하는 경우에도 사용자 인터페이스 별로 웹 페이지를 분류하는 방법을 제공하는 것이다.An object of the present invention is to provide a method for classifying web pages by user interface even when the page composition of the web application is unknown.

또한, 본 발명의 목적은 웹 어플리케이션의 제작 설계 시 정의된 사용자 인터페이스 구성이 제대로 구현되었는지 확인하는 것이다.In addition, an object of the present invention is to determine whether the user interface configuration defined during the production design of the web application is properly implemented.

또한, 본 발명의 목적은 웹 어플리케이션의 세부 페이지 분석을 통해 페이지 별로 발생하는 사용자 이벤트를 분석하여 다양한 서비스를 제공하는 것이다.In addition, an object of the present invention is to provide a variety of services by analyzing the user events occurring for each page through the detailed page analysis of the web application.

상기한 목적을 달성하기 위한 본 발명에 따른 웹 어플리케이션 세부 페이지 분석 방법은, 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(DOCUMENT OF MODEL)을 추출하는 단계; 상기 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 상기 복수개의 페이지들 각각에 대한 특성값을 검출하는 단계; 및 다차원 좌표를 기반으로 상기 특성값을 군집화하고, 군집화 결과를 기반으로 상기 복수개의 페이지들을 상기 웹 어플리케이션에 대한 사용자 인터페이스(USER INTERFACE) 별로 분류하는 단계를 포함한다.Web application detailed page analysis method according to the present invention for achieving the above object comprises the steps of: extracting a document object model (DOCUMENT OF MODEL) based on a plurality of pages constituting a web application; Detecting a characteristic value for each of the plurality of pages based on at least two elements included in the document object model; And clustering the feature values based on multi-dimensional coordinates, and classifying the plurality of pages according to a user interface for the web application based on a clustering result.

이 때, 웹 어플리케이션은 클라우드 스트리밍(CLOUD STREAMING) 기반의 클라우드 브라우저(CLOUD BROWSER)에서 실행될 수 있다.At this time, the web application may be executed in a cloud streaming (CLOUD BROWSER) based on cloud streaming (CLOUD STREAMING).

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(SINGLE PAGE WEB APPLICATION)에 상응할 수 있다.In this case, the web application may correspond to a single page web application.

이 때, 분류하는 단계는 상기 다차원 좌표 상의 거리를 고려하여 상기 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다.In this case, the classifying may cluster at least one characteristic value corresponding to each of the plurality of pages in consideration of the distance on the multi-dimensional coordinates.

이 때, 추출하는 단계는 상기 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(NAVIGATION)하면서 상기 문서 객체 모델을 추출할 수 있다.In this case, in the extracting step, the document object model may be extracted while NAVIGATION of all menus for the web application.

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다.At this time, the characteristic value may correspond to a value capable of quantitative measurement.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다.In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates.

이 때, 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석하는 단계를 더 포함할 수 있다.In this case, the method may further include analyzing user events for each page based on page information classified by user interface.

이 때, 상기 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 상기 웹 어플리케이션이 제대로 구현되었는지 여부를 검토하는 단계를 더 포함할 수 있다.In this case, the method may further include examining whether the web application is properly implemented by comparing the user interface configuration defined in the production of the web application with page information classified for each user interface.

또한, 본 발명에 따른 분석 서버는, 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(DOCUMENT OF MODEL)을 추출하고, 상기 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 상기 복수개의 페이지들 각각에 대한 특성값을 검출하고, 다차원 좌표를 기반으로 상기 특성값을 군집화하고, 군집화 결과를 기반으로 상기 복수개의 페이지들을 상기 웹 어플리케이션에 대한 사용자 인터페이스(USER INTERFACE) 별로 분류하는 프로세서; 및 상기 문서 객체 모델 및 상기 특성값 중 적어도 하나를 저장하는 메모리를 포함한다.In addition, the analysis server according to the present invention extracts a document object model (DOCUMENT OF MODEL) based on a plurality of pages constituting a web application, and based on at least two or more elements included in the document object model A processor for detecting a feature value for each of the pages, clustering the feature values based on multi-dimensional coordinates, and classifying the plurality of pages by a user interface for the web application based on a clustering result; And a memory that stores at least one of the document object model and the property value.

이 때, 웹 어플리케이션은 클라우드 스트리밍(CLOUD STREAMING) 기반의 클라우드 브라우저(CLOUD BROWSER)에서 실행될 수 있다.At this time, the web application may be executed in a cloud streaming (CLOUD BROWSER) based on cloud streaming (CLOUD STREAMING).

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(SINGLE PAGE WEB APPLICATION)에 상응할 수 있다.In this case, the web application may correspond to a single page web application.

이 때, 프로세서는 상기 다차원 좌표 상의 거리를 고려하여 상기 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다.In this case, the processor may cluster at least one characteristic value corresponding to each of the plurality of pages in consideration of the distance on the multi-dimensional coordinates.

이 때, 프로세서는 상기 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(NAVIGATION) 하면서 상기 문서 객체 모델을 추출할 수 있다.In this case, the processor may extract the document object model while navigating through all menus for the web application.

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다.At this time, the characteristic value may correspond to a value capable of quantitative measurement.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다.In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates.

이 때, 프로세서는 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석할 수 있다.In this case, the processor may analyze the user event for each page based on the page information classified for each user interface.

이 때, 프로세서는 상기 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 상기 웹 어플리케이션이 제대로 구현되었는지 여부를 검토할 수 있다.At this time, the processor may examine whether the web application is properly implemented by comparing the user interface configuration defined in the production step of the web application with the page information classified for each user interface.

본 발명에 따르면, 웹 어플리케이션의 페이지 구성을 알지 못하는 경우에도 사용자 인터페이스 별로 웹 페이지를 분류하는 방법을 제공할 수 있다.According to the present invention, even if the page configuration of a web application is unknown, a method of classifying web pages by user interface may be provided.

또한, 본 발명은 웹 어플리케이션의 제작 설계 시 정의된 사용자 인터페이스 구성이 제대로 구현되었는지 확인할 수 있다.In addition, the present invention can confirm whether the user interface configuration defined when the production design of the web application is properly implemented.

또한, 본 발명은 웹 어플리케이션의 세부 페이지 분석을 통해 페이지 별로 발생하는 사용자 이벤트를 분석하여 다양한 서비스를 제공할 수 있다.In addition, the present invention can provide a variety of services by analyzing the user events occurring for each page through the detailed page analysis of the web application.

도 1은 본 발명에 따른 웹 어플리케이션 세부 페이지 분석 과정의 일 예를 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법을 나타낸 동작흐름도이다.
도 3은 종래에 웹 어플리케이션 페이지 분석 방식의 일 예를 나타낸 도면이다.
도 4는 본 발명에 따른 클라우드 스트리밍 시스템의 일 예를 나타낸 도면이다.
도 5는 본 발명에 따른 다차원 좌표와 특성값의 일 예를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법을 상세하게 나타낸 동작흐름도이다.
도 7은 본 발명의 일실시예에 따른 웹 어플리케이션 세부 페이지 분석 시스템을 나타낸 블록도이다.
도 8은 도 7에 도시된 분석 서버의 일 예를 나타낸 블록도이다.
도 9는 본 발명의 일실시예에 따른 웹 어플리케이션 세부 페이지 분석 과정을 상세하게 나타낸 도면이다.
1 is a view showing an example of a web application detailed page analysis process according to the present invention.
2 is a flowchart illustrating a web application detailed page analysis method using a document object model according to an embodiment of the present invention.
3 is a diagram illustrating an example of a conventional web application page analysis method.
4 is a diagram illustrating an example of a cloud streaming system according to the present invention.
5 is a diagram illustrating an example of multidimensional coordinates and characteristic values according to the present invention.
6 is a flowchart illustrating a detailed method of analyzing a web application detailed page using a document object model according to an embodiment of the present invention.
7 is a block diagram illustrating a web application detailed page analysis system according to an exemplary embodiment of the present invention.
8 is a block diagram illustrating an example of an analysis server illustrated in FIG. 7.
9 is a detailed diagram illustrating a web application detailed page analysis process according to an embodiment of the present invention.

본 발명에서 사용되는 기술적 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in the present invention are merely used to describe specific embodiments, and are not intended to limit the present invention. In addition, the technical terms used in the present invention should be interpreted as meanings generally understood by those skilled in the art unless the present invention has a special meaning defined in the present invention, and is excessively comprehensive. It should not be interpreted in the sense of or in the sense of being excessively reduced. In addition, when a technical term used in the present invention is an incorrect technical term that does not accurately express the spirit of the present invention, it should be replaced with a technical term that can be understood by those skilled in the art. In addition, the general terms used in the present invention should be interpreted as defined in the dictionary or according to the context before and after, and should not be interpreted in an excessively reduced sense.

또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서 "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성 요소들 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.Also, the singular forms used in the present invention include plural forms unless the context clearly indicates otherwise. Terms such as “consisting of” or “comprising” in the present invention should not be construed as necessarily including all of the various components or steps described in the present invention, and some of the components or some steps may not be included. It should be construed that it may further include, or further include, additional components or steps.

또한, 본 발명에서 사용되는 제 1, 제 2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성 요소는 제 2 구성 요소로 명명될 수 있고, 유사하게 제 2 구성 요소도 제 1 구성 요소로 명명될 수 있다.In addition, terms including ordinal numbers such as first and second used in the present invention may be used to describe components, but the components should not be limited by the terms. The terms are used only to distinguish one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and the same or similar components will be given the same reference numerals regardless of the reference numerals, and redundant description thereof will be omitted.

또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the present invention, when it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easily understanding the spirit of the present invention and should not be construed as limiting the spirit of the present invention by the accompanying drawings.

도 1은 본 발명에 따른 웹 어플리케이션 세부 페이지 분석 과정의 일 예를 나타낸 도면이다.1 is a view showing an example of a web application detailed page analysis process according to the present invention.

도 1을 참조하면, 본 발명에 따른 웹 어플리케이션 세부 페이지 분석 과정은 분석 서버(110)가 하나의 URL(120)을 통해 접근 가능한 여러 페이지들을 사용자 인터페이스(User Interface, UI) 별로 분석하는 과정에 해당할 수 있다.Referring to FIG. 1, the web application detailed page analysis process according to the present invention corresponds to a process in which the analysis server 110 analyzes various pages accessible through one URL 120 for each user interface (UI). can do.

종래에는 웹 어플리케이션의 사용자 인터페이스를 구성하는 페이지 별로 URL이 할당되었기 때문에 URL에 대한 분석만으로도 사용자 또는 사용자 이벤트 분석을 수행할 수 있었다. 그러나, 싱글 페이지 웹 어플리케이션(Single Page Web Application)이 개발됨으로써 URL을 변경하지 않고도 다양한 사용자 인터페이스를 가질 수 있는 화면 구성이 가능하게 되었다. Conventionally, since URLs are allocated for each page constituting a user interface of a web application, analysis of a user or a user event may be performed only by analyzing the URL. However, the development of a single page web application has made it possible to construct a screen that can have various user interfaces without changing the URL.

그러나, 이와 같이 URL 변경 없이 다양한 사용자 인터페이스를 제공하는 경우, 종래에 URL 분석 기술만으로는 사용자가 실제로 어떤 사용자 인터페이스를 사용하였는지 분석하는 데에 한계가 발생한다. However, in the case of providing various user interfaces without changing the URL as described above, there is a limit in analyzing which user interface the user actually uses with URL analysis technology.

따라서, 본 발명에서는 이러한 문제점을 해결하고, 웹 어플리케이션이 가지는 사용자 인터페이스를 페이지 별로 분석할 수 있는 기술을 제공하고자 한다.Accordingly, the present invention is to solve this problem, and to provide a technology that can analyze the user interface of the web application for each page.

먼저, 본 발명의 일실시예에 따른 분석 서버(110)는, 웹 어플리케이션에 대한 복수개의 페이지들에 대한 분석 정보를 획득하기 위해 각각의 페이지에서 문서 객체 모델(Document of Model)을 추출할 수 있다.First, the analysis server 110 according to an embodiment of the present invention may extract a document object model from each page to obtain analysis information about a plurality of pages for a web application. .

예를 들어, 도 1에 도시된 것처럼 분석 서버(110)가 하나의 URL(120)로 묶인 3개의 페이지들로부터 각각 문서 객체 모델(Document of Model, DOM)을 추출하여 분석을 수행할 수 있다.For example, as shown in FIG. 1, the analysis server 110 may extract a document object model (Document of Model, DOM) from three pages bound by one URL 120 to perform analysis.

이 때, 문서 객체 모델은 웹 브라우저를 통해 확장성 생성 언어 문서의 상호 연동을 위한 객체 기반의 문서 모델에 해당하는 것으로, 프로그램과 스크립트에 의한 문서의 내용, 구조 종류 등의 동적인 접근과 변경이 가능할 수 있다. 또한, 스크립트나 프로그램 언어에 웹 페이지를 연결해줄 수 있다. 이 때, 웹 페이지를 조작 및 생성하기 위해 사용되는 속성, 방법 및 이벤트가 객체를 구성하는데, 이러한 객체들은 대부분의 웹 브라우저에서 스크립트 언어를 통해 접근할 수 있다.In this case, the document object model corresponds to an object-based document model for interoperability of extensibility-generated language documents through a web browser, and allows dynamic access and change of document contents and structure types by programs and scripts. It may be possible. You can also link web pages to scripts or programming languages. At this point, the properties, methods, and events used to manipulate and create web pages make up the objects, which are accessible through scripting languages in most web browsers.

이 후, 분석 서버(110)는 하나의 URL(120)에 포함된 복수개의 페이지들을 각각 사용자 인터페이스(User Interface, UI) 별로 분류함으로써 향후 사용자 이벤트를 분석하거나 웹 어플리케이션의 구현이 제대로 되었는지 판단하는데 사용할 수 있다. Thereafter, the analysis server 110 classifies a plurality of pages included in one URL 120 by each user interface (UI) to analyze future user events or determine whether a web application is properly implemented. Can be.

이 때, 분석 서버(110)가 웹 어플리케이션의 세부 페이지를 분석하는 과정을 간략히 나열하면 다음과 같다. At this time, if the analysis server 110 briefly lists the process of analyzing the detailed page of the web application as follows.

먼저, 분석 서버(110)는 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(Document of Model)을 추출한다. First, the analysis server 110 extracts a document object model based on a plurality of pages constituting a web application.

이 때, 분석 서버(110)는 클라우드 스트리밍 서버와 연동되거나 또는 클라우드 스트리밍 서버의 내부에 위치하면서 클라우드 환경에서 실행되는 웹 어플리케이션에 대한 세부 페이지를 분석할 수 있다.In this case, the analysis server 110 may analyze the detailed page of the web application running in the cloud environment while interworking with the cloud streaming server or located inside the cloud streaming server.

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(Single Page Web Application)에 상응하는 것으로, 도 1에 도시된 것과 같이 하나의 URL(120)을 통해 다양한 사용자 인터페이스를 가지도록 페이지가 구성될 수 있다. 즉, URL을 변경없이 다양한 사용자 인터페이스 구성을 가질 수 있다. In this case, the web application corresponds to a single page web application, and a page may be configured to have various user interfaces through one URL 120 as shown in FIG. 1. That is, it can have various user interface configurations without changing the URL.

이 때, 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(Navigation)하면서 문서 객체 모델을 추출할 수 있다. At this time, the document object model can be extracted while navigating all menus for the web application.

또한, 분석 서버(110)는 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출한다. In addition, the analysis server 110 detects a characteristic value for each of the plurality of pages based on at least two or more elements included in the document object model.

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다. At this time, the characteristic value may correspond to a value capable of quantitative measurement.

또한, 분석 서버(110)는 다차원 좌표를 기반으로 특성값을 군집화하고, 군집화 결과를 기반으로 복수개의 페이지들을 웹 어플리케이션에 대한 사용자 인터페이스(User Interface) 별로 분류한다. In addition, the analysis server 110 clusters the characteristic values based on the multi-dimensional coordinates, and classifies a plurality of pages by user interface for the web application based on the clustering result.

이 때, 다차원 좌표 상의 거리를 고려하여 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다. In this case, at least one characteristic value corresponding to each of the plurality of pages may be clustered in consideration of the distance on the multi-dimensional coordinates.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다. In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates.

또한, 분석 서버(110)는 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석할 수 있다.In addition, the analysis server 110 may analyze user events for each page based on page information classified for each user interface.

또한, 분석 서버(110)는 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 웹 어플리케이션이 제대로 구현되었는지 여부를 검토할 수 있다. In addition, the analysis server 110 may check whether the web application is properly implemented by comparing the user interface configuration defined at the production stage of the web application with the page information classified for each user interface.

이와 같은 과정을 기반으로 웹 어플리케이션의 세부 페이지를 분석 및 분류함으로써 웹 어플리케이션 제작 설계 시 정의된 사용자 인터페이스(UI) 구성에 맞게 웹 어플리케이션이 제대로 구현되었는지 여부를 판단할 수 있다. By analyzing and classifying detailed pages of the web application based on the above process, it is possible to determine whether the web application is properly implemented according to the user interface (UI) configuration defined during the web application production design.

또한, 웹 어플리케이션을 이용하는 사용자 이벤트를 페이지 별로 분석함으로써 분석 결과를 통해 사용자에게 개인화된 다양한 서비스를 제공할 수도 있다. In addition, by analyzing a user event using a web application for each page, it is possible to provide a variety of personalized services to the user through the analysis results.

도 2는 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법을 나타낸 동작흐름도이다.2 is a flowchart illustrating a web application detailed page analysis method using a document object model according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(Document of Model)을 추출한다(S210).Referring to FIG. 2, the web application detailed page analysis method using the document object model according to an embodiment of the present invention extracts a document object model based on a plurality of pages constituting the web application (S210). ).

이 때, 웹 어플리케이션은 클라우드 스트리밍(Cloud Streaming) 기반의 클라우드 브라우저(Cloud Browser)에서 실행될 수 있다. In this case, the web application may be executed in a cloud browser based on cloud streaming.

이 때, 클라우드 스트리밍 서비스 또는 클라우드 컴퓨팅 서비스는 사용자가 컨텐츠를 로컬 스토리지가 아닌, 인터넷상의 클라우드 스토리지에 저장해놓고, 인터넷이 가능한 기기를 이용하여 언제 어디서든지 클라우드 스토리지에 접근하여 컨텐츠를 이용할 수 있는 서비스이다.At this time, the cloud streaming service or cloud computing service is a service that allows users to store content in cloud storage on the Internet, not local storage, and access the cloud storage anytime, anywhere using the Internet-enabled device. .

예를 들어, 도 4를 참조하면, 본 발명의 일실시예에 따른 웹 어플리케이션(414)은 클라우드 스트리밍 서버(410)에서 클라우드 스트리밍 엔진(411)의 실행을 기반으로 로드되는 클라우드 브라우저(412)에서 실행될 수 있다. 이 때, 클라우드 브라우저(412)는 웹 엔진(413)을 실행시킴으로써 싱글 페이지 웹 어플리케이션에 상응하게 웹 어플리케이션(414)을 실행시킬 수 있다.For example, referring to FIG. 4, the web application 414 according to an embodiment of the present invention is loaded in the cloud browser 412 loaded based on the execution of the cloud streaming engine 411 in the cloud streaming server 410. Can be executed. In this case, the cloud browser 412 may execute the web application 414 corresponding to the single page web application by executing the web engine 413.

이 때, 클라우드 브라우저(412)를 기반으로 실행되는 웹 어플리케이션(414)은 클라우드 클라이언트로부터 입력되는 키 입력을 바탕으로 동작할 수 있다. In this case, the web application 414 executed based on the cloud browser 412 may operate based on a key input input from the cloud client.

이 때, 클라우드 클라이언트는 클라우드 스트리밍 서버(410)에게 클라우드 스트리밍 서비스를 요청하고, 클라우드 스트리밍 서버(410)로부터 요청에 따른 실행화면을 수신하여 사용자에게 제공해줄 수 있다. 따라서, 사용자는 마치 요청된 서비스에 해당하는 동영상이나 어플리케이션이 클라우드 클라이언트에 상응하는 단말에서 실행되는 것처럼 느낄 수 있다. In this case, the cloud client may request a cloud streaming service from the cloud streaming server 410, and receive an execution screen according to the request from the cloud streaming server 410 and provide the same to the user. Accordingly, the user may feel as if the video or application corresponding to the requested service is executed in the terminal corresponding to the cloud client.

이 때, 클라우드 클라이언트는 각각 통신망에 연결되어 클라우드 스트리밍 서버(410)와 통신 가능한 장치에 해당할 수 있다. 예를 들어, 클라우드 클라이언트는 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말, 이동통신단말기 및 IP(Internet Protocol) 단말 등의 다양한 단말에 해당할 수 있다. 또한, 클라우드 클라이언트는 휴대폰, 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수도 있다.In this case, each cloud client may correspond to a device that is connected to a communication network to communicate with the cloud streaming server 410. For example, the cloud client may correspond to various terminals such as all information communication devices, multimedia terminals, wired terminals, fixed terminals, mobile communication terminals, and IP (Internet Protocol) terminals. In addition, cloud clients are mobile phones, mobile phones, Portable Multimedia Played (PMP), Mobile Internet Device (MID), Smart Phone, Desktop, Tablet PC, Notebook, Netbook ( It may also be a mobile terminal having various mobile communication specifications such as a net book), a personal digital assistant (PDA), a smart TV, and an information communication device.

또한, 클라우드 클라이언트에 상응하는 단말은 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 클라우드 클라이언트에 상응하는 단말의 기능 제어와 관련하여 입력되는 신호를 입력부를 통해 제어부로 전달할 수 있다. 또한, 클라우드 클라이언트에 상응하는 단말의 입력부는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성할 수 있다. 이 때, 클라우드 클라이언트에 상응하는 단말의 입력부는 클라이언트에 상응하는 단말의 표시부와 함께 하나의 터치패널(또는 터치 스크린(touch screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 또한, 클라우드 클라이언트에 상응하는 단말의 입력부는 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. In addition, the terminal corresponding to the cloud client may receive various information such as numeric and text information, and may set various functions and transmit a signal input in relation to the function control of the terminal corresponding to the cloud client to the controller through the input unit. . In addition, the input unit of the terminal corresponding to the cloud client may be configured to include at least one of the keypad and the touch pad for generating an input signal according to the user's touch or operation. In this case, the input unit of the terminal corresponding to the cloud client may be configured in the form of one touch panel (or touch screen) together with the display unit of the terminal corresponding to the client to simultaneously perform input and display functions. In addition, the input unit of the terminal corresponding to the cloud client may be any type of input means that can be developed in the future in addition to an input device such as a keyboard, a keypad, a mouse, a joystick, and the like.

또한, 클라우드 클라이언트에 상응하는 단말의 표시부는 클라이언트에 상응하는 단말의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시할 수 있다. 또한, 클라우드 클라이언트에 상응하는 단말의 표시부는 클라이언트에 상응하는 단말의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 클라우드 클라이언트에 상응하는 단말의 표시부는 액정표시장치(LCD, Liquid Crystal Display), 초박막 액정표시장치(TFT-LCD, Thin Film Transistor LCD), 발광다이오드(LED, Light Emitting Diode), 유기 발광다이오드(OLED, Organic LED), 능동형 유기발광다이오드(AMOLED, Active Matrix OLED), 레티나 디스플레이(Retina Display), 플렉시블 디스플레이(Flexible display) 및 3차원(3 Dimension) 디스플레이 등으로 구성될 수 있다. 이 때, 클라우드 클라이언트에 상응하는 단말의 표시부가 터치스크린 형태로 구성된 경우, 클라우드 클라이언트에 상응하는 단말의 표시부는 클라우드 클라이언트에 상응하는 단말의 입력부의 기능 중 일부 또는 전부를 수행할 수 있다. In addition, the display unit of the terminal corresponding to the cloud client may display information on a series of operation states and operation results generated while performing functions of the terminal corresponding to the client. The display unit of the terminal corresponding to the cloud client may display a menu of the terminal corresponding to the client and user data input by the user. Here, the display unit of the terminal corresponding to the cloud client, a liquid crystal display (LCD), an ultra-thin liquid crystal display (TFT-LCD, Thin Film Transistor LCD), a light emitting diode (LED), an organic light emitting diode (OLED, Organic LED), an active organic light emitting diode (AMOLED, Active Matrix OLED), Retina Display (Retina Display), Flexible display (Flexible display) and three-dimensional (three-dimensional) display and the like. In this case, when the display unit of the terminal corresponding to the cloud client is configured in the form of a touch screen, the display unit of the terminal corresponding to the cloud client may perform some or all of the functions of the input unit of the terminal corresponding to the cloud client.

또한, 클라우드 클라이언트에 상응하는 단말의 저장부는 데이터를 저장하기 위한 장치로, 주 기억장치 및 보조 기억장치를 포함하고, 클라우드 클라이언트에 상응하는 단말의 기능 동작에 필요한 응용 프로그램을 저장할 수 있다. 이러한 클라우드 클라이언트에 상응하는 단말의 저장부는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 클라우드 클라이언트에 상응하는 단말은 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. In addition, the storage unit of the terminal corresponding to the cloud client is a device for storing data, and includes a main storage device and an auxiliary storage device, and may store an application program required for the functional operation of the terminal corresponding to the cloud client. The storage unit of the terminal corresponding to the cloud client may largely include a program area and a data area. In this case, when the terminal corresponding to the cloud client activates each function in response to a user's request, the terminal provides the respective functions by executing the corresponding application programs under the control of the controller.

또한, 클라우드 클라이언트에 상응하는 단말의 통신부는 클라우드 스트리밍 서버(410)와 네트워크를 통해 데이터를 송수신하기 위한 기능을 수행할 수 있다. 여기서 클라우드 클라이언트에 상응하는 단말의 통신부는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단 등을 포함할 수 있다. 이러한 클라우드 클라이언트에 상응하는 단말의 통신부는 무선통신 모듈을 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 클라우드 클라이언트에 상응하는 단말이 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 클라우드 스트리밍 서버(410)로 송수신할 수 있다. 즉 클라우드 클라이언트에 상응하는 단말은 무선통신 모듈을 이용하여 네트워크에 접속하며, 네트워크를 통해 클라우드 스트리밍 서버(410)와 데이터를 송수신할 수 있다. In addition, the communication unit of the terminal corresponding to the cloud client may perform a function for transmitting and receiving data with the cloud streaming server 410 through the network. Here, the communication unit of the terminal corresponding to the cloud client may include an RF transmission means for up-converting and amplifying the frequency of the transmitted signal, and an RF reception means for low-noise-amplifying and down-converting the received signal. The communication unit of the terminal corresponding to the cloud client may include a wireless communication module. The wireless communication module is configured to transmit and receive data according to a wireless communication method, and when a terminal corresponding to a cloud client uses wireless communication, any one of a wireless network communication module, a wireless LAN communication module, and a wireless fan communication module may be used. Data may be transmitted and received to the cloud streaming server 410 by using. That is, a terminal corresponding to a cloud client may access a network using a wireless communication module, and transmit and receive data to and from the cloud streaming server 410 through the network.

또한, 클라우드 클라이언트에 상응하는 단말의 제어부는 운영 체제(OS, Operation System) 및 각 구성을 구동시키는 프로세스 장치가 될 수 있다. 예를 들어, 제어부는 클라우드 스트리밍 서버(410)에 접속하는 과정 전반을 제어할 수 있다. 이 때, 클라우드 클라이언트에 상응하는 단말이 클라우드 스트리밍 서버(410)에 접속하는 경우, 사용자의 요청에 따라 동영상과 같은 컨텐츠나 어플리케이션이 실행되는 과정 전반을 제어할 수 있으며, 실행과 동시에 클라우드 스트리밍 서버(410)로 서비스 이용 요청이 전송되도록 제어할 수 있다. 이 때 사용자 인증에 필요한 클라우드 클라이언트에 상응하는 단말의 정보가 함께 전송되도록 제어할 수도 있다.In addition, the controller of the terminal corresponding to the cloud client may be an operating system (OS) and a process device for driving each component. For example, the controller may control the overall process of accessing the cloud streaming server 410. At this time, when the terminal corresponding to the cloud client is connected to the cloud streaming server 410, according to the user's request it can control the overall process of running content or applications, such as video, and at the same time running the cloud streaming server ( In operation 410, the service use request may be transmitted. At this time, it may be controlled to transmit the information of the terminal corresponding to the cloud client required for user authentication.

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(Single Page Web Application)에 상응할 수 있다. 따라서, 복수개의 페이지들은 하나의 URL을 통해 접근 가능한 페이지들에 해당할 수 있다. In this case, the web application may correspond to a single page web application. Therefore, the plurality of pages may correspond to pages accessible through one URL.

종래의 웹 어플리케이션은 도 3에 도시된 것과 같이 하나의 URL에 하나의 웹 페이지가 할당되어 동작하는 구조였기 때문에 단순히 URL에 의한 접근만 분석하여도 웹 어플리케이션 또는 웹 어플리케이션에 대한 사용자 이벤트를 분석할 수 있었다. Since the conventional web application has a structure in which one web page is assigned and operated as one URL as shown in FIG. 3, the user event for the web application or the web application can be analyzed simply by analyzing the access by the URL. there was.

즉, 도 3을 예로 들면, 웹 어플리케이션을 이용하는 사용자가 HOME에서 PAGE 1, PAGE 2, PAGE 3 중 어느 페이지로 이동하는지 여부를 추적함으로써 사용자의 개인적 이용 성향을 분석할 수 있다. 또한, 사용자가 주로 접속하는 페이지의 URL을 추출하여 사용자의 선호 성향을 분석할 수도 있다.For example, referring to FIG. 3, the user's personal usage tendency may be analyzed by tracking whether a user using a web application moves from HOME to PAGE 1, PAGE 2, or PAGE 3. In addition, the user's preference tendency may be analyzed by extracting a URL of a page that the user mainly accesses.

그러나, 본 발명과 같은 싱글 페이지 웹 어플리케이션(Single Page Web Application)의 경우에는 URL 분석만으로 정확한 결과를 도출하기 어렵다.However, in the case of a single page web application such as the present invention, it is difficult to derive an accurate result only by URL analysis.

따라서, 본 발명에서는 웹 어플리케이션의 페이지 별 특성을 판단하여 사용자 인터페이스 별로 구별하기 위해 문서 객체 모델을 이용할 수 있다. Therefore, in the present invention, the document object model may be used to determine the characteristics of each page of the web application and to distinguish them by user interface.

이 때, 문서 객체 모델은 웹 브라우저를 통해 확장성 생성 언어 문서의 상호 연동을 위한 객체 기반의 문서 모델에 해당하는 것으로, 프로그램과 스크립트에 의한 문서의 내용, 구조 종류 등의 동적인 접근과 변경이 가능할 수 있다. 또한, 스크립트나 프로그램 언어에 웹 페이지를 연결해줄 수 있다. 이 때, 웹 페이지를 조작 및 생성하기 위해 사용되는 속성, 방법 및 이벤트가 객체를 구성하는데, 이러한 객체들은 대부분의 웹 브라우저에서 스크립트 언어를 통해 접근할 수 있다.In this case, the document object model corresponds to an object-based document model for interoperability of extensibility-generated language documents through a web browser, and allows dynamic access and change of document contents and structure types by programs and scripts. It may be possible. You can also link web pages to scripts or programming languages. At this point, the properties, methods, and events used to manipulate and create web pages make up the objects, which are accessible through scripting languages in most web browsers.

이 때, 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(Navigation)하면서 문서 객체 모델을 추출할 수 있다. At this time, the document object model can be extracted while navigating all menus for the web application.

예를 들어, 웹 어플리케이션에 대한 메뉴 전체를 순차적으로 탐방하면서 각 메뉴에 대한 페이지를 방문하고, 각 메뉴의 대한 페이지의 문서 객체 모델을 추출할 수 있다. 이 때, 메뉴 네비게이션 순서는 특정한 규칙이 정해져있지는 않지만, 시스템 전체의 효율성과 정확성을 고려하여 네비게이션을 수행하도록 설정할 수도 있다.For example, while navigating through the entire menu for a web application sequentially, a page for each menu can be visited, and a document object model of the page for each menu can be extracted. At this time, the menu navigation order is not defined, but may be set to perform navigation in consideration of the efficiency and accuracy of the entire system.

또한, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출한다(S220).In addition, the web application detailed page analysis method using the document object model according to an embodiment of the present invention detects a characteristic value for each of the plurality of pages based on at least two or more elements included in the document object model (S220). .

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다. At this time, the characteristic value may correspond to a value capable of quantitative measurement.

예를 들어, 특성값은 아이디(ID)를 갖는 엘리먼트의 수, 각 엘리먼트들이 가지는 클래스(Class) 값의 종류의 개수 등으로 표현될 수 있다. 이 때, 아이디와 클래스값 같은 엘리먼트의 주요 요소들을 이용하여 2차적인 데이터를 생성함으로써 특성값이 보다 의미 있는 데이터로써 활용될 수 있다. For example, the characteristic value may be expressed by the number of elements having an ID, the number of types of class values each element has, and the like. At this time, by generating the secondary data using the main elements of the element, such as ID and class value, the characteristic value can be utilized as more meaningful data.

또한, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 다차원 좌표를 기반으로 특성값을 군집화하고, 군집화 결과를 기반으로 복수개의 페이지들을 웹 어플리케이션에 대한 사용자 인터페이스(User Interface) 별로 분류한다(S230).In addition, in the web application detailed page analysis method using the document object model according to an embodiment of the present invention, the feature values are clustered based on multi-dimensional coordinates, and a plurality of pages are displayed on the web application based on the clustering result. Interface) to classify (S230).

이 때, 다차원 좌표 상의 거리를 고려하여 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다.In this case, at least one characteristic value corresponding to each of the plurality of pages may be clustered in consideration of the distance on the multi-dimensional coordinates.

예를 들어, 도 5에 도시된 것처럼 다차원 좌표 상에 페이지별로 검출된 특성값이 표시되면, 특성값들 간의 거리를 고려하여 군집화를 수행할 수 있다. 즉, 기설정된 거리 이내의 특성값들을 군집화할 수 있다. 이 때, 기설정된 거리는 자유롭게 설정 및 변경될 수 있다.For example, when the characteristic values detected for each page are displayed on the multidimensional coordinates as illustrated in FIG. 5, clustering may be performed in consideration of the distance between the characteristic values. That is, the characteristic values within a predetermined distance may be clustered. At this time, the predetermined distance may be freely set and changed.

이 때, 군집화는 K-means, DBSCAN, hierarchical clustering 등과 같은 일반적인 군집화 알고리즘을 사용하여 수행될 수 있다.In this case, clustering may be performed using a general clustering algorithm such as K-means, DBSCAN, hierarchical clustering, or the like.

이 때, 본 발명에서는 도 5의 예시와 같이, 아이디나 클래스값 같은 엘리먼트의 주요 요소로부터 데이터를 추출하여 군집화하기 때문에 서로 같은 사용자 인터페이스 페이지의 특성값들끼리 군집화될 수 있다. 따라서, 군집화된 특성값 데이터를 하나의 사용자 인터페이스를 구성하는 페이지로 정의하거나 분류할 수 있다. At this time, in the present invention, as the example of FIG. 5 extracts and clusters data from main elements of elements such as IDs and class values, characteristic values of the same user interface pages may be clustered. Therefore, the clustered characteristic value data may be defined or classified as pages constituting one user interface.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다. 도 5에서는 2차원 좌표를 예시로 들었으나, 본 발명의 일실시예에 따른 다차원 좌표는 2차원 좌표에 한정되지 않고, 엘리먼트의 개수에 상응하게 사용될 수도 있다.In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates. 5 illustrates two-dimensional coordinates as an example, the multi-dimensional coordinates according to an embodiment of the present invention are not limited to two-dimensional coordinates, and may be used corresponding to the number of elements.

또한, 도 2에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석한다. In addition, although not shown in FIG. 2, the web application detailed page analysis method using the document object model according to an embodiment of the present invention analyzes user events for each page based on page information classified by user interface.

예를 들어, 특정 사용자가 웹 어플리케이션에 접속하면서 이용한 사용자 인터페이스 정보를 기반으로 사용자의 웹 어플리케이션 사용패턴 및 사용자 활동에 대한 통계 정보 등을 생성할 수 있다. 이렇게 생성된 사용패턴 및 통계정보 등은 클라우드 스트리밍 서버에서의 사용자 활동에 대한 전체적 통계정보를 생성하는데 사용하거나 또는 사용자에게 개인화된 서비스를 제공하는데 활용될 수도 있다.For example, based on user interface information used while a specific user accesses a web application, the user may generate statistical information about a web application usage pattern and user activity. The generated usage patterns and statistical information may be used to generate global statistical information on user activity in the cloud streaming server, or may be used to provide a personalized service to the user.

또한, 도 2에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 웹 어플리케이션이 제대로 구현되었는지 여부를 검토한다.In addition, although not shown in Figure 2, the web application detailed page analysis method using the document object model according to an embodiment of the present invention includes the user interface configuration and the page information classified by the user interface defined at the production stage of the web application Compare and examine whether the web application is properly implemented.

예를 들어, 웹 어플리케이션 개발자 또는 설계자로부터 제작 단계에 정의된 사용자 인터페이스 구성과 관련된 데이터를 획득하고, 본 발명에 따라 사용자 인터페이스 별로 분류된 페이지 정보를 비교함으로써 제작된 웹 어플리케이션이 의도대로 구현되었는지 검토할 수도 있다. 이러한 기능을 통해 제작된 웹 어플리케이션을 검토하는 시간과 비용을 현저히 감소시킬 수 있을 뿐만 아니라, 웹 어플리케이션의 사용자 인터페이스가 제대로 구현되지 않은 부분을 정확하게 검출할 수 있으므로 보다 신뢰성 있는 웹 어플리케이션 서비스를 제공할 수도 있다.For example, the web application developer or designer obtains data related to the user interface configuration defined in the production stage, and compares page information classified by user interface according to the present invention to examine whether the produced web application is implemented as intended. It may be. This feature not only significantly reduces the time and cost of reviewing the web application, but also provides a more reliable web application service by accurately detecting the portion of the web application user interface that is not properly implemented. have.

또한, 도 2에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 네트워크와 같은 통신망을 통해 웹 어플리케이션 세부 페이지 분석에 필요한 정보를 송수신할 수 있다. 특히, 웹 어플리케이션으로부터 문서 객체 모델을 추출하거나 사용자 분석 정보를 제공할 수 있다. In addition, although not shown in Figure 2, the web application detailed page analysis method using the document object model according to an embodiment of the present invention may transmit and receive information necessary for the web application detailed page analysis through a communication network, such as a network. In particular, the document object model may be extracted from the web application or the user analysis information may be provided.

또한, 도 2에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 상술한 바와 같이 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석을 위한 과정에서 발생하는 다양한 정보를 별도의 저장 모듈에 저장할 수 있다.In addition, although not shown in Figure 2, the web application detailed page analysis method using a document object model according to an embodiment of the present invention as described above, the web application detail using a document object model according to an embodiment of the present invention Various information generated during page analysis can be stored in a separate storage module.

이와 같은 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법을 통해 웹 어플리케이션의 페이지 구성을 알지 못하는 경우에도 사용자 인터페이스 별로 웹 페이지를 분류하는 방법을 제공할 수 있다.Through such a web application detailed page analysis method using a document object model, a web page may be classified according to a user interface even when the page composition of the web application is not known.

또한, 웹 어플리케이션의 제작 설계 시 정의된 사용자 인터페이스 구성이 제대로 구현되었는지 확인할 수 있다.Also, you can check whether the user interface configuration defined in the web application design is properly implemented.

또한, 웹 어플리케이션의 세부 페이지 분석을 통해 페이지 별로 발생하는 사용자 이벤트를 분석하여 다양한 서비스를 제공할 수 있다. In addition, various services may be provided by analyzing user events occurring for each page through detailed page analysis of the web application.

도 6은 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법을 상세하게 나타낸 동작흐름도이다.6 is a flowchart illustrating a detailed method of analyzing a web application detailed page using a document object model according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법은 먼저 클라우드 스트리밍 서버가 실행되면(S610), 본 발명의 일실시예에 따른 분석 서버가 클라우드 스트리밍 서버 내에서 동작하는 웹 어플리케이션의 문서 객체 모델(DOM) 데이터를 추출할 수 있다(S620).Referring to FIG. 6, when a web application detailed page analysis method using a document object model according to an embodiment of the present invention is first executed by a cloud streaming server (S610), the analysis server according to an embodiment of the present invention is cloud streaming. Document object model (DOM) data of the web application operating in the server may be extracted (S620).

이 때, 웹 어플리케이션은 클라우드 스트리밍(Cloud Streaming) 기반의 클라우드 브라우저(Cloud Browser)에서 실행될 수 있다. In this case, the web application may be executed in a cloud browser based on cloud streaming.

이 때, 클라우드 스트리밍 서비스 또는 클라우드 컴퓨팅 서비스는 사용자가 컨텐츠를 로컬 스토리지가 아닌, 인터넷상의 클라우드 스토리지에 저장해놓고, 인터넷이 가능한 기기를 이용하여 언제 어디서든지 클라우드 스토리지에 접근하여 컨텐츠를 이용할 수 있는 서비스이다.At this time, the cloud streaming service or cloud computing service is a service that allows users to store content in cloud storage on the Internet, not local storage, and access the cloud storage anytime, anywhere using the Internet-enabled device. .

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(Single Page Web Application)에 상응할 수 있다. 따라서, 복수개의 페이지들은 하나의 URL을 통해 접근 가능한 페이지들에 해당할 수 있다.In this case, the web application may correspond to a single page web application. Therefore, the plurality of pages may correspond to pages accessible through one URL.

이 때, 문서 객체 모델은 웹 브라우저를 통해 확장성 생성 언어 문서의 상호 연동을 위한 객체 기반의 문서 모델에 해당하는 것으로, 프로그램과 스크립트에 의한 문서의 내용, 구조 종류 등의 동적인 접근과 변경이 가능할 수 있다. 또한, 스크립트나 프로그램 언어에 웹 페이지를 연결해줄 수 있다. 이 때, 웹 페이지를 조작 및 생성하기 위해 사용되는 속성, 방법 및 이벤트가 객체를 구성하는데, 이러한 객체들은 대부분의 웹 브라우저에서 스크립트 언어를 통해 접근할 수 있다.In this case, the document object model corresponds to an object-based document model for interoperability of extensibility-generated language documents through a web browser, and allows dynamic access and change of document contents and structure types by programs and scripts. It may be possible. You can also link web pages to scripts or programming languages. At this point, the properties, methods, and events used to manipulate and create web pages make up the objects, which are accessible through scripting languages in most web browsers.

이 때, 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(Navigation)하면서 문서 객체 모델을 추출할 수 있다.At this time, the document object model can be extracted while navigating all menus for the web application.

이 후, 문서 객체 모델에 포함된 적어도 둘 이상의 주요 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출할 수 있다(S630).Thereafter, a characteristic value for each of the plurality of pages may be detected based on at least two or more main elements included in the document object model (S630).

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다. At this time, the characteristic value may correspond to a value capable of quantitative measurement.

예를 들어, 특성값은 아이디(ID)를 갖는 엘리먼트의 수, 각 엘리먼트들이 가지는 클래스(Class) 값의 종류의 개수 등으로 표현될 수 있다. 이 때, 아이디와 클래스값 같은 엘리먼트의 주요 요소들을 이용하여 2차적인 데이터를 생성함으로써 특성값이 보다 의미 있는 데이터로써 활용될 수 있다.For example, the characteristic value may be expressed by the number of elements having an ID, the number of types of class values each element has, and the like. At this time, by generating the secondary data using the main elements of the element, such as ID and class value, the characteristic value can be utilized as more meaningful data.

이 후, 검출된 특성값들을 다차원 좌표상에 표현하고(S640), 군집화 알고리즘을 적용하여 군집화를 수행할 수 있다(S650).Thereafter, the detected characteristic values are expressed on multidimensional coordinates (S640), and clustering may be performed by applying a clustering algorithm (S650).

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다. 도 5에서는 2차원 좌표를 예시로 들었으나, 본 발명의 일실시예에 따른 다차원 좌표는 2차원 좌표에 한정되지 않고, 엘리먼트의 개수에 상응하게 사용될 수도 있다.In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates. 5 illustrates two-dimensional coordinates as an example, the multi-dimensional coordinates according to an embodiment of the present invention are not limited to two-dimensional coordinates, and may be used corresponding to the number of elements.

이 때, 다차원 좌표 상의 거리를 고려하여 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다.In this case, at least one characteristic value corresponding to each of the plurality of pages may be clustered in consideration of the distance on the multi-dimensional coordinates.

이 때, 군집화는 K-means, DBSCAN, hierarchical clustering 등과 같은 일반적인 군집화 알고리즘을 사용하여 수행될 수 있다.In this case, clustering may be performed using a general clustering algorithm such as K-means, DBSCAN, hierarchical clustering, or the like.

이 후, 군집화 결과를 기반으로 웹 어플리케이션에 대한 복수개의 페이지들을 사용자 인터페이스 별로 분류할 수 있다(S660).Thereafter, the plurality of pages for the web application may be classified for each user interface based on the clustering result (S660).

이 때, 본 발명에서는 아이디나 클래스값 같은 엘리먼트의 주요 요소로부터 데이터를 추출하여 군집화하기 때문에 서로 같은 사용자 인터페이스 페이지의 특성값들끼리 군집화될 수 있다. 따라서, 군집화된 특성값 데이터를 하나의 사용자 인터페이스를 구성하는 페이지로 정의하거나 분류할 수 있다.In this case, in the present invention, since data is extracted from the main elements of elements such as IDs and class values, the feature values of the same user interface pages may be clustered. Therefore, the clustered characteristic value data may be defined or classified as pages constituting one user interface.

이 후, 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 사용자 활동을 분석할 수 있다(S670).Thereafter, user activity may be analyzed based on page information classified by user interface (S670).

예를 들어, 특정 사용자가 웹 어플리케이션에 접속하면서 이용한 사용자 인터페이스 정보를 기반으로 사용자의 웹 어플리케이션 사용패턴 및 사용자 활동에 대한 통계 정보 등을 생성할 수 있다. 이렇게 생성된 사용패턴 및 통계정보 등은 클라우드 스트리밍 서버에서의 사용자 활동에 대한 전체적 통계정보를 생성하는데 사용하거나 또는 사용자에게 개인화된 서비스를 제공하는데 활용될 수도 있다.For example, based on user interface information used while a specific user accesses a web application, the user may generate statistical information about a web application usage pattern and user activity. The generated usage patterns and statistical information may be used to generate global statistical information on user activity in the cloud streaming server, or may be used to provide a personalized service to the user.

이와 같은 분석 방법을 통해 웹 어플리케이션의 페이지 구성을 알지 못하는 경우에도 사용자 인터페이스 별로 웹 페이지를 분류하는 방법을 제공할 수 있다.This analysis method can provide a method of classifying web pages by user interface even when the page configuration of the web application is unknown.

또한, 웹 어플리케이션의 제작 설계 시 정의된 사용자 인터페이스 구성이 제대로 구현되었는지 확인할 수 있다.Also, you can check whether the user interface configuration defined in the web application design is properly implemented.

또한, 웹 어플리케이션의 세부 페이지 분석을 통해 페이지 별로 발생하는 사용자 이벤트를 분석하여 다양한 서비스를 제공할 수 있다.In addition, various services may be provided by analyzing user events occurring for each page through detailed page analysis of the web application.

도 7은 본 발명의 일실시예에 따른 웹 어플리케이션 세부 페이지 분석 시스템을 나타낸 블록도이다.7 is a block diagram illustrating a web application detailed page analysis system according to an exemplary embodiment of the present invention.

도 7을 참조하면, 본 발명의 일실시예에 따른 웹 어플리케이션 세부 페이지 분석 시스템은 분석 서버(710), 클라우드 스트리밍 서버(720), 클라이언트(730-1~730-n) 및 네트워크(740)를 포함한다.Referring to FIG. 7, the web application detailed page analysis system according to an exemplary embodiment of the present invention may analyze the analysis server 710, the cloud streaming server 720, the clients 730-1 to 730-n, and the network 740. Include.

먼저, 분석 서버(710)는 본 발명의 일실시예에 따른 클라우드 스트리밍 시스템에서 실행되는 웹 어플리케이션의 세부 페이지를 분석하기 위한 장치에 해당할 수 있다.First, the analysis server 710 may correspond to an apparatus for analyzing a detail page of a web application executed in a cloud streaming system according to an embodiment of the present invention.

이 때, 도 7에서는 분석 서버(710)가 클라우드 스트리밍 서버(720)와 별도로 존재하고 있지만, 본 발명의 일실시예에 따른 분석 서버는 클라우드 스트리밍 서버(720) 또는 클라우드 스트리밍 시스템 내부에 포함되는 형태로 동작할 수도 있다.In this case, although the analysis server 710 exists separately from the cloud streaming server 720 in FIG. 7, the analysis server according to an embodiment of the present invention is included in the cloud streaming server 720 or the cloud streaming system. It can also work.

이 때, 분석 서버(710)는 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(Document of Model)을 추출한다. In this case, the analysis server 710 extracts a document object model based on a plurality of pages constituting the web application.

이 때, 웹 어플리케이션은 클라우드 스트리밍(Cloud Streaming) 기반의 클라우드 브라우저(Cloud Browser)에서 실행될 수 있다.In this case, the web application may be executed in a cloud browser based on cloud streaming.

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(Single Page Web Application)에 상응할 수 있다. 즉, 하나의 URL을 통해 다양한 사용자 인터페이스를 가지도록 페이지가 구성될 수 있다. 즉, URL을 변경없이 다양한 사용자 인터페이스 구성을 가질 수 있다. In this case, the web application may correspond to a single page web application. That is, the page may be configured to have various user interfaces through one URL. That is, it can have various user interface configurations without changing the URL.

이 때, 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(Navigation)하면서 문서 객체 모델을 추출할 수 있다. At this time, the document object model can be extracted while navigating all menus for the web application.

또한, 분석 서버(710)는 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출한다. In addition, the analysis server 710 detects a characteristic value for each of the plurality of pages based on at least two or more elements included in the document object model.

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다. At this time, the characteristic value may correspond to a value capable of quantitative measurement.

또한, 분석 서버(710)는 다차원 좌표를 기반으로 특성값을 군집화하고, 군집화 결과를 기반으로 복수개의 페이지들을 웹 어플리케이션에 대한 사용자 인터페이스(User Interface) 별로 분류한다. In addition, the analysis server 710 clusters the characteristic values based on the multi-dimensional coordinates, and classifies the plurality of pages by user interface for the web application based on the clustering result.

이 때, 다차원 좌표 상의 거리를 고려하여 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다. In this case, at least one characteristic value corresponding to each of the plurality of pages may be clustered in consideration of the distance on the multi-dimensional coordinates.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다. In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates.

또한, 분석 서버(710)는 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석할 수 있다.In addition, the analysis server 710 may analyze user events for each page based on page information classified for each user interface.

또한, 분석 서버(710)는 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 웹 어플리케이션이 제대로 구현되었는지 여부를 검토할 수 있다.In addition, the analysis server 710 may examine whether the web application is properly implemented by comparing the user interface configuration defined at the production stage of the web application with the page information classified for each user interface.

클라우드 스트리밍 서버(720)는 클라이언트(730-1~730-n)로부터 요청된 클라우드 스트리밍 서비스를 처리하기 위한 클라우드 스트리밍 엔진을 포함할 수 있다.The cloud streaming server 720 may include a cloud streaming engine for processing the cloud streaming service requested from the clients 730-1 to 730-n.

클라우드 스트리밍 서비스 또는 클라우드 컴퓨팅 서비스는 사용자가 컨텐츠를 로컬 스토리지가 아닌, 인터넷상의 클라우드 스토리지에 저장해놓고, 인터넷이 가능한 기기를 이용하여 언제 어디서든지 클라우드 스토리지에 접근하여 컨텐츠를 이용할 수 있는 서비스이다.The cloud streaming service or cloud computing service is a service that allows users to store content in cloud storage on the Internet, not local storage, and access the cloud storage anytime, anywhere using an internet-enabled device.

이 때, 클라우드 스트리밍 서버(720)에서는 클라우드 스트리밍 엔진이 실행되는 시점에 기 정의된 수만큼 클라우드 브라우저를 생성할 수 있는데, 클라우드 브라우저는 HTML, CSS 및 JavaScript등을 다운로드하고 실행하여 화면에 렌더링해줄 수 있다. At this time, the cloud streaming server 720 can generate a predetermined number of cloud browsers at the time the cloud streaming engine is running, the cloud browser can download and execute HTML, CSS and JavaScript and render on the screen have.

이 때, HTML(Hyper Text Markup Language)는 웹 페이지의 큰 뼈대를 제공하고, CSS(Cascading Style Sheets)는 색깔이나 글씨체와 같은 디자인 요소를 관리하며, 자바스크립트(Javascritp)는 크로스 플랫폼, 객체지향 스크립트 언어로 웹페이지의 동작을 담당할 수 있다.In this case, Hyper Text Markup Language (HTML) provides a large framework for web pages, Cascading Style Sheets (CSS) manage design elements such as colors and fonts, and JavaScript (CrossScript) is a cross-platform, object-oriented script. Can handle the behavior of web pages in a language.

클라이언트(730-1~730-n)는 클라우드 스트리밍 서버(720)에게 클라우드 스트리밍 서비스를 요청하고, 클라우드 스트리밍 서버(720)로부터 요청에 따른 실행화면을 수신하여 사용자에게 제공해줄 수 있다. 따라서, 사용자는 마치 요청된 서비스에 해당하는 동영상이나 어플리케이션이 클라이언트(730-1~730-n)에 상응하는 단말에서 실행되는 것처럼 느낄 수 있다. The clients 730-1 to 730-n may request a cloud streaming service from the cloud streaming server 720, receive an execution screen according to the request from the cloud streaming server 720, and provide the same to the user. Accordingly, the user may feel as if a video or an application corresponding to the requested service is executed in the terminal corresponding to the clients 730-1 to 730-n.

이 때, 클라이언트(730-1~730-n)는 각각 통신망에 연결되어 클라우드 스트리밍 서버(720)와 통신 가능한 장치에 해당할 수 있다. 예를 들어, 클라이언트(730-1~730-n)는 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말, 이동통신단말기 및 IP(Internet Protocol) 단말 등의 다양한 단말에 해당할 수 있다. 또한, 클라이언트(730-1~730-n)는 휴대폰, 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수도 있다.In this case, the clients 730-1 to 730-n may correspond to devices that are connected to the communication network and communicate with the cloud streaming server 720. For example, the clients 730-1 to 730-n may correspond to various terminals such as all information communication devices, multimedia terminals, wired terminals, fixed terminals, mobile communication terminals, and IP (Internet Protocol) terminals. In addition, the client (730-1 ~ 730-n) is a mobile phone, mobile phone, Portable Multimedia Played (PMP), Mobile Internet Device (MID), Smart Phone, Desktop, Tablet PC, It may also be a mobile terminal having various mobile communication specifications such as a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.

또한, 클라이언트(730-1~730-n)에 상응하는 단말은 숫자 및 문자 정보 등의 다양한 정보를 입력 받고, 각종 기능을 설정 및 클라이언트(730-1~730-n)에 상응하는 단말의 기능 제어와 관련하여 입력되는 신호를 입력부를 통해 제어부로 전달할 수 있다. 또한, 클라이언트(730-1~730-n)에 상응하는 단말의 입력부는 사용자의 터치 또는 조작에 따른 입력 신호를 발생하는 키패드와 터치패드 중 적어도 하나를 포함하여 구성할 수 있다. 이 때, 클라이언트(730-1~730-n)에 상응하는 단말의 입력부는 클라이언트(730-1~730-n)에 상응하는 단말의 표시부와 함께 하나의 터치패널(또는 터치 스크린(touch screen))의 형태로 구성되어 입력과 표시 기능을 동시에 수행할 수 있다. 또한, 클라이언트(730-1~730-n)에 상응하는 단말의 입력부는 키보드, 키패드, 마우스, 조이스틱 등과 같은 입력 장치 외에도 향후 개발될 수 있는 모든 형태의 입력 수단이 사용될 수 있다. In addition, the terminals corresponding to the clients 730-1 to 730-n receive various information such as numeric and text information, set various functions, and functions of the terminals corresponding to the clients 730-1 to 730-n. The signal input in relation to the control may be transmitted to the controller through the input unit. The input unit of the terminals corresponding to the clients 730-1 to 730-n may include at least one of a keypad and a touch pad generating an input signal according to a user's touch or manipulation. In this case, the input unit of the terminals corresponding to the clients 730-1 to 730-n together with the display unit of the terminals corresponding to the clients 730-1 to 730-n may include one touch panel (or touch screen). In the form of), input and display functions can be performed simultaneously. In addition, the input unit of the terminals corresponding to the clients 730-1 to 730-n may use any type of input means that can be developed in the future in addition to an input device such as a keyboard, a keypad, a mouse, a joystick, and the like.

또한, 클라이언트(730-1~730-n)에 상응하는 단말의 표시부는 클라이언트(730-1~730-n)에 상응하는 단말의 기능 수행 중에 발생하는 일련의 동작상태 및 동작결과 등에 대한 정보를 표시할 수 있다. 또한, 클라이언트(730-1~730-n)에 상응하는 단말의 표시부는 클라이언트(730-1~730-n)에 상응하는 단말의 메뉴 및 사용자가 입력한 사용자 데이터 등을 표시할 수 있다. 여기서, 클라이언트(730-1~730-n)에 상응하는 단말의 표시부는 액정표시장치(LCD, Liquid Crystal Display), 초박막 액정표시장치(TFT-LCD, Thin Film Transistor LCD), 발광다이오드(LED, Light Emitting Diode), 유기 발광다이오드(OLED, Organic LED), 능동형 유기발광다이오드(AMOLED, Active Matrix OLED), 레티나 디스플레이(Retina Display), 플렉시블 디스플레이(Flexible display) 및 3차원(3 Dimension) 디스플레이 등으로 구성될 수 있다. 이 때, 클라이언트(730-1~730-n)에 상응하는 단말의 표시부가 터치스크린 형태로 구성된 경우, 클라이언트(730-1~730-n)에 상응하는 단말의 표시부는 클라이언트(730-1~730-n)에 상응하는 단말의 입력부의 기능 중 일부 또는 전부를 수행할 수 있다. The display unit of the terminals corresponding to the clients 730-1 to 730-n may provide information about a series of operating states and operation results generated while performing functions of the terminals corresponding to the clients 730-1 to 730-n. I can display it. The display unit of the terminals corresponding to the clients 730-1 to 730-n may display a menu of the terminals corresponding to the clients 730-1 to 730-n, and user data input by the user. The display unit of the terminal corresponding to the clients 730-1 to 730-n includes a liquid crystal display (LCD), an ultra-thin liquid crystal display (TFT-LCD), a light emitting diode (LED), and the like. Light Emitting Diodes, Organic LEDs, Active Matrix OLEDs, Retina Displays, Flexible Displays and 3-D Displays It may be configured as. At this time, when the display unit of the terminal corresponding to the client (730-1 ~ 730-n) is configured in the form of a touch screen, the display unit of the terminal corresponding to the client (730-1 ~ 730-n) Some or all of the functions of the input unit of the terminal corresponding to 730-n) may be performed.

또한, 클라이언트(730-1~730-n)에 상응하는 단말의 저장부는 데이터를 저장하기 위한 장치로, 주 기억장치 및 보조 기억장치를 포함하고, 클라이언트(730-1~730-n)에 상응하는 단말의 기능 동작에 필요한 응용 프로그램을 저장할 수 있다. 이러한 클라이언트(730-1~730-n)에 상응하는 단말의 저장부는 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 클라이언트(730-1~730-n)에 상응하는 단말은 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어부의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다. The storage unit of the terminals corresponding to the clients 730-1 to 730-n is a device for storing data and includes a main memory and an auxiliary memory, and corresponds to the clients 730-1 to 730-n. An application program necessary for the function operation of the terminal may be stored. The storage unit of the terminals corresponding to the clients 730-1 to 730-n may largely include a program area and a data area. In this case, when the terminals corresponding to the clients 730-1 to 730-n activate each function in response to a user's request, the terminals provide the respective functions by executing the corresponding application programs under the control of the controller.

또한, 클라이언트(730-1~730-n)에 상응하는 단말의 통신부는 클라우드 스트리밍 서버(720)와 네트워크를 통해 데이터를 송수신하기 위한 기능을 수행할 수 있다. 여기서 클라이언트(730-1~730-n)에 상응하는 단말의 통신부는 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단 등을 포함할 수 있다. 이러한 클라이언트(730-1~730-n)에 상응하는 단말의 통신부는 무선통신 모듈을 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 클라이언트(730-1~730-n)에 상응하는 단말이 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 클라우드 스트리밍 서버(720)로 송수신할 수 있다. 즉 클라이언트(730-1~730-n)에 상응하는 단말은 무선통신 모듈을 이용하여 네트워크에 접속하며, 네트워크를 통해 클라우드 스트리밍 서버(720)와 데이터를 송수신할 수 있다. In addition, the communication unit of the terminal corresponding to the client (730-1 ~ 730-n) may perform a function for transmitting and receiving data through the network with the cloud streaming server 720. Herein, the communication unit of the terminals corresponding to the clients 730-1 to 730-n includes RF transmitting means for up-converting and amplifying the frequency of the transmitted signal and RF receiving means for low-noise amplifying and down-converting the received signal. It may include. The communication unit of the terminal corresponding to the client (730-1 ~ 730-n) may include a wireless communication module. The wireless communication module is configured to transmit and receive data according to a wireless communication method, and when a terminal corresponding to the clients 730-1 to 730-n uses wireless communication, a wireless network communication module, a wireless LAN communication module, and Data can be transmitted and received to the cloud streaming server 720 using any one of the wireless fan communication module. That is, the terminals corresponding to the clients 730-1 to 730-n connect to the network using a wireless communication module, and transmit and receive data to and from the cloud streaming server 720 through the network.

또한, 클라이언트(730-1~730-n)에 상응하는 단말의 제어부는 운영 체제(OS, Operation System) 및 각 구성을 구동시키는 프로세스 장치가 될 수 있다. 예를 들어, 제어부는 클라우드 스트리밍 서버(720)에 접속하는 과정 전반을 제어할 수 있다. 이 때, 클라이언트(730-1~730-n)에 상응하는 단말이 클라우드 스트리밍 서버(720)에 접속하는 경우, 사용자의 요청에 따라 동영상과 같은 컨텐츠나 어플리케이션이 실행되는 과정 전반을 제어할 수 있으며, 실행과 동시에 클라우드 스트리밍 서버(720)로 서비스 이용 요청이 전송되도록 제어할 수 있다. 이 때 사용자 인증에 필요한 클라이언트(730-1~730-n)에 상응하는 단말의 정보가 함께 전송되도록 제어할 수도 있다.In addition, the controller of the terminals corresponding to the clients 730-1 to 730-n may be a process device that drives an operating system (OS) and each component. For example, the controller may control the overall process of accessing the cloud streaming server 720. At this time, when the terminal corresponding to the client (730-1 ~ 730-n) is connected to the cloud streaming server 720, according to the user's request it can control the overall process of running the content or application, such as video. At the same time, the service use request may be transmitted to the cloud streaming server 720. At this time, it may be controlled so that the information of the terminal corresponding to the client (730-1 ~ 730-n) required for user authentication is transmitted together.

네트워크(740)는 분석 서버(710)와 클라우드 스트리밍 서버(720) 및 클라우드 스트리밍 서버(720)와 클라이언트(730-1~730-n) 사이에 데이터를 전달하는 통로를 제공하는 것으로서, 기존에 이용되는 네트워크 및 향후 개발 가능한 네트워크를 모두 포괄하는 개념이다. 예를 들어, 네트워크는 한정된 지역 내에서 각종 정보장치들의 통신을 제공하는 유무선근거리 통신망, 이동체 상호 간 및 이동체와 이동체 외부와의 통신을 제공하는 이동통신 망, 위성을 이용해 지구국과 지구국간 통신을 제공하는 위성통신망이거나 유무선 통신망 중에서 어느 하나이거나, 둘 이상의 결합으로 이루어질 수 있다. 한편, 네트워크의 전송 방식 표준은, 기존의 전송 방식 표준에 한정되는 것은 아니며, 향후 개발될 모든 전송 방식 표준을 포함할 수 있다.The network 740 provides a path for transferring data between the analysis server 710 and the cloud streaming server 720 and the cloud streaming server 720 and the clients 730-1 to 730-n, and is used in the past. It is a concept that encompasses both network and future network. For example, a network may provide communication between earth stations and earth stations by using a wired / wireless local area network that provides communication of various information devices within a limited area, a mobile communication network that provides communication between each other, and a mobile device and an external device, and satellites. It may be one of a satellite communication network or a wired or wireless communication network, or a combination of two or more. Meanwhile, the transmission standard of the network is not limited to the existing transmission standard, and may include all transmission standard that will be developed in the future.

이와 같은 시스템을 기반으로 웹 어플리케이션의 페이지 구성을 알지 못하는 경우에도 사용자 인터페이스 별로 웹 페이지를 분류하는 방법을 제공할 수 있다.Even if the page configuration of the web application is not known based on such a system, a method of classifying web pages by user interface may be provided.

또한, 웹 어플리케이션의 제작 설계 시 정의된 사용자 인터페이스 구성이 제대로 구현되었는지 확인할 수 있다.Also, you can check whether the user interface configuration defined in the web application design is properly implemented.

또한, 웹 어플리케이션의 세부 페이지 분석을 통해 페이지 별로 발생하는 사용자 이벤트를 분석하여 다양한 서비스를 제공할 수 있다.In addition, various services may be provided by analyzing user events occurring for each page through detailed page analysis of the web application.

도 8은 도 7에 도시된 분석 서버의 일 예를 나타낸 블록도이다.8 is a block diagram illustrating an example of an analysis server illustrated in FIG. 7.

도 8을 참조하면, 도 7에 도시된 분석 서버는 통신부(810), 프로세서(820) 및 메모리(830)를 포함한다. Referring to FIG. 8, the analysis server illustrated in FIG. 7 includes a communication unit 810, a processor 820, and a memory 830.

통신부(810)는 네트워크와 같은 통신망을 통해 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석을 위해 필요한 정보를 송수신하는 역할을 한다. 특히, 본 발명의 일실시예에 따른 통신부(810)는 웹 어플리케이션으로부터 문서 객체 모델을 추출하거나 사용자 분석 정보를 제공할 수도 있다.The communication unit 810 transmits and receives information necessary for analyzing a web application detailed page using a document object model through a communication network such as a network. In particular, the communication unit 810 according to an embodiment of the present invention may extract a document object model from a web application or provide user analysis information.

프로세서(820)는 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(Document of Model)을 추출한다.The processor 820 extracts a document object model based on the plurality of pages constituting the web application.

이 때, 웹 어플리케이션은 클라우드 스트리밍(Cloud Streaming) 기반의 클라우드 브라우저(Cloud Browser)에서 실행될 수 있다. In this case, the web application may be executed in a cloud browser based on cloud streaming.

이 때, 클라우드 스트리밍 서비스 또는 클라우드 컴퓨팅 서비스는 사용자가 컨텐츠를 로컬 스토리지가 아닌, 인터넷상의 클라우드 스토리지에 저장해놓고, 인터넷이 가능한 기기를 이용하여 언제 어디서든지 클라우드 스토리지에 접근하여 컨텐츠를 이용할 수 있는 서비스이다.At this time, the cloud streaming service or cloud computing service is a service that allows users to store content in cloud storage on the Internet, not local storage, and access the cloud storage anytime, anywhere using the Internet-enabled device. .

예를 들어, 도 4를 참조하면, 본 발명의 일실시예에 따른 웹 어플리케이션(414)은 클라우드 스트리밍 서버(410)에서 클라우드 스트리밍 엔진(411)의 실행을 기반으로 로드되는 클라우드 브라우저(412)에서 실행될 수 있다. 이 때, 클라우드 브라우저(412)는 웹 엔진(413)을 실행시킴으로써 싱글 페이지 웹 어플리케이션에 상응하게 웹 어플리케이션(414)을 실행시킬 수 있다.For example, referring to FIG. 4, the web application 414 according to an embodiment of the present invention is loaded in the cloud browser 412 loaded based on the execution of the cloud streaming engine 411 in the cloud streaming server 410. Can be executed. In this case, the cloud browser 412 may execute the web application 414 corresponding to the single page web application by executing the web engine 413.

이 때, 클라우드 브라우저(412)를 기반으로 실행되는 웹 어플리케이션(414)은 클라우드 클라이언트로부터 입력되는 키 입력을 바탕으로 동작할 수 있다. In this case, the web application 414 executed based on the cloud browser 412 may operate based on a key input input from the cloud client.

이 때, 클라우드 클라이언트는 클라우드 스트리밍 서버(410)에게 클라우드 스트리밍 서비스를 요청하고, 클라우드 스트리밍 서버(410)로부터 요청에 따른 실행화면을 수신하여 사용자에게 제공해줄 수 있다. 따라서, 사용자는 마치 요청된 서비스에 해당하는 동영상이나 어플리케이션이 클라우드 클라이언트에 상응하는 단말에서 실행되는 것처럼 느낄 수 있다. In this case, the cloud client may request a cloud streaming service from the cloud streaming server 410, and receive an execution screen according to the request from the cloud streaming server 410 and provide the same to the user. Accordingly, the user may feel as if the video or application corresponding to the requested service is executed in the terminal corresponding to the cloud client.

이 때, 클라우드 클라이언트는 각각 통신망에 연결되어 클라우드 스트리밍 서버(410)와 통신 가능한 장치에 해당할 수 있다. 예를 들어, 클라우드 클라이언트는 모든 정보통신기기, 멀티미디어 단말, 유선 단말, 고정형 단말, 이동통신단말기 및 IP(Internet Protocol) 단말 등의 다양한 단말에 해당할 수 있다. 또한, 클라이언트(730-1~730-n)는 휴대폰, 휴대폰, PMP(Portable Multimedia Played), MID(Mobile Internet Device), 스마트폰(Smart Phone), 데스크톱(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net Book), 개인휴대용 정보단말(Personal Digital Assistant; PDA), 스마트 TV 및 정보통신 기기 등과 같은 다양한 이동통신 사양을 갖는 모바일(Mobile) 단말일 수도 있다.In this case, each cloud client may correspond to a device that is connected to a communication network to communicate with the cloud streaming server 410. For example, the cloud client may correspond to various terminals such as all information communication devices, multimedia terminals, wired terminals, fixed terminals, mobile communication terminals, and IP (Internet Protocol) terminals. In addition, the client (730-1 ~ 730-n) is a mobile phone, mobile phone, Portable Multimedia Played (PMP), Mobile Internet Device (MID), Smart Phone, Desktop, Tablet PC, It may also be a mobile terminal having various mobile communication specifications such as a notebook, a net book, a personal digital assistant (PDA), a smart TV, and an information communication device.

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(Single Page Web Application)에 상응할 수 있다. 따라서, 복수개의 페이지들은 하나의 URL을 통해 접근 가능한 페이지들에 해당할 수 있다. In this case, the web application may correspond to a single page web application. Therefore, the plurality of pages may correspond to pages accessible through one URL.

종래의 웹 어플리케이션은 도 3에 도시된 것과 같이 하나의 URL에 하나의 웹 페이지가 할당되어 동작하는 구조였기 때문에 단순히 URL에 의한 접근만 분석하여도 웹 어플리케이션 또는 웹 어플리케이션에 대한 사용자 이벤트를 분석할 수 있었다. Since the conventional web application has a structure in which one web page is assigned and operated as one URL as shown in FIG. 3, the user event for the web application or the web application can be analyzed simply by analyzing the access by the URL. there was.

즉, 도 3을 예로 들면, 웹 어플리케이션을 이용하는 사용자가 HOME에서 PAGE 1, PAGE 2, PAGE 3 중 어느 페이지로 이동하는지 여부를 추적함으로써 사용자의 개인적 이용 성향을 분석할 수 있다. 또한, 사용자가 주로 접속하는 페이지의 URL을 추출하여 사용자의 선호 성향을 분석할 수도 있다.For example, referring to FIG. 3, the user's personal usage tendency may be analyzed by tracking whether a user using a web application moves from HOME to PAGE 1, PAGE 2, or PAGE 3. In addition, the user's preference tendency may be analyzed by extracting a URL of a page that the user mainly accesses.

그러나, 본 발명과 같은 싱글 페이지 웹 어플리케이션(Single Page Web Application)의 경우에는 URL 분석만으로 정확한 결과를 도출하기 어렵다.However, in the case of a single page web application such as the present invention, it is difficult to derive an accurate result only by URL analysis.

따라서, 본 발명에서는 웹 어플리케이션의 페이지 별 특성을 판단하여 사용자 인터페이스 별로 구별하기 위해 문서 객체 모델을 이용할 수 있다. Therefore, in the present invention, the document object model may be used to determine the characteristics of each page of the web application and to distinguish them by user interface.

이 때, 문서 객체 모델은 웹 브라우저를 통해 확장성 생성 언어 문서의 상호 연동을 위한 객체 기반의 문서 모델에 해당하는 것으로, 프로그램과 스크립트에 의한 문서의 내용, 구조 종류 등의 동적인 접근과 변경이 가능할 수 있다. 또한, 스크립트나 프로그램 언어에 웹 페이지를 연결해줄 수 있다. 이 때, 웹 페이지를 조작 및 생성하기 위해 사용되는 속성, 방법 및 이벤트가 객체를 구성하는데, 이러한 객체들은 대부분의 웹 브라우저에서 스크립트 언어를 통해 접근할 수 있다.In this case, the document object model corresponds to an object-based document model for interoperability of extensibility-generated language documents through a web browser, and allows dynamic access and change of document contents and structure types by programs and scripts. It may be possible. You can also link web pages to scripts or programming languages. At this point, the properties, methods, and events used to manipulate and create web pages make up the objects, which are accessible through scripting languages in most web browsers.

이 때, 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(Navigation)하면서 문서 객체 모델을 추출할 수 있다. At this time, the document object model can be extracted while navigating all menus for the web application.

예를 들어, 웹 어플리케이션에 대한 메뉴 전체를 순차적으로 탐방하면서 각 메뉴에 대한 페이지를 방문하고, 각 메뉴의 대한 페이지의 문서 객체 모델을 추출할 수 있다. 이 때, 메뉴 네비게이션 순서는 특정한 규칙이 정해져 있지는 않지만, 시스템 전체의 효율성과 정확성을 고려하여 네비게이션을 수행하도록 설정할 수도 있다.For example, while navigating through the entire menu for a web application sequentially, a page for each menu can be visited, and a document object model of the page for each menu can be extracted. At this time, the menu navigation order is not defined, but may be set to perform navigation in consideration of the efficiency and accuracy of the entire system.

또한, 프로세서(820)는 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출한다.In addition, the processor 820 detects a feature value for each of the plurality of pages based on at least two elements included in the document object model.

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다. At this time, the characteristic value may correspond to a value capable of quantitative measurement.

예를 들어, 특성값은 아이디(ID)를 갖는 엘리먼트의 수, 각 엘리먼트들이 가지는 클래스(Class) 값의 종류의 개수 등으로 표현될 수 있다. 이 때, 아이디와 클래스값 같은 엘리먼트의 주요 요소들을 이용하여 2차적인 데이터를 생성함으로써 특성값이 보다 의미 있는 데이터로써 활용될 수 있다.For example, the characteristic value may be expressed by the number of elements having an ID, the number of types of class values each element has, and the like. At this time, by generating the secondary data using the main elements of the element, such as ID and class value, the characteristic value can be utilized as more meaningful data.

또한, 프로세서(820)는 다차원 좌표를 기반으로 특성값을 군집화하고, 군집화 결과를 기반으로 복수개의 페이지들을 웹 어플리케이션에 대한 사용자 인터페이스(User Interface) 별로 분류한다.In addition, the processor 820 clusters the characteristic values based on the multi-dimensional coordinates, and classifies the plurality of pages according to a user interface for the web application based on the clustering result.

이 때, 다차원 좌표 상의 거리를 고려하여 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다.In this case, at least one characteristic value corresponding to each of the plurality of pages may be clustered in consideration of the distance on the multi-dimensional coordinates.

예를 들어, 도 5에 도시된 것처럼 다차원 좌표 상에 페이지 별로 검출된 특성값이 표시되면, 특성값들 간의 거리를 고려하여 군집화를 수행할 수 있다. 즉, 기설정된 거리 이내의 특성값들을 군집화할 수 있다. 이 때, 기설정된 거리는 자유롭게 설정 및 변경될 수 있다.For example, as shown in FIG. 5, when the detected feature values are displayed for each page on the multi-dimensional coordinates, clustering may be performed in consideration of the distance between the feature values. That is, the characteristic values within a predetermined distance may be clustered. At this time, the predetermined distance may be freely set and changed.

이 때, 군집화는 K-means, DBSCAN, hierarchical clustering 등과 같은 일반적인 군집화 알고리즘을 사용하여 수행될 수 있다.In this case, clustering may be performed using a general clustering algorithm such as K-means, DBSCAN, hierarchical clustering, or the like.

이 때, 본 발명에서는 도 5의 예시와 같이, 아이디나 클래스값 같은 엘리먼트의 주요 요소로부터 데이터를 추출하여 군집화하기 때문에 서로 같은 사용자 인터페이스 페이지의 특성값들끼리 군집화될 수 있다. 따라서, 군집화된 특성값 데이터를 하나의 사용자 인터페이스를 구성하는 페이지로 정의하거나 분류할 수 있다. At this time, in the present invention, as the example of FIG. 5 extracts and clusters data from main elements of elements such as IDs and class values, characteristic values of the same user interface pages may be clustered. Therefore, the clustered characteristic value data may be defined or classified as pages constituting one user interface.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다. 도 5에서는 2차원 좌표를 예시로 들었으나, 본 발명의 일실시예에 따른 다차원 좌표는 2차원 좌표에 한정되지 않고, 엘리먼트의 개수에 상응하게 사용될 수도 있다.In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates. 5 illustrates two-dimensional coordinates as an example, the multi-dimensional coordinates according to an embodiment of the present invention are not limited to two-dimensional coordinates, and may be used corresponding to the number of elements.

또한, 프로세서(820)는 사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석한다.In addition, the processor 820 analyzes a user event for each page based on page information classified for each user interface.

예를 들어, 특정 사용자가 웹 어플리케이션에 접속하면서 이용한 사용자 인터페이스 정보를 기반으로 사용자의 웹 어플리케이션 사용패턴 및 사용자 활동에 대한 통계 정보 등을 생성할 수 있다. 이렇게 생성된 사용패턴 및 통계정보 등은 클라우드 스트리밍 서버에서의 사용자 활동에 대한 전체적 통계정보를 생성하는데 사용하거나 또는 사용자에게 개인화된 서비스를 제공하는데 활용될 수도 있다.For example, based on user interface information used while a specific user accesses a web application, the user may generate statistical information about a web application usage pattern and user activity. The generated usage patterns and statistical information may be used to generate global statistical information on user activity in the cloud streaming server, or may be used to provide a personalized service to the user.

또한, 프로세서(820)는 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 웹 어플리케이션이 제대로 구현되었는지 여부를 검토한다In addition, the processor 820 compares the user interface configuration defined at the production stage of the web application with the page information classified for each user interface to examine whether the web application is properly implemented.

예를 들어, 웹 어플리케이션 개발자 또는 설계자로부터 제작 단계에 정의된 사용자 인터페이스 구성과 관련된 데이터를 획득하고, 본 발명에 따라 사용자 인터페이스 별로 분류된 페이지 정보를 비교함으로써 제작된 웹 어플리케이션이 의도대로 구현되었는지 검토할 수도 있다. 이러한 기능을 통해 제작된 웹 어플리케이션을 검토하는 시간과 비용을 현저히 감소시킬 수 있을 뿐만 아니라, 웹 어플리케이션의 사용자 인터페이스가 제대로 구현되지 않은 부분을 정확하게 검출할 수 있으므로 보다 신뢰성 있는 웹 어플리케이션 서비스를 제공할 수도 있다.For example, the web application developer or designer obtains data related to the user interface configuration defined in the production stage, and compares page information classified by user interface according to the present invention to examine whether the produced web application is implemented as intended. It may be. This feature not only significantly reduces the time and cost of reviewing the web application, but also provides a more reliable web application service by accurately detecting the portion of the web application user interface that is not properly implemented. have.

메모리(830)는 문서 객체 모델 및 특성값 중 적어도 하나를 저장한다.The memory 830 stores at least one of a document object model and characteristic values.

또한, 메모리(830)는 상술한 바와 같이 본 발명의 실시예에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석을 위한 기능을 지원할 수 있다. 이 때, 메모리(830)는 별도의 대용량 스토리지로 동작할 수 있고, 동작 수행을 위한 제어 기능을 포함할 수 있다. In addition, the memory 830 may support a function for analyzing a web application detailed page using the document object model according to the embodiment of the present invention as described above. In this case, the memory 830 may operate as a separate mass storage, and may include a control function for performing an operation.

한편, 분석 서버는 메모리가 탑재되어 그 장치 내에서 정보를 저장할 수 있다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.On the other hand, the analysis server is equipped with a memory can store information in the device. In one embodiment, the memory is a computer readable medium. In one implementation, the memory may be a volatile memory unit, and for other implementations, the memory may be a nonvolatile memory unit. In one embodiment, the storage device is a computer readable medium. In various different implementations, the storage device may include, for example, a hard disk device, an optical disk device, or some other mass storage device.

이와 같은 분석 서버를 이용하여 웹 어플리케이션의 페이지 구성을 알지 못하는 경우에도 사용자 인터페이스 별로 웹 페이지를 분류하는 방법을 제공할 수 있다.Even when the page configuration of the web application is not known using the analysis server, a method of classifying web pages by user interface may be provided.

또한, 웹 어플리케이션의 제작 설계 시 정의된 사용자 인터페이스 구성이 제대로 구현되었는지 확인할 수 있다.Also, you can check whether the user interface configuration defined in the web application design is properly implemented.

또한, 웹 어플리케이션의 세부 페이지 분석을 통해 페이지 별로 발생하는 사용자 이벤트를 분석하여 다양한 서비스를 제공할 수 있다.In addition, various services may be provided by analyzing user events occurring for each page through detailed page analysis of the web application.

도 9는 본 발명의 일실시예에 따른 웹 어플리케이션 세부 페이지 분석 과정을 상세하게 나타낸 도면이다.9 is a detailed diagram illustrating a web application detailed page analysis process according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일실시예에 따른 웹 어플리케이션 세부 페이지 분석 과정은 먼저 클라우드 스트리밍 서버의 클라우드 스트리밍 엔진(910)이 실행될 수 있다(S902).Referring to FIG. 9, in the web application detailed page analysis process according to an embodiment of the present invention, the cloud streaming engine 910 of the cloud streaming server may first be executed (S902).

이 후, 클라우드 스트리밍 엔진(910)이 실행되는 시점에 클라우드 스트리밍 서버 내에 생성된 클라우드 브라우저(920)가 웹 서버(930)로부터 웹 어플리케이션을 실행시키기 위한 자바스크립트 다운로드를 시작할 수 있다(S904).Thereafter, at the time when the cloud streaming engine 910 is executed, the cloud browser 920 generated in the cloud streaming server may start downloading the JavaScript for executing the web application from the web server 930 (S904).

이 때, 클라우드 브라우저(920)는 클라우드 스트리밍 시스템에 기정의된 수만큼 생성될 수 있다.In this case, the cloud browser 920 may be generated as many as defined in the cloud streaming system.

이 후, 분석 서버(940)는 클라우드 브라우저(920)를 기반으로 실행되는 웹 어플리케이션의 메뉴를 네비게이션하여(S906) 페이지 별로 문서 객체 모델을 추출할 수 있다(S908). 예를 들어, 웹 어플리케이션에 대한 메뉴 전체를 순차적으로 탐방하면서 각 메뉴에 대한 페이지를 방문하고, 각 메뉴의 대한 페이지의 문서 객체 모델을 추출할 수 있다. 이 때, 메뉴 네비게이션 순서는 특정한 규칙이 정해져 있지는 않지만, 시스템 전체의 효율성과 정확성을 고려하여 네비게이션을 수행하도록 설정할 수도 있다.Thereafter, the analysis server 940 may extract a document object model for each page by navigating a menu of a web application executed based on the cloud browser 920 (S906). For example, while navigating through the entire menu for a web application sequentially, a page for each menu can be visited, and a document object model of the page for each menu can be extracted. At this time, the menu navigation order is not defined, but may be set to perform navigation in consideration of the efficiency and accuracy of the entire system.

이 때, 웹 어플리케이션은 싱글 페이지 웹 어플리케이션(Single Page Web Application)에 상응할 수 있다. 따라서, 복수개의 페이지들은 하나의 URL을 통해 접근 가능한 페이지들에 해당할 수 있다.In this case, the web application may correspond to a single page web application. Therefore, the plurality of pages may correspond to pages accessible through one URL.

이 때, 문서 객체 모델은 웹 브라우저를 통해 확장성 생성 언어 문서의 상호 연동을 위한 객체 기반의 문서 모델에 해당하는 것으로, 프로그램과 스크립트에 의한 문서의 내용, 구조 종류 등의 동적인 접근과 변경이 가능할 수 있다. 또한, 스크립트나 프로그램 언어에 웹 페이지를 연결해줄 수 있다. 이 때, 웹 페이지를 조작 및 생성하기 위해 사용되는 속성, 방법 및 이벤트가 객체를 구성하는데, 이러한 객체들은 대부분의 웹 브라우저에서 스크립트 언어를 통해 접근할 수 있다.In this case, the document object model corresponds to an object-based document model for interoperability of extensibility-generated language documents through a web browser, and allows dynamic access and change of document contents and structure types by programs and scripts. It may be possible. You can also link web pages to scripts or programming languages. At this point, the properties, methods, and events used to manipulate and create web pages make up the objects, which are accessible through scripting languages in most web browsers.

이 후, 분석 서버(940)는 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출할 수 있다(S910).Thereafter, the analysis server 940 may detect a characteristic value for each of the plurality of pages based on at least two or more elements included in the document object model (S910).

이 때, 특성값은 정량적인 측정이 가능한 값에 상응할 수 있다. At this time, the characteristic value may correspond to a value capable of quantitative measurement.

예를 들어, 특성값은 아이디(ID)를 갖는 엘리먼트의 수, 각 엘리먼트들이 가지는 클래스(Class) 값의 종류의 개수 등으로 표현될 수 있다. 이 때, 아이디와 클래스값 같은 엘리먼트의 주요 요소들을 이용하여 2차적인 데이터를 생성함으로써 특성값이 보다 의미 있는 데이터로써 활용될 수 있다.For example, the characteristic value may be expressed by the number of elements having an ID, the number of types of class values each element has, and the like. At this time, by generating the secondary data using the main elements of the element, such as ID and class value, the characteristic value can be utilized as more meaningful data.

이 후, 분석 서버(940)는 다차원 좌표를 기반으로 특성값을 군집화하고(S912), 군집화 결과를 기반으로 웹 어플리케이션에 상응하는 복수개의 페이지들을 웹 어플리케이션의 사용자 인터페이스 별로 분류할 수 있다(S914).Thereafter, the analysis server 940 clusters the characteristic values based on the multi-dimensional coordinates (S912), and classifies a plurality of pages corresponding to the web application based on the clustering result by the user interface of the web application (S914). .

이 때, 다차원 좌표 상의 거리를 고려하여 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화할 수 있다.In this case, at least one characteristic value corresponding to each of the plurality of pages may be clustered in consideration of the distance on the multi-dimensional coordinates.

예를 들어, 도 5에 도시된 것처럼 다차원 좌표 상에 페이지 별로 검출된 특성값이 표시되면, 특성값들 간의 거리를 고려하여 군집화를 수행할 수 있다. 즉, 기설정된 거리 이내의 특성값들을 군집화할 수 있다. 이 때, 기설정된 거리는 자유롭게 설정 및 변경될 수 있다.For example, as shown in FIG. 5, when the detected feature values are displayed for each page on the multi-dimensional coordinates, clustering may be performed in consideration of the distance between the feature values. That is, the characteristic values within a predetermined distance may be clustered. At this time, the predetermined distance may be freely set and changed.

이 때, 군집화는 K-means, DBSCAN, hierarchical clustering 등과 같은 일반적인 군집화 알고리즘을 사용하여 수행될 수 있다.In this case, clustering may be performed using a general clustering algorithm such as K-means, DBSCAN, hierarchical clustering, or the like.

이 때, 본 발명에서는 도 5의 예시와 같이, 아이디나 클래스값 같은 엘리먼트의 주요 요소로부터 데이터를 추출하여 군집화하기 때문에 서로 같은 사용자 인터페이스 페이지의 특성값들끼리 군집화될 수 있다. 따라서, 군집화된 특성값 데이터를 하나의 사용자 인터페이스를 구성하는 페이지로 정의하거나 분류할 수 있다. At this time, in the present invention, as the example of FIG. 5 extracts and clusters data from main elements of elements such as IDs and class values, characteristic values of the same user interface pages may be clustered. Therefore, the clustered characteristic value data may be defined or classified as pages constituting one user interface.

이 때, 다차원 좌표는 적어도 2차원 이상의 좌표에 상응할 수 있다. 도 5에서는 2차원 좌표를 예시로 들었으나, 본 발명의 일실시예에 따른 다차원 좌표는 2차원 좌표에 한정되지 않고, 엘리먼트의 개수에 상응하게 사용될 수도 있다.In this case, the multi-dimensional coordinates may correspond to at least two-dimensional coordinates. 5 illustrates two-dimensional coordinates as an example, the multi-dimensional coordinates according to an embodiment of the present invention are not limited to two-dimensional coordinates, and may be used corresponding to the number of elements.

이 후, 웹 어플리케이션을 분석하여 제작 단계에서 정의된 구성대로 구현되었는지 문석 및 검토할 수 있다(S916).Thereafter, the web application may be analyzed and reviewed to determine whether the web application is implemented as defined in the production stage (S916).

예를 들어, 웹 어플리케이션 개발자 또는 설계자로부터 제작 단계에 정의된 사용자 인터페이스 구성과 관련된 데이터를 획득하고, 본 발명에 따라 사용자 인터페이스 별로 분류된 페이지 정보를 비교함으로써 제작된 웹 어플리케이션이 의도대로 구현되었는지 검토할 수도 있다. 이러한 기능을 통해 제작된 웹 어플리케이션을 검토하는 시간과 비용을 현저히 감소시킬 수 있을 뿐만 아니라, 웹 어플리케이션의 사용자 인터페이스가 제대로 구현되지 않은 부분을 정확하게 검출할 수 있으므로 보다 신뢰성있는 웹 어플리케이션 서비스를 제공할 수도 있다.For example, the web application developer or designer obtains data related to the user interface configuration defined in the production stage, and compares page information classified by user interface according to the present invention to examine whether the produced web application is implemented as intended. It may be. This feature not only significantly reduces the time and cost of reviewing a web application, but also provides a more reliable web application service because it can accurately detect a portion of the web application user interface that is not properly implemented. have.

본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.The functional operations and subject matter implementations described herein may be implemented in digital electronic circuitry, in computer software, firmware, or hardware including the structures and structural equivalents disclosed herein, or in combination with one or more of these. It can be implemented. Implementations of the subject matter described herein are one or more computer program products, that is, one or more modules pertaining to computer program instructions encoded on a program storage medium of tangible type for controlling or by the operation of a processing system. Can be implemented.

컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.The computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of materials affecting a machine readable propagated signal, or a combination of one or more thereof.

본 명세서에서 '시스템'이나 '장치'라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.As used herein, the term "system" or "device" encompasses all the instruments, devices, and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers. The processing system may include, in addition to hardware, code that forms an execution environment for a computer program on demand, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. .

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Computer programs (also known as programs, software, software applications, scripts, or code) may be written in any form of programming language, including compiled or interpreted languages, or a priori or procedural languages. It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment. Computer programs do not necessarily correspond to files in the file system. A program may be in a single file provided to the requested program, in multiple interactive files (eg, a file that stores one or more modules, subprograms, or parts of code), or part of a file that holds other programs or data. (Eg, one or more scripts stored in a markup language document). The computer program may be deployed to run on a single computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.Computer-readable media suitable for storing computer program instructions and data, on the other hand, include, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks, and CDs. It may include all types of nonvolatile memory, media and memory devices, including -ROM and DVD-ROM disks. The processor and memory can be supplemented by or integrated with special purpose logic circuitry.

본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.Implementations of the subject matter described herein may include, for example, a backend component such as a data server, or include a middleware component such as, for example, an application server, or a web browser or graphical user, for example, where a user may interact with the implementation of the subject matter described herein. It may be implemented in a computing system that includes a front end component, such as a client computer with an interface, or any combination of one or more of such back end, middleware or front end components. The components of the system may be interconnected by any form or medium of digital data communication such as, for example, a communication network.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 마찬가지로, 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.Although the specification includes numerous specific implementation details, these should not be construed as limiting to any invention or the scope of the claims, but rather as a description of features that may be specific to a particular embodiment of a particular invention. It must be understood. Likewise, certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, while the features may operate in a particular combination and may be initially depicted as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, the claimed combination being a subcombination Or a combination of subcombinations.

또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다In addition, although the drawings depict operations in a particular order, it is to be understood that such operations must be performed in the specific order or sequential order shown in order to obtain desirable results or that all illustrated acts must be performed. Can not be done. In certain cases, multitasking and parallel processing may be advantageous. Moreover, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products. Should understand that

이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, this specification is not intended to limit the invention to the specific terms presented. Thus, while the present invention has been described in detail with reference to the above examples, those skilled in the art can make modifications, changes, and variations to the examples without departing from the scope of the invention. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.

이상에서와 같이 본 발명에 따른 문서 객체 모델을 이용한 웹 어플리케이션 세부 페이지 분석 방법 및 이를 위한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the method and apparatus for analyzing the web application detailed page using the document object model according to the present invention are not limited to the configuration and method of the embodiments described as described above, but the embodiments are various. All or some of the embodiments may be selectively combined to allow modifications to be made.

본 발명에 의하면 웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델을 추출하고, 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 복수개의 페이지들 각각에 대한 특성값을 검출하고, 다차원 좌표를 기반으로 특성값을 군집화하고, 군집화 결과를 기반으로 복수개의 페이지들을 웹 어플리케이션에 대한 사용자 인터페이스 별로 분류할 수 있다. 나아가, 분류된 페이지 정보를 이용하여 웹 어플리케이션 개발자나 설계자가 웹 어플리케이션이 개발 단계에서 정의된 것처럼 제대로 구현되었는지 여부를 확인할 수도 있다.According to the present invention, a document object model is extracted based on a plurality of pages constituting a web application, a property value for each of the plurality of pages is detected based on at least two or more elements included in the document object model, and multi-dimensional coordinates are extracted. Characteristic values may be clustered based on, and a plurality of pages may be classified by user interface of a web application based on the clustering result. In addition, the classified page information can be used by the web application developer or designer to check whether the web application is properly implemented as defined in the development stage.

110, 710, 940: 분석 서버
120: 하나의 URL
410, 720: 클라우드 스트리밍 서버
411, 910: 클라우드 스트리밍 엔진
412, 920: 클라우드 브라우저
413: 웹 엔진
414: 웹 어플리케이션
730-1~730-n: 클라이언트
740: 네트워크
810: 통신부
820: 프로세선
830: 메모리
930: 웹 서버
110, 710, 940: Analysis Server
120: one URL
410, 720: cloud streaming server
411, 910: cloud streaming engine
412, 920: cloud browser
413: web engine
414: web application
730-1 through 730-n: client
740: network
810: communication unit
820: processor
830: memory
930: web server

Claims (10)

웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(DOCUMENT OF MODEL)을 추출하는 단계;
상기 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 상기 복수개의 페이지들 각각에 대한 특성값을 검출하는 단계; 및
다차원 좌표를 기반으로 상기 특성값을 군집화하고, 군집화 결과를 기반으로 상기 복수개의 페이지들을 상기 웹 어플리케이션에 대한 사용자 인터페이스(USER INTERFACE) 별로 분류하는 단계
를 포함하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
Extracting a document object model based on a plurality of pages constituting a web application;
Detecting a characteristic value for each of the plurality of pages based on at least two elements included in the document object model; And
Clustering the characteristic values based on multi-dimensional coordinates, and classifying the plurality of pages by user interface for the web application based on a clustering result.
Web application detailed page analysis method comprising a.
청구항 1에 있어서,
상기 웹 어플리케이션은
클라우드 스트리밍(CLOUD STREAMING) 기반의 클라우드 브라우저(CLOUD BROWSER)에서 실행되는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
The web application
Web application detailed page analysis method characterized in that executed in the cloud streaming (CLOUD BROWSER) based on cloud streaming (CLOUD STREAMING).
청구항 2에 있어서,
상기 웹 어플리케이션은
싱글 페이지 웹 어플리케이션(SINGLE PAGE WEB APPLICATION)에 상응하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 2,
The web application
Detailed page analysis method of a web application, characterized in that corresponding to a single page web application (SINGLE PAGE WEB APPLICATION).
청구항 1에 있어서,
상기 분류하는 단계는
상기 다차원 좌표 상의 거리를 고려하여 상기 복수개의 페이지들 각각에 상응하는 적어도 하나의 특성값을 군집화하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
The classifying step
At least one characteristic value corresponding to each of the plurality of pages is clustered in consideration of the distance on the multi-dimensional coordinates.
청구항 1에 있어서,
상기 추출하는 단계는
상기 웹 어플리케이션에 대한 모든 메뉴를 네비게이션(NAVIGATION)하면서 상기 문서 객체 모델을 추출하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
The extracting step
And extracting the document object model while navigating through all menus for the web application.
청구항 1에 있어서,
상기 특성값은 정량적인 측정이 가능한 값에 상응하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
The characteristic value corresponds to a value capable of quantitative measurement.
청구항 1에 있어서,
상기 다차원 좌표는 적어도 2차원 이상의 좌표에 상응하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
And wherein the multi-dimensional coordinates correspond to at least two-dimensional coordinates.
청구항 1에 있어서,
사용자 인터페이스 별로 분류된 페이지 정보를 기반으로 페이지 별 사용자 이벤트를 분석하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
And analyzing the user events for each page based on the page information classified for each user interface.
청구항 1에 있어서,
상기 웹 어플리케이션의 제작 단계에서 정의된 사용자 인터페이스 구성과 사용자 인터페이스 별로 분류된 페이지 정보를 비교하여 상기 웹 어플리케이션이 제대로 구현되었는지 여부를 검토하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션 세부 페이지 분석 방법.
The method according to claim 1,
And comparing the user interface configuration defined in the production step of the web application with the page information classified for each user interface to examine whether the web application is properly implemented.
웹 어플리케이션을 구성하는 복수개의 페이지들을 기반으로 문서 객체 모델(DOCUMENT OF MODEL)을 추출하고, 상기 문서 객체 모델에 포함된 적어도 둘 이상의 엘리먼트들을 기반으로 상기 복수개의 페이지들 각각에 대한 특성값을 검출하고, 다차원 좌표를 기반으로 상기 특성값을 군집화하고, 군집화 결과를 기반으로 상기 복수개의 페이지들을 상기 웹 어플리케이션에 대한 사용자 인터페이스(USER INTERFACE) 별로 분류하는 프로세서; 및
상기 문서 객체 모델 및 상기 특성값 중 적어도 하나를 저장하는 메모리
를 포함하는 것을 특징으로 하는 분석 서버.
Extracts a document object model based on a plurality of pages constituting a web application, detects a characteristic value for each of the plurality of pages based on at least two elements included in the document object model, and A processor for clustering the feature values based on multi-dimensional coordinates and classifying the plurality of pages by user interface for the web application based on a clustering result; And
A memory for storing at least one of the document object model and the characteristic value
Analysis server comprising a.
KR1020180051424A 2018-05-03 2018-05-03 Method for analyzing detail page of web-application using document of model and apparatus thereof KR102131080B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180051424A KR102131080B1 (en) 2018-05-03 2018-05-03 Method for analyzing detail page of web-application using document of model and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180051424A KR102131080B1 (en) 2018-05-03 2018-05-03 Method for analyzing detail page of web-application using document of model and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20190134880A true KR20190134880A (en) 2019-12-05
KR102131080B1 KR102131080B1 (en) 2020-07-08

Family

ID=69002346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180051424A KR102131080B1 (en) 2018-05-03 2018-05-03 Method for analyzing detail page of web-application using document of model and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102131080B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120022893A (en) 2009-04-08 2012-03-12 구글 인코포레이티드 Generating improved document classification data using historical search results
KR20150000092A (en) * 2013-06-24 2015-01-02 서울시립대학교 산학협력단 A WordNet based feature merge method for Automatic document classification system performance improvement
KR101546725B1 (en) * 2015-01-26 2015-08-25 (주)유코아시스템 Responsive layouts design method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120022893A (en) 2009-04-08 2012-03-12 구글 인코포레이티드 Generating improved document classification data using historical search results
KR20150000092A (en) * 2013-06-24 2015-01-02 서울시립대학교 산학협력단 A WordNet based feature merge method for Automatic document classification system performance improvement
KR101546725B1 (en) * 2015-01-26 2015-08-25 (주)유코아시스템 Responsive layouts design method

Also Published As

Publication number Publication date
KR102131080B1 (en) 2020-07-08

Similar Documents

Publication Publication Date Title
US10990644B2 (en) Systems and methods for contextual vocabularies and customer segmentation
US10091628B2 (en) Message based application state and card sharing methods for user devices
US9483388B2 (en) Discovery of application states
US10120788B2 (en) Cloud connected automated testing in multiple operating environments using multiple parallel test threads
US11726736B2 (en) System to facilitate interaction during a collaborative screen sharing session
US20140325374A1 (en) Cross-device user interface selection
US20110289407A1 (en) Font recommendation engine
WO2019072201A1 (en) Webpage content extraction method and terminal device
EP3567494A1 (en) Methods and systems for identifying, selecting, and presenting media-content items related to a common story
US9684718B2 (en) System for searching for a web document
CN109804368A (en) For providing the system and method for contextual information
US20160191338A1 (en) Retrieving content from an application
US20200097271A1 (en) Method and system for operating a software application on a processor of a mobile device
US10853470B2 (en) Configuration of applications to desired application states
KR102131080B1 (en) Method for analyzing detail page of web-application using document of model and apparatus thereof
US9158505B2 (en) Specifying compiled language code in line with markup language code
KR102061682B1 (en) Method for analyzing user activity based on cloud browser and apparatus thereof
CN113302617A (en) Article generation device, article generation method, and article generation program
KR20190138121A (en) Method for cloud streaming service using efficient cache based on partial masking and apparatus thereof
KR102150561B1 (en) Method for cloud streaming service based on predict of user acticity and apparatus for the same
US11455311B2 (en) Multi-locator system for tracking data elements in resources
KR102177971B1 (en) Method for play back user activity in enviroment of cloud streaming and apparatus for the same
US20160140251A1 (en) Data consumption between heterogeneous web applications
US11074609B1 (en) Systems and method for improving mediated sponsored content networks using a stack trace
KR20190128431A (en) Method for debugging cloud browser remotely and apparatus thereof

Legal Events

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