KR20220026356A - Method for providing session replay service using session information storage and rendering - Google Patents

Method for providing session replay service using session information storage and rendering Download PDF

Info

Publication number
KR20220026356A
KR20220026356A KR1020200107280A KR20200107280A KR20220026356A KR 20220026356 A KR20220026356 A KR 20220026356A KR 1020200107280 A KR1020200107280 A KR 1020200107280A KR 20200107280 A KR20200107280 A KR 20200107280A KR 20220026356 A KR20220026356 A KR 20220026356A
Authority
KR
South Korea
Prior art keywords
session
data
user
rendering
providing
Prior art date
Application number
KR1020200107280A
Other languages
Korean (ko)
Other versions
KR102381132B1 (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 KR1020200107280A priority Critical patent/KR102381132B1/en
Publication of KR20220026356A publication Critical patent/KR20220026356A/en
Application granted granted Critical
Publication of KR102381132B1 publication Critical patent/KR102381132B1/en

Links

Images

Classifications

    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • G06F16/447Temporal browsing, e.g. timeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/489Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites

Abstract

Provided is a method for providing a session replay service using session information storage and rendering, comprising: a step of detecting through a script when at least one preset event occurs in a user terminal accessing a webpage; a step of receiving and storing at least one event together with the document object model data of the webpage; and a step of reconstructing a screen of the user terminal into a video by performing time-series listing and restructuring rendering to at least one event on the structure information data. Therefore, the present invention is capable of providing in helping improve a user experience and improve the site.

Description

세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법{METHOD FOR PROVIDING SESSION REPLAY SERVICE USING SESSION INFORMATION STORAGE AND RENDERING}Method of providing session replay service using session information storage and rendering

본 발명은 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 관한 것으로, 시계열적으로 나열된 사용자의 이벤트를 웹 페이지의 구조정보 데이터 상에 시각화하여 동영상과 같이 재생할 수 있는 플랫폼을 제공한다.The present invention relates to a method of providing a session replay service using session information storage and rendering, and provides a platform that can visualize time-series user events on structure information data of a web page and reproduce them like a video.

마우스 트래킹 분석은 수행도 측정(Performance Measurement) 방법 중의 하나로 사용자의 시선을 추적하고 이를 분석하는 시선 추적(Eye Tracking)과 함께 웹 브라우저 상의 마우스의 움직임을 추적하고 분석하는 방법이다. 사용자가 웹을 접속하여 탐색하는 동안 활용한 마우스의 궤적을 살펴봄으로써 사용자의 관심사항, 이동 경로, 소요 시간 등을 파악할 수 있다. 웹 사용자는 웹 인터페이스 상에서 목표가 결정되고 나면 그 위치까지의 경로를 정의하고 관련 장치(Device) 조작을 통해 커서(Cursor)를 움직여 목표지점에 도달하고자 한다. 특히 마우스를 이용한 커서의 움직임과 조작은 GUI 기반인 웹 인터페이스에서 실직적인 인터렉션의 대부분을 차지한다고 볼 수 있다. 이처럼 마우스 트래킹은 비디오, 캠코더와 같은 장비를 통해 물리세계에서의 사용자 움직임을 관찰하는데 적합한 비디오 에쓰노그래피(Video Ethnography)에 비해 모니터 화면을 배경으로 나타나는 웹 사용자의 움직임을 관찰하는데 유용하다. Mouse tracking analysis is one of the performance measurement methods, and it is a method of tracking and analyzing the movement of a mouse on a web browser along with eye tracking that tracks and analyzes the user's gaze. By examining the trajectory of the mouse used while the user accesses and navigates the web, the user's interests, movement route, and required time can be identified. After a goal is determined on the web interface, the web user defines a path to the location and tries to reach the target point by moving the cursor through device manipulation. In particular, it can be seen that the movement and manipulation of the cursor using the mouse occupies most of the practical interactions in the GUI-based web interface. As such, mouse tracking is useful for observing the movement of a web user that appears in the background of the monitor screen compared to video ethnography, which is suitable for observing user movement in the physical world through devices such as video and camcorders.

이때, 세션 정보를 추출하여 사용자의 행동을 분석하는 방법이 연구 및 개발되었는데, 이와 관련하여, 선행기술인 한국공개특허 제2010-0119333호(2010년11월09일 공개) 및 한국공개특허 제2020-0004207호(2020년01월13일 공개)에는, 웹 로그를 실시간으로 분석하여 세션 처리를 위한 웹 로그를 결정하고, 세션 처리를 위한 웹 로그로 결정된 웹 로그에 대해 IP 주소 및 URL을 기초로 세션 유형을 판단하며, 판단된 세션 유형에 따른 사용자 세션 정보를 저장하는 구성과, 사용자 단말이 웹 서버에 접속하여 세션을 형성하면, 세션 내에서 사용자 단말이 수행하는 행위에 대응하는 로그 데이터를 실시간으로 수집하고, 로그 데이터 중에서 트리거 로그에 해당하는 로그 데이터를 검출하고, 세션의 시작시점부터 트리거 로그의 검출시점까지 누적된 로그 데이터를 추출하여 누적 로그 데이터를 생성하고, 패턴분석을 수행하여 사용자 단말의 행위에 대응하는 행동정보를 생성하는 분석 구성이 각각 개시되어 있다.At this time, a method for analyzing user behavior by extracting session information has been researched and developed. In No. 0004207 (published on January 13, 2020), the web log is analyzed in real time to determine the web log for session processing, and the session based on the IP address and URL for the web log determined as the web log for session processing A configuration for determining the type and storing user session information according to the determined session type, and when the user terminal connects to the web server and forms a session, log data corresponding to the action performed by the user terminal within the session is recorded in real time It collects, detects log data corresponding to the trigger log from among the log data, extracts the accumulated log data from the start of the session to the detection time of the trigger log to generate the accumulated log data, and performs pattern analysis of the user terminal. Each of the analysis configurations for generating behavior information corresponding to the behavior is disclosed.

다만, 상술한 구성은 세션 정보를 단순히 저장하거나 특정 이벤트가 발생하는 순간까지의 로그를 모아놓은 히스토리 로그에 불과할 뿐, 이를 이용하여 사용자가 유입되어 구매를 하거나 유출되는 이유를 정확히 직관적으로 파악하기에는 불충분하다. 또, 마우스 트래킹 및 비디오 에쓰노그래피를 이용하여 사용자의 화면을그대로 녹화하여 재생하는 경우 개인정보보호법 및 GDPR(General Data Protection Regulation)에 위반 및 불법행위이다. 또, 다수의 트래킹 솔루션이 웹 상에서 정량적인 지표를 추적하는데 초점이 맞추어져 있는데, 고객 경험(User Experience)은 단순히 숫자에 대응하는 정량적 지표만 가지고 기업이나 마케팅 업체에서 고객의 행동 방식을 파악하기에 충분하지 않고, 단순히 숫자 이외에 실제로 중요한 정보는 기록되고 있지 않다. 이에, 사용자를 특정하지 않으면서 사용자의 행동 데이터를 정성 데이터 수준까지 분석할 수 있는 플랫폼의 연구 및 개발이 요구된다.However, the above-described configuration is merely a history log that simply stores session information or collects logs up to the moment when a specific event occurs, and it is insufficient to intuitively understand exactly why users are flowing in, making purchases, or leaking using this. Do. In addition, using mouse tracking and video ethnography to record and reproduce the user's screen as it is is a violation of the Personal Information Protection Act and GDPR (General Data Protection Regulation) and is an illegal act. In addition, a number of tracking solutions are focused on tracking quantitative indicators on the web, but user experience is simply a quantitative indicator that corresponds to numbers. It's not enough, and really important information other than just numbers is not being recorded. Accordingly, research and development of a platform capable of analyzing user behavior data up to the level of qualitative data without specifying the user is required.

본 발명의 일 실시예는, 사용자의 웹 브라우저에서 발생하는 적어도 하나의 종류의 이벤트를 스크립트를 이용하여 수집하고, 이벤트 발생 정보 뿐만 아니라 웹 사이트의 구조 정보(Document Object Model)를 함께 수집하며, 각 사용자가 웹 페이지에서 발생시킨 모든 이벤트와 그 때의 사용자 화면을 그대로 읽어오는 것이 아닌 재구성을 통하여 사용자의 정성 데이터를 수집함과 동시에, 개인정보보호법을 준수하며 개인이 특정되거나 식별되지 않도록 클러스터링(Clustering)을 비지도학습(Unsupervised Learning)으로 수행함으로써, 군집으로 묶인 각 사용자의 이벤트가 통계처리 및 비식별화되면서도 사용자 경험 개선 및 사이트 개선에 도움이 되도록 하는 근거를 제공하며, 직관적으로 사용자의 행동 데이터를 볼 수 있도록 시계열적으로 이벤트를 나열하여 동영상 형태로 재구성하는 렌더링을 수행할 수 있는, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.An embodiment of the present invention collects at least one type of event that occurs in a user's web browser using a script, collects event occurrence information as well as structure information (Document Object Model) of a web site together, All events generated by the user on the web page and the user's screen at that time are not read as it is, but the user's qualitative data is collected through reconfiguration, while at the same time complying with the Personal Information Protection Act and clustering (clustering) so that individuals are not identified or identified. ) by unsupervised learning, each user's event grouped into a cluster is statistically processed and de-identified, while providing a basis to help improve user experience and site improvement, and intuitively data on user behavior It is possible to provide a method of providing a session replay service using session information storage and rendering, which can perform rendering by listing events in a time series so as to be able to view them and reconstructing them in the form of a moving picture. However, the technical task to be achieved by the present embodiment is not limited to the technical task as described above, and other technical tasks may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지하는 단계, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하는 단계 및 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말의 화면을 동영상으로 재구성하는 단계를 포함한다.As a technical means for achieving the above-described technical problem, an embodiment of the present invention provides a step of detecting through a script when at least one preset event occurs in a user terminal accessing a web page, at least one event Reconstructing the screen of the user terminal into a moving image by performing the steps of receiving and storing together with the document object model data of the web page and rendering to list and restructure at least one event in time series on the structure information data includes steps.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 사용자의 웹 브라우저에서 발생하는 적어도 하나의 종류의 이벤트를 스크립트를 이용하여 수집하고, 이벤트 발생 정보 뿐만 아니라 웹 사이트의 구조 정보(Document Object Model)를 함께 수집하며, 각 사용자가 웹 페이지에서 발생시킨 모든 이벤트와 그 때의 사용자 화면을 그대로 읽어오는 것이 아닌 재구성을 통하여 사용자의 정성 데이터를 수집함과 동시에, 개인정보보호법을 준수하며 개인이 특정되거나 식별되지 않도록 클러스터링(Clustering)을 비지도학습(Unsupervised Learning)으로 수행함으로써, 군집으로 묶인 각 사용자의 이벤트가 통계처리 및 비식별화되면서도 사용자 경험 개선 및 사이트 개선에 도움이 되도록 하는 근거를 제공하며, 직관적으로 사용자의 행동 데이터를 볼 수 있도록 시계열적으로 이벤트를 나열하여 동영상 형태로 재구성하는 렌더링을 수행할 수 있고, 궁극적으로 사용자의 이벤트의 분석을 이용하여 UX 디자이너를 위한 시간 축 기반의 웹 페이지 내 분석 도구를 제공할 수 있다.According to any one of the above-described problem solving means of the present invention, at least one type of event occurring in a user's web browser is collected using a script, and not only event occurrence information but also structure information of a web site (Document Object Model) All events generated by each user on the web page and the user's qualitative data are collected through reconfiguration rather than reading the user's screen at that time, while at the same time complying with the Personal Information Protection Act, By performing clustering to prevent identification by unsupervised learning, the event of each user grouped into a cluster is statistically processed and de-identified while providing a basis for helping to improve user experience and improve the site, In order to intuitively view the user's behavior data, it is possible to perform rendering that lists events in a time series and reconfigures them in the form of a video, and ultimately uses the analysis of user events to create time-based web pages for UX designers. Analysis tools can be provided.

도 1은 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 시스템에 포함된 세션 리플레이 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 세션 리플레이 서비스가 구현되는 화면의 일 실시예를 설명하기 위한 도면이다.
1 is a diagram for explaining a system for providing a session replay service using session information storage and rendering according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating a session replay service providing server included in the system of FIG. 1 .
3 and 4 are diagrams for explaining an embodiment in which a session replay service using session information storage and rendering according to an embodiment of the present invention is implemented.
5 is an operation flowchart illustrating a method for providing a session replay service using session information storage and rendering according to an embodiment of the present invention.
6 is a diagram for explaining an embodiment of a screen on which a session replay service is implemented according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art can easily implement them. However, the present invention may be embodied in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is "connected" with another part, this includes not only the case of being "directly connected" but also the case of being "electrically connected" with another element interposed therebetween. . In addition, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated, and one or more other features However, it is to be understood that the existence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded in advance.

명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다. The terms "about", "substantially", etc. to the extent used throughout the specification are used in or close to the numerical value when manufacturing and material tolerances inherent in the stated meaning are presented, and are intended to enhance the understanding of the present invention. To help, precise or absolute figures are used to prevent unfair use by unconscionable infringers of the stated disclosure. As used throughout the specification of the present invention, the term "step of (to)" or "step of" does not mean "step for".

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체 지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In this specification, a "part" includes a unit realized by hardware, a unit realized by software, and a unit realized using both. In addition, one unit may be implemented using two or more hardware, and two or more units may be implemented by one hardware. Meanwhile, '~ unit' is not limited to software or hardware, and '~ unit' may be configured to be in an addressable storage medium or to reproduce one or more processors. Thus, as an example, '~' denotes components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functions provided in the components and '~ units' may be combined into a smaller number of components and '~ units' or further separated into additional components and '~ units'. In addition, components and '~ units' may be implemented to play one or more CPUs in a device or secure multimedia card.

본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다. Some of the operations or functions described as being performed by the terminal, apparatus, or device in the present specification may be performed instead of by a server connected to the terminal, apparatus, or device. Similarly, some of the operations or functions described as being performed by the server may also be performed in a terminal, apparatus, or device connected to the server.

본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.In this specification, some of the operations or functions described as mapping or matching with the terminal means mapping or matching the terminal's unique number or personal identification information, which is the identification data of the terminal. can be interpreted as

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템(1)은, 적어도 하나의 사용자 단말(100) 및 세션 리플레이 서비스 제공 서버(300)를 포함할 수 있다. 다만, 이러한 도 1의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템(1)은, 본 발명의 일 실시예에 불과하므로, 도 1을 통하여 본 발명이 한정 해석되는 것은 아니다.1 is a diagram for explaining a system for providing a session replay service using session information storage and rendering according to an embodiment of the present invention. Referring to FIG. 1 , the session replay service providing system 1 using session information storage and rendering may include at least one user terminal 100 and a session replay service providing server 300 . However, since the session replay service providing system 1 using the session information storage and rendering of FIG. 1 is only an embodiment of the present invention, the present invention is not limitedly interpreted through FIG. 1 .

이때, 도 1의 각 구성요소들은 일반적으로 네트워크(network, 200)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 적어도 하나의 사용자 단말(100)은 네트워크(200)를 통하여 세션 리플레이 서비스 제공 서버(300)와 연결될 수 있다. 그리고, 세션 리플레이 서비스 제공 서버(300)는, 네트워크(200)를 통하여 적어도 하나의 사용자 단말(100)과 연결될 수 있다.At this time, each component of FIG. 1 is generally connected through a network 200 . For example, as shown in FIG. 1 , at least one user terminal 100 may be connected to the session replay service providing server 300 through the network 200 . In addition, the session replay service providing server 300 may be connected to at least one user terminal 100 through the network 200 .

여기서, 네트워크는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷(WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함한다. 무선 데이터 통신망의 일례에는 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), 5GPP(5th Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), RF(Radio Frequency), 블루투스(Bluetooth) 네트워크, NFC(Near-Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.Here, the network refers to a connection structure in which information exchange is possible between each node, such as a plurality of terminals and servers, and an example of such a network includes a local area network (LAN), a wide area network (WAN: Wide Area Network), the Internet (WWW: World Wide Web), wired and wireless data communication networks, telephone networks, wired and wireless television networks, and the like. Examples of wireless data communication networks include 3G, 4G, 5G, 3rd Generation Partnership Project (3GPP), 5th Generation Partnership Project (5GPP), Long Term Evolution (LTE), World Interoperability for Microwave Access (WIMAX), Wi-Fi (Wi-Fi) , Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), RF (Radio Frequency), Bluetooth (Bluetooth) network, NFC ( Near-Field Communication) networks, satellite broadcast networks, analog broadcast networks, Digital Multimedia Broadcasting (DMB) networks, and the like are included, but are not limited thereto.

하기에서, 적어도 하나의 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다. 또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시예에 따라 변경가능하다 할 것이다.In the following, the term at least one is defined as a term including the singular and the plural, and even if the at least one term does not exist, each element may exist in the singular or plural, and may mean the singular or plural. it will be self-evident In addition, that each component is provided in singular or plural may be changed according to embodiments.

적어도 하나의 사용자 단말(100)은, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는 사용자의 단말일 수 있다. 이때, 적어도 하나의 사용자 단말(100)은, 적어도 하나의 종류의 이벤트를 발생시키고, 발생된 이벤트를 웹 페이지의 구조정보 데이터와 함께 세션 리플레이 서비스 제공 서버(300)로 전송하는 단말일 수 있다.The at least one user terminal 100 may be a terminal of a user using a session replay service related web page, an app page, a program, or an application using session information storage and rendering. In this case, the at least one user terminal 100 may be a terminal that generates at least one type of event and transmits the generated event to the session replay service providing server 300 together with the structure information data of the web page.

여기서, 적어도 하나의 사용자 단말(100)은, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 이때, 적어도 하나의 사용자 단말(100)은, 네트워크를 통해 원격지의 서버나 단말에 접속할 수 있는 단말로 구현될 수 있다. 적어도 하나의 사용자 단말(100)은, 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(Smartphone), 스마트 패드(Smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.Here, the at least one user terminal 100 may be implemented as a computer that can access a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser, a desktop, and a laptop. In this case, the at least one user terminal 100 may be implemented as a terminal capable of accessing a remote server or terminal through a network. At least one user terminal 100 is, for example, as a wireless communication device that guarantees portability and mobility, navigation, PCS (Personal Communication System), GSM (Global System for Mobile communications), PDC (Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) ) terminal, a smart phone, a smart pad, a tablet PC, etc. may include all kinds of handheld-based wireless communication devices.

세션 리플레이 서비스 제공 서버(300)는, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 제공하는 서버일 수 있다. 그리고, 세션 리플레이 서비스 제공 서버(300)는, 적어도 하나의 사용자 단말(100)로부터 적어도 하나의 종류의 이벤트가 발생하는 경우 웹 페이지의 구조정보 데이터와 함께 수집하여 저장하고, 경량화된 구조정보 데이터와 이벤트를 기반으로 플레이어에서 재생가능하도록 렌더링을 하는 서버일 수 있다. 또한, 세션 리플레이 서비스 제공 서버(300)는, 적어도 하나의 사용자 단말(100)을 비지도학습으로 클러스터링하여 군집화하는 서버일 수 있고, 군집별로 세션 리플레이가 되도록 하는 서버일 수 있다. 그리고, 세션 리플레이 서비스 제공 서버(300)는, 사용자의 행동을 분석한 결과를 이를 요청하는 적어도 하나의 클라이언트(미도시)로 제공하는 서버일 수 있다.The session replay service providing server 300 may be a server that provides a session replay service web page, an app page, a program, or an application using session information storage and rendering. And, the session replay service providing server 300, when at least one type of event occurs from the at least one user terminal 100, collects and stores the structure information data of the web page together with the lightweight structure information data and It may be a server that renders the player so that it can be played based on an event. In addition, the session replay service providing server 300 may be a server for clustering at least one user terminal 100 by unsupervised learning, or a server for performing session replay for each cluster. In addition, the session replay service providing server 300 may be a server that provides a result of analyzing a user's behavior to at least one client (not shown) requesting it.

여기서, 세션 리플레이 서비스 제공 서버(300)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.Here, the session replay service providing server 300 may be implemented as a computer capable of accessing a remote server or terminal through a network. Here, the computer may include, for example, navigation, a laptop equipped with a web browser, a desktop, and a laptop.

도 2는 도 1의 시스템에 포함된 세션 리플레이 서비스 제공 서버를 설명하기 위한 블록 구성도이고, 도 3 및 도 4는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.2 is a block diagram for explaining a session replay service providing server included in the system of FIG. 1, and FIGS. 3 and 4 are session replay services using session information storage and rendering according to an embodiment of the present invention. It is a diagram for explaining an embodiment.

도 2를 참조하면, 세션 리플레이 서비스 제공 서버(300)는, 감지부(310), 저장부(320), 재구성부(330), 마이닝부(340), 퍼널(Funnel)분석부(350)를 포함할 수 있다.Referring to FIG. 2 , the session replay service providing server 300 includes a sensing unit 310 , a storage unit 320 , a reconstruction unit 330 , a mining unit 340 , and a funnel analysis unit 350 . may include

본 발명의 일 실시예에 따른 세션 리플레이 서비스 제공 서버(300)나 연동되어 동작하는 다른 서버(미도시)가 적어도 하나의 사용자 단말(100)로 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 전송하는 경우, 적어도 하나의 사용자 단말(100)은, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 설치하거나 열 수 있다. 또한, 웹 브라우저에서 실행되는 스크립트를 이용하여 서비스 프로그램이 적어도 하나의 사용자 단말(100)에서 구동될 수도 있다. 여기서, 웹 브라우저는 웹(WWW: World Wide Web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(Hyper Text Mark-up Language)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(Chrome) 등을 포함한다. 또한, 애플리케이션은 단말 상의 응용 프로그램(Application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(App)을 포함한다.A session replay service application, program using the session replay service providing server 300 or another server (not shown) operating in conjunction with at least one user terminal 100 to store and render session information according to an embodiment of the present invention , when transmitting an app page, a web page, etc., at least one user terminal 100 may install or open a session replay service application, program, app page, web page, etc. using session information storage and rendering. In addition, a service program may be driven in at least one user terminal 100 using a script executed in a web browser. Here, the web browser is a program that enables the use of a web (WWW: World Wide Web) service, and refers to a program that receives and displays hypertext written in HTML (Hyper Text Mark-up Language), for example, Netscape. , Explorer, Chrome, and the like. In addition, the application means an application on the terminal, for example, includes an app (App) executed in a mobile terminal (smartphone).

도 2를 설명하기 이전에, 본 발명의 기본 개념을 설명하기로 한다.Before describing Fig. 2, the basic concept of the present invention will be described.

UX 디자이너는 웹 페이지 동작을 위한 데이터와 힌트를 사용자에게 전달하고 생산 비용 효율이 높은 디자인을 하는 역할을 한다. 효과적인 디자인을 하기 위해서 UX 디자이너는 디자인 리서치 및 디자인 평가 업무를 담당한다. 디자인 리서치는시장 조사와는 다르게 서비스를 사용하는 사용자를 대상으로 고려하여 무엇이 사람들이 사용하게 하는지, 어떤 메시지와 스타일이 사람들을 기쁘게 만드는지를 결과물로 제시해야 한다. 그리고 디자인 평가는 디자인을 개선하고 디자인의 효율성을 입증하는 방향으로 진행되어야 한다. 이렇듯 컨셉 제안부터 디자인 평가까지 진행하는 UX 디자이너는 페이지 내 단기간의 정량 데이터 분석뿐만 아니라 시간에 따른 사용자의 유동적인 흐름과 페이지 내 데이터의 인과관계를 분석하여 서비스를 개선하고 변화 데이터를 통해 효율성을 입증해야 한다. 그러나 현재 시각화 도구가 제공하는 공시적 관점의 분석만으로는 시간 흐름에 영향을 받는 사용자 및 요소들 간의 통시적인 비교 분석이 어렵다. 통시적인 관점에서는 시간에 따른 전체적인 서비스 흐름을 분석할 수 있으며, 시간 추이에 맞춰 시즌성이 강한 UI 요소를 개선하고 사용자 세그먼트를 관리할 수 있다는 장점이 있다. 따라서 본 발명의 일 실시예에서는 추세 데이터를 중점으로 효율적인 UX 분석이 가능한 페이지 내 분석 도구를 제공하기로 한다.A UX designer plays a role in delivering data and hints for web page operation to users and designing a design with high production cost efficiency. For effective design, UX designers are in charge of design research and design evaluation. Unlike market research, design research should consider the users who use the service as a target and present what makes people use it, and what message and style make people happy. And design evaluation should proceed in the direction of improving the design and demonstrating the effectiveness of the design. In this way, the UX designer who proceeds from concept proposal to design evaluation not only analyzes short-term quantitative data within the page, but also analyzes the user's fluid flow over time and the causal relationship of the data in the page to improve services and prove efficiency through change data Should be. However, diachronic comparative analysis between users and factors affected by time flow is difficult only with the analysis of the public viewpoint provided by the current visualization tool. From a diachronic point of view, it is possible to analyze the overall service flow over time, and it has the advantage of being able to improve UI elements with strong seasonality and manage user segments according to the time trend. Accordingly, in an embodiment of the present invention, an in-page analysis tool capable of efficient UX analysis focusing on trend data is provided.

도 2를 참조하면, 감지부(310)는, 웹 페이지에 접속한 사용자 단말(100)에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지할 수 있다. 이때, 세션(Session)이란, 사용자가 어떠한 작업 또는 공동작업을 위해 상호작용을 하는 기간을 의미하며, 예를 들어, A 쇼핑몰 페이지에 접속한 후, A 쇼핑몰 페이지에서 구매를 하는 이벤트(구매 이벤트)가 발생할 때까지의 기간이나, A 쇼핑몰 페이지로 유입된 후 유출되기까지의 기간을 의미할 수 있다. 이때, 세션 레코딩(Session Recording)은, 세션에 참가하는 동안 발생된 이벤트를 저장하는 것을 말하며, 세션 리플레이(Session Replay)는 세션 레코딩으로 저장된 이벤트들을 차례로 다시 실행하여 재연하는 것을 의미한다. 이때, 본 발명의 일 실시예에 따른 세션 리플레이를 수행하기 위해서는, 웹 페이지에서 사용자가 머문 시간이나, 어느 페이지를 둘러보았는지, 어느 것을 선택(클릭 또는 터치)했는지, 어느 것을 오래 보았는지, 검색어를 넣고 그 결과는 어땠는지 등의 실시간 피드백이나 행동 데이터를 수집해야 한다. 여기서, 스크립트는 자바스크립트나 아마존의 AWS 세션 스크립트를 사용할 수 있지만 이에 한정되는 것은 아니다.Referring to FIG. 2 , when at least one preset event occurs in the user terminal 100 accessing the web page, the sensing unit 310 may detect it through a script. In this case, a session means a period during which a user interacts for a certain task or collaboration. For example, after accessing the A shopping mall page, an event of making a purchase on the A shopping mall page (purchase event) It may mean a period until it occurs or a period from when it flows into the A shopping mall page and then flows out. In this case, the session recording (Session Recording) refers to storing an event generated while participating in a session, and the Session Replay (Session Replay) refers to replaying the events stored as the session recording by sequentially re-executing the event. At this time, in order to perform session replay according to an embodiment of the present invention, the time the user stayed on the web page, which page he looked at, which one he selected (clicked or touched), which was viewed for a long time, and a search term You need to collect real-time feedback or behavioral data, such as what the outcome was. Here, the script may use JavaScript or Amazon's AWS session script, but is not limited thereto.

저장부(320)는, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장할 수 있다. 이때, 적어도 하나의 이벤트는, 페이지뷰, 클릭, 구매전환 및 세션전환을 포함할 수 있고, 구조정보 데이터는 HTML, CSS 및 JS를 포함할 수 있으나, 나열된 것들로 한정되지 않고 열거되지 않은 이유로 배제되지 않는다. HTML 또는 XML 문서는 스프레드 시트, 주소록 또는 다른 구조 데이터를 텍스트 형태의 논리적 구조로 나타냄으로써 사람이 읽을 수 있다. 하지만 정작 컴퓨터는 해당 문서의 텍스트 정보만으로 구조적인 내용에 대해 인식이 불가능하다. 이에 W3C(World Wide Web Consortium)에서는 DOM(Document Object Model, 구조정보 데이터)이라는 프로그래밍 인터페이스 문서를 권고함으로써 HTML, XML 문서의 요소들을 독립된 객체들로 구분하여 구조적인 객체 표현 양식과 접근 방식을 정의한 API 규격을 제공한다. 이는 DOM을 이용함으로써 문서내의 모든 데이터를 노드의 부모 자식 계층 형태로 메모리에 적재가 가능해졌다는 것을 의미한다.The storage unit 320 may receive and store at least one event together with document object model data of a web page. At this time, the at least one event may include page view, click, purchase conversion, and session conversion, and the structure information data may include HTML, CSS, and JS, but is not limited to the listed ones and excluded for reasons not listed. doesn't happen HTML or XML documents are human-readable by representing spreadsheets, address books, or other structured data as logical structures in the form of text. However, the computer cannot recognize the structural contents of the document only with the text information of the document. Accordingly, the World Wide Web Consortium (W3C) recommends a programming interface document called DOM (Document Object Model, Structural Information Data), an API that defines the structural object expression style and approach by classifying elements of HTML and XML documents into independent objects. provide specifications. This means that by using the DOM, all data in the document can be loaded into memory in the form of parent and child hierarchies of nodes.

예를 들어, XML 문서가 파싱되면 사용자 단말(100)의 메모리상에 DOM 트리(Tree) 구조가 형성된다. 이러한 트리 구조를 구성하는 객체들을 노드라 호칭하며 각 노드들은 고유 아이디(ID)를 지니고 있어 메모리 상에서 쉽게 접근 및 편집이 가능하다. DOM 트리를 사용되는 노드는 엘리먼트 노드(Element node), 속성 노드(Attribute node), 텍스트 노드(Text node)로 분류할 수 있다. 예를 들어, 엘리먼트 노드는 정보 콘테이너를 나타낸다. 이는 XML을 만드는 기본 노드로써 다른 엘리먼트 노드나 텍스트 노드를 포함하며 유일하게 속성을 가질 수 있는 노드를 뜻한다. 또, 속성 노드는 엘리먼트 노드에 대한 정보를 포함하고 있다. 속성 노드는 다수의 속성을 포함함으로써 생성된 오브젝트의 prop- erty에 접근하여 각 요소에 대한 제어가 가능하게 된다. 또, 텍스트 노드는 의미가 있는 텍스트 정보를 포함하거나 혹은 공란이다. 또한, 이러한 DOM 객체와 노드 및 그 속성들은 W3C DOM 표준에 따라 접근 및 조작이 가능하여 createElement(), create TextNode() 같은 노드 생성 및 접근, nodeName, nodeType, tagName과 같은 노드 파악, childNode(), firstChild() 같은 트리 구조 파악 등의 메소드들이 사용되고 있다. 이하 표 1에는, W3C DOM 표준에서 제공하는 대표적인 DOM 방법에 대한 설명이 정리되어 있다.For example, when the XML document is parsed, a DOM tree structure is formed in the memory of the user terminal 100 . Objects constituting this tree structure are called nodes, and each node has a unique ID (ID) so that it can be easily accessed and edited in memory. Nodes using the DOM tree can be classified into element nodes, attribute nodes, and text nodes. For example, an element node represents an information container. This is a basic node that makes XML, and it means a node that includes other element nodes or text nodes and can have attributes uniquely. Also, the attribute node contains information about the element node. By including a number of properties, the property node accesses the properties of the created object to control each element. Also, the text node contains meaningful text information or is blank. In addition, these DOM objects and nodes and their properties can be accessed and manipulated according to the W3C DOM standard, so node creation and access such as createElement(), create TextNode(), identification of nodes such as nodeName, nodeType, tagName, childNode(), Methods such as understanding tree structure such as firstChild() are used. Table 1 below summarizes descriptions of representative DOM methods provided by the W3C DOM standard.

createElementcreateElement 엘리먼트 노드를 생성create element node createTextNodecreateTextNode 텍스트 노드를 생성create text node appendchildappendchild 엘리먼트 노드에 추가add to element node insertBeforeinsertBefore 이전 노드에 새로운 노드를 삽입Insert new node into old node removeChilderemoveChilde 대상 노드를 제거remove target node setAttributesetAttribute 속성 값을 변경change attribute value getAttributegetAttribute 속성 값을 반환return property value getElementByIdgetElementById ID에 해당하는 element 검색Search for element corresponding to ID getElementsByTagNamegetElementsByTagName Tag에 해당하는 element를 찾아 배열로 반환Find the element corresponding to the tag and return it as an array

이때, 웹 페이지를 구성하는 정보들은 XML 기반으로 정의되어 있어 웹 페이지를 재구성하려면 XML 텍스트 프로세싱을 위한 파서(Parser)가 필요하다. 그러나 XML 파서를 통해 분석된 XML데이터들은 사용자 단말(100)의 메모리 상에 DOM 트리를 생성하여 논리적 구조를 형성하며 이러한 정보는 렌더링(Rendering)을 거쳐 사용자에게 구성된 장면을 출력시키는데, 두 표준 기술은 오직 하나의 페이지만을 표현할 수 잇고, 서비스 제공자가 지정한 이벤트 또는 사용자의 요청에 의한 장면 변경이 이루어질 때마다 매번 새로운 웹 페이지 구성 정보를 생성해야하는 단점이 있다. 예를 들어, 서비스 제공자(웹 페이지 제공자)는 콘텐츠 ID가 V1인 웹 페이지 이미지 객체와, 콘텐츠 ID가 A1인 텍스트 객체로 구성된 초기 웹 페이지 구성 정보를 XML 형태의 데이터로 전달하고, 사용자 단말(100)은 수신한 구성 정보를 분석하여 메모리상에 DOM 트리 형태로 생성하고 각 요소에 대한 구조화와 복호화를 수행하면서 콘텐츠가 소비된다. 다만, 소비자가 어느 아이콘이나 메뉴를 선택하여 웹 페이지의 이동이나 전환 또는 변화가 발생하는 경우, 예를 들어, 웹 페이지에 아이콘이 표시되어야 해서 아이콘 이미지 객체를 삽입해야 할 경우, 추가 객체 뿐만 아니라 기존의 웹 페이지 구성 정보까지 중복된 XML 문서를 생성해야 하고, 이는 곧 저장부(320)에서 반복작업을 수행해야 한다는 의미이다.At this time, the information constituting the web page is defined based on XML, so a parser for XML text processing is required to reconstruct the web page. However, the XML data analyzed through the XML parser creates a DOM tree in the memory of the user terminal 100 to form a logical structure, and this information outputs a scene configured to the user through rendering. There is a disadvantage in that only one page can be expressed, and new web page configuration information must be generated every time a scene change is made by an event designated by a service provider or a user's request. For example, the service provider (web page provider) transmits initial web page configuration information composed of a web page image object having a content ID of V1 and a text object having a content ID of A1 as data in XML format, and the user terminal 100 ) analyzes the received configuration information, creates it in the form of a DOM tree in memory, and consumes the contents while structuring and decoding each element. However, if the consumer selects an icon or menu to move, switch, or change the web page, for example, when an icon image object needs to be inserted because an icon should be displayed on the web page, not only additional objects but also existing It is necessary to create a duplicate XML document up to the web page configuration information of

이에 따라, 저장부(320)는, 웹페이지 동적 변경 기술인 DOM 방법(Method)를 이용하여 새로운 웹 페이지 구성정보 데이터를 이용하기로 한다. 우선, 초기 웹 페이지 구성정보(DOM) 데이터는, XML 형태로 사용자 단말(100)로 전송되며, 사용자 단말(100)은, 구성정보 데이터를 수신하여 XML 파일 파서(Parser)를 통하여 분석하여 메모리상에 DOM 트리를 생성하여 초기 웹 페이지의 화면을 만들어 소비한다. 이때, 사용자 단말(100)에서 이벤트가 발생해서 웹 페이지가 전환, 변경 및 이동될 때 DOM 업데이트(Update)를 이용하여 보다 효율적인 구성정보 데이터 변경이 가능하도록 하고, 저장부(320)에서도 이를 이용하여 수집함으로써 중복된 데이터를 받지 않도록 한다. 이때, 서비스 생성자(웹 페이지 제공자)는 DOM 업데이트 메세지(DOM Update Message)를 생성하여 사용자 단말(100)로 전송하고, 사용자 단말(100)은, 기존 메모리 상의 DOM 트리는 보존한 채, DOM 업데이트 메세지를 XML 파일 파서로 분석하여 특정 요소에 대하여 부분적으로 업데이트를 수행함으로써 DOM 트리를 변경하도록 하며, 저장부(320)에서도 이미 수집한 구성정보 데이터에 부분적인 업데이트를 통하여 구조정보 데이터의 중복수집을 막을 수 있다.Accordingly, the storage unit 320 decides to use the new web page configuration information data by using the DOM Method, which is a web page dynamic change technology. First, initial web page configuration information (DOM) data is transmitted to the user terminal 100 in the form of XML, and the user terminal 100 receives the configuration information data and analyzes it through an XML file parser on the memory. Creates and consumes the screen of the initial web page by creating a DOM tree in At this time, when an event occurs in the user terminal 100 and a web page is converted, changed, and moved, it enables more efficient configuration information data change using DOM Update, and the storage unit 320 uses this By collecting data, duplicate data is not received. At this time, the service producer (web page provider) generates and transmits a DOM Update Message to the user terminal 100, and the user terminal 100 transmits the DOM update message while preserving the DOM tree in the existing memory. The DOM tree is changed by performing a partial update on a specific element by analyzing it with an XML file parser, and the storage unit 320 also partially updates the already collected configuration information data to prevent duplicate collection of structure information data. there is.

예를 들어, 사용자가 보는 웹 페이지가 쇼핑몰 페이지이고, 의류를 입은 모델의 동영상이 재생되고, 동영상을 클릭하면 의류에 대한 상세정보가 텍스트로 오버레이되는 웹 페이지로부터 사용자의 이벤트(클릭)을 추출하면서 구성정보 데이터를 저장한다고 가정하자. 이때, 서비스 제공자에서 복호화가 이루어진 Video와 Audio 데이터는 Scene Generator에 입력되고, Scene Generator는 입력된 정보를 기반으로 하여 각각 미디어들이 언제 어떤 방식으로 소비될지에 대한 정보를 장면 구성 정보에 XML문서 또는 바이너리 정보 형태로 생성한다. 각 Video와 Audio의 동기화에 대한 정보를 포함한 장면 구성 정보는 Packetizer에 입력되어 패킷화되며, 다시 미디어 정보와 함께 Multiplexer를 거쳐 다중화되어 사용자 단말(100)로 전달된다. For example, when the web page the user sees is a shopping mall page, a video of a model wearing clothes is played, and when the video is clicked, the user's event (click) is extracted from the web page where detailed information about clothes is overlaid with text. Suppose we want to store configuration information data. At this time, the video and audio data decoded by the service provider are input to the scene generator, and the scene generator provides information about when and how each media will be consumed based on the input information to the scene composition information as XML documents or binary created in the form of information. Scene configuration information including information on synchronization of each video and audio is input to the packetizer and packetized, and again multiplexed with media information through a multiplexer and delivered to the user terminal 100 .

사용자 단말(100)은, 서비스 제공자(웹 페이지 제공자)로부터 전송망을 이용하여 패킷형태로 미디어 정보를 전송받아 Demultiplexer에 미디어 정보를 입력하고, Demultiplexer는 패킷을 분석하여 Video와 Audio 정보를 가진 패킷은 Media Decoder에 전송하여 복호화를 이루며, 장면 구성 정보는 Scene Parser에 전송한다. Scene Parser는 사용자 단말(100)의 메모리에 DOM 트리를 생성하여 Renderer에 전달하고, DOM 트리에 따라 각 Video와 Audio는 재생 위치 및 시점에 맞춰 미디어 소비가 이루어지게 된다. 이렇게 미디어 서비스 이용 도중에 사용자 단말(100)에서 동영상을 클릭하는 이벤트가 발생하는 경우, 즉 화면 상에 텍스트 요소가 추가되어야 하는 경우, 텍스트에 대한 DOM 업데이트 정보를 저장부(320)에서 수집하여 동영상 + 텍스트를 수집함으로써 동영상의 구조정보 데이터를 또 수집하지 않고, 텍스트만 수집하여 DOM 트리에 추가 및 렌더링을 수행하도록 하는 것이다. The user terminal 100 receives media information in the form of a packet from a service provider (web page provider) using a transmission network and inputs the media information to the demultiplexer, and the demultiplexer analyzes the packet, and the packet with video and audio information is Media Decoding is accomplished by sending it to the decoder, and the scene configuration information is transmitted to the scene parser. The scene parser creates a DOM tree in the memory of the user terminal 100 and delivers it to the renderer, and media consumption is made according to the playback position and timing of each video and audio according to the DOM tree. In this way, when an event of clicking a video in the user terminal 100 occurs while using the media service, that is, when a text element needs to be added to the screen, DOM update information for the text is collected from the storage unit 320 and the video + By collecting text, the structure information data of the video is not collected again, but only text is collected and added to the DOM tree and rendered.

이처럼 DOM update를 이용할 경우 기존 요소들에 대한 독립성을 유지하며 변경될 요소에 대해서만 수집이 가능하므로 효율적인 데이터 처리가 가능하게 된다. 또한 크기가 작은 업데이트 데이터만으로도 업데이트가 가능하므로 서버의 자원, 즉 네트워킹 자원 및 컴퓨팅 자원을 적게 사용할 수 있고, 텍스트로 구성된 장면 구성 정보를 Binary로 변환하여 전달되어야 하는 스트리밍 환경의 복잡한 장면에서도 자원 이용에 소비되는 시간을 크게 단축할 수 있다.In this way, when DOM update is used, it is possible to efficiently process data because it is possible to collect only the elements to be changed while maintaining the independence of the existing elements. In addition, since updates can be performed only with small update data, less server resources, that is, networking and computing resources, can be used, and even in complex scenes in a streaming environment where text-based scene composition information must be converted to binary and delivered, it is also useful for resource utilization. The time consumed can be greatly reduced.

재구성부(330)는, 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말(100)의 화면을 동영상으로 재구성할 수 있다. 이때, 사용자 단말(100)은 서로 다른 주체에 귀속된 복수의 사용자 단말(100)이고, 동영상은 클러스터링된 군집별로 재구성될 수 있다. 이때, 군집별 메트릭스(Metrics)에 기반하여 각 군집별 평균 가치 및 하나의 사용자의 가치가 산출될 수 있고, 사용자 단말(100)의 적어도 하나의 종류의 고유식별정보는 비식별화처리될 수 있다. 또, 상술한 바와 같이 구조정보(DOM) 데이터로부터 각 노드와 요소가 정의되어 있으므로, 이를 재구성하는 것은 시각화 과정인 렌더링만 거치면 된다. 이때, 구조정보 데이터를 이루는 적어도 하나의 요소는, 각각 시각화 이미지나 프레임 또는 레이아웃이 미리 저장되어 있음이 전제되어야 한다. 예를 들어, A 요소를 추출하고 나열했는데 어떻게 표현될지에 대한 이미지 등이 존재하지 않는다면 이를 표현할 수 없다. 따라서, 각 요소는 각 이미지, 프레임 또는 레이아웃과 매핑되어 저장되어 데이터베이스화되어야 한다. [Z 웹 페이지 - A 요소 - B 이미지 - C 좌표(또는 C 프레임이나 C 레이아웃)]와 같은 형태로 저장이 되어 있고, A 요소가 추출되면, B 이미지를 구성하도록 재구성 화면에 배치하고, 사용자의 이벤트를 그 위에 시계열적으로 배치시킴으로써 사용자 화면을 그대로 가져오는 녹화가 아니라, "재구성"하는 렌더링을 수행한다. 이 재구성 과정은 이후 데이터마이닝을 위한 전처리 및 정제과정도 되지만, 개인정보보호법을 준수하기 위한 비식별화 과정도 겸할 수 있다.The reconfiguration unit 330 may reconstruct the screen of the user terminal 100 into a moving image by performing rendering of time-series listing and restructuring of at least one event on the structure information data. In this case, the user terminal 100 is a plurality of user terminals 100 belonging to different subjects, and the video may be reconstructed for each clustered group. At this time, the average value for each cluster and the value of one user may be calculated based on the metrics for each cluster, and at least one type of unique identification information of the user terminal 100 may be de-identified. . In addition, as described above, since each node and element are defined from the DOM data, reconstructing them only needs to go through rendering, which is a visualization process. At this time, it should be assumed that at least one element constituting the structure information data has a visualization image, a frame, or a layout stored in advance, respectively. For example, if element A is extracted and listed, but there is no image of how it will be expressed, it cannot be expressed. Therefore, each element must be stored and stored in a database mapped with each image, frame or layout. [Z web page - A element - B image - C coordinate (or C frame or C layout)] is saved, and when element A is extracted, it is placed on the reconstruction screen to compose the image B, and the user By arranging events on top of it in time series, it performs rendering that "reconstructs" the user's screen rather than recording it as it is. This reconstruction process is a pre-processing and refining process for subsequent data mining, but it can also serve as a de-identification process to comply with the Personal Information Protection Act.

한국과학기술정보연구원의 국가과학기술지식정보서비스(NTIS)에서는 개인정보 보호 영향평가를 실시하여 개인정보 영향정도에 따라 등급을 부여하여 관리하고 있다. 이하, 표 2는 NTIS의 개인정보 영향도 등급으로, 1등급은 그 자체로 개인식별이 가능하거나, 조합되면 개인식별이 가능한 매우 중요한 개인정보 항목이다.The National Science and Technology Knowledge Information Service (NTIS) of the Korea Institute of Science and Technology Information conducts an impact assessment on personal information protection, and assigns grades according to the degree of impact on personal information and manages them. Hereinafter, Table 2 shows the personal information impact ratings of NTIS. Level 1 is a very important personal information item that can be individually identified by itself or can be individually identified when combined.

등급rank 분류classification 개인정보항목Personal information items 설명explanation 1등급Grade 1 고유식별정보unique identification information 주민등록번호, 여권번호, 운전면허번호, 외국인등록번호 *개인정보보호법 제24조 및 동법 시행령 제19조Resident registration number, passport number, driver's license number, alien registration number *Personal Information Protection Act Article 24 and Enforcement Decree Article 19 그 자체로 개인의 식별이 가능하거나 매우 민감한 개인정보 또는 관련 법령에 따라 처리가 엄격하게 제한된 개인정보Personal information that can be identified by itself or is very sensitive, or personal information whose processing is strictly restricted in accordance with relevant laws and regulations 민감정보sensitive information 사상·신념, 노동조합·정당의 가입·탈퇴, 정치적 견해, 병력, 신체적·정신적 장애, 성적 취향, 유전자검사정보, 범죄경력정보 등 사생활을 현저하게 침해할 수 있는 정보
*개인정보보호법 제23조 및 동법 시행령 제18조
Information that may significantly infringe privacy, such as ideology and belief, union or party membership or withdrawal, political opinion, medical history, physical or mental disability, sexual orientation, genetic test information, criminal history information, etc.
*Personal Information Protection Act Article 23 and Enforcement Decree Article 18
인증정보authentication information 비밀번호, 바이오정보(지문, 홍채, 정맥 등)
*개인정보의 안정성 확보조치 기준고시 제7조
Password, bio information (fingerprint, iris, vein, etc.)
* Article 7 of the Standard Notification of Measures to Secure the Stability of Personal Information
신용정보
금융정보
credit information
financial information
신용정보, 신용카드번호, 계좌번호 등
*신용정보의 이용 및 보호에 관한 법률 제2조, 제19조 및 동법 시행령 제2조, 제16조, 제21조 등
Credit information, credit card number, account number, etc.
* Articles 2 and 19 of the Credit Information Use and Protection Act and Articles 2, 16, and 21 of the Enforcement Decree of the same Act
위치정보location information *위치정보의 보호 및 이동 등에 한 법률 제2조, 제16조 등*Act on the protection and movement of location information, Article 2, Article 16, etc. 2등급2nd grade 개인식별정보 personally identifiable information 이름, 주소, 전화번호, 핸드폰번호, 이메일, 생년월일, 성별 등Name, address, phone number, mobile phone number, email, date of birth, gender, etc. 조합되면 명확히 개인의 식별이 가능한 개인정보Personal information that can be clearly identified when combined 개인관련정보Personal information 학력, 직업, 키, 몸무게, 혼인여부, 가족상황, 취미 등Education, occupation, height, weight, marital status, family situation, hobbies, etc. 3등급3rd grade 자동생성정보Auto-generated information IP정보, MAC정보, 사이트 방문기록, 쿠키 등IP information, MAC information, site visit history, cookies, etc. 개인 식별정보와 조합되면 부가적인 정보를제공하는 간접개인정보Indirect personal information that provides additional information when combined with personally identifiable information 가공정보processing information 통계성 정보, 가입자 성향 등Statistical information, subscriber propensity, etc. 제한적 본인식별정보Limited personally identifiable information 회원정보, 사번, 내부용 개인식별정보 등
Member information, company number, personally identifiable information for internal use, etc.

이때, 고유식별정보는 대부분 1 등급에 속하는 것으로 정의되어 있고, 그 밖의 개인정보도 2등급 및 3등급으로 보안대상인 것을 알 수 있다. 여기서, 사이트 방문기록 및 쿠키나 세션 정보 등도 보안대상이므로 이를 비식별화하는 본 발명의 일 실시예에 따른 세션 리플레이를 위한 재구성은 매우 중요한 과정이다. 물론, 이렇게 재구성을 통하여 상술한 바와 같이 로우 데이터(Raw Data)가 아닌, 전처리가 된 데이터가 되므로 이후 이를 기준으로 식별하기 위한 메타데이터를 부가한다거나 태깅을 하는 과정을 거치지 않아도 되고, 데이터 마이닝, 즉 각 사용자를 군집화하는 과정에서 전처리가 필요하지 않게 된다.At this time, it can be seen that most of the unique identification information is defined as belonging to the first grade, and other personal information is also subject to security in the second and third grades. Here, since site visit records and cookie or session information are also subject to security, reconfiguration for session replay according to an embodiment of the present invention that de-identifies them is a very important process. Of course, through this reconstruction, as described above, not raw data, but pre-processed data, so there is no need to add or tag metadata for identification based on this, and data mining, that is, No preprocessing is required in the process of clustering each user.

마이닝부(340)는, 재구성부(330)에서 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말(100)의 화면을 동영상으로 재구성한 후, 적어도 하나의 인공지능 알고리즘을 이용하여 복수의 사용자 단말(100)의 동영상을 데이터 마이닝할 수 있다. 이때, 사용자 단말(100)은 서로 다른 주체에 귀속된 복수의 사용자 단말(100)이다. 즉 1 명을 특정하여 재구조화된 동영상(gif 포함)을 출력하는 것이 아니라, 복수의 사용자를 대상으로 통계처리되도록 한다. 예를 들어, [A 메뉴-B 메뉴-구매버튼]을 누른 사람이 예를 들어, 100명 이상이라면 이 사용자들을 하나의 그룹(군집) "가" 그룹으로 묶고, "가" 그룹에 대한 통계화된 데이터를 출력할 수 있다. 또, [C 메뉴 - D 메뉴 - 이탈]한 사람이 예를 들어, 200 명이라면 이 사용자를 하나의 "나" 그룹으로 묶고 웹 사이트에서 고객이 이탈된 이유를 찾는데 이용할 수 있다. 또, [F 메뉴 - G 버튼 - 화면정지]된 사용자가 150명이라면, 이 그룹을 "다" 그룹으로 묶고, F 메뉴나 G 버튼에 에러나 오류가 있는 것은 아닌지에 대하여 분석할 수 있고, 이를 수정하는 업데이트를 개발자에게 하도록 지시할 수 있다.The mining unit 340 reconstructs the screen of the user terminal 100 into a moving image by performing rendering to time-series listing and restructuring at least one event on the structure information data in the reconstruction unit 330, then at least A video of a plurality of user terminals 100 may be data-mined using a single artificial intelligence algorithm. In this case, the user terminal 100 is a plurality of user terminals 100 belonging to different subjects. That is, instead of outputting a restructured video (including gif) by specifying one person, statistical processing is performed for a plurality of users. For example, if there are more than 100 people who have pressed [Menu A - Menu B - Buy button], group these users into one group (cluster) "A" and statisticalize the group "A" data can be output. Also, if [Menu C - Menu D - Exit] has 200 people, for example, you can group these users into one "me" group and use it to find out why customers are leaving the website. Also, if there are 150 users [F menu - G button - screen freeze], you can group this group into a "many" group and analyze whether there are errors or errors in the F menu or G button, and this You can instruct the developer to make an update that fixes it.

이때, 데이터 마이닝은, 전처리된 데이터 간의 내재된 관계를 탐색하여 클래스가 알려진 훈련 데이터 셋을 학습시켜 새로운 데이터의 클래스를 예측하는 분류(Classification) 또는 클래스 정보 없이 유사성을 기준으로 데이터를 그룹짓는 군집화(Clustering)를 수행할 수 있다. 그리고, 적어도 하나의 인공지능 알고리즘은, 비지도학습(Unsupervised Learning)에 기반한 알고리즘일 수 있다. 클러스터링이란 텍스트 마이닝과 정보검색이론 분야의 연구에서 많이 적용되는 대표적인 비지도학습 방법이며, 군집화 방법에 따라 계층구조 클러스터링(Hierarchical Clustering), 분할구조 클러스터링(Partitional Clustering), 그리고 스펙트럼구조클러스터링(Spectral Clustering)으로 나누어진다.At this time, data mining is a classification that predicts a new data class by learning a training data set with a known class by exploring the inherent relationship between preprocessed data, or grouping data based on similarity without class information. clustering) can be performed. In addition, the at least one artificial intelligence algorithm may be an algorithm based on unsupervised learning. Clustering is a representative unsupervised learning method widely applied in research in text mining and IR theory. is divided into

이때, 외부에 데이터를 노출하지 않고 데이터 마이닝을 수행하는 방법은 크게 두 가지 접근법이 이용될 수 있는데, 두 번째 접근 방식은 사용자의 개인정보데이터를 노출할 수 있으므로 첫 번째 방식만 설명하기로 한다. 첫 번째 방식은 분산된 데이터베이스가 각각의 서버에 수집된 데이터를 서로 공개하지 않고 비밀 공유(Secret Sharing)로 집계(Aggregation)된 데이터베이스에서 클러스터링 결과를 얻는 방법이며 도 4a와 같을 수 있다. 둘 이상의 서버로 구성된 수평 분산 혹은 수직 분할 데이터베이스에서 각각 데이터를 제공하며 협력적으로 연산하여 각자의 데이터는 상대방에게 노출하지 않고 클러스터링된 결과만을 얻는다. 이때, K-means 알고리즘은, 벡터 공간 내의 K개의 중심점을 K개의 클러스터로 표현할 수 있다는 전제를 가지고 수행되며, 일반적으로 각 벡터의 코사인 유사도 산출을 통해 클러스터를 형성한다. K-means 알고리즘은 클러스터를 생성하는 방법에 따라 Bisecting, Antipole, Multipole 등의 다양한 확장 알고리즘을 더 이용할 수 있다.At this time, two approaches can be used to perform data mining without exposing data to the outside. Since the second approach can expose the user's personal information data, only the first method will be described. The first method is a method in which a distributed database obtains a clustering result from an aggregated database by secret sharing without disclosing data collected to each server to each other, and may be as shown in FIG. 4A . Each data is provided from a horizontally distributed or vertically partitioned database composed of two or more servers, and each data is computed cooperatively to obtain only clustered results without exposing each data to the other party. In this case, the K-means algorithm is performed on the premise that K center points in the vector space can be expressed as K clusters, and in general, clusters are formed by calculating the cosine similarity of each vector. The K-means algorithm can further use various extension algorithms such as Bisecting, Antipole, and Multipole depending on the cluster generation method.

상술한 과정을 상세히 설명하면 다음과 같다.The above-described process will be described in detail as follows.

첫 번째로, 각 사용자의 이벤트를 시계열적으로 나열하는 과정을 진행하여 K-means를 수행하기 위해 클러스터링 수행에 적합한 형태로 변환한다. 이를 위해, 각 이벤트를 벡터로 변환하는 수치화 작업을 진행한다. 수치화 작업을 위하여 각 이벤트에 대한 형태소 분석을 실시하며, 그 결과 형태소 하나하나가 한 벡터의 차원을 이루게 된다. 해당 형태소의 포함 여부에 따라 각각의 벡터 요소들은 1 또는 0의 값을 가지게 되며, 이 과정에서 형태소 분석기를 이용할 수 있다.First, the process of listing each user's events time-series is carried out and converted into a form suitable for clustering in order to perform K-means. To this end, we perform a digitization work that converts each event into a vector. For quantification, morphemes are analyzed for each event, and as a result, each morpheme forms the dimension of a vector. Each vector element has a value of 1 or 0 depending on whether a corresponding morpheme is included, and a morpheme analyzer can be used in this process.

두 번째는, 태그 풀(Tag Pool)을 생성하는 것이다. 각 이벤트의 시계열적 나열 간의 거리 측정 및 비교 가능한 기준은 벡터 곱을 통해 달성된다. 이를 위해 모든 형태소에 대한 정보를 포함하고 있는 표준벡터에 대한 정의가 필요하며, 이러한 표준벡터로 모든 이벤트의 시계열적 나열로부터 추출된 태그 풀을 사용할 수 있다. 태그 풀은, 모든 이벤트로부터 추출된 태그들을 중복 없이 모두 담고 있는 풀을 의미한다. The second is to create a tag pool. A measure of distance and a comparable criterion between the time-series enumeration of each event is achieved through vector multiplication. For this, it is necessary to define a standard vector containing information on all morphemes, and with this standard vector, the tag pool extracted from the time-series listing of all events can be used. The tag pool refers to a pool that contains all tags extracted from all events without duplication.

세 번째는, 태그의 계층구조를 제작하는 과정인데, 태그 계층구조는 앞서 제작한 태그 풀을 기반으로 제작된다. 태그 계층구조 생성을 위한 벡터는 태그 풀의 요소를 서로 비교하면서 임의의 태그들이 동일한 태그 풀에 포함된 경우가 몇 번 있는가에 따라 벡터 값을 부여할 수 있다. 예를 들어, 복수의 사용자가 A-B-C-D의 과정으로 이벤트를 발생시켰다면, A-B-C-D를 동시에 이용한 정도에 따라 벡터값이 부여된다. 이러한 방식을 따라 산출된 각각의 태그 벡터들은 단위벡터로 변환 후 K-means를 통해 클러스터링 되고, 군집 분석을 통해 유사도가 높은 벡터들끼리 그룹화하여 몇 개의 태그 그룹으로 분류될 수 있다. 그리고 다시 각각의 그룹에 대해 위와 같은 클러스터링 작업을 반복적으로 적용함으로써 전체 태그 집합에 대한 태그 계층구조를 생성할 수 있다.The third is the process of creating a tag hierarchy. The tag hierarchy is created based on the previously created tag pool. A vector for generating a tag hierarchy can be assigned a vector value depending on how many times arbitrary tags are included in the same tag pool while comparing elements of the tag pool. For example, if a plurality of users generate an event through the process of A-B-C-D, a vector value is assigned according to the degree of simultaneous use of A-B-C-D. Each tag vector calculated according to this method is converted into a unit vector and then clustered through K-means, and vectors with high similarity are grouped through cluster analysis to be classified into several tag groups. And again, by repeatedly applying the above clustering operation to each group, it is possible to create a tag hierarchy for the entire tag set.

마지막으로, 태그 벡터를 계산해야 하는데, 마지막으로 태그 벡터를 만드는 과정을 통해 군집화 알고리즘을 수행하기 위한 모든 준비 과정이 끝나게 된다. 이 과정을 통해 각각의 이벤트의 시계열적 나열이 서로 얼마나 닮은 정보를 가지고 있는지 유추해 볼 수 있는 기준을 마련하게 된다. 이에 더하여, 태그 계층구조를 태그 벡터에 반영하기 위해 계층구조를 바탕으로 계산된 값을 사용할 수 있고, 이때 부여되는 벡터 값은 예를 들어, Leacock-Chodorow Measure를 사용할 수 있지만, 이에 한정되는 것은 아니다. Leacock-Chodorow Measure는 0부터 무한대까지의 값으로 어휘 유사도를 표현하기 때문에, 태그 벡터의 가중치를 업데이트하는 용도로 적용할 수 있다.Finally, the tag vector needs to be calculated. Finally, through the process of creating the tag vector, all preparations for performing the clustering algorithm are completed. Through this process, a standard for inferring how similar the time-series arrangement of each event has to each other is prepared. In addition, a value calculated based on the hierarchical structure may be used to reflect the tag hierarchy to the tag vector. In this case, the assigned vector value may use, for example, Leacock-Chodorow Measure, but is not limited thereto. . Since Leacock-Chodorow Measure expresses lexical similarity with values ranging from 0 to infinity, it can be applied to update the weight of the tag vector.

이렇게 클러스터링을 위한 모든 준비가 완료되면, 각 시계열적 나열을 통하여 사용자를 묶는 작업을 시작할 수 있다. 이때, 첫 클러스터링 K값의 결정을 위해, K-means 클러스터링 적용할 때, 군집화 결과 그룹의 개수(K)는 군집화 성능에 중요한 영향을 미친다. 대부분의 경우 K는 정적인 변수로 설정되어 그 개수에 맞추어 클러스터링 결과를 도출하도록 하고 있지만 서로 다른 개인의 방향성 및 특이성을 고려하면 일정한 K값을 정하는 것은 매우 어려운 일이다. When all preparations for clustering are completed in this way, you can start tying users through each time series listing. In this case, when K-means clustering is applied to determine the first clustering K value, the number of clustering result groups (K) has an important influence on the clustering performance. In most cases, K is set as a static variable to derive clustering results according to the number, but it is very difficult to determine a constant K value considering the direction and specificity of different individuals.

따라서, 본 발명의 일 실시예에 따른 방법에서는 시계열적으로 나열된 이벤트에 따른 각기 다른 태그에 따라 각기 다른 K값을 설정하는 것도 가능하다. K-means는 최적의 클러스터가 생성될 때까지 반복하여 군집을 재생성한다. 즉, K-means에 의해 일단 클러스터가 생성되면 클러스터된 모든 그룹들에 대하여 중심 값을 다시 계산하고 모든 태그 풀을 대상으로 K개의 클러스터에 순서대로 벡터 곱을 수행한다. 그 후 수행결과 벡터 곱이 가장 컸던 그룹에 다시 그 태그 풀을 배정하며 마지막 태그 풀까지 벡터곱과 배정 과정을 수행한다. 이로 인해 새로운 클러스터링 결과가 산출되면 다시 중심 값을 구하는 과정을 반복 수행하여 최적의 클러스터링 상태를 이루도록 한다. 이때, 종료 시점은, 새롭게 형성된 결과들이 직전의 클러스터링 결과와 비교하였을 때 아무런 변화가 일어나지 않았을 때이다. Accordingly, in the method according to an embodiment of the present invention, it is also possible to set different K values according to different tags according to events listed in time series. K-means regenerates clusters iteratively until an optimal cluster is generated. That is, once a cluster is created by K-means, the center value is recalculated for all clustered groups, and vector multiplication is sequentially performed on K clusters for all tag pools. After that, the tag pool is again assigned to the group with the largest vector product as a result of the execution, and the vector product and assignment process is performed until the last tag pool. As a result, when a new clustering result is calculated, the process of obtaining the center value is repeated to achieve an optimal clustering state. In this case, the end point is when the newly formed results do not change when compared with the previous clustering results.

퍼널분석부(350)는, 마이닝부(340)에서 적어도 하나의 인공지능 알고리즘을 이용하여 복수의 사용자 단말(100)의 동영상을 데이터 마이닝한 후, 각 군집별로 사용자가 이탈되는 웹 페이지의 식별코드, 각 군집별로 사용자가 이탈되는 경우 유입된 웹 페이지와 이탈되는 웹 페이지의 식별코드, 각 군집별로 사용자가 이탈되는 비율을 분석하는 퍼널 분석(Funnel Analysis)을 수행하고, 분석된 데이터를 시각화하여 출력할 수 있고 이는 도 4c와 같을 수 있다. 이때, 퍼널(Funnel)은 깔때기를 뜻하는 말이지만 마케팅에서는 그 의미가 다른데, 퍼널 분석은 고객 분석을 위한 하나의 마케팅 전략이다. 즉, 고객이 유입되고 전환에 이르기까지 주요 단계를 수치로 확인하는 분석 방법이다. 전환에 이르는 고객 경험 프로세스를 단계별로 나누어 언제, 어디서, 어떻게 이탈하는지를 파악해 이탈하는 원인을 개선하고 이를 바탕으로 전환율을 높이는데 목표가 있다. 이러한 과정에서 서비스 취약 단계를 파악할 수 있기 때문에 고객 경험을 개선하는 데 유용하게 활용되기도 한다.The funnel analysis unit 350, after data mining the video of the plurality of user terminals 100 using at least one artificial intelligence algorithm in the mining unit 340, the identification code of the web page from which the user leaves for each group , when a user leaves for each cluster, a funnel analysis is performed to analyze the identification code of the incoming web page and the departing web page, and the rate at which the user leaves for each cluster, and the analyzed data is visualized and output and can be as shown in FIG. 4C. At this time, the word funnel means a funnel, but the meaning is different in marketing. Funnel analysis is a marketing strategy for customer analysis. In other words, it is an analytical method that numerically confirms the key steps from the influx of customers to conversion. The goal is to improve the cause of churn by dividing the customer experience process leading to conversion into stages by identifying when, where, and how they churn, and based on this, increase the conversion rate. In this process, it is also useful to improve customer experience because the stage of service vulnerability can be identified.

예를 들어, 전환율이 10%나 감소했다고 가정하면, 먼저, 떨어진 수치에 대한 원인을 찾을 것인데, 측정 오류, 서버 장애, 자사 및 경쟁사의 활동에 변화가 있는지도 의심해 볼 수 있고, 또 전환율이 감소하기 전, 어떠한 변화가 있었는지 각 부서에 문의하거나 부정적인 이슈에 대해 회사 내외부로 검토해 볼 수도 있는데, 이 모든 과정을 거치고 깨닫는 것은 모든 과정에 긍정적인 부분과 부정적인 부분이 섞여 있어 정확한 원인을 파악하기 어렵다는 것이다. 그렇기 때문에 기업에서 고객 이탈률의 원인을 찾을 수 있는 서비스를 제공하고 있다. 예를 들어, 각 단계별 이탈률을 시각화해 제공함으로써 각 퍼널 단계의 고객 이탈률을 한 눈에 확인할 수 있도록 할 수 있다. 예를 들어, 특정 모바일 페이지에서 고객 이탈이 계속 일어나고 있다면 모바일 최적화가 이루어지지 않았다는 것을 확인있고, 이를 통해 고객의 불편을 감소시키고 더 나은 고객 경험을 제공할 수 있다.For example, suppose your conversion rate has decreased by 10%. First, you will find the cause of the drop. You may suspect that there are measurement errors, server failures, changes in your company's and competitors' activities, and if your conversion rate is decreasing I can inquire with each department about any changes or review negative issues both inside and outside the company. . For this reason, companies are providing services that can find the cause of customer churn. For example, by providing a visualization of the churn rate at each stage, it is possible to check the customer churn rate at each stage of the funnel at a glance. For example, if customer churn continues to occur on a specific mobile page, it is confirmed that mobile optimization has not been done, and this can reduce customer inconvenience and provide a better customer experience.

덧붙여서, 본 발명의 일 실시예는, 맞춤화된 사용 경험(UX)를 제공하기 위하여, 사용자의 사용 데이터를 토대로 사용자에게 맞춤화된 GUI 디자인으로 설계하는 최적화 모델을 이용할 수도 있다. 우선, 사용자 단말(100)에서 일어나는 이벤트는 이미 수집되어 있으므로, 이를 사용 데이터로 이용할 수도 있고, 별도로 각 개체(GUI)의 사용 횟수, 클릭스트림 데이터, 개체를 택하기까지 걸린 시간, 아이트래킹 데이터 등을 수집할 수도 있고, 수집할 수 있는 데이터의 범위 및 형태를 파악하여 해당 포맷에 맞는 데이터라면 모두 수집할 수도 있다.In addition, an embodiment of the present invention may use an optimization model for designing a GUI design customized to a user based on user usage data to provide a customized user experience (UX). First, since the events occurring in the user terminal 100 have already been collected, it can be used as usage data, and separately, the number of times each object (GUI) is used, clickstream data, time taken to select an object, eye tracking data, etc. can be collected, or by identifying the range and form of data that can be collected, all data that fits the format can be collected.

그리고, 수집된 사용 데이터를 기반으로 상술한 군집화, 즉 클러스터링을 통하여 사용자를 N개의 군집으로 분류하고, 수집된 데이터의 종류, 서비스 공급자 및 디자이너가 달성하고자 하는 목적 및 고려하고자 하는 제약 등을 반영하여 최적화 모델을 수립할 수 있고, 최적화 모델을 이용하여 N 개의 사용자 군집에 대한 최적의 GUI 디자인을 도출한다. 그 다음에는 GUI 재구성 단계인데, GUI 최적화를 통하여 도출된 N 개의 최적 GUI 디자인을 바탕으로 관리자, 디자이너, 개발자 등과 함께 논의를 거쳐 최종 GUI들을 결정하고, 시스템에 반영할 수 있다.In addition, based on the collected usage data, users are classified into N clusters through the above-mentioned clustering, that is, clustering, and the types of collected data, the purpose to be achieved by the service provider and designer, and constraints to be considered, etc. are reflected. An optimization model can be established, and an optimal GUI design for N user clusters is derived using the optimization model. The next step is GUI reconfiguration. Based on the N optimal GUI designs derived through GUI optimization, final GUIs can be determined and reflected in the system through discussion with administrators, designers, and developers.

덧붙여서, 본 발명의 일 실시예는 기 설정된 키워드가 음성으로 입력된 경우, 이 음성이 입력된 전후의 이벤트를 시계열적으로 나열하여 오류 및 에러나 사용자 실수로 리포트하고 관리자나 디자이너에게 전송하는 방법을 더 이용할 수도 있다. 예를 들어, 사용자의 사용미숙으로 잘 알지 못하거나, UI가 너무 복잡하게 배열되어 에러가 발생하거나 오류가 나는 경우, 사용자들은 답답함에 한숨을 쉬는 등의 경우가 있는데, 이 지점을 캐치하여 바로 UI가 수정될 수 있도록 하는 것이다. 제대로 구동이 안되는 경우 또는 사용자가 잘 인지를 못하는 경우, 사용자는 잘 구동이 안되는 사이트라고 생각하고 급속하게 유출되는데, 이 한숨소리나 특정 키워드가 나오는 욕설이 인식되는 경우, 그 화면을 재구성하여 실시간으로 디자이너나 관리자에게 리포트하고, 이를 클러스터링하여 가장 문제가 되는 UI를 변경하도록 할 수 있다. 또는, 이러한 한숨소리나 욕설이 인식되는 경우, 튜토리얼을 보여주도록 아이콘으로 어느 메뉴를 어떻게 사용해야 하는지를 애니메이션으로 출력함으로써 사용 방법을 알 수 있도록 하는 방법도 가능하다.In addition, in an embodiment of the present invention, when a preset keyword is input by voice, events before and after the voice is input are listed in time series to report errors, errors, or user mistakes, and a method for transmitting to an administrator or designer more may be used. For example, if users do not know well due to inexperienced use, or if an error occurs or an error occurs because the UI is too complexly arranged, users sigh in frustration. to be able to be modified. If it does not operate properly or the user does not recognize it well, the user thinks that the site does not run well and leaks rapidly. You can report to a designer or admin, and cluster them to change the UI that is most problematic. Alternatively, when such a sigh or profanity is recognized, it is possible to know how to use it by outputting an animation of which menu to use and how to use it as an icon to show a tutorial.

이하, 상술한 도 2의 세션 리플레이 서비스 제공 서버의 구성에 따른 동작 과정을 도 3 및 도 4를 예로 들어 상세히 설명하기로 한다. 다만, 실시예는 본 발명의 다양한 실시예 중 어느 하나일 뿐, 이에 한정되지 않음은 자명하다 할 것이다.Hereinafter, an operation process according to the configuration of the session replay service providing server of FIG. 2 will be described in detail with reference to FIGS. 3 and 4 as an example. However, it will be apparent that the embodiment is only one of various embodiments of the present invention and is not limited thereto.

도 3a를 참조하면, 세션 리플레이 서비스 제공 서버(300)는 사용자 단말(100)로부터 수신된 이벤트 및 구조정보 데이터를 함께 수신하고, 도 3b와 같이 경량화된 구조정보 데이터 상에 이벤트를 얹는 방식으로 플레이어에서 재생가능하도록 렌더링한다. 사용자의 화면을 그대로 뜬 동영상을 각 사용자별로 또는 그룹별로 저장하는 것은 비효율을 넘어 불가능하기 때문에, 데이터 구조체(Data Structure)를 설계해서 그 데이터를 저장하고, 그 데이터를 기반으로 동영상처럼 재생하는 것이다. 이때, 중요한 포인트는, 동영상을 녹화하거나 재생하는 것이 아니라 DOM(HTML, CSS, JS, 구조화된 웹 사이트 데이터)를 저장하고 이를 다시 웹사이트 처럼 만드는 기술인데, 리플레이 스크립트를 웹 프론트엔드(Frondend)에 설치하여(<script>...<script>) 발생한 모든 이벤트를 전달하고 DOM 초기화, 변경사항을 전달하는 브라우저에 설치되는 스크립트를 이용한다. 또, 플레이어는, 스냅샷 서버에 저장된 데이터를 바탕으로 동영상처럼 보여주는 기술로 세션 리플레이를 출력할 수 있다.Referring to FIG. 3A , the session replay service providing server 300 receives the event and structure information data received from the user terminal 100 together, and places the event on the lightweight structure information data as shown in FIG. 3B. Render it to be playable in . Since it is impossible beyond inefficiency to store a video that shows the user's screen as it is for each user or group, it is impossible to design a data structure to store the data, and to play it like a video based on the data. At this time, the important point is not to record or play a video, but to store the DOM (HTML, CSS, JS, structured website data) and make it look like a website again. By installing (<script>...<script>), we use a script installed in the browser that delivers all the events that have occurred, initializes the DOM, and delivers changes. In addition, the player can output a session replay with a technology that shows it like a video based on data stored in the snapshot server.

또, 도 4a의 클러스터링(세그멘테이션)도, 미리 관리자나 운영자가 그룹을 나눠어 두는 것이 아니라, 자동으로 사용자의 행동 특성을 바탕으로 자동으로 그룹화하는 것이라서, 사용자가 어떤 세그멘테이션이 될지는 모르지만, 특성에 따라 그룹핑될 수 있도록 하는 것이고, K-means 외에도, DBSCAN, EM(Expectation-Maxximization) 등이 있으나 알고리즘에 국한되지는 않고 다양한 기술들을 적용해서 클러스터링 할 수 있다. 각 그룹인 세그먼트 또는 클러스터별 평균 가치 산출할 수도 있고, 각 클러스터별 메트릭스(Metrics)를 저장하고 있기 때문에 각 그룹의 중앙값이나 평균값 등을 바탕으로 사용자 1명의 가치에 대해서 판단할 수 있다. 예를 들어, “그룹 #1”은 사용자 1 명당 가치가 가장 높은데 그 이유는 세션당 페이지뷰수(페이지뷰/세션)이 높고, 구매 객단가가 45,000원(혹은 꼭 구매가 아니라 신청수, 예약수 등의 전환수가 높을 수도 있음)이기 때문이다. 각 그룹별 행동 F퍼널 데이터 연산 및 제공할 수 있으며, 도 4c와 같이 도시될 수 있다. 각 클러스터별로 퍼널, 즉 어떤 페이지에서 이탈되는지, 어떤 곳에서 주로 들어와서 어디서 나가는지, 비율은 어떻게 되는지 등을 시각적으로 제공한다.Also, in the clustering (segmentation) of FIG. 4A, the group is automatically grouped based on the user's behavioral characteristics, rather than by an administrator or operator dividing the group in advance. In addition to K-means, there are DBSCAN, EM (Expectation-Maxximization), etc., but it is not limited to algorithms and can be clustered by applying various techniques. The average value for each group, segment or cluster can be calculated, and since metrics for each cluster are stored, the value of one user can be judged based on the median or average value of each group. For example, “Group #1” has the highest value per user because the number of pageviews per session (pageview/session) is high and the unit price is 45,000 won (or not necessarily purchase, but the number of applications and reservations). may be high). It is possible to calculate and provide the behavior F funnel data for each group, as shown in FIG. 4C . For each cluster, it provides a visual representation of the funnel, i.e., which page they leave from, where they come from and where they leave, and what the percentage is.

또, 도 4b 및 도 4c의 시각화 이외에도, 분석페이지 화면 기반으로 데이터를 시각화한 사용자 경험 히트맵과 히트맵 결과 및 이슈를 정리해 보여주는 리포팅 히트맵(Reporting Heatmaps)을 이용할 수 있다. 그 외에도 페이지별 사용자 지표 차트 보드인 사용자 분석(User Analytics), 유입처 별사용자 경험 현황을 비교할 수 있는 유입경로비교(Comparing Referrers), 주요 요소별 사용자 정보를 그룹핑 할 수 있는 CTA 분류(Segmenting CTA), 전체 사용자 탐색 현황을 시뮬레이션해볼 수 있는 활동 스트림(Activity Stream), UX 개선성과를 측정할 수 있는 A/B 테스트, 단계별 이탈 현황을 파악하는 퍼널(Funnels), 개인 사용자의 페이지 탐색 현황을 시뮬레이션하는 사용자 세션 리포트(User Session Report), 사용자 관심의 정도와 분포를 파악할 수 있는 관심 그래프(Attention Graph)를 더 포함할 수 있다. In addition to the visualization of FIGS. 4B and 4C , a user experience heat map that visualizes data based on the analysis page screen and Reporting Heatmaps that summarize heat map results and issues can be used. In addition, user analysis (User Analytics), a user index chart board for each page, funnel comparison (Comparing Referrers) that can compare the user experience status by source, and CTA classification (Segmenting CTA) that can group user information by major elements , Activity Stream that simulates the overall user browsing status, A/B test that can measure UX improvement performance, Funnels that identify the exit status by stage, It may further include a user session report (User Session Report) and an attention graph (Attention Graph) capable of grasping the degree and distribution of user interest.

이와 같은 도 2 내지 도 4의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.The details that have not been described with respect to the method of providing the session replay service using the session information storage and rendering of FIGS. 2 to 4 are described above with respect to the session replay service providing method using the session information storage and rendering through FIG. 1 , and Since it can be easily inferred from the same or described content, the following description will be omitted.

도 5는 본 발명의 일 실시예에 따른 도 1의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템에 포함된 각 구성들 상호 간에 데이터가 송수신되는 과정을 나타낸 도면이다. 이하, 도 5를 통해 각 구성들 상호간에 데이터가 송수신되는 과정의 일 예를 설명할 것이나, 이와 같은 실시예로 본원이 한정 해석되는 것은 아니며, 앞서 설명한 다양한 실시예들에 따라 도 5에 도시된 데이터가 송수신되는 과정이 변경될 수 있음은 기술분야에 속하는 당업자에게 자명하다.5 is a diagram illustrating a process in which data is transmitted/received between components included in the system for providing a session replay service using session information storage and rendering of FIG. 1 according to an embodiment of the present invention. Hereinafter, an example of a process in which data is transmitted and received between each component will be described with reference to FIG. 5, but the present application is not limited to such an embodiment, and the example shown in FIG. 5 according to various embodiments described above will be described. It is apparent to those skilled in the art that the data transmission/reception process may be changed.

도 5를 참조하면, 세션 리플레이 서비스 제공 서버는, 웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지한다(S5100).Referring to FIG. 5 , the session replay service providing server detects through a script when at least one preset event occurs in the user terminal accessing the web page (S5100).

그리고, 세션 리플레이 서비스 제공 서버는, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하고(S5200), 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말의 화면을 동영상으로 재구성한다(S5300).In addition, the session replay service providing server receives and stores at least one event together with the document object model data of the web page (S5200), and lists at least one event on the structure information data in time series and By performing restructuring rendering, the screen of the user terminal is reconstructed into a moving picture (S5300).

상술한 단계들(S5100~S5300)간의 순서는 예시일 뿐, 이에 한정되지 않는다. 즉, 상술한 단계들(S5100~S5300)간의 순서는 상호 변동될 수 있으며, 이중 일부 단계들은 동시에 실행되거나 삭제될 수도 있다.The order between the above-described steps ( S5100 to S5300 ) is merely an example and is not limited thereto. That is, the order between the above-described steps ( S5100 to S5300 ) may be mutually changed, and some of these steps may be simultaneously executed or deleted.

이와 같은 도 5의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 4를 통해 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.As described above, the method for providing the session replay service using the session information storage and rendering of FIG. 5 is described above with reference to FIGS. 1 to 4 and the session replay service providing method using the session information storage and rendering. Since it can be easily inferred from the same or described content, the following description will be omitted.

도 6은 본 발명의 일 실시예에 따른 세션 리플레이 서비스가 구현되는 화면의 일 실시예를 설명하기 위한 도면이다. 도 6a를 참조하면, 자동으로 분류된 클러스터, 클러스터별 지표 세션 수/예상 수익 및 총 세션 대비 각 클러스터 세션 비율에 대한 정보를 표시하는 화면의 레이아웃이 각각 해당 위치에 표시될 수 있다. 도 6b를 참조하면, 충성고객, 가장 집중해야할 고객 등으로 고객을 분류할 수 있으며, 각 고객별로 세션 수와 평균 세션 시간, 예상 수익 및 세션 비율을 숫자 및 시각화 그래프로 출력할 수 있다.6 is a diagram for explaining an embodiment of a screen on which a session replay service is implemented according to an embodiment of the present invention. Referring to FIG. 6A , a layout of a screen displaying information about automatically classified clusters, the number of index sessions/expected revenue for each cluster, and the ratio of each cluster session to the total sessions may be displayed at corresponding positions, respectively. Referring to FIG. 6B , customers may be classified into loyal customers, customers to be most focused on, and the like, and the number of sessions, average session time, expected revenue, and session ratio for each customer may be output as numbers and visualization graphs.

도 6c를 참조하면, 유입 세션수와 각 페이지별 Funnel, 각 페이지별 상세 정보 등을 시각화하여 출력할 수 있으며, 클러스터의 요약 및 각 사용자의 목록을 표시할 수 있다. 도 6d를 참조하면, 각 페이지에서 장바구니(Cart)로 이동한 비율, 또 주문까지 한 고객의 비율을 숫자 및 도형 등으로 표시할 수도 있다. 도 6e를 참조하면, 각 사용자 정보와 각 세션에 대해 페이지별 시계열순으로 나열한 사용자의 행동 데이터를 출력할 수 있고, 리플레이 버튼을 누르면 상술한 바와 같이 사용자의 행동이 출력될 수 있다. 도 6f와 같이 각 세션의 수와 세션 시간, 그리고 리플레이 버튼이 각각 구비되어 사용자별로 분석된 자료를 출력할 수 있다. 도 6g는 리플레이 버튼이 선택된 후 해당 페이지에 대한 설명, 타이틀 및 URL은 물론, 사용자의 행동을 추측하여 영상으로 제공할 수 있음을 보여준다. 각 페이지별 행동 데이터를 문장으로 설명할 수도 있고, 클러스터 정보 또는 사용자 정보를 우측에 출력할 수도 있다.Referring to FIG. 6C , the number of incoming sessions, the funnel for each page, detailed information for each page, etc. can be visualized and output, and a cluster summary and a list of each user can be displayed. Referring to FIG. 6D , the ratio of moving from each page to the shopping cart and the ratio of customers who even placed an order may be displayed using numbers and figures. Referring to FIG. 6E , user information and user behavior data listed in chronological order by page for each session may be output, and when the replay button is pressed, the user's behavior may be output as described above. As shown in FIG. 6F , the number of sessions, the session time, and a replay button are provided, respectively, so that data analyzed for each user can be output. 6G shows that after the replay button is selected, the description, title, and URL of the corresponding page, as well as the user's behavior, can be guessed and provided as an image. Behavior data for each page may be described in sentences, or cluster information or user information may be output on the right side.

도 6h와 같이 사용자의 세션이 리플레이되면 화면 상에 사용자가 어떠한 행동을 했는지가 마우스 커서의 이동 흐름으로 볼 수 있게 된다. 이때, 사용자는, 장바구니 페이지를 본 후, 도 6i와 같이 취소 버튼으로 마우스를 이동한 후, 도 6j와 같이 결제 버튼으로 다시 이동하여 결제를 수행했음을 알 수 있다.As shown in FIG. 6H , when the user's session is replayed, the user's actions on the screen can be viewed as the movement flow of the mouse cursor. In this case, the user can see that after viewing the shopping cart page, the user moves the mouse to the cancel button as shown in FIG. 6i, and then moves back to the payment button as shown in FIG. 6j to make the payment.

도 5를 통해 설명된 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. The method for providing a session replay service using session information storage and rendering according to an embodiment described with reference to FIG. 5 is in the form of a recording medium including instructions executable by a computer, such as an application or program module executed by a computer. can also be implemented. Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. Also, computer-readable media may include all computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

전술한 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.The method of providing a session replay service using session information storage and rendering according to an embodiment of the present invention described above includes an application basically installed in a terminal (which may include a program included in a platform or operating system basically installed in the terminal) ), and may be executed by an application (ie, a program) installed directly on the master terminal by a user through an application providing server such as an application store server, an application, or a web server related to the corresponding service. In this sense, the method for providing a session replay service using session information storage and rendering according to an embodiment of the present invention described above is implemented as an application (ie, program) installed by default in a terminal or directly installed by a user, and installed in a terminal, etc. It can be recorded on a computer-readable recording medium of

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다. The above description of the present invention is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

Claims (10)

세션 리플레이 서비스 제공 서버에서 실행되는 세션 리플레이 서비스 제공 방법에 있어서,
웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지하는 단계;
상기 적어도 하나의 이벤트를 상기 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하는 단계; 및
상기 구조정보 데이터 상에 상기 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 상기 사용자 단말의 화면을 동영상으로 재구성하는 단계;
를 포함하는 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
A method for providing a session replay service executed in a session replay service providing server, the method comprising:
Detecting through a script when at least one preset event occurs in the user terminal accessing the web page;
receiving and storing the at least one event together with document object model data of the web page; and
reconstructing the screen of the user terminal into a moving image by performing rendering of time-series listing and restructuring of the at least one event on the structure information data;
A method of providing a session replay service using session information storage and rendering comprising a.
제 1 항에 있어서,
상기 적어도 하나의 이벤트는, 페이지뷰, 클릭, 구매전환 및 세션전환을 포함하고,
상기 구조정보 데이터는 HTML, CSS 및 JS를 포함하는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
The method of claim 1,
The at least one event includes a page view, a click, a purchase conversion, and a session conversion,
The method of providing a session replay service using the session information storage and rendering, wherein the structure information data includes HTML, CSS and JS.
제 1 항에 있어서,
상기 사용자 단말은 서로 다른 주체에 귀속된 복수의 사용자 단말이고,
상기 구조정보 데이터 상에 상기 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 상기 사용자 단말의 화면을 동영상으로 재구성하는 단계 이후에,
적어도 하나의 인공지능 알고리즘을 이용하여 상기 복수의 사용자 단말의 동영상을 데이터 마이닝하는 단계;
를 더 포함하는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
The method of claim 1,
The user terminal is a plurality of user terminals belonging to different subjects,
After the step of reconstructing the screen of the user terminal into a moving image by performing rendering of time-series listing and restructuring of the at least one event on the structure information data,
data mining the videos of the plurality of user terminals using at least one artificial intelligence algorithm;
The method of providing a session replay service using session information storage and rendering further comprising a.
제 3 항에 있어서,
상기 데이터 마이닝은, 상기 전처리된 데이터 간의 내재된 관계를 탐색하여 클래스가 알려진 훈련 데이터 셋을 학습시켜 새로운 데이터의 클래스를 예측하는 분류(Classification) 또는 클래스 정보 없이 유사성을 기준으로 데이터를 그룹짓는 군집화(Clustering)를 수행하는 것을 포함하는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
4. The method of claim 3,
The data mining is a classification that predicts a class of new data by learning a training data set with a known class by exploring the inherent relationship between the preprocessed data, or grouping data based on similarity without class information (Classification) Clustering), a method of providing a session replay service using session information storage and rendering, comprising performing.
제 3 항에 있어서,
상기 적어도 하나의 인공지능 알고리즘은, 비지도학습(Unsupervised Learning)에 기반한 알고리즘인 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
4. The method of claim 3,
The at least one artificial intelligence algorithm is an algorithm based on unsupervised learning, a session replay service providing method using session information storage and rendering.
제 4 항에 있어서,
상기 적어도 하나의 인공지능 알고리즘을 이용하여 상기 복수의 사용자 단말의 동영상을 데이터 마이닝하는 단계 이후에,
각 군집별로 사용자가 이탈되는 웹 페이지의 식별코드, 각 군집별로 상기 사용자가 이탈되는 경우 유입된 웹 페이지와 이탈되는 웹 페이지의 식별코드, 각 군집별로 상기 사용자가 이탈되는 비율을 분석하는 퍼널 분석(Funnel Analysis)을 수행하고, 상기 분석된 데이터를 시각화하여 출력하는 단계;
를 더 포함하는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
5. The method of claim 4,
After data mining the video of the plurality of user terminals using the at least one artificial intelligence algorithm,
Funnel analysis that analyzes the identification code of the web page from which the user departs for each cluster, the identification code of the web page that is introduced and the web page that leaves when the user leaves for each cluster, and the rate at which the user leaves for each cluster ( performing funnel analysis), and visualizing and outputting the analyzed data;
The method of providing a session replay service using session information storage and rendering further comprising a.
제 1 항에 있어서,
상기 사용자 단말은 서로 다른 주체에 귀속된 복수의 사용자 단말이고,
상기 동영상은 클러스터링된 군집별로 재구성되는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
The method of claim 1,
The user terminal is a plurality of user terminals belonging to different subjects,
The method of providing a session replay service using session information storage and rendering, wherein the video is reconstructed for each clustered group.
제 7 항에 있어서,
상기 군집별 메트릭스(Metrics)에 기반하여 각 군집별 평균 가치 및 하나의 사용자의 가치가 산출되는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
8. The method of claim 7,
A method for providing a session replay service using session information storage and rendering, wherein the average value for each cluster and the value of one user are calculated based on the metrics for each cluster.
제 1 항에 있어서,
상기 사용자 단말의 적어도 하나의 종류의 고유식별정보는 비식별화처리되는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
The method of claim 1,
At least one type of unique identification information of the user terminal is to be de-identified, a session replay service providing method using session information storage and rendering.
제 1 항 내지 제 9 항 중 어느 한 항의 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.A computer-readable recording medium in which a program for executing the method of any one of claims 1 to 9 is recorded.
KR1020200107280A 2020-08-25 2020-08-25 Method for providing session replay service using session information storage and rendering KR102381132B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200107280A KR102381132B1 (en) 2020-08-25 2020-08-25 Method for providing session replay service using session information storage and rendering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200107280A KR102381132B1 (en) 2020-08-25 2020-08-25 Method for providing session replay service using session information storage and rendering

Publications (2)

Publication Number Publication Date
KR20220026356A true KR20220026356A (en) 2022-03-04
KR102381132B1 KR102381132B1 (en) 2022-03-31

Family

ID=80814225

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200107280A KR102381132B1 (en) 2020-08-25 2020-08-25 Method for providing session replay service using session information storage and rendering

Country Status (1)

Country Link
KR (1) KR102381132B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086558A1 (en) * 2006-10-06 2008-04-10 Coremetrics, Inc. Session based web usage reporter
US20100121850A1 (en) * 2008-11-10 2010-05-13 General Electric Company Methods and systems for mining websites
KR20150116317A (en) * 2014-04-07 2015-10-15 (주)어메이징소프트 Management system and method for information of mouse event
JP2016018300A (en) * 2014-07-07 2016-02-01 ヤフー株式会社 Information aggregation device, information aggregation method, and information aggregation program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080086558A1 (en) * 2006-10-06 2008-04-10 Coremetrics, Inc. Session based web usage reporter
US20100121850A1 (en) * 2008-11-10 2010-05-13 General Electric Company Methods and systems for mining websites
KR20150116317A (en) * 2014-04-07 2015-10-15 (주)어메이징소프트 Management system and method for information of mouse event
JP2016018300A (en) * 2014-07-07 2016-02-01 ヤフー株式会社 Information aggregation device, information aggregation method, and information aggregation program

Also Published As

Publication number Publication date
KR102381132B1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
Bärtl YouTube channels, uploads and views: A statistical analysis of the past 10 years
Steinert-Threlkeld Twitter as data
US9213996B2 (en) System and method for analyzing social media trends
Dumais et al. Understanding user behavior through log data and analysis
Zheng et al. The role of cognitive appraisal, emotion and commitment in affecting resident support toward tourism performing arts development
Capdevila et al. GeoSRS: A hybrid social recommender system for geolocated data
US8935390B2 (en) Method and system for efficient and exhaustive URL categorization
Kagan et al. Using data science to understand the film industry’s gender gap
US20140101134A1 (en) System and method for iterative analysis of information content
Bohlouli et al. Knowledge discovery from social media using big data-provided sentiment analysis (SoMABiT)
US20140143013A1 (en) System and method for analyzing social media trends
US20150058417A1 (en) Systems and methods of presenting personalized personas in online social networks
US20200387274A1 (en) Generating user interface previews
US20200311607A1 (en) Systems and methods for improved modelling of partitioned datasets
Xie et al. Does artificial intelligence satisfy you? A meta-analysis of user gratification and user satisfaction with AI-powered chatbots
CN111949886B (en) Sample data generation method and related device for information recommendation
Chiu Social recommendations for facebook brand pages
Arolfo et al. Analyzing the quality of Twitter data streams
KR102216755B1 (en) Method for providing tag analysis service interconnecting contents with product
Rumata et al. The impact of internet information and communication literacy and overload, as well as social influence, on ICT adoption by rural communities
Rai et al. Using open source intelligence as a tool for reliable web searching
JP2017211781A (en) Evaluation device, evaluation method, evaluation program, recommendation device, recommendation method, and recommendation program
JP5100855B2 (en) Latent class analyzer, latent class analyzing method and program
KR102381132B1 (en) Method for providing session replay service using session information storage and rendering
US20220108359A1 (en) System and method for continuous automated universal rating aggregation and generation

Legal Events

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