KR102298395B1 - System and Method for User Behavior Analysis and Agent for Collection of Event - Google Patents
System and Method for User Behavior Analysis and Agent for Collection of Event Download PDFInfo
- Publication number
- KR102298395B1 KR102298395B1 KR1020190162976A KR20190162976A KR102298395B1 KR 102298395 B1 KR102298395 B1 KR 102298395B1 KR 1020190162976 A KR1020190162976 A KR 1020190162976A KR 20190162976 A KR20190162976 A KR 20190162976A KR 102298395 B1 KR102298395 B1 KR 102298395B1
- Authority
- KR
- South Korea
- Prior art keywords
- event
- input
- time
- information
- user terminal
- Prior art date
Links
Images
Classifications
-
- 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
- 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
Abstract
본 기술의 일 실시예에 의한 사용자 행위 분석 시스템은 사용자 단말기에 구비되며, 사용자 단말기가 기동됨에 따라, 사용자 단말기에서 실행되는 운영체제 및 어플리케이션을 포함하는 프로그램의 실행 시점부터 종료 시점까지 사용자에 의한 상기 프로그램에 대한 모든 조작 정보를 시간에 따라 수집하여 이벤트 정보를 생성하고 통신망을 통해 전송하는 이벤트 수집 에이전트 및 하나 또는 복수의 사용자 단말기와 통신망을 통해 접속되어, 이벤트 수집 에이전트로부터 이벤트 정보를 수집하는 이벤트 분석 서버를 포함하도록 구성될 수 있다.The user behavior analysis system according to an embodiment of the present technology is provided in the user terminal, and as the user terminal is started, the program by the user from the execution time to the end time of the program including the operating system and the application executed in the user terminal An event collection agent that collects all operation information for the user over time, generates event information and transmits it through a communication network, and an event analysis server that is connected to one or more user terminals through a communication network and collects event information from the event collection agent It may be configured to include
Description
본 기술은 데이터를 수집하여 데이터베이스를 구성하고 이에 기초하여 데이터를 분석하는 기술에 관한 것으로, 보다 구체적으로는 사용자 행위 분석 시스템 및 방법과, 이를 위한 이벤트 수집 에이전트에 관한 것이다.The present technology relates to a technology for collecting data to configure a database and analyzing data based thereon, and more particularly, to a user behavior analysis system and method, and an event collection agent for the same.
개인용 컴퓨팅 장치의 보급 및 확산에 따라 이를 통한 다양한 서비스가 개발되고 있으며, 사용자들은 업무나 사회적 활동 등에 컴퓨팅 장치에서 실행되는 다양한 어플리케이션을 사용하고 있다.With the spread and spread of personal computing devices, various services are being developed through them, and users use various applications executed on the computing devices for work or social activities.
특정 사용자 또는 특정 집단에 포함된 사용자들의 다양한 행동을 분석하여 특징을 도출하는 기술을 사용자 행위 분석(User Behavior Analysis; UBA) 기술이라 일컬을 수 있다.A technique for deriving characteristics by analyzing various behaviors of a specific user or users included in a specific group may be referred to as a user behavior analysis (UBA) technique.
최근 들어, 업무 자동화 또는 보안 네트워크 상의 이상 탐지 등을 위해 컴퓨팅 장치의 로그를 분석하는 기술이 개발되고 있다. 하지만 현재의 행위 분석 기술은 기 생성된 정보의 조작 이력만을 단편적으로 수집할 뿐이며, 이를 통해 개인화된 서비스를 제공하거나 서비스 수준을 향상시키는 데에는 한계가 있다.Recently, a technology for analyzing a log of a computing device has been developed for task automation or detection of anomalies on a security network. However, the current behavior analysis technology only collects the manipulation history of previously generated information in fragments, and there is a limit to providing personalized services or improving the service level through this.
따라서, 컴퓨팅 장치를 통한 사용자의 다양한 행위를 더욱 정확하게 분석할 수 있는 방안이 필요하다.Accordingly, there is a need for a method capable of more accurately analyzing various actions of a user through a computing device.
본 기술의 실시예는 컴퓨팅 장치를 통한 사용자의 모든 행위, 예를 들어 키보드와 마우스를 통한 입력 행위를 수집하고 분석하여 컴퓨팅 장치에 대한 사용자의 입력 행위에 도움이 되는 피드백을 제공할 수 있는 사용자 행위 분석 시스템 및 방법과, 이를 위한 이벤트 수집 에이전트를 제공할 수 있다.An embodiment of the present technology collects and analyzes all actions of a user through a computing device, for example, input actions through a keyboard and a mouse, and provides feedback helpful for a user's input actions to the computing device. It is possible to provide an analysis system and method, and an event collection agent for the same.
본 기술의 일 실시예에 의한 사용자 행위 분석 시스템은 사용자 단말기에 구비되며, 상기 사용자 단말기가 기동됨에 따라, 상기 사용자 단말기에서 실행되는 운영체제 및 어플리케이션을 포함하는 프로그램의 실행 시점부터 종료 시점까지 사용자에 의한 상기 프로그램에 대한 모든 조작 정보를 시간에 따라 수집하여 이벤트 정보를 생성하고 통신망을 통해 전송하는 이벤트 수집 에이전트; 및 하나 또는 복수의 사용자 단말기와 상기 통신망을 통해 접속되어, 상기 이벤트 수집 에이전트로부터 상기 이벤트 정보를 수집하는 이벤트 분석 서버;를 포함하도록 구성될 수 있다.The user behavior analysis system according to an embodiment of the present technology is provided in the user terminal, and as the user terminal is activated, the user an event collection agent that collects all operation information for the program over time, generates event information, and transmits it through a communication network; and an event analysis server that is connected to one or more user terminals and the communication network and collects the event information from the event collection agent.
본 기술의 일 실시예에 의한 사용자 행위 분석 방법은 사용자 단말기에 구비되어 상기 사용자 단말기의 프로세스 상태 변화, 키 입력 이벤트, 마우스 입력 이벤트 및 화면 캡쳐 이벤트를 감지하여 이벤트 정보를 생성하는 이벤트 수집 에이전트 및, 상기 이벤트 수집 에이전트로부터 상기 이벤트 정보를 수신하는 이벤트 분석 서버를 포함하는 사용자 행위 분석 시스템에서의 사용자 행위 분석 방법으로서, 상기 사용자 단말기가 기동됨에 따라, 상기 이벤트 수집 에이전트가 실행되는 단계; 상기 사용자 단말기에서 실행되는 운영체제 및 어플리케이션을 포함하는 프로그램의 실행 시점부터 종료 시점까지 사용자에 의한 상기 프로그램에 대한 모든 조작 정보를 시간에 따라 수집하여 이벤트 정보를 생성하는 단계; 및 상기 이벤트 분석 서버가 상기 이벤트 정보를 제공받아 데이터베이스로 구축하는 단계; 및 상기 데이터베이스에 기초하여 상기 이벤트 정보를 분석하는 단계;를 포함하도록 구성될 수 있다.A user behavior analysis method according to an embodiment of the present technology includes an event collection agent provided in a user terminal to detect a process state change, a key input event, a mouse input event, and a screen capture event of the user terminal to generate event information; A user behavior analysis method in a user behavior analysis system including an event analysis server for receiving the event information from the event collection agent, the method comprising: executing the event collection agent as the user terminal is activated; generating event information by collecting all operation information for the program by the user over time from the execution time to the end time of the program including the operating system and the application executed in the user terminal; and constructing, by the event analysis server, the event information as a database; and analyzing the event information based on the database.
본 기술의 일 실시예에 의한 이벤트 수집 에이전트는 사용자 단말기에 구비되며, 상기 사용자 단말기에서 실행되는 운영체제 및 어플리케이션을 포함하는 프로그램의 실행 시점부터 종료 시점까지 상기 사용자 단말기의 프로세스 상태 변화, 사용자에 의한 상기 프로그램에 대한 키 입력 이벤트, 마우스 입력 이벤트 및 화면 캡쳐 이벤트를 감지하는 이벤트 감지부; 상기 이벤트 감지부에서 감지된 이벤트 정보를 설정된 포맷으로 가공하도록 구성되는 이벤트 가공부; 및 상기 이벤트 가공부에서 생성한 이벤트 정보를 이벤트의 종류별로 지정된 목적지로 전송하도록 구성되는 이벤트 전송 매니저;를 포함하도록 구성될 수 있다.The event collection agent according to an embodiment of the present technology is provided in the user terminal, and the process state change of the user terminal from the execution time to the end time of the program including the operating system and the application executed in the user terminal, an event detection unit for detecting a key input event, a mouse input event, and a screen capture event for the program; an event processing unit configured to process the event information detected by the event sensing unit into a set format; and an event transmission manager configured to transmit the event information generated by the event processing unit to a destination designated for each type of event.
본 기술에 의하면, 컴퓨팅 장치에 대한 사용자의 모든 입력 행위를 수집하고 데이터베이스를 구축 및 분석할 수 있다. 이에 따라, 사용자가 어려움을 겪는(미숙한) 조작 행위에 도움을 줌으로써 사용자가 용이하게 컴퓨팅 장치를 조작하도록 할 수 있다.According to the present technology, it is possible to collect all input actions of a user to a computing device, and to build and analyze a database. Accordingly, it is possible to allow the user to easily operate the computing device by helping the user to a difficult (immature) operation.
나아가, 여러 사용자들이 어떤 어플리케이션을 어떻게 사용하며 입력에 있어서 어떠한 어려움을 겪는지 분석할 수 있으므로 각 어플리케이션 제작자들은 사용자의 입력 행위가 용이하도록 어플리케이션을 개선할 수 있다.Furthermore, since it is possible to analyze which applications are used by several users and how and what difficulties they experience in input, each application creator can improve the application so that the user's input behavior is easy.
도 1은 일 실시예에 의한 사용자 행위 분석 시스템의 구성도이다.
도 2는 일 실시예에 의한 사용자 단말기의 구성도이다.
도 3은 일 실시예에 의한 이벤트 수집 에이전트의 구성도이다.
도 4는 일 실시예에 의한 이벤트 분석 서버의 구성도이다.
도 5는 일 실시예에 의한 사용자 행위 수집 방법을 설명하기 위한 흐름도이다.
도 6은 일 실시예에 의한 사용자 행위 분석 방법을 설명하기 위한 흐름도이다.1 is a block diagram of a user behavior analysis system according to an embodiment.
2 is a block diagram of a user terminal according to an embodiment.
3 is a block diagram of an event collection agent according to an embodiment.
4 is a configuration diagram of an event analysis server according to an embodiment.
5 is a flowchart illustrating a method for collecting user actions according to an embodiment.
6 is a flowchart illustrating a user behavior analysis method according to an embodiment.
이하, 첨부된 도면을 참조하여 본 기술의 실시예를 보다 구체적으로 설명한다.Hereinafter, embodiments of the present technology will be described in more detail with reference to the accompanying drawings.
도 1은 일 실시예에 의한 사용자 행위 분석 시스템의 구성도이다.1 is a block diagram of a user behavior analysis system according to an embodiment.
도 1을 참조하면, 일 실시예에 의한 사용자 행위 분석 시스템(10)은 통신망(200)을 통해 상호 접속되는 하나 또는 복수의 사용자 단말기(100) 및 이벤트 분석 서버(300)를 포함할 수 있다.Referring to FIG. 1 , a user
사용자 단말기(100)는 데스크 톱 컴퓨터와 같은 단말기(101), 또는 랩톱 컴퓨터(103)와 같은 유선 또는 무선 통신이 가능한 다양한 컴퓨팅 장치를 포함할 수 있다.The
사용자 단말기(100)는 이벤트 수집 에이전트(160)를 구비할 수 있다.The
이벤트 수집 에이전트(160)는 사용자 단말기(100)의 부팅 후 자동 또는 수동으로 실행되어 사용자 단말기(100)에 대한 사용자의 모든 행위를 수집하고 이벤트 분석 서버(300)로 전송할 수 있다.The
이벤트 분석 서버(300)는 사용자 단말기(100)로부터 이벤트 수집 정보를 전송받아 저장하고 분석하도록 구성될 수 있다.The
일 실시예에서, 이벤트 수집 에이전트(160)는 사용자 단말기(100)에서 실행되는 모든 프로세스의 상태 이벤트, 실행 중인 프로세스에 대한 사용자의 모든 조작 행위 이벤트를 수집 및 저장하고, 기 설정된 주기 또는 기 설정된 조건이 만족하는 경우 수집된 이벤트를 이벤트 분석 서버(300)로 전송할 수 있다.In one embodiment, the
예를 들어, 이벤트 수집 에이전트(160)는 사용자 단말기(100)에서 실행되는 운영체제(OS) 및 어플리케이션을 포함하는 프로그램의 실행 시점부터 종료 시점까지 사용자에 의한 상기 프로그램에 대한 모든 조작 정보, 즉 키보드 이력, 마우스 입력 및 디스플레이 구성 변경 내역 등의 모든 입력 정보를 시간에 따라 수집할 수 있다.For example, the
예를 들어, OS 조작에 관한 모든 입력 정보, "어플리케이션 A"를 실행하였다가 "어플리케이션 B"를 실행하는 모든 과정에서의 키보드/마우스 입력 정보, 디스플레이 구성 변경 내역 등을 모두 수집할 수 있다.For example, all input information related to OS operation, keyboard/mouse input information in all processes of executing “application A” and then executing “application B”, and display configuration change history, etc. may all be collected.
이벤트 분석 서버(300)는 사용자 단말기(100)로부터 전송된 이벤트 정보를 설정된 인덱스에 따라 데이터베이스화하고 인덱스별 이벤트 정보를 분석할 수 있다.The
특정 응용 프로그램이 실행되고 조작된 후의 결과만을 이벤트 데이터로 수집하는 것은 물론이며, 실행 이후부터 종료까지의 전 과정에 대한 조작 이벤트를 모두 수집할 수 있음에 따라 사용자의 행위를 정확하게 분석할 수 있다.In addition to collecting only the results after a specific application program is executed and manipulated as event data, it is possible to accurately analyze user behavior as all manipulation events for the entire process from execution to termination can be collected.
도 2는 일 실시예에 의한 사용자 단말기의 구성도이다.2 is a block diagram of a user terminal according to an embodiment.
도 2를 참조하면, 일 실시예에 의한 사용자 단말기(100)는 컨트롤러(110), 주기억장치(120), 보조기억장치(130), IO 디바이스(140), 통신모듈(150) 및 이벤트 수집 에이전트(160)를 포함할 수 있다.Referring to FIG. 2 , the
컨트롤러(110)는 사용자 단말기(100)의 제반 동작을 제어하며, 소프트웨어 및 이를 실행하는 하드웨어가 결합된 형태로 구성될 수 있다. 일 실시예에서, 컨트롤러(100)는 운영체체(OS)를 실행시켜 각 하드웨어 구성부를 관리하도록 구성될 수 있다.The
주기억장치(120)는 컨트롤러(110)에서 실행할 프로그램 및 데이터, 또는 컨트롤러(110)에서 처리한 결과를 임시 저장할 수 있다.The
보조기억장치(130)는 컨트롤러(110)에서 실행할 프로그램 및 데이터가 유지되도록 저장하는 디스크일 수 있다. 구현하기에 따라, 사용자 단말기(100)는 보조기억장치(130)를 생략하여 구현하는 것도 가능하다.The
IO 디바이스(130)는 입력 디바이스 및 출력 디바이스를 포함할 수 있다. 입력 디바이스는 키보드, 마우스, 조이스틱, 터치패드, 전자 펜, 디스플레이부를 구비한 스마트 터치 패드 중 적어도 하나를 포함할 수 있다. 출력 디바이스는 모니터, 스피커, 프린터, 영상 프로젝터 중 적어도 하나를 포함할 수 있다.The
통신모듈(150)은 사용자 단말기(100)가 통신망(200)을 통해 다른 컴퓨팅 장치와 통신할 수 있는 환경을 제공할 수 있다.The
이벤트 수집 에이전트(160)는 사용자 단말기(100)에서 어떤 프로세스가 실행되는지 모니터링하고, 사용자 단말기(100)의 기동 후 종료시까지, 및/또는 특정 어플리케이션의 실행부터 종료시점까지, 해당 어플리케이션에 대한 사용자의 IO 디바이스(140)를 통한 조작 이력 및/또는 설정된 조건에 따라 캡쳐된 디스플레이된 화면의 정보를 모두 수집하도록 구성될 수 있다.The
도 3은 일 실시예에 의한 이벤트 수집 에이전트의 구성도이다.3 is a block diagram of an event collection agent according to an embodiment.
도 3을 참조하면, 이벤트 수집 에이전트(160)는 이벤트 감지부(161), 이벤트 가공부(163) 및 이벤트 전송 매니저(165)를 포함할 수 있다.Referring to FIG. 3 , the
이벤트 감지부(161)는 사용자 단말기(100)의 변화 상태를 감지하도록 구성될 수 있다.The
일 실시예에서, 이벤트 감지부(161)는 프로세스 이벤트 감지부(1611), 키 이벤트 감지부(1613), 마우스 이벤트 감지부(1615) 및 화면 캡쳐 이벤트 감지부(1617)를 포함할 수 있다.In an embodiment, the
프로세스 이벤트 감지부(1611)는 컨트롤러(110)의 제어에 따라 사용자 단말기(100)에서 실행되는 프로세스의 변화를 감지하도록 구성될 수 있다.The process
일 실시예에서, 프로세스 이벤트 감지부(1611)는 실행, 변경 및 종료되는 프로세스의 상태 정보를 시간에 따라 수집하여 프로세스 이벤트 정보를 생성할 수 있다. 일 실시예에서, 프로세스 이벤트 감지부(1611)는 특정 어플리케이션이 실행됨에 따른 프로세스 변화에 응답하여 실행된 어플리케이션의 종류, 버전, 사용자 인터페이스 구성 정보를 추가로 감지할 수 있다.In an embodiment, the process
키 이벤트 감지부(1613)는 컨트롤러(110)를 통해 키 입력시 발생하는 이벤트를 감지하도록 구성될 수 있다.The key
일 실시예에서, 키 이벤트 감지부(1613)는 키보드를 통해 입력되는 개개의 키 입력 정보를 시간 순서에 따라 수집할 수 있다. 여기에서, 수집하는 키 입력 정보는 문자키, 숫자키, 스페이스키, 엔터키, 기능키, 쉬프트키, 언어 변환키, 백스페이스(Backspace)키, 딜리트(Delete) 키, 화살표키(arrow key) 등 키보드에 마련된 모든 키에 대한 입력 정보일 수 있다. 키 이벤트 감지부(1613)는 각각의 키 입력 정보에 대하여 입력 시간을 부가하여 키 이벤트 정보를 생성할 수 있다. 각각의 키 입력 정보에 대한 입력 시간은 10분의 1초 단위, 바람직하게는 100분의 1초 단위 이하의 시간까지 저장할 수 있다.In an embodiment, the key
마우스 이벤트 감지부(1615)는 컨트롤러(110)를 통해 마우스 입력시 발생하는 이벤트를 감지하도록 구성될 수 있다.The mouse
일 실시예에서, 마우스 이벤트 감지부(1615)는 마우스를 통한 입력 정보, 예를 들어 우측 클릭, 좌측클릭, 클릭 위치를 수집할 수 있다. 일 실시예에서, 클릭 위치는 디스플레이 장치에서의 절대 위치, 또는 실행 중인 응용 프로그램에서의 위치일 수 있으며, 마우스를 통한 각각의 입력 정보에 대하여 10분의 1초 단위, 바람직하게는 100분의 1초 단위 이하의 시간까지 입력 시간을 부가하여 마우스 이벤트 정보를 생성할 수 있다.In an embodiment, the mouse
화면 캡쳐 이벤트 감지부(1617)는 정의된 키 또는 마우스 이벤트 발생시 사용자 단말기(100)의 디스플레이 화면을 캡쳐하도록 구성될 수 있다. 일 실시예에서, 키보드 또는 마우스를 통해 기 정의된 캡쳐 이벤트가 발생하면, 화면 캡쳐 이벤트 감지부(1617)는 캡쳐 이벤트가 발생한 시점의 디스플레이 화면을 캡쳐할 수 있다.The screen capture
일 실시예에서,특정 어플리케이션 사용 중 특정 메뉴를 마우스로 클릭한 경우, 클릭한 순간의 디스플레이 화면을 캡쳐하거나 해당 어플리케이션 윈도우 내의 화면 정보를 캡쳐할 수 있고, 이를 통해 사용자가 무엇을 클릭하였는지 분석할 수 있다.In one embodiment, when a specific menu is clicked with a mouse while using a specific application, the display screen at the clicked moment may be captured or screen information within the corresponding application window may be captured, and through this, what the user clicked may be analyzed. have.
이벤트 가공부(163)는 이벤트 감지부(161)에서 이벤트가 감지됨에 따라 감지된 이벤트 정보를 설정된 포맷으로 가공하도록 구성될 수 있다. 일 실시예에서, 이벤트 정보는 JSON(JavaScript Object Notation) 포맷으로 가공될 수 있으나 이에 한정되는 것은 아니다.The
이벤트 가공부(163)는 프로세스 이벤트 가공부(1631), 키 이벤트 가공부(1633), 마우스 이벤트 가공부(1635) 및 화면 캡쳐 이벤트 가공부(1637)를 포함할 수 있다.The
프로세스 이벤트 가공부(1631)는 프로세스 이벤트 감지부(1611)에서 감지한 프로세스 변화 이벤트를 가공하도록 구성될 수 있다.The process
키 이벤트 가공부(1633)는 키 이벤트 감지부(1613)에서 감지한 키 입력 신호를 가공할 수 있고, 마우스 이벤트 가공부(1635)는 마우스 이벤트 감지부(1615)에서 감지한 마우스 입력 이력을 가공할 수 있다.The key
화면 캡쳐 이벤트 가공부(1637)는 화면 캡쳐 이벤트 감지부(1617)에서 캡쳐한 화면을 가공, 예를 들어 리사이징하거나 특정 포맷으로 변환할 수 있다.The screen capture
이벤트 전송 매니저(165)는 이벤트의 종류별 전송 목적지를 관리할 수 있고, 이벤트 가공부(163)에서 가공한 이벤트 정보를 통신망(200)을 통해 전송 목적지, 예를 들어 이벤트 분석 서버(300)로 전송할 수 있다.The
사용자 단말기(100)를 통한 모든 입력 정보를 수집함에 따라, 특정 사용자별 입력 장치 조작 패턴을 분석할 수 있고, 이를 통해 사용자가 더욱 용이하게 단말기(100)를 조작할 수 있도록 피드백 데이터를 제공할 수 있다.As all input information through the
아울러, 복수의 사용자 단말기로부터 입력 신호를 수집하여 프로그램의 종류에 따라 분석할 수 있다. 이를 통해 In addition, input signals from a plurality of user terminals may be collected and analyzed according to the type of program. because of this
여러 사용자들이 어떤 어플리케이션을 어떻게 사용하며 입력에 있어서 어떠한 어려움을 겪는지 분석할 수 있으므로 사용자들에게 입력 행위가 용이하도록 도움을 주는 한편, 어플리케이션의 개발 및 개선 등에 대한 데이터를 제공할 수 있다.Since it is possible to analyze which applications how and how many users use which applications and what difficulties they experience in input, it is possible to help users to input easily, and to provide data on application development and improvement.
일 실시예에서, 이벤트 분석 서버(300)는 특정 사용자의 이벤트 정보에 기초하여 키보드 입력에 어려움을 겪고 있는(미숙한) 단어를 분석할 수 있다. 그리고 이러한 단어를 입력 또는 오입력하는 경우 알림 신호를 출력하거나, 해당 단어의 입력 교육, 자동 수정, 자동 완성, 전문가의 조언 등을 제공하여 사용자가 입력에 어려움을 겪는 단어를 보다 용이하게 입력할 수 있도록 한다.In an embodiment, the
도 4는 일 실시예에 의한 이벤트 분석 서버의 구성도이다.4 is a configuration diagram of an event analysis server according to an embodiment.
도 4를 참조하면, 일 실시예에 의한 이벤트 분석 서버(300)는 컨트롤러(310), 메모리(320), 디스크(330), IO 인터페이스(340), 통신모듈(350), 이벤트 수집부(360) 및 이벤트 분석부(370)를 포함할 수 있다.Referring to FIG. 4 , the
컨트롤러(310)는 이벤트 분석 서버(300)를 동작시키는 데 필요한 프로그램 및 이를 실행할 수 있는 하드웨어가 조합된 형태로 구현되어 이벤트 수집 서버(300)의 동작 전반을 제어하도록 구성될 수 있다.The
메모리(320)는 컨트롤러(310)에서 실행할 프로그램 및 데이터, 또는 컨트롤러(110)에서 처리한 결과를 임시 저장하거나, 통신망(200)을 통해 전송되는 사용자 단말기(100) 별 이벤트 정보를 임시 저장할 수 있다.The
디스크(330)는 메모리(320)로부터 이벤트 정보를 전송받아 보관할 수 있다.The
IO 인터페이스(340)는 관리자가 이벤트 분석 서버(300)에 접근하여 관리 및 제어할 수 있는 입출력 환경을 제공할 수 있다.The
통신모듈(350)은 이벤트 분석 서버(300)가 통신망(200)을 통해 사용자 단말기(100)들과 통신할 수 있는 환경을 제공한다.The
이벤트 수집부(360)는 사용자 단말기(100)들로부터 전송되는 이벤트 정보를 설정된 인덱스를 기준으로 데이터베이스(3600)에 저장할 수 있다. 일 실시예에서, 데이터베이스(3600)는 NoSQL(Non-Relational Operation Database SQL) DB의 일종이며 JSON 형식의 데이터 구조를 사용하는 MongoDB일 수 있으나 이에 한정되는 것은 아니다.The
일 실시예에서, 이벤트 수집부(360)는 사용자 단말기(100)에서 실행된 어플리케이션 네임을 인덱스로 하여 사용자별 이벤트 정보를 데이터베이스(3600)에 저장할 수 있다. 다른 실시예에서, 이벤트 수집부(360)는 사용자 ID를 인덱스로 하여 어플리케이션별 이벤트 정보를 데이터베이스화할 수 있다.In an embodiment, the
이벤트 분석부(370)는 인덱스에 따라 데이터베이스화된 이벤트 정보로부터 특징을 추출하고 분류하도록 구성될 수 있다.The
일 실시예에서, 이벤트 분석부(370)는, 특정 사용자가 특정 어플리케이션을 사용할 때, 어려움을 겪는 단어 단위 입력열을 구분하거나, 자주 사용하는 단어 단위 입력열을 구분하여 그에 대한 입력이 용이해지도록 피드백 정보를 제공할 수 있다.In one embodiment, the
일 실시예에서, 이벤트 분석부(370)는 이벤트 정보를 분석하기 위하여, 단위시간별로, 또는 기 설정된 이벤트 발생시간까지의 시간동안 수집된 이벤트 셋을 연속되는 수집시간에 따라 연결하고, 연결된 이벤트 셋으로부터 단위 이벤트를 검출할 수 있다. 그리고, 검출된 단위 이벤트 각각에 대한 특징을 분석할 수 있다. 일 실시예에서, 이벤트 셋은 특정 이벤트 발생시 수집 및 전송될 수도 있다.In one embodiment, in order to analyze the event information, the
여기에서, 단위시간별 이벤트 셋은 설정된 시간동안 수집되어 전송된 이벤트 정보의 집합을 의미할 수 있다. 단위시간별 이벤트 셋을 연결하는 것은 수집 시간이 연속되는 이벤트 셋을 링크하는 작업일 수 있다. 아울러, 단위 이벤트를 검출하는 것은 설정된 구분자에 기초하여 링크된 이벤트 셋을 설정된 단위로 구분하는 작업일 수 있다.Here, the event set for each unit time may mean a set of event information collected and transmitted for a set time. The linking of the event sets for each unit time may be an operation of linking the event sets of which the collection time is continuous. In addition, detecting a unit event may be a task of classifying a linked event set into a set unit based on a set identifier.
키 이벤트를 분석하는 경우를 예로 들면, 이벤트 분석부(370)는 단위시간별로 수집된 키 입력셋에서 수집시간이 연속되는 이벤트 셋으로서 추출하여 연결하고, 연결된 입력셋으로부터 단어 단위의 입력열을 단위 이벤트로 구분하여 검출하며, 구분된 단어 단위의 입력열 각각에 대한 특징을 분석할 수 있다.Taking the case of analyzing a key event as an example, the
여기에서, 단위시간별 입력셋은 설정된 시간동안 수집된 키 입력의 집합을 의미할 수 있다. 단위시간별 입력셋을 연결하는 것은 수집 시간이 연속되는 입력셋을 링크하는 작업일 수 있다. 단어 단위의 입력열을 구분하는 것은 설정된 구분자에 기초하여 링크된 입력셋을 설정된 단위, 예를 들어 단어 또는 어절 단위로 구분하는 작업일 수 있다. 일 실시예에서, 단어 단위의 입력열을 구분하기 위한 구분자는 엔터키 입력 이벤트, 스페이스 바 입력 이벤트, 쉼표(,) 또는 구두점(.) 입력 이벤트, 언어 변환키 입력 이벤트 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.Here, the input set for each unit time may mean a set of key inputs collected for a set time. The linking of the input sets for each unit time may be an operation of linking the input sets in which the collection time is continuous. Separating the input string in units of words may be an operation of dividing the linked input set into units of a set, for example, a unit of a word or a word, based on a set delimiter. In one embodiment, the delimiter for separating the input string in units of words may include at least one of an enter key input event, a space bar input event, a comma (,) or punctuation (.) input event, and a language conversion key input event. However, the present invention is not limited thereto.
일 실시예에서, 이벤트 분석부(370)는 키 이벤트 정보로부터 사용자가 입력에 어려움을 갖는 단어 단위의 입력열을 분석할 수 있다.In an embodiment, the
예를 들어, 사용자가 문서 편집 어플리케이션에서 '입력 어려움의 최저값 '(값 뒤에 스페이스바 입력된 상태)이라는 문자열을 타이핑 하고자 였으나, 타이핑 중 '값'의 입력에 오류가 발생하여'갑'스페이스바를 입력한 후, 뒤에서부터 스페이스바와 '갑'을 모두 백스페이스로 삭제하고 '값'으로 입력(값 뒤에 스페이스바는 입력하지 않음)한 경우를 설명한다.For example, in a document editing application, the user tried to type the string 'the lowest value of input difficulty' (the space bar is entered after the value), but an error occurred in the input of 'value' during typing, and the user entered the space bar for 'A'. Then, a case in which the space bar and 'a' are deleted with backspace from the back and input as 'value' (the space bar after the value is not input) will be described.
이 경우, 이벤트 분석부(370)는 사용자 단말기(100)로부터 'ㅇㅣㅂㄹㅕㄱ_ㅇㅓㄹㅕㅇㅜㅁㅇㅡㅣ_ㅊㅗㅣㅈㅓㄱㅏㅂ_[bs][bs]ㄱㅏㅂㅅ'(_는 스페이스바, [bs]는 백스페이스)의 입력셋을 수신할 수 있다.In this case, the
사용자 단말기(100)가 이벤트 분석 서버(300)로 이벤트 정보를 전송하는 시간 간격에 따라, 사용자의 입력셋은 둘 또는 그 이상으로 분할되어 전송될 수 있다. 예를 들어, 상기 입력셋은 제 1 단위시간별 입력셋 'ㅇㅣㅂㄹㅕㄱ_ㅇㅓㄹㅕ'와 제 2 단위시간별 입력셋 'ㅇㅜㅁㅇㅡㅣ_ㅊㅗㅣㅈㅓㄱㅏㅂ_[bs][bs]ㄱㅏㅂㅅ'으로 나뉘어 수집될 수 있다.According to a time interval at which the
이벤트 분석부(370)는 수집 시간이 연속되는 단위시간별 입력셋을 연결하기 위하여 단위시간별 입력셋의 선두 또는 말미에 설정된 구분자가 포함되어 있는지 확인하고, 구분자가 포함되지 않은 경우 수집 시간이 연속되는 단위시간별 입력셋을 링킹할 수 있다.The
즉, 제 1 단위시간별 입력셋 'ㅇㅣㅂㄹㅕㄱ_ㅇㅓㄹㅕ'의 말미에 스페이스바, 엔터키, 쉼표 또는 구두점 입력 정보가 수집되지 않았고, 제 2 단위시간별 입력셋 'ㅇㅜㅁㅇㅡㅣ_ㅊㅗㅣㅈㅓㄱㅏㅂ_[bs][bs]ㄱㅏㅂㅅ'의 선두에 스페이스 바, 엔터키, 쉼표 또는 구두점 입력 정보가 수집되지 않았으므로, 'ㅇㅓㄹㅕ'와 'ㅇㅜㅁㅇㅡㅣ'는 연결이 되어야 할 대상인 것으로 판단할 수 있다.That is, no space bar, enter key, comma, or punctuation input information was collected at the end of the first input set for each unit time 'ㅇㅣㅇㅇㅇㅇㅓㄹㅕ', and the second input set for each unit time 'ㅇTTㅁㅇㅡㅣ_ch Since the space bar, enter key, comma, or punctuation input information at the beginning of ㅗㅣj ㅓaa _[bs][bs]aa o ' was not collected, 'ㅇㅓㅕ' and 'ㅇTTㅁㅇㅡㅣ' are not connected. It can be judged as what should be the target.
입력 셋이 연결된 후에는 연결된 입력셋에 포함된 구분자에 기초하여 단어 단위의 입력열을 검출할 수 있다. 이 때, 수정 과정에서 삭제된 것으로 판단되는 스페이스바, 엔터키, 쉼표 또는 구두점은 무시하는 것도 가능하다.After the input sets are connected, the input string in units of words may be detected based on the delimiter included in the connected input set. In this case, it is also possible to ignore the space bar, the enter key, commas, or punctuation which are determined to be deleted during the editing process.
따라서, 상기 제 1 및 제 2 단위시간별 입력셋을 연결한 결과로부터,Therefore, from the result of connecting the first and second input sets for each unit time,
(1)'ㅇㅣㅂㄹㅕㄱ_'(1)'ㅇㅣㅇㅇㅇㅇㅇㅇ_'
(2)'ㅇㅓㄹㅕㅇㅜㅁㅇㅡㅣ_'(2)'ㅇㅓㅕㅇTTㅁㅇㅡㅣ_'
(3)'ㅊㅗㅣㅈㅓㄱㅏㅂ_[bs][bs]ㄱㅏㅂㅅ'의 세 개의 단어 단위 입력열이 검출될 수 있다.(3) A three-word unit input string of 'cㅗㅣjㅓaaf_[bs][bs]aaaw' may be detected.
이 중 세 번째 단어 단위 입력열의 경우에 대해 설명한다. 오류 없이 키 입력을 수행하는 경우 9회의 키 입력 이벤트가 발생하지만, 오입력에 의해 15회의 키 입력 이벤트가 발생하였으며, 이에 따라 정상 입력의 경우보다 긴 시간이 소요될 가능성이 높음을 알 수 있다.Among these, the case of the third word unit input string will be described. When key input is performed without error, 9 key input events occur, but 15 key input events occur due to erroneous input. Accordingly, it can be seen that it is highly likely to take a longer time than in the case of normal input.
여기에서, 특정 단어 단위 입력열의 입력소요시간은 예를 들어 당해 입력열의 첫번째 키입력 정보에 부기된 시간(예를 들어 15:33:01:07)에서 마지막 키입력 정보에 부기된 시간(예를 들어 15:33:02:17)까지의 시간 간격(1초 10)으로 파악할 수 있다.Here, the input time required for the input string for a specific word unit is, for example, the time (for example, 15:33:01:07) appended to the last key input information to the time (for example, 15:33:01:07) appended to the first key input information of the input string. For example, it can be identified as the time interval (1 second 10) up to 15:33:02:17).
이벤트 분석부(370)는 특정 문서, 전체 문서, 또는 일정 시간 수집된 데이터베이스에 포함된 단어 단위 입력열을 검출한 후, 각 단어단위 입력열의 사용빈도, 키 입력 이벤트 발생 횟수, 입력 소요 시간을 포함하는 특징에 따라 단어 단위 입력열을 클러스터링할 수 있다.The
그리고, 클러스터링 결과에 기초하여, 사용자가 어려움을 겪는 입력열을 분류할 수 있다.And, based on the clustering result, an input string that the user has difficulty with may be classified.
일 실시예에서, 이벤트 분석부(370)는 다양한 클러스터링 방식, 예를 들어 K-Means, 계층적 응집형 클러스터링, 비계층적 클러스터링 방식 중에서 선택된 방법에 기초하여 입력 이벤트를 분류할 수 있다.In an embodiment, the
따라서, 자주 사용하면서도 입력에 어려움을 갖는 단어 단위 입력열을 분류하여, 사용자가 이러한 단어를 입력하는 경우 알림 신호를 출력하거나, 해당 단어의 입력 교육(연습), 자동 수정, 자동 완성, 전문가의 조언 등을 제공하여 사용자가 입력에 어려움을 겪는 단어를 보다 용이하게 입력할 수 있도록 할 수 있다.Therefore, by classifying the input string of words that are frequently used but having difficulty in input, a notification signal is output when the user inputs such a word, or input training (practice) of the corresponding word, automatic correction, automatic completion, expert advice etc. may be provided so that the user can more easily input a word having difficulty in input.
또한 복수의 사용자 단말기로부터의 입력 이벤트를 수집하는 경우, 여러 사용자들이 어떤 어플리케이션을 어떻게 사용하며 입력에 있어서 어떠한 어려움을 겪는지 분석할 수 있으므로 사용자들에게 입력 행위가 용이하도록 도움을 주는 한편, 어플리케이션의 개발 및 개선 등에 대한 데이터를 제공할 수 있다.In addition, when input events from a plurality of user terminals are collected, it is possible to analyze which applications and how many users use which applications and what difficulties they experience in input, thus helping users to easily input actions, while We can provide data on development and improvement, etc.
도 5는 일 실시예에 의한 사용자 행위 수집 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method for collecting user actions according to an embodiment.
도 5를 참조하면, 사용자 단말기(100)가 부팅 후 기동됨에 따라(S101), 이벤트 수집 에이전트(160)가 실행될 수 있다(S103).Referring to FIG. 5 , as the
이벤트 수집 에이전트(160)는 사용자 단말기(100)의 프로세스 변화, 입력 이벤트, 화면 캡쳐 이벤트가 발생하는지 감지하기 위해 모니터링을 개시하고(S105), 이벤트가 발생하면 이벤트 별로 이벤트 정보를 수집 및 저장할 수 있다(S107). 예를 들어, 이벤트 수집 에이전트(160)는 프로세스 변화 이벤트, 키 이벤트, 마우스 이벤트 및 화면 캡쳐 이벤트를 각각 수집 및 저장할 수 있다.The
일 실시예에서, 이벤트 수집 단계(S107)는 사용자 단말기(100)가 부팅되고 기동된 후 종료되기까지 발생하는 모든 이벤트, 또는 특정 프로세스나 특정 어플리케이션이 실행된 이후부터 종료될 때까지 발생하는 모든 이벤트, 예를 들어 사용자의 모든 입력 신호를 수집하는 단계일 수 있다.In one embodiment, the event collection step ( S107 ) includes all events that occur after the
이벤트 수집 에이전트(160)는 설정된 주기가 도래하거나 설정된 조건이 만족하는 경우 수집된 이벤트를 이벤트 분석 서버(300)로 전송할 수 있다(S109).The
도 6은 일 실시예에 의한 사용자 행위 분석 방법을 설명하기 위한 흐름도이다.6 is a flowchart illustrating a user behavior analysis method according to an embodiment.
사용자 단말기(100)의 이벤트 수집 에이전트(160)로부터 이벤트 정보가 전송됨에 따라, 이벤트 분석 서버(300)는 단위시간별로 수집된 이벤트 셋으로부터 수집 시간이 연속하는 이벤트 셋을 연결하고, 연결된 이벤트 셋으로부터 단위 이벤트를 검출할 수 있다. 그리고, 검출된 단위 이벤트 각각에 대한 특징을 분석할 수 있다.As event information is transmitted from the
키 이벤트를 기초로 사용자 행위를 분석하는 과정의 일 예를 도 6을 참조하여 설명하면 다음과 같다.An example of a process of analyzing a user behavior based on a key event will be described with reference to FIG. 6 .
도 6을 참조하면, 이벤트 분석 서버(300)는 단위시간별로 수집된 키 입력셋, 예를 들어 설정된 시간동안 수집된 키 입력의 집합을 추출(S201)하여 연결(S203)할 수 있다. 여기에서, 단위시간별 입력셋을 연결하는 것은 수집 시간이 연속하는 입력셋을 링크하는 작업일 수 있다.Referring to FIG. 6 , the
이벤트 분석 서버(300)는 단계 S203에서 연결한 링크된 입력셋에 포함된 구분자를 추출할 수 있다(S205). 일 실시예에서, 구분자는 엔터키 입력 이벤트, 스페이스 바 입력 이벤트, 쉼표나 구두점 입력 이벤트, 언어 변환키 입력 이벤트 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.The
이벤트 분석 서버(300)는 단계 S205에서 추출한 구분자에 기초하여 링크된 입력셋으로부터 단어 단위의 입력열을 구분할 수 있다(S207). 일 실시예에서, 단어 단위의 입력열을 구분하는 단계 S207은 링크된 입력셋을 단어 또는 어절 단위로 구분하는 단계일 수 있다.The
이후, 이벤트 분석 서버(300)는 단어 단위 입력열을 설정된 특징에 따라 클러스터링할 수 있다(S209).Thereafter, the
일 실시예에서, 단어 단위 입력열을 분석하는 단계(S209)는 각 단어단위 입력열의 사용빈도, 키 입력 횟수, 입력 소요 시간을 포함하는 특징에 따라 단어 단위 입력열을 클러스터링하는 단계 및 클러스터링 결과에 기초하여, 사용자가 입력에 어려움을 겪는 입력열을 분류하는 단계를 포함할 수 있다.In one embodiment, the step of analyzing the input string in units of words ( S209 ) includes clustering the input strings in units of words according to characteristics including the frequency of use of the input strings in units of words, the number of keystrokes, and the input time required for each word unit, and adding the results of the clustering. The method may include classifying an input string that the user has difficulty in inputting based on.
일 실시예에서, 이벤트 분석부(370)는 다양한 클러스터링 방식, 예를 들어 K-Means, 계층적 응집형 클러스터링, 비계층적 클러스터링 방식 중에서 선택된 방법에 기초하여 입력 이벤트를 분류할 수 있다.In an embodiment, the
따라서, 자주 사용하면서도 입력에 어려움을 갖는 단어 단위 입력열을 분류하여, 사용자가 이러한 단어를 입력하는 경우 알림 신호를 출력하거나, 해당 단어의 입력 교육(연습), 자동 수정, 자동 완성, 전문가의 조언 등의 피드백 정보를 제공(S211)하여 사용자가 입력에 어려움을 겪는 단어를 용이하게 입력할 수 있도록 도와줄 수 있다.Therefore, by classifying the input string of words that are frequently used but having difficulty in input, a notification signal is output when the user inputs such a word, or input training (practice) of the corresponding word, automatic correction, automatic completion, expert advice By providing feedback information such as S211, it is possible to help the user to easily input a word having difficulty in input.
또한, 여러 사용자들이 어떤 어플리케이션을 어떻게 사용하며 입력에 있어서 어떠한 어려움을 겪는지 분석하는 경우, 입력방법이나 사용자 인터페이스(UI) 개선 등에 필요한 데이터를 제공할 수 있다.In addition, when several users analyze how and which applications are used and what difficulties they experience in input, data necessary for input method or user interface (UI) improvement may be provided.
이상에서는 키 입력 이벤트를 예로 들어 설명하였으나, 마우스 입력 이벤트 또한 유사한 방식으로 데이터베이스화하여 분석할 수 있음은 물론이다. 아울러, 키 입력 이벤트와 마우스 입력 이벤트가 섞여 있는 경우에도 시간 순으로 입력 이벤트를 나열하거나, 입력 인터페이스별 및 시간 순으로 입력 이벤트를 나열하고 분류할 수 있음은 자명하다.Although the key input event has been described above as an example, it goes without saying that the mouse input event can also be converted into a database and analyzed in a similar manner. In addition, it is self-evident that even when a key input event and a mouse input event are mixed, it is possible to list the input events in chronological order or to list and classify the input events by input interface and in the chronological order.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, those skilled in the art to which the present invention pertains will understand that the present invention may be embodied in other specific forms without changing the technical spirit or essential characteristics thereof. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. 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.
10 : 사용자 행위 분석 시스템
100 : 사용자 단말기
200 : 통신망
300 : 이벤트 분석 서버
160 : 이벤트 수집 에이전트10: User behavior analysis system
100: user terminal
200: communication network
300: event analysis server
160: event collection agent
Claims (24)
하나 또는 복수의 사용자 단말기와 상기 통신망을 통해 접속되어, 상기 이벤트 수집 에이전트로부터 상기 이벤트 정보를 수집하는 이벤트 분석 서버;
를 포함하고,
상기 이벤트 분석 서버는, 상기 이벤트 수집 에이전트로부터 상기 사용자 단말기에 접속된 키보드에 포함된 모든 키를 통한 입력 신호를 입력 시간에 따라 키 입력 이벤트 정보로 제공받으며,
기 설정된 단위시간 동안 또는 기 설정된 이벤트 발생시간까지의 시간동안 수집된 키 입력 신호의 집합인 키 입력셋에 수집시간이 연속되는 적어도 하나의 키 입력셋을 연결하고, 상기 연결한 입력셋으로부터 단어 단위의 입력열을 설정된 구분자에 따라 구분하여 분류하도록 구성되는 사용자 행위 분석 시스템..It is provided in the user terminal, and as the user terminal is activated, all operation information for the program by the user from the execution time to the end time of the program including the operating system and the application executed in the user terminal is collected over time. an event collection agent that generates event information and transmits it through a communication network; and
an event analysis server connected to one or more user terminals and the communication network to collect the event information from the event collection agent;
including,
The event analysis server receives, from the event collection agent, input signals through all keys included in the keyboard connected to the user terminal as key input event information according to the input time,
At least one key input set having a continuous collection time is connected to a key input set, which is a set of key input signals collected during a preset unit time or a time until a preset event occurrence time, and a word unit from the connected input set A user behavior analysis system configured to classify and classify the input string of
상기 이벤트 수집 에이전트는, 상기 사용자 단말기에서 실행되는 프로세스 변화 이벤트 정보, 상기 키보드에 의한 키 입력 이벤트 정보, 상기 사용자 단말기와 접속된 마우스에 의한 마우스 입력 이벤트 정보 및 화면 캡쳐 이벤트 정보를 수집하도록 구성되는 사용자 행위 분석 시스템.The method of claim 1,
The event collection agent is a user configured to collect process change event information executed in the user terminal, key input event information by the keyboard, mouse input event information by a mouse connected to the user terminal, and screen capture event information Behavior analysis system.
상기 이벤트 수집 에이전트는, 상기 마우스의 좌클릭, 우클릭 및 클릭 위치를 포함하는 모든 입력 정보를 입력 시간에 따라 상기 마우스 입력 이벤트 정보로 수집하도록 구성되는 사용자 행위 분석 시스템.3. The method of claim 2,
The event collection agent is configured to collect all input information including left-click, right-click, and click position of the mouse as the mouse input event information according to an input time.
상기 이벤트 수집 에이전트는, 상기 키보드 또는 상기 마우스에 의해 기 설정된 특정 이벤트가 발생하거나, 설정된 시간 주기에 따라 상기 사용자 단말기와 접속된 디스플레이의 화면을 캡쳐하여 화면 캡쳐 이벤트 정보를 수집하도록 구성되는 사용자 행위 분석 시스템.3. The method of claim 2,
The event collection agent is configured to collect screen capture event information by capturing a screen of a display connected to the user terminal according to the occurrence of a preset specific event by the keyboard or the mouse or a set time period system.
상기 이벤트 분석 서버는, 기 설정된 단위시간 동안, 또는 기 설정된 이벤트 발생시간까지의 시간동안 수집된 이벤트 정보의 집합인 이벤트 셋을 수집하고, 수집 시간이 연속되는 적어도 하나의 상기 이벤트 셋을 연결하며, 상기 연결한 이벤트 셋을 설정된 구분자에 따라 구분하여 단위 이벤트를 검출하고 분류하도록 구성되는 사용자 행위 분석 시스템.The method of claim 1,
The event analysis server collects an event set that is a set of event information collected during a preset unit time or a time up to a preset event occurrence time, and connects at least one event set having a continuous collection time, A user behavior analysis system configured to detect and classify a unit event by classifying the connected event set according to a set identifier.
상기 구분자는 엔터키 입력 이벤트, 스페이스 바 입력 이벤트, 쉼표 입력 이벤트, 구두점 입력 이벤트, 언어 변환키 입력 이벤트 중 적어도 하나를 포함하도록 구성되는 사용자 행위 분석 시스템.The method of claim 1,
The delimiter is a user behavior analysis system configured to include at least one of an enter key input event, a space bar input event, a comma input event, a punctuation input event, and a language conversion key input event.
상기 이벤트 분석 서버는 상기 단어 단위 입력열별 사용빈도, 키 입력 횟수, 입력 소요 시간을 포함하는 특징에 따라 단어 단위 입력열을 분류하도록 구성되는 사용자 행위 분석 시스템.The method of claim 1,
The event analysis server is configured to classify the input string of the word unit according to characteristics including the frequency of use, the number of times of key input, and the input required time for each input string of the word unit.
상기 이벤트 분석 서버는 상기 단어 단위 입력열별 사용빈도, 키 입력 횟수, 입력 소요 시간에 기초하여 피드백 대상 단어 단위 입력열을 검출하여, 상기 피드백 대상 단어 단위 입력열의 입력을 위한 피드백 정보를 상기 사용자 단말기로 제공하도록 구성되는 사용자 행위 분석 시스템.10. The method of claim 9
The event analysis server detects a feedback target word unit input string based on the frequency of use for each word unit input string, the number of key input, and the input required time, and transmits feedback information for input of the feedback target word unit input string to the user terminal. A user behavior analysis system configured to provide.
상기 사용자 단말기가 기동됨에 따라, 상기 이벤트 수집 에이전트가 실행되는 단계;
상기 사용자 단말기에서 실행되는 운영체제 및 어플리케이션을 포함하는 프로그램의 실행 시점부터 종료 시점까지 사용자에 의한 상기 프로그램에 대한 모든 조작 정보를 시간에 따라 수집하여 이벤트 정보를 생성하는 단계; 및
상기 이벤트 분석 서버가 상기 이벤트 정보를 제공받아 데이터베이스로 구축하는 단계; 및
상기 데이터베이스에 기초하여 상기 이벤트 정보를 분석하는 단계;
를 포함하고,
상기 분석하는 단계는, 상기 이벤트 분석 서버가 상기 이벤트 수집 에이전트로부터 상기 사용자 단말기에 접속된 키보드에 포함된 모든 키를 통한 입력 신호를 입력 시간에 따라 키 입력 이벤트 정보로 수신하는 단계;
설정된 단위시간동안 또는 기 설정된 이벤트 발생시간까지의 시간동안 수집된 키 입력 신호의 집합인 키 입력셋에 수집시간이 연속되는 적어도 하나의 키 입력셋을 연결하는 단계;
상기 연결한 입력셋으로부터 단어 단위의 입력열을 설정된 구분자에 따라 구분하는 단계; 및
상기 구분한 단어 단위의 입력열을 분류하는 단계;
를 포함하도록 구성되는 사용자 행위 분석 방법.An event collection agent provided in the user terminal to detect a process state change, a key input event, a mouse input event, and a screen capture event of the user terminal to generate event information, and an event analysis for receiving the event information from the event collection agent As a user behavior analysis method in a user behavior analysis system including a server,
executing the event collection agent as the user terminal is activated;
generating event information by collecting all operation information for the program by the user over time from the execution time to the end time of the program including the operating system and the application executed in the user terminal; and
building the event analysis server into a database by receiving the event information; and
analyzing the event information based on the database;
including,
The analyzing may include: receiving, by the event analysis server, input signals through all keys included in a keyboard connected to the user terminal from the event collection agent as key input event information according to an input time;
connecting at least one key input set having a continuous collection time to a key input set that is a set of key input signals collected during a set unit time or a time up to a preset event occurrence time;
classifying an input string in units of words from the connected input set according to a set delimiter; and
classifying the input string of the divided word unit;
User behavior analysis method configured to include.
상기 이벤트 정보를 생성하는 단계는, 상기 이벤트 수집 에이전트가 상기 사용자 단말기와 접속된 마우스의 좌클릭, 우클릭 및 클릭 위치를 포함하는 모든 입력 정보를 입력 시간에 따라 상기 마우스 입력 이벤트로 수집하는 단계를 포함하도록 구성되는 사용자 행위 분석 방법.17. The method of claim 16,
The generating of the event information includes, by the event collection agent, collecting all input information including left clicks, right clicks, and click positions of a mouse connected to the user terminal as the mouse input event according to an input time. A method of analyzing user behavior that is configured to:
상기 이벤트 정보를 생성하는 단계는, 상기 이벤트 수집 에이전트가 상기 키보드 또는 상기 마우스에 의해 기 설정된 특정 이벤트가 발생하거나, 설정된 시간 주기에 따라 상기 사용자 단말기와 접속된 디스플레이의 화면을 캡쳐하여 화면 캡쳐 이벤트를 수집하는 단계를 포함하도록 구성되는 사용자 행위 분석 방법.17. The method of claim 16,
In the step of generating the event information, the event collection agent captures the screen of the display connected to the user terminal according to the occurrence of a preset specific event by the keyboard or the mouse or a set time period to capture the screen capture event. A user behavior analysis method configured to include collecting.
상기 분석하는 단계는, 상기 이벤트 분석 서버가 기 설정된 단위시간 동안 또는 기 설정된 이벤트 발생시간까지의 시간동안 수집된 이벤트 정보의 집합인 이벤트 셋을 상기 이벤트 수집 에이전트로부터 수집하는 단계;
수집 시간이 연속되는 적어도 하나의 상기 이벤트 셋을 연결하는 단계;
상기 연결한 이벤트 셋을 설정된 구분자에 따라 구분하여 단위 이벤트를 검출하는 단계;
상기 검출한 단위 이벤트를 분류하는 단계;
를 포함하도록 구성되는 사용자 행위 분석 방법.17. The method of claim 16,
The analyzing may include: collecting, by the event analysis server, an event set, which is a set of event information collected during a preset unit time or a time up to a preset event occurrence time, from the event collection agent;
concatenating at least one set of events having consecutive collection times;
detecting a unit event by classifying the connected event set according to a set identifier;
classifying the detected unit event;
User behavior analysis method configured to include.
상기 구분자는 엔터키 입력 이벤트, 스페이스 바 입력 이벤트, 쉼표 입력 이벤트, 구두점 입력 이벤트, 언어 변환키 입력 이벤트 중 적어도 하나를 포함하도록 구성되는 사용자 행위 분석 방법.17. The method of claim 16,
The delimiter is a user behavior analysis method configured to include at least one of an enter key input event, a space bar input event, a comma input event, a punctuation input event, and a language conversion key input event.
상기 분류하는 단계는, 상기 이벤트 분석 서버가 상기 단어 단위 입력열별 사용빈도, 키 입력 횟수, 입력 소요 시간을 포함하는 특징에 따라 단어 단위 입력열을 분류하도록 구성되는 사용자 행위 분석 방법.17. The method of claim 16,
In the classifying step, the event analysis server is configured to classify the input string of the word unit according to characteristics including the frequency of use for each input string of the word unit, the number of times of key input, and the input required time.
상기 분류하는 단계는, 상기 이벤트 분석 서버가 상기 단어 단위 입력열별 사용빈도, 키 입력 횟수, 입력 소요 시간에 기초하여 피드백 대상 단어 단위 입력열을 검출하는 단계; 및
상기 피드백 대상 단어 단위 입력열의 입력을 위한 피드백 정보를 상기 사용자 단말기로 제공하는 단계;
를 포함하도록 구성되는 사용자 행위 분석 방법.24. The method of claim 23
The classifying may include: detecting, by the event analysis server, a feedback target word unit input string based on a frequency of use for each word unit input string, the number of key input, and an input required time; and
providing feedback information for input of the feedback target word unit input string to the user terminal;
User behavior analysis method configured to include.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190162976A KR102298395B1 (en) | 2019-12-09 | 2019-12-09 | System and Method for User Behavior Analysis and Agent for Collection of Event |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190162976A KR102298395B1 (en) | 2019-12-09 | 2019-12-09 | System and Method for User Behavior Analysis and Agent for Collection of Event |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210072872A KR20210072872A (en) | 2021-06-18 |
KR102298395B1 true KR102298395B1 (en) | 2021-09-08 |
Family
ID=76623277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190162976A KR102298395B1 (en) | 2019-12-09 | 2019-12-09 | System and Method for User Behavior Analysis and Agent for Collection of Event |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102298395B1 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102546023B1 (en) * | 2021-12-06 | 2023-06-22 | 신현준 | A method of analyzing work process |
WO2023106650A1 (en) * | 2021-12-06 | 2023-06-15 | 신현준 | Operation process analysis method |
KR102613084B1 (en) * | 2021-12-08 | 2023-12-11 | 호남대학교 산학협력단 | Electronic apparatus for detecting intrusion and method thereof |
KR102651400B1 (en) * | 2023-08-25 | 2024-03-26 | 주식회사 수주아이티씨 | Solution construction system through metadata analysis and feedback provision |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100722975B1 (en) * | 2004-10-01 | 2007-05-30 | 삼성전자주식회사 | Device and method for displaying event in wireless terminal |
KR100720137B1 (en) * | 2005-02-21 | 2007-05-18 | 삼성전자주식회사 | Device and method for processing notice of function invitation in wireless terminal |
-
2019
- 2019-12-09 KR KR1020190162976A patent/KR102298395B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
Bingchuan Yuan 외, 'A Cloud-Based Mobile Data Analytics Framework: Case Study of Activity Recognition Using Smartphone', IEEE, 2014.04. |
방재근 외, '모바일 기반 라이프로그를 이용한 사용자 행동 예측 기법', 한국산업정보학회 논문지, 2014. |
Also Published As
Publication number | Publication date |
---|---|
KR20210072872A (en) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102298395B1 (en) | System and Method for User Behavior Analysis and Agent for Collection of Event | |
US10613838B2 (en) | Systems and methods for discovering automatable tasks | |
US9928155B2 (en) | Automated anomaly detection service on heterogeneous log streams | |
US10514974B2 (en) | Log analysis system, log analysis method and program recording medium | |
US20200184072A1 (en) | Analysis device, log analysis method, and recording medium | |
CN111026470B (en) | System and method for verification and conversion of input data | |
US20180075235A1 (en) | Abnormality Detection System and Abnormality Detection Method | |
KR102589649B1 (en) | Machine learning decision-guiding techniques for alerts generated in monitoring systems | |
US20090064000A1 (en) | SYSTEMS, METHODS AND COMPUTER PRODUCTS TO AUTOMATICALLY COMPLETE a GUI TASK | |
JP4395761B2 (en) | Program test support apparatus and method | |
CN102257487B (en) | Analyzing events | |
JP4381436B2 (en) | Scenario generation device and scenario generation program | |
US10175954B2 (en) | Method of processing big data, including arranging icons in a workflow GUI by a user, checking process availability and syntax, converting the workflow into execution code, monitoring the workflow, and displaying associated information | |
JP2008310582A (en) | Maintenance work support apparatus and system, and maintenance work support method | |
US9043760B2 (en) | Creating dynamic interactive views from trace events for performing deterministic performance analysis | |
US20160092804A1 (en) | Apparatus for improving operations of information processing system, and method therefor | |
CN103262049A (en) | Method of gathering data of an event-ike nature from electronic forms | |
US8335757B2 (en) | Extracting patterns from sequential data | |
EP3987408A1 (en) | Regular expression generation using span highlighting alignment | |
JP2017045238A (en) | Information processing system, information processing device, and information processing method | |
WO2007007410A1 (en) | Message analyzing device, message analyzing method and message analyzing program | |
KR20210036167A (en) | Test automation of application | |
Li et al. | Converting unstructured system logs into structured event list for anomaly detection | |
US9965379B1 (en) | Cross-platform API test flow synthesizer | |
US10083106B2 (en) | Computer aided bug reporting system for GUI applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |