KR102381132B1 - 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법 - Google Patents
세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법 Download PDFInfo
- Publication number
- KR102381132B1 KR102381132B1 KR1020200107280A KR20200107280A KR102381132B1 KR 102381132 B1 KR102381132 B1 KR 102381132B1 KR 1020200107280 A KR1020200107280 A KR 1020200107280A KR 20200107280 A KR20200107280 A KR 20200107280A KR 102381132 B1 KR102381132 B1 KR 102381132B1
- Authority
- KR
- South Korea
- Prior art keywords
- session
- data
- user
- information
- rendering
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000009877 rendering Methods 0.000 title claims abstract description 39
- 238000003860 storage Methods 0.000 title claims abstract description 37
- 238000004458 analytical method Methods 0.000 claims description 18
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000007418 data mining Methods 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 23
- 239000013598 vector Substances 0.000 description 22
- 238000013461 design Methods 0.000 description 13
- 230000006399 behavior Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012800 visualization Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005065 mining Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 235000014510 cooky Nutrition 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 238000013503 de-identification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000004941 influx Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005405 multipole Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003462 vein Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/44—Browsing; Visualisation therefor
- G06F16/447—Temporal browsing, e.g. timeline
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/489—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using time information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/80—2D [Two Dimensional] animation, e.g. using sprites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Library & Information Science (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
Abstract
세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법이 제공되며, 웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지하는 단계, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하는 단계 및 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말의 화면을 동영상으로 재구성하는 단계를 포함한다.
Description
본 발명은 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 관한 것으로, 시계열적으로 나열된 사용자의 이벤트를 웹 페이지의 구조정보 데이터 상에 시각화하여 동영상과 같이 재생할 수 있는 플랫폼을 제공한다.
마우스 트래킹 분석은 수행도 측정(Performance Measurement) 방법 중의 하나로 사용자의 시선을 추적하고 이를 분석하는 시선 추적(Eye Tracking)과 함께 웹 브라우저 상의 마우스의 움직임을 추적하고 분석하는 방법이다. 사용자가 웹을 접속하여 탐색하는 동안 활용한 마우스의 궤적을 살펴봄으로써 사용자의 관심사항, 이동 경로, 소요 시간 등을 파악할 수 있다. 웹 사용자는 웹 인터페이스 상에서 목표가 결정되고 나면 그 위치까지의 경로를 정의하고 관련 장치(Device) 조작을 통해 커서(Cursor)를 움직여 목표지점에 도달하고자 한다. 특히 마우스를 이용한 커서의 움직임과 조작은 GUI 기반인 웹 인터페이스에서 실직적인 인터렉션의 대부분을 차지한다고 볼 수 있다. 이처럼 마우스 트래킹은 비디오, 캠코더와 같은 장비를 통해 물리세계에서의 사용자 움직임을 관찰하는데 적합한 비디오 에쓰노그래피(Video Ethnography)에 비해 모니터 화면을 배경으로 나타나는 웹 사용자의 움직임을 관찰하는데 유용하다.
이때, 세션 정보를 추출하여 사용자의 행동을 분석하는 방법이 연구 및 개발되었는데, 이와 관련하여, 선행기술인 한국공개특허 제2010-0119333호(2010년11월09일 공개) 및 한국공개특허 제2020-0004207호(2020년01월13일 공개)에는, 웹 로그를 실시간으로 분석하여 세션 처리를 위한 웹 로그를 결정하고, 세션 처리를 위한 웹 로그로 결정된 웹 로그에 대해 IP 주소 및 URL을 기초로 세션 유형을 판단하며, 판단된 세션 유형에 따른 사용자 세션 정보를 저장하는 구성과, 사용자 단말이 웹 서버에 접속하여 세션을 형성하면, 세션 내에서 사용자 단말이 수행하는 행위에 대응하는 로그 데이터를 실시간으로 수집하고, 로그 데이터 중에서 트리거 로그에 해당하는 로그 데이터를 검출하고, 세션의 시작시점부터 트리거 로그의 검출시점까지 누적된 로그 데이터를 추출하여 누적 로그 데이터를 생성하고, 패턴분석을 수행하여 사용자 단말의 행위에 대응하는 행동정보를 생성하는 분석 구성이 각각 개시되어 있다.
다만, 상술한 구성은 세션 정보를 단순히 저장하거나 특정 이벤트가 발생하는 순간까지의 로그를 모아놓은 히스토리 로그에 불과할 뿐, 이를 이용하여 사용자가 유입되어 구매를 하거나 유출되는 이유를 정확히 직관적으로 파악하기에는 불충분하다. 또, 마우스 트래킹 및 비디오 에쓰노그래피를 이용하여 사용자의 화면을그대로 녹화하여 재생하는 경우 개인정보보호법 및 GDPR(General Data Protection Regulation)에 위반 및 불법행위이다. 또, 다수의 트래킹 솔루션이 웹 상에서 정량적인 지표를 추적하는데 초점이 맞추어져 있는데, 고객 경험(User Experience)은 단순히 숫자에 대응하는 정량적 지표만 가지고 기업이나 마케팅 업체에서 고객의 행동 방식을 파악하기에 충분하지 않고, 단순히 숫자 이외에 실제로 중요한 정보는 기록되고 있지 않다. 이에, 사용자를 특정하지 않으면서 사용자의 행동 데이터를 정성 데이터 수준까지 분석할 수 있는 플랫폼의 연구 및 개발이 요구된다.
본 발명의 일 실시예는, 사용자의 웹 브라우저에서 발생하는 적어도 하나의 종류의 이벤트를 스크립트를 이용하여 수집하고, 이벤트 발생 정보 뿐만 아니라 웹 사이트의 구조 정보(Document Object Model)를 함께 수집하며, 각 사용자가 웹 페이지에서 발생시킨 모든 이벤트와 그 때의 사용자 화면을 그대로 읽어오는 것이 아닌 재구성을 통하여 사용자의 정성 데이터를 수집함과 동시에, 개인정보보호법을 준수하며 개인이 특정되거나 식별되지 않도록 클러스터링(Clustering)을 비지도학습(Unsupervised Learning)으로 수행함으로써, 군집으로 묶인 각 사용자의 이벤트가 통계처리 및 비식별화되면서도 사용자 경험 개선 및 사이트 개선에 도움이 되도록 하는 근거를 제공하며, 직관적으로 사용자의 행동 데이터를 볼 수 있도록 시계열적으로 이벤트를 나열하여 동영상 형태로 재구성하는 렌더링을 수행할 수 있는, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법을 제공할 수 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는, 웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지하는 단계, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하는 단계 및 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말의 화면을 동영상으로 재구성하는 단계를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 사용자의 웹 브라우저에서 발생하는 적어도 하나의 종류의 이벤트를 스크립트를 이용하여 수집하고, 이벤트 발생 정보 뿐만 아니라 웹 사이트의 구조 정보(Document Object Model)를 함께 수집하며, 각 사용자가 웹 페이지에서 발생시킨 모든 이벤트와 그 때의 사용자 화면을 그대로 읽어오는 것이 아닌 재구성을 통하여 사용자의 정성 데이터를 수집함과 동시에, 개인정보보호법을 준수하며 개인이 특정되거나 식별되지 않도록 클러스터링(Clustering)을 비지도학습(Unsupervised Learning)으로 수행함으로써, 군집으로 묶인 각 사용자의 이벤트가 통계처리 및 비식별화되면서도 사용자 경험 개선 및 사이트 개선에 도움이 되도록 하는 근거를 제공하며, 직관적으로 사용자의 행동 데이터를 볼 수 있도록 시계열적으로 이벤트를 나열하여 동영상 형태로 재구성하는 렌더링을 수행할 수 있고, 궁극적으로 사용자의 이벤트의 분석을 이용하여 UX 디자이너를 위한 시간 축 기반의 웹 페이지 내 분석 도구를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 시스템에 포함된 세션 리플레이 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 세션 리플레이 서비스가 구현되는 화면의 일 실시예를 설명하기 위한 도면이다.
도 2는 도 1의 시스템에 포함된 세션 리플레이 서비스 제공 서버를 설명하기 위한 블록 구성도이다.
도 3 및 도 4는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법을 설명하기 위한 동작 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 세션 리플레이 서비스가 구현되는 화면의 일 실시예를 설명하기 위한 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체 지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다.
본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템(1)은, 적어도 하나의 사용자 단말(100) 및 세션 리플레이 서비스 제공 서버(300)를 포함할 수 있다. 다만, 이러한 도 1의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템(1)은, 본 발명의 일 실시예에 불과하므로, 도 1을 통하여 본 발명이 한정 해석되는 것은 아니다.
이때, 도 1의 각 구성요소들은 일반적으로 네트워크(network, 200)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 적어도 하나의 사용자 단말(100)은 네트워크(200)를 통하여 세션 리플레이 서비스 제공 서버(300)와 연결될 수 있다. 그리고, 세션 리플레이 서비스 제공 서버(300)는, 네트워크(200)를 통하여 적어도 하나의 사용자 단말(100)과 연결될 수 있다.
여기서, 네트워크는, 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 근거리 통신망(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) 네트워크 등이 포함되나 이에 한정되지는 않는다.
하기에서, 적어도 하나의 라는 용어는 단수 및 복수를 포함하는 용어로 정의되고, 적어도 하나의 라는 용어가 존재하지 않더라도 각 구성요소가 단수 또는 복수로 존재할 수 있고, 단수 또는 복수를 의미할 수 있음은 자명하다 할 것이다. 또한, 각 구성요소가 단수 또는 복수로 구비되는 것은, 실시예에 따라 변경가능하다 할 것이다.
적어도 하나의 사용자 단말(100)은, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 관련 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 이용하는 사용자의 단말일 수 있다. 이때, 적어도 하나의 사용자 단말(100)은, 적어도 하나의 종류의 이벤트를 발생시키고, 발생된 이벤트를 웹 페이지의 구조정보 데이터와 함께 세션 리플레이 서비스 제공 서버(300)로 전송하는 단말일 수 있다.
여기서, 적어도 하나의 사용자 단말(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) 기반의 무선 통신 장치를 포함할 수 있다.
세션 리플레이 서비스 제공 서버(300)는, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 웹 페이지, 앱 페이지, 프로그램 또는 애플리케이션을 제공하는 서버일 수 있다. 그리고, 세션 리플레이 서비스 제공 서버(300)는, 적어도 하나의 사용자 단말(100)로부터 적어도 하나의 종류의 이벤트가 발생하는 경우 웹 페이지의 구조정보 데이터와 함께 수집하여 저장하고, 경량화된 구조정보 데이터와 이벤트를 기반으로 플레이어에서 재생가능하도록 렌더링을 하는 서버일 수 있다. 또한, 세션 리플레이 서비스 제공 서버(300)는, 적어도 하나의 사용자 단말(100)을 비지도학습으로 클러스터링하여 군집화하는 서버일 수 있고, 군집별로 세션 리플레이가 되도록 하는 서버일 수 있다. 그리고, 세션 리플레이 서비스 제공 서버(300)는, 사용자의 행동을 분석한 결과를 이를 요청하는 적어도 하나의 클라이언트(미도시)로 제공하는 서버일 수 있다.
여기서, 세션 리플레이 서비스 제공 서버(300)는, 네트워크를 통하여 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 네비게이션, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다.
도 2는 도 1의 시스템에 포함된 세션 리플레이 서비스 제공 서버를 설명하기 위한 블록 구성도이고, 도 3 및 도 4는 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스가 구현된 일 실시예를 설명하기 위한 도면이다.
도 2를 참조하면, 세션 리플레이 서비스 제공 서버(300)는, 감지부(310), 저장부(320), 재구성부(330), 마이닝부(340), 퍼널(Funnel)분석부(350)를 포함할 수 있다.
본 발명의 일 실시예에 따른 세션 리플레이 서비스 제공 서버(300)나 연동되어 동작하는 다른 서버(미도시)가 적어도 하나의 사용자 단말(100)로 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 전송하는 경우, 적어도 하나의 사용자 단말(100)은, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 애플리케이션, 프로그램, 앱 페이지, 웹 페이지 등을 설치하거나 열 수 있다. 또한, 웹 브라우저에서 실행되는 스크립트를 이용하여 서비스 프로그램이 적어도 하나의 사용자 단말(100)에서 구동될 수도 있다. 여기서, 웹 브라우저는 웹(WWW: World Wide Web) 서비스를 이용할 수 있게 하는 프로그램으로 HTML(Hyper Text Mark-up Language)로 서술된 하이퍼 텍스트를 받아서 보여주는 프로그램을 의미하며, 예를 들어 넷스케이프(Netscape), 익스플로러(Explorer), 크롬(Chrome) 등을 포함한다. 또한, 애플리케이션은 단말 상의 응용 프로그램(Application)을 의미하며, 예를 들어, 모바일 단말(스마트폰)에서 실행되는 앱(App)을 포함한다.
도 2를 설명하기 이전에, 본 발명의 기본 개념을 설명하기로 한다.
UX 디자이너는 웹 페이지 동작을 위한 데이터와 힌트를 사용자에게 전달하고 생산 비용 효율이 높은 디자인을 하는 역할을 한다. 효과적인 디자인을 하기 위해서 UX 디자이너는 디자인 리서치 및 디자인 평가 업무를 담당한다. 디자인 리서치는시장 조사와는 다르게 서비스를 사용하는 사용자를 대상으로 고려하여 무엇이 사람들이 사용하게 하는지, 어떤 메시지와 스타일이 사람들을 기쁘게 만드는지를 결과물로 제시해야 한다. 그리고 디자인 평가는 디자인을 개선하고 디자인의 효율성을 입증하는 방향으로 진행되어야 한다. 이렇듯 컨셉 제안부터 디자인 평가까지 진행하는 UX 디자이너는 페이지 내 단기간의 정량 데이터 분석뿐만 아니라 시간에 따른 사용자의 유동적인 흐름과 페이지 내 데이터의 인과관계를 분석하여 서비스를 개선하고 변화 데이터를 통해 효율성을 입증해야 한다. 그러나 현재 시각화 도구가 제공하는 공시적 관점의 분석만으로는 시간 흐름에 영향을 받는 사용자 및 요소들 간의 통시적인 비교 분석이 어렵다. 통시적인 관점에서는 시간에 따른 전체적인 서비스 흐름을 분석할 수 있으며, 시간 추이에 맞춰 시즌성이 강한 UI 요소를 개선하고 사용자 세그먼트를 관리할 수 있다는 장점이 있다. 따라서 본 발명의 일 실시예에서는 추세 데이터를 중점으로 효율적인 UX 분석이 가능한 페이지 내 분석 도구를 제공하기로 한다.
도 2를 참조하면, 감지부(310)는, 웹 페이지에 접속한 사용자 단말(100)에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지할 수 있다. 이때, 세션(Session)이란, 사용자가 어떠한 작업 또는 공동작업을 위해 상호작용을 하는 기간을 의미하며, 예를 들어, A 쇼핑몰 페이지에 접속한 후, A 쇼핑몰 페이지에서 구매를 하는 이벤트(구매 이벤트)가 발생할 때까지의 기간이나, A 쇼핑몰 페이지로 유입된 후 유출되기까지의 기간을 의미할 수 있다. 이때, 세션 레코딩(Session Recording)은, 세션에 참가하는 동안 발생된 이벤트를 저장하는 것을 말하며, 세션 리플레이(Session Replay)는 세션 레코딩으로 저장된 이벤트들을 차례로 다시 실행하여 재연하는 것을 의미한다. 이때, 본 발명의 일 실시예에 따른 세션 리플레이를 수행하기 위해서는, 웹 페이지에서 사용자가 머문 시간이나, 어느 페이지를 둘러보았는지, 어느 것을 선택(클릭 또는 터치)했는지, 어느 것을 오래 보았는지, 검색어를 넣고 그 결과는 어땠는지 등의 실시간 피드백이나 행동 데이터를 수집해야 한다. 여기서, 스크립트는 자바스크립트나 아마존의 AWS 세션 스크립트를 사용할 수 있지만 이에 한정되는 것은 아니다.
저장부(320)는, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장할 수 있다. 이때, 적어도 하나의 이벤트는, 페이지뷰, 클릭, 구매전환 및 세션전환을 포함할 수 있고, 구조정보 데이터는 HTML, CSS 및 JS를 포함할 수 있으나, 나열된 것들로 한정되지 않고 열거되지 않은 이유로 배제되지 않는다. HTML 또는 XML 문서는 스프레드 시트, 주소록 또는 다른 구조 데이터를 텍스트 형태의 논리적 구조로 나타냄으로써 사람이 읽을 수 있다. 하지만 정작 컴퓨터는 해당 문서의 텍스트 정보만으로 구조적인 내용에 대해 인식이 불가능하다. 이에 W3C(World Wide Web Consortium)에서는 DOM(Document Object Model, 구조정보 데이터)이라는 프로그래밍 인터페이스 문서를 권고함으로써 HTML, XML 문서의 요소들을 독립된 객체들로 구분하여 구조적인 객체 표현 양식과 접근 방식을 정의한 API 규격을 제공한다. 이는 DOM을 이용함으로써 문서내의 모든 데이터를 노드의 부모 자식 계층 형태로 메모리에 적재가 가능해졌다는 것을 의미한다.
예를 들어, 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 방법에 대한 설명이 정리되어 있다.
createElement | 엘리먼트 노드를 생성 |
createTextNode | 텍스트 노드를 생성 |
appendchild | 엘리먼트 노드에 추가 |
insertBefore | 이전 노드에 새로운 노드를 삽입 |
removeChilde | 대상 노드를 제거 |
setAttribute | 속성 값을 변경 |
getAttribute | 속성 값을 반환 |
getElementById | ID에 해당하는 element 검색 |
getElementsByTagName | Tag에 해당하는 element를 찾아 배열로 반환 |
이때, 웹 페이지를 구성하는 정보들은 XML 기반으로 정의되어 있어 웹 페이지를 재구성하려면 XML 텍스트 프로세싱을 위한 파서(Parser)가 필요하다. 그러나 XML 파서를 통해 분석된 XML데이터들은 사용자 단말(100)의 메모리 상에 DOM 트리를 생성하여 논리적 구조를 형성하며 이러한 정보는 렌더링(Rendering)을 거쳐 사용자에게 구성된 장면을 출력시키는데, 두 표준 기술은 오직 하나의 페이지만을 표현할 수 잇고, 서비스 제공자가 지정한 이벤트 또는 사용자의 요청에 의한 장면 변경이 이루어질 때마다 매번 새로운 웹 페이지 구성 정보를 생성해야하는 단점이 있다. 예를 들어, 서비스 제공자(웹 페이지 제공자)는 콘텐츠 ID가 V1인 웹 페이지 이미지 객체와, 콘텐츠 ID가 A1인 텍스트 객체로 구성된 초기 웹 페이지 구성 정보를 XML 형태의 데이터로 전달하고, 사용자 단말(100)은 수신한 구성 정보를 분석하여 메모리상에 DOM 트리 형태로 생성하고 각 요소에 대한 구조화와 복호화를 수행하면서 콘텐츠가 소비된다. 다만, 소비자가 어느 아이콘이나 메뉴를 선택하여 웹 페이지의 이동이나 전환 또는 변화가 발생하는 경우, 예를 들어, 웹 페이지에 아이콘이 표시되어야 해서 아이콘 이미지 객체를 삽입해야 할 경우, 추가 객체 뿐만 아니라 기존의 웹 페이지 구성 정보까지 중복된 XML 문서를 생성해야 하고, 이는 곧 저장부(320)에서 반복작업을 수행해야 한다는 의미이다.
이에 따라, 저장부(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)에서도 이미 수집한 구성정보 데이터에 부분적인 업데이트를 통하여 구조정보 데이터의 중복수집을 막을 수 있다.
예를 들어, 사용자가 보는 웹 페이지가 쇼핑몰 페이지이고, 의류를 입은 모델의 동영상이 재생되고, 동영상을 클릭하면 의류에 대한 상세정보가 텍스트로 오버레이되는 웹 페이지로부터 사용자의 이벤트(클릭)을 추출하면서 구성정보 데이터를 저장한다고 가정하자. 이때, 서비스 제공자에서 복호화가 이루어진 Video와 Audio 데이터는 Scene Generator에 입력되고, Scene Generator는 입력된 정보를 기반으로 하여 각각 미디어들이 언제 어떤 방식으로 소비될지에 대한 정보를 장면 구성 정보에 XML문서 또는 바이너리 정보 형태로 생성한다. 각 Video와 Audio의 동기화에 대한 정보를 포함한 장면 구성 정보는 Packetizer에 입력되어 패킷화되며, 다시 미디어 정보와 함께 Multiplexer를 거쳐 다중화되어 사용자 단말(100)로 전달된다.
사용자 단말(100)은, 서비스 제공자(웹 페이지 제공자)로부터 전송망을 이용하여 패킷형태로 미디어 정보를 전송받아 Demultiplexer에 미디어 정보를 입력하고, Demultiplexer는 패킷을 분석하여 Video와 Audio 정보를 가진 패킷은 Media Decoder에 전송하여 복호화를 이루며, 장면 구성 정보는 Scene Parser에 전송한다. Scene Parser는 사용자 단말(100)의 메모리에 DOM 트리를 생성하여 Renderer에 전달하고, DOM 트리에 따라 각 Video와 Audio는 재생 위치 및 시점에 맞춰 미디어 소비가 이루어지게 된다. 이렇게 미디어 서비스 이용 도중에 사용자 단말(100)에서 동영상을 클릭하는 이벤트가 발생하는 경우, 즉 화면 상에 텍스트 요소가 추가되어야 하는 경우, 텍스트에 대한 DOM 업데이트 정보를 저장부(320)에서 수집하여 동영상 + 텍스트를 수집함으로써 동영상의 구조정보 데이터를 또 수집하지 않고, 텍스트만 수집하여 DOM 트리에 추가 및 렌더링을 수행하도록 하는 것이다.
이처럼 DOM update를 이용할 경우 기존 요소들에 대한 독립성을 유지하며 변경될 요소에 대해서만 수집이 가능하므로 효율적인 데이터 처리가 가능하게 된다. 또한 크기가 작은 업데이트 데이터만으로도 업데이트가 가능하므로 서버의 자원, 즉 네트워킹 자원 및 컴퓨팅 자원을 적게 사용할 수 있고, 텍스트로 구성된 장면 구성 정보를 Binary로 변환하여 전달되어야 하는 스트리밍 환경의 복잡한 장면에서도 자원 이용에 소비되는 시간을 크게 단축할 수 있다.
재구성부(330)는, 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말(100)의 화면을 동영상으로 재구성할 수 있다. 이때, 사용자 단말(100)은 서로 다른 주체에 귀속된 복수의 사용자 단말(100)이고, 동영상은 클러스터링된 군집별로 재구성될 수 있다. 이때, 군집별 메트릭스(Metrics)에 기반하여 각 군집별 평균 가치 및 하나의 사용자의 가치가 산출될 수 있고, 사용자 단말(100)의 적어도 하나의 종류의 고유식별정보는 비식별화처리될 수 있다. 또, 상술한 바와 같이 구조정보(DOM) 데이터로부터 각 노드와 요소가 정의되어 있으므로, 이를 재구성하는 것은 시각화 과정인 렌더링만 거치면 된다. 이때, 구조정보 데이터를 이루는 적어도 하나의 요소는, 각각 시각화 이미지나 프레임 또는 레이아웃이 미리 저장되어 있음이 전제되어야 한다. 예를 들어, A 요소를 추출하고 나열했는데 어떻게 표현될지에 대한 이미지 등이 존재하지 않는다면 이를 표현할 수 없다. 따라서, 각 요소는 각 이미지, 프레임 또는 레이아웃과 매핑되어 저장되어 데이터베이스화되어야 한다. [Z 웹 페이지 - A 요소 - B 이미지 - C 좌표(또는 C 프레임이나 C 레이아웃)]와 같은 형태로 저장이 되어 있고, A 요소가 추출되면, B 이미지를 구성하도록 재구성 화면에 배치하고, 사용자의 이벤트를 그 위에 시계열적으로 배치시킴으로써 사용자 화면을 그대로 가져오는 녹화가 아니라, "재구성"하는 렌더링을 수행한다. 이 재구성 과정은 이후 데이터마이닝을 위한 전처리 및 정제과정도 되지만, 개인정보보호법을 준수하기 위한 비식별화 과정도 겸할 수 있다.
한국과학기술정보연구원의 국가과학기술지식정보서비스(NTIS)에서는 개인정보 보호 영향평가를 실시하여 개인정보 영향정도에 따라 등급을 부여하여 관리하고 있다. 이하, 표 2는 NTIS의 개인정보 영향도 등급으로, 1등급은 그 자체로 개인식별이 가능하거나, 조합되면 개인식별이 가능한 매우 중요한 개인정보 항목이다.
등급 | 분류 | 개인정보항목 | 설명 |
1등급 | 고유식별정보 | 주민등록번호, 여권번호, 운전면허번호, 외국인등록번호 *개인정보보호법 제24조 및 동법 시행령 제19조 | 그 자체로 개인의 식별이 가능하거나 매우 민감한 개인정보 또는 관련 법령에 따라 처리가 엄격하게 제한된 개인정보 |
민감정보 | 사상·신념, 노동조합·정당의 가입·탈퇴, 정치적 견해, 병력, 신체적·정신적 장애, 성적 취향, 유전자검사정보, 범죄경력정보 등 사생활을 현저하게 침해할 수 있는 정보 *개인정보보호법 제23조 및 동법 시행령 제18조 |
||
인증정보 | 비밀번호, 바이오정보(지문, 홍채, 정맥 등) *개인정보의 안정성 확보조치 기준고시 제7조 |
||
신용정보 금융정보 |
신용정보, 신용카드번호, 계좌번호 등 *신용정보의 이용 및 보호에 관한 법률 제2조, 제19조 및 동법 시행령 제2조, 제16조, 제21조 등 |
||
위치정보 | *위치정보의 보호 및 이동 등에 한 법률 제2조, 제16조 등 | ||
2등급 | 개인식별정보 | 이름, 주소, 전화번호, 핸드폰번호, 이메일, 생년월일, 성별 등 | 조합되면 명확히 개인의 식별이 가능한 개인정보 |
개인관련정보 | 학력, 직업, 키, 몸무게, 혼인여부, 가족상황, 취미 등 | ||
3등급 | 자동생성정보 | IP정보, MAC정보, 사이트 방문기록, 쿠키 등 | 개인 식별정보와 조합되면 부가적인 정보를제공하는 간접개인정보 |
가공정보 | 통계성 정보, 가입자 성향 등 | ||
제한적 본인식별정보 | 회원정보, 사번, 내부용 개인식별정보 등 |
이때, 고유식별정보는 대부분 1 등급에 속하는 것으로 정의되어 있고, 그 밖의 개인정보도 2등급 및 3등급으로 보안대상인 것을 알 수 있다. 여기서, 사이트 방문기록 및 쿠키나 세션 정보 등도 보안대상이므로 이를 비식별화하는 본 발명의 일 실시예에 따른 세션 리플레이를 위한 재구성은 매우 중요한 과정이다. 물론, 이렇게 재구성을 통하여 상술한 바와 같이 로우 데이터(Raw Data)가 아닌, 전처리가 된 데이터가 되므로 이후 이를 기준으로 식별하기 위한 메타데이터를 부가한다거나 태깅을 하는 과정을 거치지 않아도 되고, 데이터 마이닝, 즉 각 사용자를 군집화하는 과정에서 전처리가 필요하지 않게 된다.
마이닝부(340)는, 재구성부(330)에서 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말(100)의 화면을 동영상으로 재구성한 후, 적어도 하나의 인공지능 알고리즘을 이용하여 복수의 사용자 단말(100)의 동영상을 데이터 마이닝할 수 있다. 이때, 사용자 단말(100)은 서로 다른 주체에 귀속된 복수의 사용자 단말(100)이다. 즉 1 명을 특정하여 재구조화된 동영상(gif 포함)을 출력하는 것이 아니라, 복수의 사용자를 대상으로 통계처리되도록 한다. 예를 들어, [A 메뉴-B 메뉴-구매버튼]을 누른 사람이 예를 들어, 100명 이상이라면 이 사용자들을 하나의 그룹(군집) "가" 그룹으로 묶고, "가" 그룹에 대한 통계화된 데이터를 출력할 수 있다. 또, [C 메뉴 - D 메뉴 - 이탈]한 사람이 예를 들어, 200 명이라면 이 사용자를 하나의 "나" 그룹으로 묶고 웹 사이트에서 고객이 이탈된 이유를 찾는데 이용할 수 있다. 또, [F 메뉴 - G 버튼 - 화면정지]된 사용자가 150명이라면, 이 그룹을 "다" 그룹으로 묶고, F 메뉴나 G 버튼에 에러나 오류가 있는 것은 아닌지에 대하여 분석할 수 있고, 이를 수정하는 업데이트를 개발자에게 하도록 지시할 수 있다.
이때, 데이터 마이닝은, 전처리된 데이터 간의 내재된 관계를 탐색하여 클래스가 알려진 훈련 데이터 셋을 학습시켜 새로운 데이터의 클래스를 예측하는 분류(Classification) 또는 클래스 정보 없이 유사성을 기준으로 데이터를 그룹짓는 군집화(Clustering)를 수행할 수 있다. 그리고, 적어도 하나의 인공지능 알고리즘은, 비지도학습(Unsupervised Learning)에 기반한 알고리즘일 수 있다. 클러스터링이란 텍스트 마이닝과 정보검색이론 분야의 연구에서 많이 적용되는 대표적인 비지도학습 방법이며, 군집화 방법에 따라 계층구조 클러스터링(Hierarchical Clustering), 분할구조 클러스터링(Partitional Clustering), 그리고 스펙트럼구조클러스터링(Spectral Clustering)으로 나누어진다.
이때, 외부에 데이터를 노출하지 않고 데이터 마이닝을 수행하는 방법은 크게 두 가지 접근법이 이용될 수 있는데, 두 번째 접근 방식은 사용자의 개인정보데이터를 노출할 수 있으므로 첫 번째 방식만 설명하기로 한다. 첫 번째 방식은 분산된 데이터베이스가 각각의 서버에 수집된 데이터를 서로 공개하지 않고 비밀 공유(Secret Sharing)로 집계(Aggregation)된 데이터베이스에서 클러스터링 결과를 얻는 방법이며 도 4a와 같을 수 있다. 둘 이상의 서버로 구성된 수평 분산 혹은 수직 분할 데이터베이스에서 각각 데이터를 제공하며 협력적으로 연산하여 각자의 데이터는 상대방에게 노출하지 않고 클러스터링된 결과만을 얻는다. 이때, K-means 알고리즘은, 벡터 공간 내의 K개의 중심점을 K개의 클러스터로 표현할 수 있다는 전제를 가지고 수행되며, 일반적으로 각 벡터의 코사인 유사도 산출을 통해 클러스터를 형성한다. K-means 알고리즘은 클러스터를 생성하는 방법에 따라 Bisecting, Antipole, Multipole 등의 다양한 확장 알고리즘을 더 이용할 수 있다.
상술한 과정을 상세히 설명하면 다음과 같다.
첫 번째로, 각 사용자의 이벤트를 시계열적으로 나열하는 과정을 진행하여 K-means를 수행하기 위해 클러스터링 수행에 적합한 형태로 변환한다. 이를 위해, 각 이벤트를 벡터로 변환하는 수치화 작업을 진행한다. 수치화 작업을 위하여 각 이벤트에 대한 형태소 분석을 실시하며, 그 결과 형태소 하나하나가 한 벡터의 차원을 이루게 된다. 해당 형태소의 포함 여부에 따라 각각의 벡터 요소들은 1 또는 0의 값을 가지게 되며, 이 과정에서 형태소 분석기를 이용할 수 있다.
두 번째는, 태그 풀(Tag Pool)을 생성하는 것이다. 각 이벤트의 시계열적 나열 간의 거리 측정 및 비교 가능한 기준은 벡터 곱을 통해 달성된다. 이를 위해 모든 형태소에 대한 정보를 포함하고 있는 표준벡터에 대한 정의가 필요하며, 이러한 표준벡터로 모든 이벤트의 시계열적 나열로부터 추출된 태그 풀을 사용할 수 있다. 태그 풀은, 모든 이벤트로부터 추출된 태그들을 중복 없이 모두 담고 있는 풀을 의미한다.
세 번째는, 태그의 계층구조를 제작하는 과정인데, 태그 계층구조는 앞서 제작한 태그 풀을 기반으로 제작된다. 태그 계층구조 생성을 위한 벡터는 태그 풀의 요소를 서로 비교하면서 임의의 태그들이 동일한 태그 풀에 포함된 경우가 몇 번 있는가에 따라 벡터 값을 부여할 수 있다. 예를 들어, 복수의 사용자가 A-B-C-D의 과정으로 이벤트를 발생시켰다면, A-B-C-D를 동시에 이용한 정도에 따라 벡터값이 부여된다. 이러한 방식을 따라 산출된 각각의 태그 벡터들은 단위벡터로 변환 후 K-means를 통해 클러스터링 되고, 군집 분석을 통해 유사도가 높은 벡터들끼리 그룹화하여 몇 개의 태그 그룹으로 분류될 수 있다. 그리고 다시 각각의 그룹에 대해 위와 같은 클러스터링 작업을 반복적으로 적용함으로써 전체 태그 집합에 대한 태그 계층구조를 생성할 수 있다.
마지막으로, 태그 벡터를 계산해야 하는데, 마지막으로 태그 벡터를 만드는 과정을 통해 군집화 알고리즘을 수행하기 위한 모든 준비 과정이 끝나게 된다. 이 과정을 통해 각각의 이벤트의 시계열적 나열이 서로 얼마나 닮은 정보를 가지고 있는지 유추해 볼 수 있는 기준을 마련하게 된다. 이에 더하여, 태그 계층구조를 태그 벡터에 반영하기 위해 계층구조를 바탕으로 계산된 값을 사용할 수 있고, 이때 부여되는 벡터 값은 예를 들어, Leacock-Chodorow Measure를 사용할 수 있지만, 이에 한정되는 것은 아니다. Leacock-Chodorow Measure는 0부터 무한대까지의 값으로 어휘 유사도를 표현하기 때문에, 태그 벡터의 가중치를 업데이트하는 용도로 적용할 수 있다.
이렇게 클러스터링을 위한 모든 준비가 완료되면, 각 시계열적 나열을 통하여 사용자를 묶는 작업을 시작할 수 있다. 이때, 첫 클러스터링 K값의 결정을 위해, K-means 클러스터링 적용할 때, 군집화 결과 그룹의 개수(K)는 군집화 성능에 중요한 영향을 미친다. 대부분의 경우 K는 정적인 변수로 설정되어 그 개수에 맞추어 클러스터링 결과를 도출하도록 하고 있지만 서로 다른 개인의 방향성 및 특이성을 고려하면 일정한 K값을 정하는 것은 매우 어려운 일이다.
따라서, 본 발명의 일 실시예에 따른 방법에서는 시계열적으로 나열된 이벤트에 따른 각기 다른 태그에 따라 각기 다른 K값을 설정하는 것도 가능하다. K-means는 최적의 클러스터가 생성될 때까지 반복하여 군집을 재생성한다. 즉, K-means에 의해 일단 클러스터가 생성되면 클러스터된 모든 그룹들에 대하여 중심 값을 다시 계산하고 모든 태그 풀을 대상으로 K개의 클러스터에 순서대로 벡터 곱을 수행한다. 그 후 수행결과 벡터 곱이 가장 컸던 그룹에 다시 그 태그 풀을 배정하며 마지막 태그 풀까지 벡터곱과 배정 과정을 수행한다. 이로 인해 새로운 클러스터링 결과가 산출되면 다시 중심 값을 구하는 과정을 반복 수행하여 최적의 클러스터링 상태를 이루도록 한다. 이때, 종료 시점은, 새롭게 형성된 결과들이 직전의 클러스터링 결과와 비교하였을 때 아무런 변화가 일어나지 않았을 때이다.
퍼널분석부(350)는, 마이닝부(340)에서 적어도 하나의 인공지능 알고리즘을 이용하여 복수의 사용자 단말(100)의 동영상을 데이터 마이닝한 후, 각 군집별로 사용자가 이탈되는 웹 페이지의 식별코드, 각 군집별로 사용자가 이탈되는 경우 유입된 웹 페이지와 이탈되는 웹 페이지의 식별코드, 각 군집별로 사용자가 이탈되는 비율을 분석하는 퍼널 분석(Funnel Analysis)을 수행하고, 분석된 데이터를 시각화하여 출력할 수 있고 이는 도 4c와 같을 수 있다. 이때, 퍼널(Funnel)은 깔때기를 뜻하는 말이지만 마케팅에서는 그 의미가 다른데, 퍼널 분석은 고객 분석을 위한 하나의 마케팅 전략이다. 즉, 고객이 유입되고 전환에 이르기까지 주요 단계를 수치로 확인하는 분석 방법이다. 전환에 이르는 고객 경험 프로세스를 단계별로 나누어 언제, 어디서, 어떻게 이탈하는지를 파악해 이탈하는 원인을 개선하고 이를 바탕으로 전환율을 높이는데 목표가 있다. 이러한 과정에서 서비스 취약 단계를 파악할 수 있기 때문에 고객 경험을 개선하는 데 유용하게 활용되기도 한다.
예를 들어, 전환율이 10%나 감소했다고 가정하면, 먼저, 떨어진 수치에 대한 원인을 찾을 것인데, 측정 오류, 서버 장애, 자사 및 경쟁사의 활동에 변화가 있는지도 의심해 볼 수 있고, 또 전환율이 감소하기 전, 어떠한 변화가 있었는지 각 부서에 문의하거나 부정적인 이슈에 대해 회사 내외부로 검토해 볼 수도 있는데, 이 모든 과정을 거치고 깨닫는 것은 모든 과정에 긍정적인 부분과 부정적인 부분이 섞여 있어 정확한 원인을 파악하기 어렵다는 것이다. 그렇기 때문에 기업에서 고객 이탈률의 원인을 찾을 수 있는 서비스를 제공하고 있다. 예를 들어, 각 단계별 이탈률을 시각화해 제공함으로써 각 퍼널 단계의 고객 이탈률을 한 눈에 확인할 수 있도록 할 수 있다. 예를 들어, 특정 모바일 페이지에서 고객 이탈이 계속 일어나고 있다면 모바일 최적화가 이루어지지 않았다는 것을 확인있고, 이를 통해 고객의 불편을 감소시키고 더 나은 고객 경험을 제공할 수 있다.
덧붙여서, 본 발명의 일 실시예는, 맞춤화된 사용 경험(UX)를 제공하기 위하여, 사용자의 사용 데이터를 토대로 사용자에게 맞춤화된 GUI 디자인으로 설계하는 최적화 모델을 이용할 수도 있다. 우선, 사용자 단말(100)에서 일어나는 이벤트는 이미 수집되어 있으므로, 이를 사용 데이터로 이용할 수도 있고, 별도로 각 개체(GUI)의 사용 횟수, 클릭스트림 데이터, 개체를 택하기까지 걸린 시간, 아이트래킹 데이터 등을 수집할 수도 있고, 수집할 수 있는 데이터의 범위 및 형태를 파악하여 해당 포맷에 맞는 데이터라면 모두 수집할 수도 있다.
그리고, 수집된 사용 데이터를 기반으로 상술한 군집화, 즉 클러스터링을 통하여 사용자를 N개의 군집으로 분류하고, 수집된 데이터의 종류, 서비스 공급자 및 디자이너가 달성하고자 하는 목적 및 고려하고자 하는 제약 등을 반영하여 최적화 모델을 수립할 수 있고, 최적화 모델을 이용하여 N 개의 사용자 군집에 대한 최적의 GUI 디자인을 도출한다. 그 다음에는 GUI 재구성 단계인데, GUI 최적화를 통하여 도출된 N 개의 최적 GUI 디자인을 바탕으로 관리자, 디자이너, 개발자 등과 함께 논의를 거쳐 최종 GUI들을 결정하고, 시스템에 반영할 수 있다.
덧붙여서, 본 발명의 일 실시예는 기 설정된 키워드가 음성으로 입력된 경우, 이 음성이 입력된 전후의 이벤트를 시계열적으로 나열하여 오류 및 에러나 사용자 실수로 리포트하고 관리자나 디자이너에게 전송하는 방법을 더 이용할 수도 있다. 예를 들어, 사용자의 사용미숙으로 잘 알지 못하거나, UI가 너무 복잡하게 배열되어 에러가 발생하거나 오류가 나는 경우, 사용자들은 답답함에 한숨을 쉬는 등의 경우가 있는데, 이 지점을 캐치하여 바로 UI가 수정될 수 있도록 하는 것이다. 제대로 구동이 안되는 경우 또는 사용자가 잘 인지를 못하는 경우, 사용자는 잘 구동이 안되는 사이트라고 생각하고 급속하게 유출되는데, 이 한숨소리나 특정 키워드가 나오는 욕설이 인식되는 경우, 그 화면을 재구성하여 실시간으로 디자이너나 관리자에게 리포트하고, 이를 클러스터링하여 가장 문제가 되는 UI를 변경하도록 할 수 있다. 또는, 이러한 한숨소리나 욕설이 인식되는 경우, 튜토리얼을 보여주도록 아이콘으로 어느 메뉴를 어떻게 사용해야 하는지를 애니메이션으로 출력함으로써 사용 방법을 알 수 있도록 하는 방법도 가능하다.
이하, 상술한 도 2의 세션 리플레이 서비스 제공 서버의 구성에 따른 동작 과정을 도 3 및 도 4를 예로 들어 상세히 설명하기로 한다. 다만, 실시예는 본 발명의 다양한 실시예 중 어느 하나일 뿐, 이에 한정되지 않음은 자명하다 할 것이다.
도 3a를 참조하면, 세션 리플레이 서비스 제공 서버(300)는 사용자 단말(100)로부터 수신된 이벤트 및 구조정보 데이터를 함께 수신하고, 도 3b와 같이 경량화된 구조정보 데이터 상에 이벤트를 얹는 방식으로 플레이어에서 재생가능하도록 렌더링한다. 사용자의 화면을 그대로 뜬 동영상을 각 사용자별로 또는 그룹별로 저장하는 것은 비효율을 넘어 불가능하기 때문에, 데이터 구조체(Data Structure)를 설계해서 그 데이터를 저장하고, 그 데이터를 기반으로 동영상처럼 재생하는 것이다. 이때, 중요한 포인트는, 동영상을 녹화하거나 재생하는 것이 아니라 DOM(HTML, CSS, JS, 구조화된 웹 사이트 데이터)를 저장하고 이를 다시 웹사이트 처럼 만드는 기술인데, 리플레이 스크립트를 웹 프론트엔드(Frondend)에 설치하여(<script>...<script>) 발생한 모든 이벤트를 전달하고 DOM 초기화, 변경사항을 전달하는 브라우저에 설치되는 스크립트를 이용한다. 또, 플레이어는, 스냅샷 서버에 저장된 데이터를 바탕으로 동영상처럼 보여주는 기술로 세션 리플레이를 출력할 수 있다.
또, 도 4a의 클러스터링(세그멘테이션)도, 미리 관리자나 운영자가 그룹을 나눠어 두는 것이 아니라, 자동으로 사용자의 행동 특성을 바탕으로 자동으로 그룹화하는 것이라서, 사용자가 어떤 세그멘테이션이 될지는 모르지만, 특성에 따라 그룹핑될 수 있도록 하는 것이고, K-means 외에도, DBSCAN, EM(Expectation-Maxximization) 등이 있으나 알고리즘에 국한되지는 않고 다양한 기술들을 적용해서 클러스터링 할 수 있다. 각 그룹인 세그먼트 또는 클러스터별 평균 가치 산출할 수도 있고, 각 클러스터별 메트릭스(Metrics)를 저장하고 있기 때문에 각 그룹의 중앙값이나 평균값 등을 바탕으로 사용자 1명의 가치에 대해서 판단할 수 있다. 예를 들어, “그룹 #1”은 사용자 1 명당 가치가 가장 높은데 그 이유는 세션당 페이지뷰수(페이지뷰/세션)이 높고, 구매 객단가가 45,000원(혹은 꼭 구매가 아니라 신청수, 예약수 등의 전환수가 높을 수도 있음)이기 때문이다. 각 그룹별 행동 F퍼널 데이터 연산 및 제공할 수 있으며, 도 4c와 같이 도시될 수 있다. 각 클러스터별로 퍼널, 즉 어떤 페이지에서 이탈되는지, 어떤 곳에서 주로 들어와서 어디서 나가는지, 비율은 어떻게 되는지 등을 시각적으로 제공한다.
또, 도 4b 및 도 4c의 시각화 이외에도, 분석페이지 화면 기반으로 데이터를 시각화한 사용자 경험 히트맵과 히트맵 결과 및 이슈를 정리해 보여주는 리포팅 히트맵(Reporting Heatmaps)을 이용할 수 있다. 그 외에도 페이지별 사용자 지표 차트 보드인 사용자 분석(User Analytics), 유입처 별사용자 경험 현황을 비교할 수 있는 유입경로비교(Comparing Referrers), 주요 요소별 사용자 정보를 그룹핑 할 수 있는 CTA 분류(Segmenting CTA), 전체 사용자 탐색 현황을 시뮬레이션해볼 수 있는 활동 스트림(Activity Stream), UX 개선성과를 측정할 수 있는 A/B 테스트, 단계별 이탈 현황을 파악하는 퍼널(Funnels), 개인 사용자의 페이지 탐색 현황을 시뮬레이션하는 사용자 세션 리포트(User Session Report), 사용자 관심의 정도와 분포를 파악할 수 있는 관심 그래프(Attention Graph)를 더 포함할 수 있다.
이와 같은 도 2 내지 도 4의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1을 통해 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.
도 5는 본 발명의 일 실시예에 따른 도 1의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 시스템에 포함된 각 구성들 상호 간에 데이터가 송수신되는 과정을 나타낸 도면이다. 이하, 도 5를 통해 각 구성들 상호간에 데이터가 송수신되는 과정의 일 예를 설명할 것이나, 이와 같은 실시예로 본원이 한정 해석되는 것은 아니며, 앞서 설명한 다양한 실시예들에 따라 도 5에 도시된 데이터가 송수신되는 과정이 변경될 수 있음은 기술분야에 속하는 당업자에게 자명하다.
도 5를 참조하면, 세션 리플레이 서비스 제공 서버는, 웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지한다(S5100).
그리고, 세션 리플레이 서비스 제공 서버는, 적어도 하나의 이벤트를 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하고(S5200), 구조정보 데이터 상에 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 사용자 단말의 화면을 동영상으로 재구성한다(S5300).
상술한 단계들(S5100~S5300)간의 순서는 예시일 뿐, 이에 한정되지 않는다. 즉, 상술한 단계들(S5100~S5300)간의 순서는 상호 변동될 수 있으며, 이중 일부 단계들은 동시에 실행되거나 삭제될 수도 있다.
이와 같은 도 5의 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대해서 설명되지 아니한 사항은 앞서 도 1 내지 도 4를 통해 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법에 대하여 설명된 내용과 동일하거나 설명된 내용으로부터 용이하게 유추 가능하므로 이하 설명을 생략하도록 한다.
도 6은 본 발명의 일 실시예에 따른 세션 리플레이 서비스가 구현되는 화면의 일 실시예를 설명하기 위한 도면이다. 도 6a를 참조하면, 자동으로 분류된 클러스터, 클러스터별 지표 세션 수/예상 수익 및 총 세션 대비 각 클러스터 세션 비율에 대한 정보를 표시하는 화면의 레이아웃이 각각 해당 위치에 표시될 수 있다. 도 6b를 참조하면, 충성고객, 가장 집중해야할 고객 등으로 고객을 분류할 수 있으며, 각 고객별로 세션 수와 평균 세션 시간, 예상 수익 및 세션 비율을 숫자 및 시각화 그래프로 출력할 수 있다.
도 6c를 참조하면, 유입 세션수와 각 페이지별 Funnel, 각 페이지별 상세 정보 등을 시각화하여 출력할 수 있으며, 클러스터의 요약 및 각 사용자의 목록을 표시할 수 있다. 도 6d를 참조하면, 각 페이지에서 장바구니(Cart)로 이동한 비율, 또 주문까지 한 고객의 비율을 숫자 및 도형 등으로 표시할 수도 있다. 도 6e를 참조하면, 각 사용자 정보와 각 세션에 대해 페이지별 시계열순으로 나열한 사용자의 행동 데이터를 출력할 수 있고, 리플레이 버튼을 누르면 상술한 바와 같이 사용자의 행동이 출력될 수 있다. 도 6f와 같이 각 세션의 수와 세션 시간, 그리고 리플레이 버튼이 각각 구비되어 사용자별로 분석된 자료를 출력할 수 있다. 도 6g는 리플레이 버튼이 선택된 후 해당 페이지에 대한 설명, 타이틀 및 URL은 물론, 사용자의 행동을 추측하여 영상으로 제공할 수 있음을 보여준다. 각 페이지별 행동 데이터를 문장으로 설명할 수도 있고, 클러스터 정보 또는 사용자 정보를 우측에 출력할 수도 있다.
도 6h와 같이 사용자의 세션이 리플레이되면 화면 상에 사용자가 어떠한 행동을 했는지가 마우스 커서의 이동 흐름으로 볼 수 있게 된다. 이때, 사용자는, 장바구니 페이지를 본 후, 도 6i와 같이 취소 버튼으로 마우스를 이동한 후, 도 6j와 같이 결제 버튼으로 다시 이동하여 결제를 수행했음을 알 수 있다.
도 5를 통해 설명된 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법은, 컴퓨터에 의해 실행되는 애플리케이션이나 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법은, 단말기에 기본적으로 설치된 애플리케이션(이는 단말기에 기본적으로 탑재된 플랫폼이나 운영체제 등에 포함된 프로그램을 포함할 수 있음)에 의해 실행될 수 있고, 사용자가 애플리케이션 스토어 서버, 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버를 통해 마스터 단말기에 직접 설치한 애플리케이션(즉, 프로그램)에 의해 실행될 수도 있다. 이러한 의미에서, 전술한 본 발명의 일 실시예에 따른 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법은 단말기에 기본적으로 설치되거나 사용자에 의해 직접 설치된 애플리케이션(즉, 프로그램)으로 구현되고 단말기에 등의 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
Claims (10)
- 세션 리플레이 서비스 제공 서버에서 실행되는 세션 리플레이 서비스 제공 방법에 있어서,
웹 페이지에 접속한 사용자 단말에서 기 설정된 적어도 하나의 이벤트가 발생하는 경우 스크립트를 통하여 감지하는 단계;
상기 적어도 하나의 이벤트를 상기 웹 페이지의 구조정보(Document Object Model) 데이터와 함께 수신하여 저장하는 단계; 및
상기 구조정보 데이터 상에 상기 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 상기 사용자 단말의 화면을 동영상으로 재구성하는 단계를 포함하고,
상기 사용자 단말은 서로 다른 주체에 귀속된 복수의 사용자 단말이고,
상기 구조정보 데이터 상에 상기 적어도 하나의 이벤트를 시계열적으로 나열 및 재구조화하는 렌더링을 수행하여 상기 사용자 단말의 화면을 동영상으로 재구성하는 단계 이후에,
적어도 하나의 인공지능 알고리즘을 이용하여 상기 복수의 사용자 단말의 동영상을 데이터 마이닝하는 단계를 더 포함하고,
상기 데이터 마이닝은, 전처리된 데이터 간의 관계를 탐색하여 클래스가 알려진 훈련 데이터 셋을 학습시켜 새로운 데이터의 클래스를 예측하는 분류(Classification) 또는 클래스 정보 없이 유사성을 기준으로 데이터를 그룹짓는 군집화(Clustering)를 수행하는 것을 포함하고,
상기 적어도 하나의 인공지능 알고리즘을 이용하여 상기 복수의 사용자 단말의 동영상을 데이터 마이닝하는 단계 이후에,
각 군집별로 사용자가 이탈되는 웹 페이지의 식별코드, 각 군집별로 상기 사용자가 이탈되는 경우 유입된 웹 페이지와 이탈되는 웹 페이지의 식별코드 및 각 군집별로 상기 사용자가 이탈되는 비율을 분석하는 퍼널 분석(Funnel Analysis)을 수행하고, 상기 분석된 데이터를 시각화하여 출력하는 단계;
를 더 포함하는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
- 제 1 항에 있어서,
상기 적어도 하나의 이벤트는, 페이지뷰, 클릭, 구매전환 및 세션전환을 포함하고,
상기 구조정보 데이터는 HTML, CSS 및 JS를 포함하는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
- 삭제
- 삭제
- 제 1 항에 있어서,
상기 적어도 하나의 인공지능 알고리즘은, 비지도학습(Unsupervised Learning)에 기반한 알고리즘인 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
- 삭제
- 제 1 항에 있어서,
상기 사용자 단말은 서로 다른 주체에 귀속된 복수의 사용자 단말이고,
상기 동영상은 클러스터링된 군집별로 재구성되는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
- 삭제
- 제 1 항에 있어서,
상기 사용자 단말의 적어도 하나의 종류의 고유식별정보는 비식별화처리되는 것인, 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법.
- 제 1 항, 제 2 항, 제 5 항, 제 7 항, 제 9 항 중 어느 한 항의 방법을 컴퓨터에 의해 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200107280A KR102381132B1 (ko) | 2020-08-25 | 2020-08-25 | 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200107280A KR102381132B1 (ko) | 2020-08-25 | 2020-08-25 | 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220026356A KR20220026356A (ko) | 2022-03-04 |
KR102381132B1 true KR102381132B1 (ko) | 2022-03-31 |
Family
ID=80814225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200107280A KR102381132B1 (ko) | 2020-08-25 | 2020-08-25 | 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102381132B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12067072B2 (en) * | 2022-04-29 | 2024-08-20 | Content Square SAS | Platform independent session player |
Citations (3)
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 |
JP2016018300A (ja) | 2014-07-07 | 2016-02-01 | ヤフー株式会社 | 情報集計装置、情報集計方法及び情報集計プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150116317A (ko) * | 2014-04-07 | 2015-10-15 | (주)어메이징소프트 | 마우스 이벤트 정보 관리 시스템 및 방법 |
-
2020
- 2020-08-25 KR KR1020200107280A patent/KR102381132B1/ko active IP Right Grant
Patent Citations (3)
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 |
JP2016018300A (ja) | 2014-07-07 | 2016-02-01 | ヤフー株式会社 | 情報集計装置、情報集計方法及び情報集計プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12067072B2 (en) * | 2022-04-29 | 2024-08-20 | Content Square SAS | Platform independent session player |
Also Published As
Publication number | Publication date |
---|---|
KR20220026356A (ko) | 2022-03-04 |
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 | |
Capdevila et al. | GeoSRS: A hybrid social recommender system for geolocated data | |
US8935390B2 (en) | Method and system for efficient and exhaustive URL categorization | |
Bohlouli et al. | Knowledge discovery from social media using big data-provided sentiment analysis (SoMABiT) | |
US20150058417A1 (en) | Systems and methods of presenting personalized personas in online social networks | |
CN111949886B (zh) | 一种用于信息推荐的样本数据生成方法和相关装置 | |
US20140143013A1 (en) | System and method for analyzing social media trends | |
US20220083896A9 (en) | Systems and methods for improved modelling of partitioned datasets | |
US9607081B2 (en) | Ontology based categorization of users | |
KR102216755B1 (ko) | 콘텐츠 및 제품을 연동시키는 태그 분석 서비스 제공 방법 | |
Chiu | Social recommendations for facebook brand pages | |
Arolfo et al. | Analyzing the quality of Twitter data streams | |
JP5988345B1 (ja) | 評価装置、評価方法、評価プログラム、レコメンド装置、レコメンド方法およびレコメンドプログラム | |
Melo et al. | Towards an observatory for mobile participatory sensing applications | |
Roy et al. | Social multimedia signals | |
Rai et al. | Using open source intelligence as a tool for reliable web searching | |
KR102381132B1 (ko) | 세션 정보 저장 및 렌더링을 이용한 세션 리플레이 서비스 제공 방법 | |
JP5100855B2 (ja) | 潜在クラス分析装置、潜在クラス分析方法及びプログラム | |
US9672537B1 (en) | Dynamic content control in an information processing system based on cultural characteristics | |
Avvenuti et al. | Towards better social crisis data with HERMES: Hybrid sensing for emergency management System | |
US20220108359A1 (en) | System and method for continuous automated universal rating aggregation and generation | |
US20230224540A1 (en) | Systems and methods for generating a personality profile based on user data from different sources | |
Chen et al. | Enhancing the precision of content analysis in content adaptation using entropy-based fuzzy reasoning |
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 |