KR20200025408A - Method and server system for providnig real-time offer by using real-time event processing - Google Patents

Method and server system for providnig real-time offer by using real-time event processing Download PDF

Info

Publication number
KR20200025408A
KR20200025408A KR1020180102698A KR20180102698A KR20200025408A KR 20200025408 A KR20200025408 A KR 20200025408A KR 1020180102698 A KR1020180102698 A KR 1020180102698A KR 20180102698 A KR20180102698 A KR 20180102698A KR 20200025408 A KR20200025408 A KR 20200025408A
Authority
KR
South Korea
Prior art keywords
event
offer
real
time
rule
Prior art date
Application number
KR1020180102698A
Other languages
Korean (ko)
Inventor
이재균
손인권
박승현
김정섭
권오성
송영민
김동하
Original Assignee
주식회사 호텔신라
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 호텔신라 filed Critical 주식회사 호텔신라
Priority to KR1020180102698A priority Critical patent/KR20200025408A/en
Publication of KR20200025408A publication Critical patent/KR20200025408A/en

Links

Images

Classifications

    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5061Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the interaction between service providers and their network customers, e.g. customer relationship management
    • H04L41/5064Customer relationship management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation

Abstract

Provided are a method and a server system for providing a real-time offer by using real-time event processing. In order to solve the technical task of the present invention, the method for providing a real-time offer according to an embodiment of the present invention can comprise the steps of: capturing a packet transmitted and received between a user terminal and a web server; generating an event stream by using the captured packet; analyzing the event stream to determine whether an event rule is fulfilled; and providing a real-time offer when the event rule is fulfilled.

Description

실시간 이벤트 처리를 이용한 실시간 오퍼 제공 방법 및 서버 시스템{METHOD AND SERVER SYSTEM FOR PROVIDNIG REAL-TIME OFFER BY USING REAL-TIME EVENT PROCESSING}Real-time offer providing method and server system using real-time event processing {METHOD AND SERVER SYSTEM FOR PROVIDNIG REAL-TIME OFFER BY USING REAL-TIME EVENT PROCESSING}

본 발명은 실시간 이벤트 처리를 이용한 실시간 오퍼 제공 방법 및 서버 시스템에 관한 것이다. 보다 자세하게는, 패킷 캡쳐 및 실시간 이벤트 처리 기술을 이용하여 실시간으로 고객 데이터를 분석하여 실시간 오퍼를 제공할 수 있는 방법 및 서버 시스템에 관한 것이다.The present invention relates to a method and server system for providing a real time offer using real time event processing. More specifically, the present invention relates to a method and server system capable of providing real-time offers by analyzing customer data in real time using packet capture and real-time event processing techniques.

온라인 마케팅의 일환으로서, 사용자가 웹 사이트에서 정보 탐색, 상품 방문 등을 하는 과정에서 발생하는 로그를 분석하여, 광고, 마케팅 또는 웹 사이트 내에서 제공되는 프로모션을 제공하는 웹 사이트가 증가하고 있다.As part of online marketing, more and more web sites are provided that provide advertisements, marketing, or promotions provided in web sites by analyzing logs generated by a user while searching for information or visiting a product on a web site.

이를 위하여 웹 사이트 운영자는 운영 중인 웹 사이트에 방문한 사용자 수, 사용자가 어떤 경로를 통해 웹 사이트에 처음 방문하였는지에 대한 방문 경로, 검색 광고를 시작한 경우 몇 명이나 검색 광고를 경유하여 웹 사이트에 들어왔는지 여부, 웹 사이트 내부에서 어떤 카테고리, 상품 또는 서비스가 가장 인기가 있는지 여부 등을 분석하여 광고, 마케팅 또는 프로모션에 적극 활용하여 웹 사이트를 활성화시키고 매출을 극대화시키고 있다.To do this, the web site operator can tell you how many people visited your website, where they came from, and how many people entered your website if you started a search ad. It analyzes which categories, products or services are most popular within the website, and actively utilizes them in advertising, marketing or promotions to activate the website and maximize sales.

상기와 같이 사용자에게 최적화된 웹 사이트를 운영하고 매출을 극대화시키기 위해서는 정확한 웹로그 분석이 요구된다. 웹 사이트 방문자들이 웹 사이트에 접속하면 웹 서버는 로그를 남기게 되는데, '웹로그 분석'이란 웹로그를 분석하여 누가 언제, 어디서, 어떠한 경로로, 어디를 방문하였는지를 분석하는 것을 의미한다.As described above, accurate web analytics is required to operate a web site optimized for users and maximize sales. When a web site visitor accesses a web site, the web server leaves a log. 'Analytics' refers to analyzing web logs and analyzing who, when, where and how.

웹로그 분석 방법에는 웹 사이트 운영자가 웹 서버에서 생성되는 웹로그 파일을 직접 분석하는 방식과 웹 페이지에 스크립트를 삽입하여 웹로그를 분석하는 방식이 있다. 웹 서버에서 생성되는 로그 파일을 직접 분석하는 방식은 웹 사이트 운영자가 웹 서버를 직접 관리하고 있고, 웹 서버에 축적되는 수많은 로그를 분석할 기술이 있는 경우에 한해 사용 가능하므로 소규모 업체가 적용하기 어렵다.There are two methods of analyzing web analytics: the web site operator analyzes the weblog file generated on the web server directly and inserts a script into the web page to analyze the weblog. Direct analysis of log files generated by a web server is difficult to apply to small businesses because it can be used only if the web site administrator directly manages the web server and has the technology to analyze the numerous logs accumulated on the web server. .

이에 비해 스크립트 방식은 웹 페이지(예를 들어 .html 페이지)에 간단한 스크립트(예를 들어 javascript)를 삽입하여, 스크랩트 실행에 의해 전송되는 웹로그를 분석할 수 있고, 구글 어낼리틱스(Google Analytics) 등 다양한 분석 도구가 제공되고 있으므로 소규모 업체는 물론 대규모 업체에서도 사용하기 용이하다.In contrast, the script method inserts a simple script (e.g. javascript) into a web page (e.g. .html page) to analyze the weblog sent by the execution of the scrap, and uses Google Analytics (Google Analytics). It is easy to use in small companies as well as large companies because various analysis tools are provided.

스크립트 방식의 웹로그 분석 과정을 간단히 설명하면, 웹 브라우저를 통해 사용가 웹 사이트에 방문하면 웹 페이지 소스에 설치된 스크립트가 실행되고, 스크립트에 의해 사용자와 관련된 웹로그가 전송되면 웹로그를 일정한 룰에 의해 분석하여 광고, 마케팅, 프로모션 등을 제공한다. 웹 사이트 운영자는 사용자의 웹로그를 수집하여 분석하고, 분석된 웹로그를 시각화 도구 등을 이용하여 통계 데이터로 변환하여 마케팅 부서에게 제공함으로써, 마케팅 부서의 마케팅 활동을 보조할 수 있다.Briefly describing the scripted web analytics process, when a user visits a web site through a web browser, the script installed in the web page source is executed, and when the web log related to the user is sent by the script, the web log is transmitted according to a certain rule. Analyze and provide advertising, marketing and promotions. The web site operator can assist the marketing activities of the marketing department by collecting and analyzing the user's weblogs and converting the analyzed weblogs into statistical data by using visualization tools and the like.

구글 어낼리틱스(Google Analytics) 등과 같은 웹로그 분석 도구는 사용자의 유입 경로나 위치, 검색어, OS/브라우저 등 사용자의 특성을 정의할 수 있는 모든 종류의 정보들을 이용하여 잠재 고객의 성향 및 선호 상품/서비스를 분석한다. 사용자의 개인 정보 및 거래 내역을 저장하고 있는 운영DB의 데이터를 이용할 경우에는 사용자의 연령, 성별, 거주지, 구매 내역, 구매 금액, 구매 추이 변동 등에 관한 정보들도 같이 데이터로 활용할 수 있다.Analytics tools like Google Analytics use all kinds of information to define a user's characteristics, such as the user's funnel, location, search terms, OS / browser, etc. Analyze the service. When using the data of the operation DB that stores the user's personal information and transaction history, information about the user's age, gender, place of residence, purchase history, purchase price, purchase trend changes can also be used as data.

웹로그 분석시 수집하는 사용자 정보는 크게 사용자 특성과 사용자 행동으로 나눌 수 있다. 사용자 특성은 방문자가 어떤 네트워크, 기기, 컴퓨팅 환경을 가지고 있는가, 성별, 연령대, 지역은 어디인가, 구매 내역은 어떤 것인가에 관한 정보이고, 사용자 행동은 웹 사이트 내에서의 사용자의 행동을 추적하는 것, 예컨대 웹 사이트 내 행동은 다른 페이지로의 이동, 클릭, 전환, 이탈, 재방문 등에 관한 정보이다.User information collected during analytics can be largely divided into user characteristics and user behavior. User characteristics are information about what network, device, and computing environment the visitor has, gender, age range, where is the purchase history, and what is the purchase history. User behavior is tracking user behavior on the website. For example, behavior within a website is information about moving to another page, clicking, converting, leaving, returning to, and so on.

웹을 통해 제품이나 서비스를 판매하는 웹 사이트들은 웹로그 분석을 통해 판매 수익을 제고할 수 있다. 정확한 웹로그 분석이 가능하다면 전환 가능성이 높은 잠재 고객을 분류하고 타게팅하여 마케팅 역량을 집중할 수 있기 때문이다.Websites that sell products or services over the web can drive sales revenue through analytics. If accurate analytics is available, you can focus your marketing capabilities by segmenting and targeting potential converts.

구글, 다음, 네이버 등의 인터넷 서비스 제공 회사에서 제공하는 웹로그 분석 프로그램을 이용하여 방문자의 웹로그를 수집하고 광고 또는 마케팅 목적으로 사용할 수 있다. 웹로그 분석 프로그램은 응용프로그램처럼 .exe 파일을 실행시켜 자신의 컴퓨터에 설치하는 방식이 아니라 모든 기능이 웹상에서 구현되며, 자체 웹로그 분석 프로그램 또는 구글 등의 인터넷 회사에서 제공되는 웹로그 분석 프로그램과 관련된 스크립트를 웹 사이트에 삽입하면 웹로그 추적이 시작된다.By using web analytics programs provided by Internet service providers such as Google, Daum, and Naver, we can collect visitors' web logs and use them for advertising or marketing purposes. The analytics program is not executed by installing .exe file like an application program and installed on your own computer, but all the functions are implemented on the web, and the analytics program provided by your own analytics program or internet company such as Google Inject the relevant script into your website to start tracking your logs.

스크립트는 크게 추적 스크립트와 전환 스크립트로 구성되는데, 추적 스크립트는 모든 페이지마다 삽입되어야 하고, 전환 스크립트는 운영자가 목표로 하는 페이지에 삽입되어야 한다. 예를 들면 전환 스크립트는 쇼핑몰의 결제 완료 페이지나 컨설팅 웹 사이트의 상담 폼(form) 전송 완료 페이지 등에 삽입될 수 있다.The script is largely composed of a tracking script and a conversion script, which must be inserted on every page, and the conversion script must be inserted on the page targeted by the operator. For example, the conversion script may be inserted into a payment completion page of a shopping mall or a consultation form transmission completion page of a consulting website.

웹 사이트 이용에 따른 이력 관리 등을 위해서는 웹로그 데이터를 웹로그 분석기로 추출 및 분석하여 웹 사용 현황에 대한 정보를 추출한 후 DB에 저장하여야 한다. 웹로그 추출 및 분석은 각 사이트의 회원에 대한 분석과 이용자들이 입력하는 정보를 분석하여 향상된 웹서비스를 수행하기 위하여 필요하다.In order to manage the history according to the use of the web site, web log data should be extracted and analyzed with a web log analyzer to extract information on the web usage status and then stored in the DB. Web log extraction and analysis is necessary to perform improved web service by analyzing the members of each site and the information inputted by users.

그러나 스크립트 등을 이용하여 웹로그를 수집한 다음 수집한 웹로그를 이용하여 분석을 하게 되면 실시간성이 떨어지게 된다. 일단 웹로그를 쌓은 후에 웹로그 분석을 통하여 분석 결과에 따른 오퍼를 사용자가 보는 화면에 제공하게 되므로, 웹로그 수집으로부터 사용자에게 오퍼를 제공하기까지 많은 시간이 소요된다. 그 결과 신속하게 구매할 품목을 결정하고 간편결제 등을 통해 곧바로 결제를 수행하는 최근의 사용자들의 소비 성향을 적절히 충족시킬 수가 없다.However, if we collect the weblog using scripts and then analyze it using the collected weblog, the real-time will be degraded. Once the web logs are accumulated, the offer is provided on the user's viewing screen through the web analytics. Therefore, it takes a lot of time from the web log collection to the offer to the user. As a result, it is not possible to adequately meet the consumption tendency of recent users who quickly decide items to purchase and make payments through simple payment.

예를 들어 웹 사이트의 하루 방문자 수가 5000명 정도이고, 한 사용자가 초당 1kB의 로그를 쌓으며, 평균 방문 시간이 30분이라고 할 때, 하루 동안 쌓이는 로그의 양은 엄청나며, 하루 동안 쌓인 로그를 추출 및 분석하여 DB에 저장하기 위해 걸리는 시간 또한 상당할 수밖에 없다. 불필요한 로그의 필터링, 잘못 쌓인 로그의 클렌징 작업 또한 로그의 양에 비례하여 늘어날 수밖에 없고, 이 모든 시간을 감안하면 현재 운영되는 웹 사이트의 분석 결과를 얻어 마케팅 전략을 수립하여 실제 웹 사이트에 반영하기까지 수일의 시간이 소요되게 된다. 그러나 웹 사이트에서의 주 방문 페이지는 매시각 발생하는 이슈, 포탈 사이트의 실시간 검색어 등에 따라 하루에도 여러 번 변동하게 되므로, 웹로그 분석이 완료되기까지 수일을 기다린 후 웹 사이트의 콘텐츠 또는 사용자에게 제공되는 오퍼를 변경하게 되면 사용자에게 필요한 정보를 주는 것이 아니라 사용자에게 불필요한 정보를 주게 되어 도리어 사용자의 불편을 초래하게 된다.For example, if your website has about 5000 visitors per day, one user logs 1kB per second, and the average visit time is 30 minutes, the amount of logs you accumulate during the day is huge, The time it takes to analyze and store in DB is also considerable. Unnecessary filtering of logs and cleansing of incorrectly stacked logs are also required to increase in proportion to the amount of logs. All this time, the analysis results of the current website are obtained, the marketing strategy is established, and reflected on the actual website. This will take several days. However, the main landing page on your website will fluctuate several times a day, depending on the issues that occur every hour, real-time search queries on your portal site, etc. Changing the offer does not give the user the necessary information, but gives the user unnecessary information, causing inconvenience to the user.

상기와 같은 이유로 웹로그를 실시간으로 추출 및 분석하여 웹 사이트에 실시간으로 반영하기 위한 기술의 필요성이 대두되고 있다.For the same reason, the necessity of technology for extracting and analyzing web logs in real time and reflecting them in real time has emerged.

한국공개특허 제10-2008-0096004호 (2008.10.30. 공개)Korea Patent Publication No. 10-2008-0096004 (Published October 30, 2008)

본 발명이 해결하고자 하는 기술적 과제는, 사용자의 웹 사이트 내에서의 행동 패턴을 실시간으로 분석하여 실시간으로 사용자에게 웹 사이트 내에서의 오퍼를 제공하는 방법을 제공하는 것이다. 일례로, 쇼핑몰 내에서 고객의 구매 패턴, 열람 패턴, 기존의 구매 내역 등을 실시간으로 분석하여, 고객에게 상품 오퍼, 쿠폰 오퍼, 적립금 오퍼, 할인 프로모션, 제휴 서비스 링크, 진입페이지 변경, 사용자 인터페이스 변경, 레이아웃 변경 등을 실시간으로 오퍼할 수 있다.The technical problem to be solved by the present invention is to provide a method for analyzing a behavior pattern in a user's web site in real time to provide a user with an offer in the web site in real time. For example, by analyzing the customer's purchase patterns, browsing patterns, existing purchase history in real time in the mall, product offers, coupon offers, reserve offers, discount promotions, affiliate service links, entry page changes, user interface changes to customers , Layout changes and the like can be offered in real time.

본 발명이 해결하고자 하는 다른 기술적 과제는, 사용자의 웹 사이트 내에서의 행동 패턴을 실시간으로 분석함에 있어서 사용자 단말과 웹 서버 사이에서 송수신되는 패킷을 캡쳐하여 사용자의 행동 패턴을 실시간으로 수집하는 방법을 제공하는 것이다. 일례로, 사용자 단말과 웹 서버 사이에서 송수신되는 패킷을 캡쳐한 후 이를 이용하여 이벤트 스트림을 생성하고, 이벤트 스트림을 기 설정된 기준에 따라 필터링하여 분석함으로써 사용자의 행동 패턴을 실시간으로 분석할 수 있다.Another technical problem to be solved by the present invention is a method of collecting a user's behavior pattern in real time by capturing packets transmitted and received between the user terminal and the web server in analyzing the behavior pattern in the user's web site in real time. To provide. For example, after capturing packets transmitted and received between the user terminal and the web server, the event stream may be generated using the same, and the event stream may be filtered and analyzed according to preset criteria to analyze the user's behavior pattern in real time.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들이 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the above-mentioned technical problems, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법은, 사용자 단말과 웹 서버 간 송수신되는 패킷을 캡쳐하는 단계, 상기 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 단계, 상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계 및 상기 이벤트 룰 충족시 실시간 오퍼를 제공하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a method of providing a real time offer, the method comprising: capturing a packet transmitted and received between a user terminal and a web server, generating an event stream using the captured packet, The method may include analyzing an event stream to determine whether an event rule is satisfied and providing a real-time offer when the event rule is satisfied.

일 실시예에서, 상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 이벤트 스트림에 포함된 이벤트 중 기 설정된 필터링 기준을 충족하는 이벤트를 필터링하는 단계, 및 상기 필터링된 이벤트 스트림을 분석하여 상기 이벤트 룰 충족 여부를 판단하는 단계를 포함할 수 있다.In an embodiment, the determining of whether the event rule is satisfied may include: filtering an event meeting a predetermined filtering criterion among events included in the event stream, and analyzing the filtered event stream to satisfy the event rule. It may include determining whether or not.

일 실시예에서, 상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 이벤트 스트림 및 운영DB의 데이터를 분석하여 상기 이벤트 룰 충족 여부를 판단하는 단계를 포함할 수 있다.In an embodiment, the determining whether the event rule is satisfied may include analyzing the event stream and the operation DB data to determine whether the event rule is satisfied.

일 실시예에서, 상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 이벤트 스트림 및 운영DB를 복제한 복제DB의 데이터를 분석하여 상기 이벤트 룰 충족 여부를 판단하는 단계를 포함할 수 있다.In an embodiment, the determining of whether the event rule is satisfied may include analyzing the event stream and data of a replica DB that duplicates the operation DB to determine whether the event rule is satisfied.

일 실시예에서, 상기 실시간 오퍼를 제공하는 단계 다음에, 새로운 이벤트 룰을 자동으로 생성하는 단계를 더 포함하되, 상기 새로운 이벤트 룰을 자동으로 생성하는 단계는, 복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 수집하는 단계, 상기 수집된 복수개의 이벤트 스트림 중 기 설정된 비율 이상의 이벤트 스트림이 공통적으로 가지는 패턴을 분석하는 단계 및 상기 패턴을 이용하여 상기 새로운 이벤트 룰을 생성하는 단계를 포함할 수 있다.In one embodiment, after the providing of the real-time offer, further comprising the step of automatically generating a new event rule, the step of automatically generating a new event rule, a plurality of received from a plurality of user terminals The method may include collecting an event stream, analyzing a pattern common to event streams having a predetermined ratio among the collected plurality of event streams, and generating the new event rule using the pattern.

상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 실시간 오퍼 제공 방법은, 기 설정된 조건을 충족하는 사용자 단말의 입력을 전송하는 스크립트를 실행하는 단계, 상기 스크립트에 의해 전송된 상기 사용자 단말의 입력을 이용하여 이벤트 스트림을 생성하는 단계, 상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계 및 상기 이벤트 룰 충족시 실시간 오퍼를 제공하는 단계를 포함할 수 있다.The real-time offer providing method according to another embodiment of the present invention for solving the technical problem, the step of executing a script for transmitting the input of the user terminal that satisfies a predetermined condition, of the user terminal transmitted by the script Generating an event stream using an input, analyzing the event stream to determine whether an event rule is satisfied, and providing a real-time offer when the event rule is satisfied.

상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 서버 시스템은, 사용자 단말에게 웹 페이지를 제공하는 웹 서버, 상기 사용자 단말과 상기 웹 서버 간 송수신되는 패킷을 캡쳐하는 패킷 캡쳐부 및 상기 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하고, 상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하며, 상기 이벤트 룰 충족 여부 판단 결과를 상기 웹 페이지에게 전송하는 실시간 이벤트 처리부를 포함하되, 상기 웹 서버는 상기 이벤트 룰 충족시 상기 사용자 단말에게 실시간 오퍼를 제공할 수 있다.The server system according to another embodiment of the present invention for solving the technical problem, a web server for providing a web page to the user terminal, a packet capture unit for capturing packets transmitted and received between the user terminal and the web server and the capture And a real time event processor for generating an event stream using the received packet, analyzing the event stream to determine whether the event rule is satisfied, and transmitting a result of determining the event rule to the web page. When the event rule is satisfied, a real time offer may be provided to the user terminal.

상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 사용자 단말과 웹 서버 간 송수신되는 패킷을 캡쳐하는 인스트럭션, 상기 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 인스트럭션, 상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 인스트럭션 및 상기 이벤트 룰 충족시 실시간 오퍼를 제공하는 인스트럭션을 포함할 수 있다.Computing device according to another embodiment of the present invention for solving the above technical problem, includes a memory for loading a computer program executed by the processor and storage for storing the computer program, the computer program Is an instruction for capturing a packet transmitted / received between a user terminal and a web server, an instruction for generating an event stream using the captured packet, an instruction for analyzing the event stream to determine whether an event rule is satisfied, and an event rule. It may include instructions that provide a real-time offer.

본 발명의 일 실시예에 의하면, 사용자의 웹 사이트 내에서의 행동 패턴을 실시간으로 분석하여 사용자에게 웹 사이트 내에서의 오퍼를 제공함으로써, 매시각 변동하는 사용자의 성향을 즉각적으로 반영하여 웹 사이트 내에서 사용자에게 시의적절하고 필요한 정보를 제공할 수 있다. 그를 통해 사용자의 웹 사이트 재방문률을 상승시키고, 매출 확대의 효과도 얻을 수 있다.According to an embodiment of the present invention, by analyzing the behavioral pattern in the user's web site in real time to provide the user with an offer in the web site, by reflecting the user's tendency to change every hour within the web site Can provide users with timely and necessary information. This can increase the return rate of the user's website and increase sales.

본 발명의 다른 실시예에 의하면, 사용자의 웹 사이트 내에서의 행동 패턴을 실시간으로 분석함에 있어서 사용자 단말과 웹 서버 사이에서 송수신되는 패킷을 캡쳐하여 사용자의 행동 패턴에 대한 기록을 실시간으로 수집함으로써, 기존의 스크립트 방식에 비해 실시간성이 향상된 사용자 분석을 수행할 수 있다. 그를 통해 사용자의 반응을 확인하고 피드백하기까지의 딜레이를 감소시키고, 즉각적인 피드백을 통해 사용자의 만족도를 향상시킬 수 있다.According to another embodiment of the present invention, by analyzing the behavior patterns in the user's web site in real time by capturing packets transmitted and received between the user terminal and the web server by collecting a record of the user's behavior pattern in real time, User analysis can be performed with improved real-time compared to the existing script method. This reduces delays in checking and feedbacking the user's response and improves the user's satisfaction through immediate feedback.

본 발명의 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들이 본 발명의 기술분야에서 발휘될 수 있을 것이다.The effect of the present invention is not limited to the above-mentioned effects, and other effects, which are not mentioned, may be exerted in the technical field of the present invention.

도 1은 종래의 웹로그 분석 시스템을 예시한 도면이다.
도 2는 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 기본 구성을 예시한 도면이다.
도 3은 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성을 예시한 도면이다.
도 4는 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템의 기본 구성을 예시한 도면이다.
도 5는 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 이벤트 감지 타이밍을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 이벤트 타입의 속성을 예시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 개별 이벤트의 예를 예시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 이벤트 스트림 및 이벤트 프로세서를 예시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 이벤트 스트림에서, 이벤트 타입 이름(Type Name)에 따른 이벤트 필터링 과정을 예시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 이벤트 스트림에서, 이벤트 속성(Attribute)에 따른 이벤트 필터링 과정을 예시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 이벤트 스트림에서, 타임 윈도우(Time Window)에 따른 이벤트 필터링 과정을 예시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법을 예시한 순서도이다.
도 14는 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법을 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
1 is a diagram illustrating a conventional web analytics system.
2 is a diagram illustrating a basic configuration of a real-time analytics system according to a first embodiment of the present invention.
3 is a diagram illustrating an extended configuration of a real-time analytics system according to a first embodiment of the present invention.
4 is a diagram illustrating the basic configuration of a real-time web analytics system according to a second embodiment of the present invention.
5 is a diagram illustrating an extended configuration of a real-time web analytics system according to a second embodiment of the present invention.
6 is a diagram illustrating an event detection timing according to an embodiment of the present invention.
7 is a diagram illustrating an attribute of an event type according to an embodiment of the present invention.
8 is a diagram illustrating an example of an individual event according to an embodiment of the present invention.
9 is a diagram illustrating an event stream and an event processor according to an embodiment of the present invention.
FIG. 10 is a diagram illustrating an event filtering process according to an event type name in an event stream according to an embodiment of the present invention.
11 is a diagram illustrating an event filtering process according to an event attribute in an event stream according to an embodiment of the present invention.
12 is a diagram illustrating an event filtering process according to a time window in an event stream according to an embodiment of the present invention.
13 is a flowchart illustrating a method of providing a real-time offer according to an embodiment of the present invention.
14 is a hardware block diagram of an exemplary computing device that can implement a method of providing a real-time offer according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and methods for achieving them will be apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various forms, and only the embodiments are intended to complete the disclosure of the present invention, and the general knowledge in the art to which the present invention pertains. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms used in the present specification (including technical and scientific terms) may be used as meanings that can be commonly understood by those skilled in the art. In addition, terms that are defined in a commonly used dictionary are not ideally or excessively interpreted unless they are specifically defined clearly. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In this specification, the singular forms also include the plural unless specifically stated otherwise in the phrases.

본 명세서에서 사용되는 '포함한다(comprises)' 또는 '포함하는(comprising)' 이라는 표현은 언급된 구성/단계/동작 외의 다른 구성/단계/동작의 존재 또는 추가를 배제하지 않는다.The expression 'comprises' or 'comprising' as used herein does not exclude the presence or addition of any other configuration / step / operation other than the configuration / step / operation mentioned.

이하, 본 명세서에서는 설명의 편의를 위하여 여러 종류의 웹 사이트 중 온라인 쇼핑몰을 예로 들어 웹로그 분석에 대하여 설명한다. 다만, 본 발명의 기술적 사상 또는 권리범위가 온라인 쇼핑몰으로 한정되는 것은 아니며, 본 발명의 기술적 사상 또는 권리범위는 고객이 인터넷 등의 네트워크를 통해 접속하여 서비스 또는 상품을 제공 받는 모든 종류의 웹 사이트에 적용될 수 있음을 명심하여야 한다.Hereinafter, for the convenience of description, the web analytics will be described using an online shopping mall as an example among various types of web sites. However, the technical spirit or scope of the present invention is not limited to an online shopping mall, and the technical spirit or scope of the present invention may be applied to any kind of web site where a customer is provided with a service or a product through a network such as the Internet. It should be borne in mind that this may apply.

본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 설명한다.Prior to the description herein, some terms used in this specification will be described in detail.

본 발명이 속하는 기술 분야에서 '웹 서버(WS: Web Server)'란, 인터넷 상에서 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고, .html 문서와 같은 웹 페이지들을 전송하는 역할을 하는 서버를 의미한다. 간단히 말하면 HTTP 요청에 따라 서버에 저장되어 있는 적절한 웹 페이지를 찾아 클라이언트에게 전달하는 것이다. 클라이언트가 웹 서버에 요청을 하면, 웹 서버는 클라이언트의 요청에 따른 웹 콘텐츠(.html, .png, .css 등)를 제공한다. 즉, 웹 서버는 클라이언트의 요청을 기다리고, 요청에 대한 콘텐츠를 만들어서 응답하는 역할을 한다. 웹 서버가 제공하는 콘텐츠는 HTTP 프로토콜을 통해 클라이언트의 웹 브라우저로 전송되고, 웹 서버가 처리하지 못하는 작업은 웹 응용 서버로 전달하여 웹 응용 서버 단에서 어플리케이션 실행을 통해 처리되도록 한다. 웹 서버 관련 프로그램으로는 Apache, IIS, nginx, GWS 등이 있다.In the technical field to which the present invention pertains, 'Web server (WS)' refers to a server that receives an HTTP request from a web browser client on the Internet and transmits web pages such as .html documents. In a nutshell, the HTTP request finds the appropriate web page stored on the server and delivers it to the client. When a client makes a request to a web server, the web server provides web content (.html, .png, .css, etc.) according to the client's request. In other words, the web server waits for a request from a client and creates a response to the request. The content provided by the web server is transmitted to the client's web browser through the HTTP protocol, and the tasks that the web server cannot process are delivered to the web application server so that the web application server side processes the application. Web server related programs include Apache, IIS, nginx, and GWS.

본 발명이 속하는 기술 분야에서 '웹 응용 서버(WAS: Application Server)'란, 인터넷 상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어를 의미한다. 웹 응용 서버는 Servlet, ASP, JSP, PHP 등의 웹 언어로 작성된 웹 애플리케이션을 서버단에서 실행한 후 실행 결과값을 사용자에게 넘겨주고, 사용자의 웹 브라우저는 웹 응용 서버로부터 수신한 결과를 해석하여 화면에 표시해 주게 된다. 웹 응용 서버 관련 프로그램으로는 WebLogic, GlassFish, WebSphere, Resin, JBoss, Tomcat, JRun, Zeus, Interstage 등이 있다.In the technical field to which the present invention belongs, the term 'web application server (WAS)' refers to middleware that executes an application to a user computer or a device through HTTP over the Internet. The web application server executes a web application written in a web language such as Servlet, ASP, JSP, PHP, etc. on the server side and passes the execution result to the user. The user's web browser interprets the result received from the web application server. Will be displayed on the screen. Web application server related programs include WebLogic, GlassFish, WebSphere, Resin, JBoss, Tomcat, JRun, Zeus, and Interstage.

본 발명이 속하는 기술 분야에서 'CEP(Complex Event Processing, 실시간 이벤트 처리 기술)'란, 수많은 이벤트에서 의미 있는 이벤트를 찾아내어 필터링하고 분석하는 기술을 의미한다. 구체적으로 CEP란, 1) 개별 이벤트, 2) 동일한 속성의 개별적 이벤트들이 순차적으로 연속되어 발생하는 이벤트 스트림, 3) 동종 이벤트 스트림과 연관되는 다른 다수의 이벤트 스트림의 형태로 생산되고 있는 실시간성 이벤트 데이터의 흐름과, 이들 흐름에 숨겨져 있는 의미 있는 가치를 이벤트 발생시점에 즉각 해석하여 비즈니스에 반영하는 데이터 처리 기술을 의미한다. CEP 관련 프로그램으로는 Storm, Esper, siddhi CEP, Spring XD, Jboss Droos 등이 있다.In the technical field to which the present invention pertains, 'CEP (Complex Event Processing)' refers to a technology for finding, filtering, and analyzing meaningful events in numerous events. Specifically, CEP is a real-time event data that is produced in the form of 1) individual events, 2) an event stream in which individual events of the same attribute occur sequentially, and 3) a number of other event streams associated with homogeneous event streams. It is a data processing technology that immediately interprets the flow of data and meaningful values hidden in these flows and reflects them to the business at the time of event occurrence. CEP-related programs include Storm, Esper, siddhi CEP, Spring XD, and Jboss Droos.

본 발명이 속하는 기술 분야에서 '타겟 마케팅'이란 타겟 고객군을 추출하여 상품 판매의 목적으로 수시로 타겟 캠페인을 전개하는 것을 의미한다. 타겟 마케팅을 위해 많은 기업들이 고객 정보를 수집하거나, 해킹하거나, 불법으로 정보를 구입하여 사용하고 있다. 고객은 기업들의 사냥 타겟이 되어 버리고, 시도때도 없이 발송되는 SMS, E-mail 등으로 스트레스를 받고 있다.In the technical field to which the present invention belongs, 'target marketing' refers to extracting a target customer group and developing a target campaign at any time for the purpose of selling products. Many companies collect, hack, or illegally purchase and use customer information for targeted marketing. Customers are becoming a hunting target for companies, and are stressed by SMS, E-mail, etc. that are sent out at any time.

본 발명이 속하는 기술 분야에서 'EBM(Event Based Marketing, 이벤트 기반 마케팅)이란, 고객에게 발생한 다양한 이벤트를 감지하여 각 이벤트 상황 별로 차별화된 마케팅 또는 고객 관리 활동을 유도하는 기술을 의미한다. EBM은 기존의 타겟 마케팅 기법보다 고객의 반응율을 더 높일 수 있어 각광을 받고 있다. 진정한 CRM이란 고객에게 가치를 제공하고 그 대가로 고객이 비용을 지불하게끔 만드는 것이다. 따라서 기업들은 기존의 타겟 마케팅에서 벗어나 고객들의 경험과 필요를 제대로 이해하고, 각 이벤트 별로 고객에게 필요한 니즈를 찾아 1:1로 오퍼를 제공할 필요가 있다. 이벤트의 감지는 해당 이벤트가 발생되었는지에 대한 여부나, 고객이 그동안 유지하던 패턴의 변화 등을 추적하여 감지하여야 하며, 이하 본 명세서에서는 EBM에서 이벤트를 감지하고 분석하는 방법에 대한 설명을 구체적인 예를 통하여 설명하도록 한다.In the technical field of the present invention, 'EBM (Event Based Marketing)' refers to a technology that detects various events occurring to customers and induces differentiated marketing or customer management activities for each event situation. EBM is in the spotlight because it can increase the response rate of customers more than the existing target marketing techniques. True CRM is about delivering value to your customers and making them pay for them. Therefore, companies need to understand the customer's experiences and needs from the existing target marketing, and find out the needs of each customer and provide the offer 1: 1. The detection of the event should be detected by tracking whether or not the corresponding event has occurred, or the pattern change that the customer has maintained so far, and in the following specification, a description of how to detect and analyze the event in the EBM will be described. Explain through.

본 명세서에서 웹 서비스 제공부란, 사용자 단말에게 웹 서비스를 제공하는 구성요소를 의미한다. 웹 서비스 제공부는 웹 서버, 웹 응용 서버 또는 웹 서버와 웹 응용 서버의 결합으로 구성될 수 있으며, 사용자 단말로부터 HTTP 프로토콜을 통해 요청을 받아, 웹 서버에 저장된 .html 문서, 이미지 등의 정적 콘텐츠, 웹 응용 서버의 어플리케이션에서 처리되는 동적 콘텐츠 등을 전송한다.In the present specification, the web service providing unit means a component that provides a web service to a user terminal. The web service provider may be configured as a web server, a web application server, or a combination of a web server and a web application server. The web service provider may receive a request from the user terminal through the HTTP protocol, and may include static content such as .html documents and images stored in the web server, Send dynamic content processed in the application of the web application server.

본 명세서에서 운영DB란, 웹 사이트 운영을 위해 필요한 각종 데이터를 저장하고 있는 데이터베이스를 의미한다. 쇼핑몰을 예로 들면, 고객의 개인 정보(ID, 비밀번호, 주소 등), 주문 내역, 구매 내역, 상품 재고, 가격 정보, 판매 정보, 할인 정보 등 쇼핑몰 운영에 필요한 각종 데이터가 운영DB에 저장될 수 있다. 각 데이터는 세부 항목으로 나뉘어 저장될 수 있다. 예컨대 주문 내역은 입금 전 주문 내역, 상품 준비 중인 주문 내역, 배송 준비 중인 주문 내역, 배송 중인 주문 내역, 배송 완료된 주문 내역, 취소 내역, 교환 내역, 반품 내역, 환불 내역 등의 세부 항목으로 나뉘어 저장될 수 있다. 입금 및 배송이 모두 완료되면 주문 내역의 항목은 구매 내역으로 저장되어, 고객의 실제 구매 상품을 쉽게 검색할 수 있도록 데이터베이스를 구성할 수도 있다.In the present specification, the operation DB means a database that stores various data necessary for website operation. As an example of a shopping mall, various data necessary for operating the shopping mall, such as personal information (ID, password, address, etc.), order history, purchase history, product inventory, price information, sales information, and discount information of the customer, may be stored in the operation DB. . Each data may be divided into detailed items and stored. For example, the order history is divided into detailed items such as order history before payment, order history ready, order history ready for delivery, order history delivered, order completed, cancellation, exchange, return, and refund. Can be. When both the deposit and delivery are completed, the items in the order history are stored as a purchase history, and the database can be configured to easily search for the actual purchase of the customer.

본 명세서에서 복제DB란, 운영DB를 복제한 데이터베이스를 의미한다. 복제DB는 운영DB의 데이터가 손상되는 것을 방지하기 위한 데이터 백업 목적, 운영DB의 부하를 경감시키기 위한 부하 경감 목적 등으로 사용될 수 있다. 본 명세서에서 설명할 복제DB는 실시간 이벤트 분석 및 처리시 운영DB가 아닌 복제DB에 접속하여 이벤트 룰 충족 여부를 판단하도록 함으로써, 이벤트 처리로 인해 운영DB에 추가적인 부하가 발생하는 것을 방지하는 것을 목적으로 하나, 데이터 백업 등의 부수적인 효과도 발생한다.In the present specification, the replica DB means a database that replicates an operation DB. Replica DB can be used for data backup purpose to prevent the damage of the operation DB, load reduction for reducing the load of the operation DB. Replication DB to be described in this specification is to prevent the occurrence of additional load on the operation DB due to event processing by determining whether to meet the event rules by connecting to the replication DB, not the operation DB during real-time event analysis and processing. However, side effects such as data backup also occur.

본 명세서에서 패킷 캡쳐부란, 사용자 단말과 웹 서비스 제공부 사이에서 송수신되는 패킷을 중간에서 캡쳐하는 구성요소를 의미한다. 패킷 캡쳐부는 패킷 캡쳐가 시작되면 사용자 단말과 웹 서비스 제공부 사이에서 송수신되는 패킷의 번호(No), 시간(Time), 패킷을 보낸 주소(Source), 패킷 도착 주소(Destination), 프로토콜(Protocol) 종류, 패킷의 길이(Length), 패킷 바디(Body) 등을 캡쳐하여 웹로그 수집부로 전송한다. 패킷 캡쳐와 관련된 프로그램으로는 Wireshark, Fiddler 등이 있다. 특히 Fiddler는 HTTP 웹 패킷 캡쳐에 널리 사용되고 있다.In the present specification, the packet capture unit refers to a component for capturing a packet transmitted and received between the user terminal and the web service provider in the middle. When the packet capture unit starts capturing, the packet number (No), time, address (Source), packet destination address (Destination), and protocol of the packet transmitted and received between the user terminal and the web service provider. Type, length of packet (Length), packet body (Capody) is captured and transmitted to the weblog collection unit. Programs related to packet capture include Wireshark and Fiddler. In particular, Fiddler is widely used for HTTP web packet capture.

본 명세서에서 웹로그 수집부란, 패킷 캡쳐부에서 캡쳐된 패킷 또는 웹 서비스 제공부에서 스크립트에 의해 전송되는 웹로그를 수집하여 저장하는 구성요소를 의미한다. 규모가 크고 방문자가 많은 웹 사이트의 경우 하루 동안 쌓이는 로그의 양은 엄청나므로, 방대한 웹로그 데이터의 저장 및 처리를 위해 웹로그 수집부는 Hadoop 등과 같은 대용량 스토리지를 이용하여 구현하는 것이 바람직하다. 다만, 이미 이벤트 처리가 끝난 웹로그를 삭제하거나, 일정한 주기로 저장소에 저장된 웹로그를 삭제하는 방식을 이용할 경우, NAS(Network Attached Storage), HDD(Hard Disk Drive), SDD(Solid State Drive) 등의 일반적인 저장 매체를 이용하여 웹로그 수집부를 구현하는 것도 가능하다.In the present specification, the weblog collection unit refers to a component that collects and stores a weblog transmitted by a script in a packet captured by a packet capture unit or a web service provider. For large and many visitors, the amount of logs accumulated during the day is huge. Therefore, it is desirable to implement a web log collector using a large amount of storage such as Hadoop to store and process a large amount of web log data. However, if you delete a web log that has already been processed for an event, or delete a weblog stored in a storage at regular intervals, such as NAS (Network Attached Storage), HDD (Hard Disk Drive), and Solid State Drive (SDD) It is also possible to implement a weblog collection unit using a common storage medium.

본 명세서에서 대용량 데이터 분석부란, 시스템 간 대용량 데이터 전달을 효율적으로 처리, 관리 및 모니터링하기 위한 구성요소를 의미한다. 대용량 데이터 분석부는 복잡한 시스템 간의 대규모 데이터 이동을 보다 쉽고 안전하게 수행하고, Dataflow의 체계적인 관리를 가능하게 한다. 구체적으로 대용량 데이터 분석부는, 실시간 데이터 전송에 필요한 각종 유용한 기능을 제공하고, 시스템 간의 데이터 이동 및 데이터 내용을 쉽게 확인할 수 있는 사용자 인터페이스를 제공하며, 강력한 자원과 권한 관리를 통한 멀티테넌시(Multi-tenant, 자원 공유)를 지원한다. 대용량 데이터 분석을 위한 다양한 툴이 제공되고 있으며, 예를 들어 대용량 데이터 분석을 위하여 하둡(Hadoop)을 사용할 수 있다. 또한, 하둡에 저장된 데이터를 쉽게 처리할 수 있는 데이터웨어하우스(DW) 패키지로서 하이브(Hive)를 사용할 수 있다.In the present specification, the large data analysis unit refers to a component for efficiently processing, managing, and monitoring large data transfer between systems. The large-capacity data analysis unit makes it easier and safer to move large amounts of data between complex systems and enables systematic management of the dataflow. Specifically, the large-capacity data analysis unit provides various useful functions necessary for real-time data transmission, provides a user interface for easily checking data movement and data contents between systems, and provides multi-tenancy through powerful resource and authority management. tenant, resource sharing). Various tools are provided for analyzing large amounts of data. For example, Hadoop can be used for analyzing large amounts of data. You can also use Hive as a data warehouse (DW) package that can easily process data stored in Hadoop.

본 명세서에서 이벤트 스트림이란, 실시간으로 발생하는 데이터를 시간 순서로 정리 및 정제하여 생성된 실시간으로 흘러가고 있는 이벤트들로 구성된 데이터 스트림을 의미한다. 금융 시장 거래에 있어서의 주가의 변동 등이 대표적인 이벤트 스트림에 해당한다. 본 발명의 일 실시예에서는 사용자 단말과 웹 서버 사이에서 송수신되는 실시간 HTTP 패킷 중에서 기 설정된 이벤트 타입에 해당하는 패킷을 수집하여 시간 순서로 정리 및 정제함으로써 이벤트 스트림을 생성한다. 이벤트 스트림을 생성하는 과정은, 다양한 소스의 스트리밍 데이터와 개별 데이터 요소들을 통합하고, 데이터를 정규화/정리하며, 누락 데이터 문제나 포맷 별로 전송 속도 및/또는 프로토콜이 상이한 문제 등을 처리하는 과정이 포함될 수 있다. 이벤트 스트림을 이용하면 실시간으로 데이터 흐름을 파악할 수 있으므로, 본 발명의 일 실시예에서의 이벤트 스트림은 실시간 이벤트 처리에 사용된다.In the present specification, the event stream refers to a data stream composed of events flowing in real time generated by arranging and purifying data occurring in real time in a chronological order. The fluctuations in stock prices in financial market transactions are typical event streams. In an embodiment of the present invention, an event stream is generated by collecting and refining packets corresponding to a predetermined event type among real-time HTTP packets transmitted and received between a user terminal and a web server in order of time. The process of generating an event stream may include integrating streaming data from various sources and individual data elements, normalizing / cleaning the data, and handling missing data problems or problems with different transmission speeds and / or protocols for each format. Can be. Since the event stream can be used to grasp the data flow in real time, the event stream in one embodiment of the present invention is used for real-time event processing.

본 명세서에서 실시간 이벤트 처리부란 CEP와 유사한 기능을 수행하며, 각 사용자 단말에서 발생한 이벤트 스트림을 이용하여 사용자의 행동 패턴을 실시간으로 분석하고, 사용자의 취향, 임박한 문제점, 보완하여야 할 사항, 제공하여야 할 오퍼 등을 분석하여 웹 서비스 제공부 또는 현업부서 단말에 제공하는 역할을 수행한다. 실시간 이벤트 처리부는 잠재적 사기 징후를 탐지하거나, 맞춤형 마케팅 오퍼를 사용할 기회를 포착하여 즉각적으로 사용자의 주의를 환기시키기 위한 용도로 사용될 수 있다. 실시간 이벤트 처리부가 기 설정된 이벤트 룰을 충족하는 개별 이벤트 또는 이벤트 스트림을 탐지한 경우, 실시간 이벤트 처리부는 이벤트 룰 충족 사실을 현업부서 단말로 전송하여, 현업부서 담당자가 규정된 조치를 취하도록 유도할 수 있다. 여기에는 특정 사용자의 접속 차단, 웹 서비스 중단, 판매 조건 변경, 판매 금액 변경, 상품 재고 변경, 마케팅 오퍼 변경 등이 포함될 수 있다.In the present specification, the real-time event processing unit performs a function similar to the CEP, and analyzes a user's behavior pattern in real time by using an event stream generated in each user terminal, a user's taste, an imminent problem, a matter to be supplemented, and a provision to be provided. It analyzes offers and provides them to the web service provider or business unit terminal. Real-time event processing can be used to detect signs of potential fraud, or to capture the opportunity to use a personalized marketing offer to instantly alert the user. If the real-time event processor detects an individual event or an event stream that satisfies the preset event rule, the real-time event processor transmits the event rule fulfillment to the business unit terminal to induce the person in charge to take the prescribed action. have. This can include blocking access to specific users, interrupting Web services, changing sales terms, changing sales amounts, changing product inventories, and changing marketing offers.

본 명세서에서 사용되는 용어 중 '부(unit)' 및/또는 '모듈(module)'은 소프트웨어 내에서 특정 기능을 수행하는 함수, 객체, 클래스, 모듈 등의 소프트웨어 구성요소를 의미할 수 있다. 또는 '부' 및/또는 '모듈'은, FPGA(Field Programmable Gate Array), ASIC(Application Specific Integrated Circuit) 등 특정 기능을 수행하기 위한 하드웨어 구성요소를 의미할 수도 있다. 그렇지만 '부' 및/또는 '모듈'은 소프트웨어 또는 하드웨어 구성요소에 한정되는 것은 아니다. '부' 및/또는 '모듈'은 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수도 있으며, 또는 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현될 수도 있다.As used herein, the term 'unit' and / or 'module' may refer to a software component such as a function, an object, a class, or a module that performs a specific function in the software. Alternatively, the “unit” and / or “module” may mean a hardware component for performing a specific function, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). However, the 'parts' and / or 'modules' are not limited to software or hardware components. The 'unit' and / or 'module' may be configured to reside in an addressable storage medium, or may be configured to execute one or more processors. The functions provided in the above components may be implemented by more subdivided components, or may be implemented as one component that performs a specific function by combining a plurality of components.

이하, 도면들을 참조하여 본 발명의 실시예들을 설명한다.Hereinafter, embodiments of the present invention will be described with reference to the drawings.

도 1은 종래의 웹로그 분석 시스템을 예시한 도면이다.1 is a diagram illustrating a conventional web analytics system.

도 1에 나타난 것과 같이, 종래의 웹로그 분석 시스템은 웹 서비스 제공부(110), 운영DB(120), 웹로그 수집부(130) 및 시각화부(140)를 포함한다.As shown in FIG. 1, the conventional web analytics system includes a web service provider 110, an operation DB 120, a weblog collector 130, and a visualization unit 140.

종래의 웹로그 분석 시스템은 사용자 단말로부터 요청을 수신하여 웹 서비스를 제공하고, 사용자 단말로부터 수신한 요청을 수집하여 사용자 행동 데이터 등의 통계 정보를 생성하고 시각화부(140)에서 시각화하여 현업부서 단말에게 표시함으로써, 현업부서 담당자가 웹 사이트를 수정할 수 있도록 하고 있다.The conventional web analytics system receives a request from a user terminal to provide a web service, collects a request received from the user terminal, generates statistical information such as user behavior data, and visualizes it in the visualization unit 140. In this case, the person in charge of the business unit can modify the website.

종래의 웹로그 분석 시스템에서 웹 서비스 제공부(110)는 웹 사이트를 통해 사용자 단말에게 상품 구입, 상담, 멀티미디어 콘텐츠 제공 등의 웹 서비스를 제공한다. 웹 서비스 제공부(110)는 웹 서버 및/또는 웹 응용 서버로 이루어질 수 있으며, 웹 서버 및/또는 웹 응용 서버에는 사용자가 해당 웹 사이트에 방문하였을 때 사용자 단말의 웹 브라우저에 표시될 웹 페이지가 저장되어 있다.In the conventional web analytics system, the web service provider 110 provides a web service such as product purchase, consultation, and multimedia content provision to a user terminal through a web site. The web service providing unit 110 may include a web server and / or a web application server, and the web server and / or the web application server may include a web page to be displayed in a web browser of the user terminal when the user visits the website. It is stored.

현업부서 담당자는 웹 서버 및/또는 웹 응용 서버에 저장된 웹 페이지에 사용자 행동 데이터를 수집하기 위한 스크립트, 예컨대 javascript를 삽입한다. 사용자가 웹 사이트에 접속한 후 스크립트가 설치된 웹 페이지를 방문하면 웹 페이지에 저장된 스크립트가 실행되면서 스크립트에 의해 정의된 조건을 충족하는 사용자 행동 데이터가 웹로그 수집부(130)로 전송된다.Business personnel insert scripts, such as javascript, to collect user behavior data in web pages stored on web servers and / or web application servers. When the user accesses the web site and visits the web page where the script is installed, the script stored in the web page is executed and the user behavior data satisfying the condition defined by the script is transmitted to the weblog collection unit 130.

상기한 종래의 방법에 의하면 사용자의 웹 사이트 이용 패턴을 파악하기 위하여 웹 페이지에 별도의 스크립트를 삽입한 후, 스크립트 실행을 통해 수집된 데이터를 배치 처리(batch processing)하여 사용자 행동 데이터를 분석해야 하였다. 즉, 종래의 방법은 사용자 행동 데이터를 실시간으로 분석하는 것이 아니라, 기 설정된 양의 데이터 수집이 완료된 후에 수집된 데이터를 일괄적으로 처리하는 방식을 사용하였다.According to the conventional method described above, in order to identify a user's web site usage pattern, a separate script should be inserted into a web page, and the user behavior data should be analyzed by batch processing the data collected by executing the script. . That is, the conventional method does not analyze user behavior data in real time, but employs a method of collectively processing the collected data after a predetermined amount of data collection is completed.

배치 처리는 '특정 시간'에, '대량의 데이터'를, '일괄적으로' 처리하는 특징이 있으므로, 배치 처리를 통하여 웹 사이트 내부에서의 오퍼, 예를 들어 상품 오퍼, 쿠폰 오퍼, 적립금 오퍼, 할인 프로모션, 제휴 서비스 링크 등을 제공하게 되면, 실시간 처리가 불가능하고, 사용자의 행동 후 최소 1일 이상의 갭이 발생하게 된다. 또한 이와 같은 스크립트 기반의 사용자 행동 데이터는 사용자의 주문 내역 및 구매 내역 데이터와 연계가 불가하여, 상세 활동 이력과 연계한 오퍼 제공이 어려운 문제가 있다.Batch processing is characterized by processing 'bulk data' and 'bulk' at a 'specific time', so that offers within the website, such as product offers, coupon offers, reserve offers, Providing discount promotions, affiliate service links, etc., real-time processing is impossible and a gap of at least one day occurs after the user's actions. In addition, such script-based user behavior data cannot be linked with the user's order history and purchase history data, which makes it difficult to provide an offer in connection with a detailed activity history.

도 2는 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 기본 구성을 예시한 도면이다. 도 2에 예시된 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 하나 이상의 서버로 구현될 수 있으며, 도 2의 각 구성요소는 서버의 구성요소일 수 있다. 2 is a diagram illustrating a basic configuration of a real-time analytics system according to a first embodiment of the present invention. The real-time analytics system according to the first embodiment of the present invention illustrated in FIG. 2 may be implemented as one or more servers, and each component of FIG. 2 may be a component of the server.

도 2에 나타난 것과 같이, 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 웹 서비스 제공부(210), 운영DB(220), 패킷 캡쳐부(230), 패킷 수집부(240) 및 실시간 이벤트 처리부(250)를 포함한다. 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 사용자 단말과 웹 서비스 제공부(210) 사이에서 송수신되는 패킷을 캡쳐하여 사용자 행동 데이터를 분석하는 특징이 있다.As shown in FIG. 2, the real-time web analytics system according to the first embodiment of the present invention includes a web service provider 210, an operation DB 220, a packet capture unit 230, a packet collector 240, and The real time event processor 250 is included. The real-time web analytics system according to the first embodiment of the present invention has a feature of analyzing user behavior data by capturing packets transmitted and received between the user terminal and the web service provider 210.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 웹 서비스 제공부(210)는 웹 사이트를 통해 사용자 단말에게 상품 구입, 상담, 멀티미디어 콘텐츠 제공 등의 웹 서비스를 제공한다. 웹 서비스 제공부(210)는 웹 서버 및/또는 웹 응용 서버로 이루어질 수 있으며, 웹 서버 및/또는 웹 응용 서버에는 사용자가 해당 웹 사이트에 방문하였을 때 사용자 단말의 웹 브라우저에 표시될 웹 페이지가 저장되어 있다. 바람직하게, 본 발명의 제1 실시예에 따른 웹 서비스 제공부(110)는 웹 서버로 구현될 수 있다.In the real-time web analytics system according to the first embodiment of the present invention, the web service provider 210 provides a web service such as product purchase, consultation, and multimedia content provision to a user terminal through a web site. The web service providing unit 210 may include a web server and / or a web application server, and the web server and / or web application server may include a web page to be displayed in a web browser of the user terminal when the user visits the corresponding web site. It is stored. Preferably, the web service providing unit 110 according to the first embodiment of the present invention may be implemented as a web server.

도 1을 통해 설명한 종래의 방법과는 달리 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 웹 페이지에 사용자 행동 데이터 수집을 위한 별도의 스크립트가 삽입되어 있지 않다는 차이점이 있다. 물론 패킷 캡쳐되는 데이터가 매우 많고 정제되어 있지 않기 때문에 분석 목적에 부합하는 정확한 데이터 수집을 위하여 별도의 스크립트를 웹 페이지에 저장할 수도 있으나, 기본적으로는 웹 페이지에 저장된 스크립트가 아닌 패킷 캡쳐를 통해 사용자 행동 데이터가 수집된다. Unlike the conventional method described with reference to FIG. 1, the real-time analytics system according to the first embodiment of the present invention has a difference in that a separate script for collecting user behavior data is not inserted into a web page. Of course, since the packet captured data is very large and unrefined, a separate script can be stored in the web page for accurate data collection to meet the analysis purpose.But basically, user action is made through packet capture rather than the script stored in the web page. Data is collected.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 운영DB(220)는 웹 서비스 운영 및 제공을 위해 필요한 고객의 개인 정보, 주문 내역, 구매 내역, 상품 재고, 가격 정보, 판매 정보, 할인 정보 등을 저장하고 있다. 웹 서비스 제공부(210)는 운영DB(220)로부터 웹 서비스 제공에 필요한 각종 데이터를 수신하여 사용자 단말에게 전송한다.In the real-time analytics system according to the first embodiment of the present invention, the operation DB 220 is a customer's personal information, order history, purchase history, product inventory, price information, sales information, discount required for the operation and provision of web services. Information is stored. The web service provider 210 receives various data necessary for providing a web service from the operation DB 220 and transmits the data to the user terminal.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 패킷 캡쳐부(230)는 사용자 단말과 웹 서비스 제공부(210) 사이에서 송수신되는 패킷을 중간에서 캡쳐한다. 패킷 캡쳐부(230)는 사용자 단말과 웹 서비스 제공부(210) 사이에서 송수신되는 패킷의 번호, 시간(Time), 패킷을 보낸 주소(Source), 패킷 도착 주소(Destination), 프로토콜(Protocol)의 종류, 패킷의 길이(Length), 패킷 바디(Body) 등을 캡쳐하여 패킷 수집부(240)로 전송한다. 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 패킷 캡쳐부(230)가 캡쳐하는 패킷은 HTTP 트랜잭션 과정에서 전송되는 HTTP 웹 패킷일 수 있다.In the real-time web analytics system according to the first embodiment of the present invention, the packet capture unit 230 captures packets transmitted and received between the user terminal and the web service provider 210 in the middle. The packet capture unit 230 includes a packet number, a time, a source, a packet destination address, and a protocol of a packet transmitted and received between the user terminal and the web service provider 210. Type, length (Length), packet body (Body) of the packet is captured and transmitted to the packet collector 240. In the real-time web analytics system according to the first embodiment of the present invention, the packet captured by the packet capture unit 230 may be an HTTP web packet transmitted in the HTTP transaction process.

HTTP 웹 패킷은 HTTP 프로토콜을 통해 웹 서버와 클라이언트 사이에서 교환되는 패킷을 의미한다. HTTP 프로토콜을 통해 이루어지는 HTTP 트랜잭션(transaction)은 사용자 단말에 설치된 웹 브라우저가 웹 서버에 하나의 요청을 보내면 웹 서버가 요청을 처리하여 응답을 전송하는 방식으로 이루어진다. 웹 서버와 클라이언트 사이에서 이루어지는 1회의 트랜잭션을 살펴보면, 1) 사용자 단말이 웹 브라우저를 통해 웹 서버가 설치된 호스트에 연결되는 단계, 2) 사용자 단말이 웹 브라우저를 통해 요청 패킷을 생성하는 단계, 3) 사용자 단말이 웹 브라우저를 통해 요청 패킷(헤더, 데이터)을 웹 서버에게 전송하고 기다리는 단계, 4) 웹 서버가 요청 패킷을 받고 패킷을 헤더와 데이터로 분리한 후 요청을 처리하는 단계, 5) 웹 서버가 요청을 처리하고 응답 패킷을 생성하는 단계 및 6) 웹 서버가 응답 패킷을 웹 브라우저에게 전송하고 연결을 끊는 단계로 이루어진다. HTTP 프로토콜에서 수행되는 각 트랜잭션은 상호 무관하며, 웹 서버는 연속되는 각 트랜잭션을 독립적인 사건으로 다루므로, 웹 서버의 부하를 줄여 동시에 많은 수의 클라이언트를 지원할 수 있게 된다.An HTTP web packet is a packet exchanged between a web server and a client through an HTTP protocol. An HTTP transaction made through the HTTP protocol is performed by a web browser installed on a user terminal sending a request to a web server, and then the web server processes the request and transmits a response. Looking at the one-time transaction between the web server and the client, 1) the user terminal is connected to the host where the web server is installed through the web browser, 2) the user terminal generates a request packet through the web browser, 3) A user terminal transmitting and waiting for a request packet (header, data) to a web server through a web browser, 4) a web server receiving the request packet, separating the packet into headers and data, and processing a request; 5) web The server processes the request and generates a response packet, and 6) the web server sends the response packet to the web browser and disconnects. Each transaction executed in the HTTP protocol is independent of each other, and the web server treats each successive transaction as an independent event, thereby reducing the load on the web server and supporting a large number of clients at the same time.

HTTP 메시지는 크게 요청(request) 메시지와 응답(response) 메시지로 나뉜다. 요청(request) 메시지는 클라이언트에 의해 전달되어 웹 서버의 동작을 일으키는 것이고, 응답(response) 메시지는 그에 대한 웹 서버의 회신이다. HTTP 웹 패킷 중 사용자 행동과 관련이 있는 패킷은 요청(request) 메시지에 대한 패킷이다.HTTP messages are largely divided into request messages and response messages. The request message is delivered by the client to cause the web server to operate, and the response message is the web server's reply to it. Among the HTTP web packets, a packet related to user behavior is a packet for a request message.

요청(request) 메시지 패킷은 메소드(method) 필드, 호스트(host) 필드 및 요청 헤더(Request Header) 필드를 포함한다. 메소드(method) 필드는 서버 상의 동작을 일으키기 위하여 클라이언트가 웹 서버에게 전송하는 HTTP 명령어를 의미한다. 호스트(host) 필드는 요청하는 호스트에 대한 호스트명 및 포트 번호를 의미한다. 요청 헤더(Request Header)는 클라이언트가 이해할 수 있는 언어, 인코딩 방식, 압축 방식, 미디어 타입, 우선 순위 등을 지정하여 서버에게 클라이언트가 이해할 수 있는 응답을 요청하기 위하여 사용된다. 패킷 캡쳐부(230)에서 캡쳐하는 패킷의 속성 및 처리 과정에 대해서는 후술할 도 6 내지 12에서 자세히 설명한다.The request message packet includes a method field, a host field, and a request header field. The method field refers to an HTTP command that a client sends to the web server to cause an operation on the server. The host field means a host name and a port number for the requesting host. The Request Header is used to request a response that the client can understand by specifying the language, encoding method, compression method, media type, priority, etc. that the client can understand. Attributes and processing of packets captured by the packet capture unit 230 will be described in detail with reference to FIGS. 6 to 12.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 패킷 수집부(240)는 패킷 캡쳐부(230)에서 캡쳐된 패킷을 수집하여 저장한다. 방대한 패킷 데이터의 저장 및 처리를 위해 패킷 수집부(240)는 Hadoop 등과 같은 분산 저장 방식으로 구현하는 것이 바람직하나, NAS, HDD, SDD 등과 같은 스토리지, 또는 단독 서버로 구현될 수도 있다.In the real-time web analytics system according to the first embodiment of the present invention, the packet collector 240 collects and stores the packets captured by the packet capture unit 230. In order to store and process massive packet data, the packet collector 240 may be implemented in a distributed storage method such as Hadoop, but may be implemented as storage such as NAS, HDD, SDD, or a single server.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 실시간 이벤트 처리부(250)는 패킷 수집부(240)에 저장된 패킷, 또는 패킷 수집부(240)에 저장된 패킷을 이용하여 생성된 이벤트 스트림을 분석하여, 사용자의 취향, 임박한 문제점, 보완하여야 할 사항, 제공하여야 할 오퍼 등을 분석하여 웹 서비스 제공부(210) 또는 현업부서 단말에 제공한다.In the real-time web analytics system according to the first embodiment of the present invention, the real-time event processor 250 may generate an event stream generated using a packet stored in the packet collector 240 or a packet stored in the packet collector 240. By analyzing, the user's taste, impending problems, items to be supplemented, offers to be provided are analyzed and provided to the web service providing unit 210 or the business unit terminal.

실시간 이벤트 처리부(250)에서 수행되는 패킷, 또는 이벤트 스트림의 분석 과정에 대해서는 후술할 도 6 내지 12에서 자세히 설명한다.An analysis process of a packet or an event stream performed by the real time event processor 250 will be described in detail with reference to FIGS. 6 to 12.

상술한 구성을 통해, 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 사용자 단말과 웹 서비스 제공부(210) 사이에서 송수신되는 패킷을 캡쳐하여 사용자 행동 데이터를 분석함으로써, 데이터 분석 및 오퍼 제공의 실시간성을 달성할 수 있다.Through the above-described configuration, the real-time web analytics system according to the first embodiment of the present invention captures packets transmitted and received between the user terminal and the web service provider 210 to analyze user behavior data, thereby analyzing and providing data. The real time of provision can be achieved.

도 3은 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성을 예시한 도면이다. 도 3에 예시된 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 하나 이상의 서버로 구현될 수 있으며, 도 3의 각 구성요소는 서버의 구성요소일 수 있다. 3 is a diagram illustrating an extended configuration of a real-time analytics system according to a first embodiment of the present invention. The real-time analytics system according to the first embodiment of the present invention illustrated in FIG. 3 may be implemented as one or more servers, and each component of FIG. 3 may be a component of the server.

도 3에 나타난 것과 같이, 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템은 웹 서비스 제공부(210), 운영DB(220), 패킷 캡쳐부(230), 패킷 수집부(240), 실시간 이벤트 처리부(250), 복제DB(221), 대용량 데이터 분석부(241) 및 시각화부(260)를 포함할 수 있다. 도 2에 예시된 본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 기본 구성과 비교하였을 때, 확장된 구성은 복제DB(221), 대용량 데이터 분석부(241) 및 시각화부(260)가 추가되어 있다.As shown in FIG. 3, the real-time web analytics system according to the first embodiment of the present invention includes a web service provider 210, an operation DB 220, a packet capture unit 230, a packet collector 240, The real time event processor 250, the replication DB 221, a large data analysis unit 241, and a visualization unit 260 may be included. Compared with the basic configuration of the real-time analytics system according to the first embodiment of the present invention illustrated in FIG. 2, the expanded configuration includes a replica DB 221, a large data analysis unit 241, and a visualization unit 260. Is added.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성에서 복제DB(221)는 운용DB를 복제한 데이터베이스이다. 복제DB(221)는 실시간 이벤트 처리부(250)가 실시간 이벤트 처리를 위하여 운영DB(220)에 저장된 사용자 정보, 거래 내역 등을 참고하고자 할 경우, 실시간 이벤트 처리부(250)가 빈번하게 운영DB(220)에 접속하여 운영DB(220)의 부하를 증가시키는 것을 방지하기 위하여 사용된다.In the extended configuration of the real-time analytics system according to the first embodiment of the present invention, the replication DB 221 is a database that replicates the operation DB. The replication DB 221 is a real-time event processing unit 250 is frequently operated by the real-time event processing unit 250 when the real-time event processing unit 250 wants to refer to user information, transaction history, etc. stored in the operation DB 220 for real-time event processing. Is used to prevent increasing the load of the operation DB (220).

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성에서 대용량 데이터 분석부(241)는 시스템 간 대용량 데이터 전달을 효율적으로 처리, 관리 및 모니터링하기 위한 구성요소이다. 대용량 데이터 분석부(241)는 패킷 수집부(240)로부터 수신한 대용량 데이터를 통계분석으로 유형화시켜 유의미한 시나리오를 만들거나, 기존에 만들었던 이벤트 룰이 잘 맞는지 여부를 검증할 수 있다.In the extended configuration of the real-time web analytics system according to the first embodiment of the present invention, the large-capacity data analysis unit 241 is a component for efficiently processing, managing and monitoring large-scale data transmission between systems. The large-capacity data analysis unit 241 may generate a meaningful scenario by verifying the large-capacity data received from the packet collection unit 240 by statistical analysis, or verify whether or not the existing event rule fits well.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성에서 시각화부(260)는, 대용량 데이터 분석부(241)가 패킷 수집부(240)로부터 수신한 데이터를 분석한 결과를 시각화한 리포트를 생성하여 현업부서 담당자에게 제공하기 위한 구성요소이다. 패킷 수집부(240)에 저장된 데이터는 대용량 데이터 분석부(241)에서 분석된 후 시각화부(260)에서 통계, 그래프 등을 포함한 리포트(report)가 생성되어 현업부서 단말로 전송될 수 있다. 이 때 생성되는 리포트는 정형 리포트일 수도 있고, 비정형 리포트일 수도 있다. 현업부서 담당자는 리포트의 내용을 참고하여 웹 서비스 제공부(210)의 웹 서버 또는 웹 응용 서버에 저장된 웹 페이지의 구성, 제공되는 오퍼의 내용 등을 변경할 수 있다.In the expanded configuration of the real-time web analytics system according to the first embodiment of the present invention, the visualization unit 260 visualizes the result of analyzing the data received by the large-capacity data analyzer 241 from the packet collector 240. It is a component to generate a report and provide it to the field manager. After the data stored in the packet collector 240 is analyzed by the large-capacity data analyzer 241, a report including statistics, graphs, and the like may be generated by the visualization unit 260 and transmitted to the mobile terminal. The report generated at this time may be a structured report or an unstructured report. The person in charge of the business department may change the configuration of the web page stored in the web server or the web application server of the web service provider 210, the content of the offer, and the like by referring to the content of the report.

본 발명의 제1 실시예에 따른 실시간 웹로그 분석 시스템에서 실시간 이벤트 처리부(250)는 패킷 수집부(240)에 저장된 패킷, 또는 패킷 수집부(240)에 저장된 패킷을 이용하여 생성된 이벤트 스트림을 분석하여, 사용자의 취향, 임박한 문제점, 보완하여야 할 사항, 제공하여야 할 오퍼 등을 분석하여 웹 서비스 제공부(210) 또는 현업부서 단말에 제공한다. 이 때 대용량 데이터 분석부(241)에서 나온 결과가 실시간 이벤트 처리부에 연동되어 실시간 이벤트 처리부(250)에서 실시간 이벤트 룰이 실시간으로 등록되거나, 리바이즈(revise)될 수 있다.In the real-time web analytics system according to the first embodiment of the present invention, the real-time event processor 250 may generate an event stream generated using a packet stored in the packet collector 240 or a packet stored in the packet collector 240. By analyzing, the user's taste, impending problems, items to be supplemented, offers to be provided are analyzed and provided to the web service providing unit 210 or the business unit terminal. At this time, the result from the mass data analysis unit 241 may be linked with the real time event processor to register or revise the real time event rule in real time in the real time event processor 250.

실시간 이벤트 처리부(250)는 실시간 분석 결과를 바탕으로 기존에 등록된 이벤트 룰의 유효성 여부를 검증할 수 있다.The real-time event processing unit 250 may verify the validity of the event rule registered on the basis of the real-time analysis result.

예컨대 기존에 동일한 상품을 3번 봤으면 실시간 오퍼(예를 들어, 할인 프로모션)를 제공하는 이벤트 룰이 설정되어 있었다고 가정하자. 대용량 데이터 분석부(241)의 분석에 의할 때, 실제로 동일한 상품을 3번 본 사람에게 실시간 오퍼를 준 결과 구매율 상승이 일어났다면, 실시간 이벤트 처리부(250)는 기존에 등록된 이벤트 룰이 유효하다고 판단할 수 있다. 이벤트 룰이 유효한 경우, 실시간 이벤트 처리부(250)는 이벤트 룰을 유지할 수 있다.For example, suppose that if the same product has been viewed three times, an event rule for providing a real-time offer (for example, a discount promotion) has been set. According to the analysis of the large-capacity data analysis unit 241, if a purchase rate increases as a result of giving a real-time offer to a person who actually viewed the same product three times, the real-time event processing unit 250 indicates that the event rule registered in advance is valid. You can judge. If the event rule is valid, the real-time event processor 250 may maintain the event rule.

동일한 상품을 3번 본 사람에게 실시간 오퍼를 줬는데도 구매율이 그대로이거나 도리어 감소했다면 실시간 이벤트 처리부(250)는 기존에 등록된 이벤트 룰이 유효하지 않다고 판단할 수 있다. 이벤트 룰이 유효하지 않은 경우, 실시간 이벤트 처리부(250)는 이벤트 룰을 변경할 수 있다. 예컨대 실시간 이벤트 처리부(250)는 동일한 상품을 4번 본 사람에게 실시간 오퍼를 주도록 이벤트 룰을 실시간으로 자동으로 리바이즈(revise)할 수 있다.If the purchase rate is the same or decreases even when the same product is viewed three times, the real-time event processor 250 may determine that the event rule registered in advance is not valid. If the event rule is not valid, the real time event processor 250 may change the event rule. For example, the real-time event processor 250 may automatically revise the event rule in real time to give a real-time offer to a person who has seen the same product four times.

실시간 이벤트 처리부(250)는 단순히 이벤트 룰의 수치값을 변경하는 것이 아니라, 조건 판단에 사용하는 변수 자체를 변경하는 방식으로 이벤트 룰을 리바이즈할 수도 있다.The real time event processor 250 may revise the event rule by changing a variable itself used for determining a condition, instead of simply changing a numerical value of the event rule.

http 요청(request) 메시지 패킷은 'GET' 메소드, 'POST' 메소드 등을 가질 수 있다. 'GET' 메소드는 클라이언트가 서버가 가지고 있는 특정 URL의 조회를 요청하는 것이고, 'POST' 메소드는 클라이언트가 적극적으로 서버에게 검색식 등의 데이터를 전송하는 것이다. 조건 판단에 사용하는 변수 자체를 변경하는 예를 들면, 기존 이벤트 룰이 동일한 상품을 몇 번 봤는지에 대한 조회 요청(GET 메소드) 횟수에 기초하여 실시간 오퍼를 제공하였다면, 리바이즈된 이벤트 룰은 사용자가 적극적으로 키워드를 입력하여 상품을 검색한(POST) 횟수에 기초하여 실시간 오퍼를 제공할 수 있다.The http request message packet may have a 'GET' method, a 'POST' method, and the like. The 'GET' method asks the client to look up a specific URL that the server has. The 'POST' method allows the client to actively send data such as a search expression to the server. For example, to change the variable itself used to determine a condition, if the existing event rule provided a real-time offer based on the number of inquiry requests (GET method) of how many times the same product was viewed, the revised event rule would be A real-time offer may be provided based on the number of times a product is actively searched for by entering a keyword.

또는, 실시간 이벤트 처리부(250)는 실시간 오퍼의 대상 상품을 변경하는 방식으로 이벤트 룰을 리바이즈할 수도 있다.Alternatively, the real time event processor 250 may revise the event rule by changing a target product of the real time offer.

또는, 실시간 이벤트 처리부(250)는 실시간 오퍼의 종류, 예컨대 상품 오퍼, 쿠폰 오퍼, 적립금 오퍼, 할인 프로모션, 제휴 서비스 링크 등을 변경하는 방식으로 이벤트 룰을 리바이즈할 수도 있다.Alternatively, the real time event processor 250 may revise the event rule by changing a type of a real time offer, for example, a product offer, a coupon offer, a reserve offer, a discount promotion, an affiliate service link, and the like.

실시간 이벤트 처리부(250)는 원하는 목표값을 달성할 때까지 상기와 같은 방식으로 이벤트 룰을 계속 리바이즈할 수 있다. 예를 들어, 실시간 오퍼를 제공하였을 때, 제공된 오퍼 대비 구매율이 50% 이상이 될 때까지 이벤트 룰의 유효성을 계속 판단하고 이벤트 룰을 계속 실시간으로 리바이즈할 수 있다.The real time event processor 250 may continue to revise the event rule in the above manner until the desired target value is achieved. For example, when a real-time offer is provided, the validity of the event rule can be continuously determined and the event rule can be revived in real time until the purchase rate is 50% or more.

도 4는 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템의 기본 구성을 예시한 도면이다. 도 4에 예시된 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템은 하나 이상의 서버로 구현될 수 있으며, 도 4의 각 구성요소는 서버의 구성요소일 수 있다. 4 is a diagram illustrating the basic configuration of a real-time web analytics system according to a second embodiment of the present invention. The real-time analytics system according to the second embodiment of the present invention illustrated in FIG. 4 may be implemented as one or more servers, and each component of FIG. 4 may be a component of the server.

도 4에 나타난 것과 같이, 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템은 웹 서비스 제공부(410), 운영DB(420), 웹로그 수집부(440) 및 실시간 이벤트 처리부(450)를 포함한다. 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템은 제1 실시예와는 달리 패킷 캡쳐를 하지 않고 웹 페이지에 저장된 스크립트를 이용하여 사용자 행동 데이터를 수집하는 특징이 있다.As shown in FIG. 4, the real-time web analytics system according to the second embodiment of the present invention includes a web service provider 410, an operation DB 420, a web log collector 440, and a real-time event processor 450. It includes. Unlike the first embodiment, the real-time web analytics system according to the second embodiment of the present invention has a feature of collecting user behavior data using a script stored in a web page without packet capture.

본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템에서 웹 서비스 제공부(410)는 웹 사이트를 통해 사용자 단말에게 상품 구입, 상담, 멀티미디어 콘텐츠 제공 등의 웹 서비스를 제공하며, 웹 페이지에 사용자 행동 데이터 수집을 위한 스크립트가 삽입되어 있어, 사용자가 웹 페이지 내에서 수행하는 행동 데이터가 웹로그 수집부(440)로 전송된다.In the real-time web analytics system according to the second embodiment of the present invention, the web service provider 410 provides a web service such as product purchase, consultation, and multimedia content provision to a user terminal through a web site, and provides a user with a web page. Since a script for collecting behavior data is inserted, behavior data that a user performs in a web page is transmitted to the weblog collection unit 440.

본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템에서 실시간 이벤트 처리부(450)는 웹로그 수집부(440)에 저장된 웹로그를 실시간으로 분석한다. 실시간 이벤트 처리부(450)는 웹로그 수집부(440)에 저장된 웹로그 데이터가 기 설정된 양만큼 수집된 후에 배치 처리를 통해 웹로그 분석을 수행하는 것이 아니라, 웹 페이지에 삽입된 스크립트가 실행되어 웹로그 수집부(440)에 웹로그가 전송되면 실시간으로 전송되는 웹로그를 이용하여 이벤트 스트림을 생성한 후 이벤트 스트림을 실시간으로 분석하여 사용자의 취향, 임박한 문제점, 보완하여야 할 사항, 제공하여야 할 오퍼 등을 분석하여 웹 서비스 제공부(410) 또는 현업부서 단말에 제공한다. 실시간 이벤트 처리부(450)에서 수행되는 패킷, 또는 이벤트 스트림의 분석 과정에 대해서는 후술할 도 6 내지 12에서 자세히 설명한다.In the real time web analytics system according to the second embodiment of the present invention, the real time event processor 450 analyzes the web logs stored in the web log collector 440 in real time. The real-time event processor 450 does not perform analytics through batch processing after weblog data stored in the weblog collector 440 is collected in a predetermined amount, and a script embedded in a web page is executed to execute the web. When the web log is transmitted to the log collection unit 440, an event stream is generated using the web logs transmitted in real time, and the event stream is analyzed in real time to provide user's taste, impending problems, supplementary matters, and offers to be provided. The web service provider 410 or the business unit terminal is analyzed and the like. An analysis process of a packet or an event stream performed by the real time event processor 450 will be described in detail with reference to FIGS. 6 to 12.

도 5는 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템의 확장된 구성을 예시한 도면이다. 도 5에 예시된 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템은 하나 이상의 서버로 구현될 수 있으며, 도 5의 각 구성요소는 서버의 구성요소일 수 있다. 5 is a diagram illustrating an extended configuration of a real-time web analytics system according to a second embodiment of the present invention. The real-time analytics system according to the second embodiment of the present invention illustrated in FIG. 5 may be implemented as one or more servers, and each component of FIG. 5 may be a component of the server.

도 5에 나타난 것과 같이, 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템은 웹 서비스 제공부(410), 운영DB(420), 웹로그 수집부(440), 실시간 이벤트 처리부(450), 복제DB(421), 대용량 데이터 분석부(441) 및 시각화부(460)를 포함할 수 있다. 도 4에 예시된 본 발명의 제2 실시예에 따른 실시간 웹로그 분석 시스템의 기본 구성과 비교하였을 때, 확장된 구성은 복제DB(421), 대용량 데이터 분석부(441) 및 시각화부(460)가 추가되어 있다.As shown in FIG. 5, the real-time web analytics system according to the second embodiment of the present invention includes a web service provider 410, an operation DB 420, a web log collector 440, and a real-time event processor 450. It may include a replication DB 421, a large data analysis unit 441, and a visualization unit 460. Compared with the basic configuration of the real-time analytics system according to the second embodiment of the present invention illustrated in FIG. 4, the expanded configuration includes a replica DB 421, a large data analysis unit 441, and a visualization unit 460. Is added.

복제DB(421), 대용량 데이터 분석부(441) 및 시각화부(460)에 대한 내용은 도 3에서 설명한 것과 대동소이하므로, 중복되는 내용에 대한 반복되는 설명은 생략한다.Since the contents of the replica DB 421, the large-capacity data analyzer 441, and the visualization unit 460 are similar to those described with reference to FIG. 3, repeated descriptions of overlapping contents will be omitted.

도 6은 본 발명의 일 실시예에 따른 이벤트 감지 타이밍을 예시한 도면이다.6 is a diagram illustrating an event detection timing according to an embodiment of the present invention.

CEP에서 이벤트들은 감지 시각(Detection Time)을 기준으로 정렬된다. 일례로, CEP에서 서버 상태를 나타내는 이벤트는 서버의 현재 상태를 계속 모니터링하여야 하므로, 아무런 조건 없이 일정한 시간, 예컨대 1초 단위로 이벤트 스트림에 추가된다. 다른 예로, 웹 사이트에서 사용자의 웹 사이트 방문을 카운트하기 위한 로그인 이벤트는 사용자가 로그인할 때마다 이벤트 스트림에 추가된다. 다른 예로, 주식 관리 시스템에서 변동된 주가는 주가 변동시(주가 tick)마다 이벤트 스트림에 추가된다.Events in the CEP are sorted by detection time. In one example, the event indicating the server status in the CEP is added to the event stream at a certain time, for example, 1 second without any conditions, since the current status of the server must be continuously monitored. As another example, a login event for counting a user's visit to a website at a website is added to the event stream each time the user logs in. As another example, a stock price that is changed in a stock management system is added to the event stream every time the stock price changes (stock tick).

본 발명의 일 실시예에 따른 실시간 이벤트 처리부에서 패킷 데이터는 사용자 단말이 웹 서비스 제공부에게 전송하는 요청(request) 메시지에 대한 패킷일 수 있다. 구체적으로, 사용자 단말이 웹 서비스 제공부에게 요청(request) 패킷을 전송할 때마다 요청(request) 패킷을 이벤트 스트림에 추가할 수 있다.In the real-time event processor according to an embodiment of the present invention, the packet data may be a packet for a request message transmitted from the user terminal to the web service provider. Specifically, whenever a user terminal transmits a request packet to a web service provider, the request packet may be added to the event stream.

요청(request) 메시지 패킷은 메소드(method) 필드, 호스트(host) 필드 및 요청 헤더(Request Header) 필드를 포함한다. 메소드(method) 필드는 서버 상의 동작을 일으키기 위하여 클라이언트가 웹 서버에게 전송하는 HTTP 명령어로서, 사용자 행동 패턴 분석에 유용한 정보를 포함하고 있다. 대표적인 메소드로서 'GET' 메소드 및 'POST' 메소드가 있다. 'GET' 메소드는 특정 URL이 가지고 있는 정보를 서버 측에 요청하는 것으로서, GET[URL]?Query-String HTTP/1.1\r\n 등과 같은 형태로 전송된다. 'POST' 메소드는 사용자 단말이 서버에게 데이터를 전송하는 것으로서, 헤더(header)뿐만 아니라 본문 내용(body)을 포함한다.The request message packet includes a method field, a host field, and a request header field. The method field is an HTTP command sent by the client to the web server to cause an operation on the server. The method field includes information useful for analyzing user behavior patterns. Representative methods include 'GET' method and 'POST' method. The 'GET' method requests the server-side information of a specific URL and is sent in the form of GET [URL]? Query-String HTTP / 1.1 \ r \ n. The 'POST' method transmits data to the server by the user terminal, and includes a body as well as a header.

도 6에 나타난 것과 같이 본 발명의 일 실시예에 따른 이벤트 감지 타이밍은 사용자 단말이 웹 서비스 제공부에게 요청(request) 패킷을 전송할 때가 될 수 있다. 사용자 단말이 웹 서비스 제공부에게 요청(request) 패킷을 전송할 때마다 요청(request) 패킷이 시간 순서대로 정렬되어 이벤트 스트림에 추가된다. 도 6은 t1 시각에 GET 메소드를 포함하는 요청(request) 패킷이 전송되고, t2 시각에 POST 메소드를 포함하는 요청(request) 패킷이 전송되며, t3 시각에 GET 메소드를 포함하는 요청(request) 패킷이 전송된 경우에 생성된 이벤트 스트림을 예시하고 있다.As shown in FIG. 6, the event detection timing according to an embodiment of the present invention may be when the user terminal transmits a request packet to the web service provider. Whenever a user terminal sends a request packet to a web service provider, the request packets are arranged in time order and added to the event stream. 6 shows that a request packet including a GET method is transmitted at time t1, a request packet including a POST method is transmitted at time t2, and a request packet including a GET method at time t3. The event stream generated when this is transmitted is illustrated.

도 7은 본 발명의 일 실시예에 따른 이벤트 타입의 속성을 예시한 도면이다.7 is a diagram illustrating an attribute of an event type according to an embodiment of the present invention.

실시간 이벤트 처리부에서 각 이벤트는 이벤트 타입(Event Type)으로 유형화될 수 있다. 이벤트 타입(Event Type)은 이벤트 정보와 속성(Attributes)으로 구성된다.In the real-time event processor, each event may be typed as an event type. Event type consists of event information and attributes.

본 발명의 일 실시예에 따른 이벤트 타입에서, 이벤트 정보는 'GET', 'POST' 등으로 지정될 수 있다. 이벤트 속성은, 타입명이 'GET'일 경우 URL 주소값일 수 있고, 이벤트 정보가 'POST'일 경우 본문 내용(body)일 수 있다.In the event type according to an embodiment of the present invention, the event information may be designated as 'GET', 'POST' and the like. The event attribute may be a URL address value when the type name is 'GET' and may be a body body when the event information is 'POST'.

도 8은 본 발명의 일 실시예에 따른 개별 이벤트의 예를 예시한 도면이다.8 is a diagram illustrating an example of an individual event according to an embodiment of the present invention.

개별 이벤트는 이벤트 타입에 따라 구체화된 이벤트로서, 이벤트 인스턴스(Event Instance)로도 불린다. 도 8는 'GET' 이벤트에 대한 4가지 이벤트 인스턴스의 예를 들고 있다.Individual events are specific to the event type and are also called Event Instances. 8 shows an example of four event instances for a 'GET' event.

첫번째 'GET' 이벤트 인스턴스는 'GET' 명령이 전송된 시각이 2018년 7월 26일 17시 53분 25초이고, 'GET' 대상이 되는 URL 주소는 'http://www.shilladfs.com/estore/kr/ko/Sk-Ii/Dutyfree-Only-Set/p/3111170'이다.The first instance of the 'GET' event has a time when the 'GET' command was sent on July 26, 2018 at 17:53:25, and the URL address targeted for 'GET' is' http://www.shilladfs.com/ estore / us / en / Sk-Ii / Dutyfree-Only-Set / p / 3111170 '.

두번째 'GET' 이벤트 인스턴스는 'GET' 명령이 전송된 시각이 2018년 7월 26일 17시 53분 35초이고, 'GET' 대상이 되는 URL 주소는 'http://www.shilladfs.com/estore/kr/ko/search?text=%EC%8B%9C%EA%B3%84'이다.The second instance of the 'GET' event has the time the 'GET' command was sent at 17:53:35 seconds on July 26, 2018, and the URL address targeted for 'GET' is' http://www.shilladfs.com/ estore / us / en / search? text =% EC% 8B% 9C% EA% B3% 84 '.

세번째 'GET' 이벤트 인스턴스는 'GET' 명령이 전송된 시각이 2018년 7월 26일 17시 53분 38초이고, 'GET' 대상이 되는 URL 주소는 'http://www.shilladfs.com/estore/kr/ko/Watch-Jewelry/Watch/Fashion-Casual/p/3042555'이다.The third instance of the 'GET' event has the time the 'GET' command was sent at 17:53:38 on July 26, 2018, and the URL address targeted for 'GET' is' http://www.shilladfs.com/ estore / us / en / Watch-Jewelry / Watch / Fashion-Casual / p / 3042555 '.

네번째 'GET' 이벤트 인스턴스는 'GET' 명령이 전송된 시각이 2018년 7월 26일 17시 57분 42초이고, 'GET' 대상이 되는 URL 주소는 'http://www.shilladfs.com/estore/kr/ko/Watch-Jewelry/Watch/Fashion-Casual/p/3702351'이다.The fourth instance of the 'GET' event has a time when the 'GET' command was sent at 17:57:42 on July 26, 2018, and the URL address targeted for 'GET' is' http://www.shilladfs.com/ estore / en / en / Watch-Jewelry / Watch / Fashion-Casual / p / 3702351 '.

도 9는 본 발명의 일 실시예에 따른 이벤트 스트림 및 이벤트 프로세서를 예시한 도면이다.9 is a diagram illustrating an event stream and an event processor according to an embodiment of the present invention.

이벤트 프로세서(Event Processor)는 이벤트 스트림에 대한 연산을 실시간으로 수행하는 소프트웨어 컴포넌트를 의미한다. 이벤트 프로세서는 이벤트 스트림의 한쪽 방향에서 이벤트에 대한 연산을 수행한다.An event processor refers to a software component that performs an operation on an event stream in real time. The event processor performs operations on the event in one direction of the event stream.

도 9에 나타난 것과 같이, 이벤트 프로세서는 이벤트 스트림에 대한 실시간 연산 처리를 수행하며, 구체적으로 이벤트 자체에 대한 연산 또는 이벤트의 속성값에 대한 연산을 수행한다.As shown in FIG. 9, the event processor performs real-time arithmetic processing on the event stream, and specifically, arithmetic on the event itself or on a property value of the event.

이벤트 프로세서가 이벤트 자체에 대하여 수행하는 연산에는 이벤트 타입에 따른 필터링(Filtering by Event Type), 이벤트 프로세싱 네트워크 구축(Event Processing Network: Event Processing을 위하여 Event Stream과 Event Processor의 Processing Topology를 구성한 것), 이벤트 카운팅(Event Counting), 타임 윈도우 연산(Time Window) 등이 있다.The operations performed by the event processor on the event itself include filtering by event type, building an event processing network (which constitutes the processing topology of the event stream and the event processor for event processing), and events. Event Counting, Time Window, etc.

이벤트 프로세서가 이벤트의 속성값에 대하여 수행하는 연산에는 이벤트 속성값에 따른 필터링(Filtering by Data), 이벤트 속성값 추출(Data Extraction), 집합 연산(최소, 최대, 합, 평균 등), 기타 연산(그룹핑, 조인 등) 등이 있다.Operations performed by the event processor on the event's attribute values include filtering by data, event attribute value extraction, set operations (minimum, maximum, sum, average, etc.), and other operations ( Groupings, joins, etc.).

도 10은 본 발명의 일 실시예에 따른 이벤트 스트림에서, 이벤트 타입 이름(Type Name)에 따른 이벤트 필터링 과정을 예시한 도면이다.FIG. 10 is a diagram illustrating an event filtering process according to an event type name in an event stream according to an embodiment of the present invention.

도 10에 나타난 것과 같이, 이벤트 프로세서는 이벤트 자체에 대하여 수행하는 연산으로서 이벤트 타입에 따른 필터링(Filtering by Event Type)을 수행할 수 있다.As shown in FIG. 10, the event processor may perform filtering by event type as an operation performed on the event itself.

전술한 것과 같이 실시간 이벤트 처리부에서 각 이벤트는 이벤트 타입(Event Type)으로 유형화될 수 있으며, 이벤트 프로세서에서 이벤트 스트림의 이벤트 중 특정 타입의 이벤트를 필터링할 수 있다.As described above, in the real-time event processor, each event may be typed as an event type, and the event processor may filter a specific type of event among the events of the event stream.

도 10은 실시간 이벤트 처리부에서 'GET' 이벤트 타입을 가진 이벤트만을 필터링하는 과정을 예시한 도면이다. 도 10에서 이벤트 프로세서를 통과하기 전의 이벤트 스트림은 'GET' 이벤트와 'POST' 이벤트를 모두 포함하고 있다. 도 10에 예시된 이벤트 프로세서는 'GET' 이벤트만을 필터링하는 연산을 수행하고 있으며, 그 결과 도 10에 예시된 이벤트 프로세서를 통과한 이벤트 스트림은 'GET' 이벤트만을 포함하고 있다.10 is a diagram illustrating a process of filtering only an event having a 'GET' event type in the real time event processor. In FIG. 10, the event stream before passing through the event processor includes both a 'GET' event and a 'POST' event. The event processor illustrated in FIG. 10 performs an operation of filtering only the 'GET' event, and as a result, the event stream passing through the event processor illustrated in FIG. 10 includes only the 'GET' event.

도 11은 본 발명의 일 실시예에 따른 이벤트 스트림에서, 이벤트 속성(Attribute)에 따른 이벤트 필터링 과정을 예시한 도면이다.11 is a diagram illustrating an event filtering process according to an event attribute in an event stream according to an embodiment of the present invention.

도 11에 나타난 것과 같이, 이벤트 프로세서는 이벤트의 속성값에 대하여 수행하는 연산으로서 이벤트 속성값에 따른 필터링(Filtering by Data)을 수행할 수 있다.As shown in FIG. 11, the event processor may perform filtering by data as an operation performed on an attribute value of an event.

도 11은 실시간 이벤트 처리부에서 'GET' 이벤트의 속성값, 곧 URL 주소값에 'SEARCH'라는 문자열이 포함되어 있는 이벤트만을 필터링하는 과정을 예시한 도면이다. 도 11에서 이벤트 프로세서를 통과하기 전의 이벤트 스트림은 URL 주소값에 'SEARCH'라는 문자열이 포함되어 있는 이벤트와 URL 주소값에 'SEARCH'라는 문자열이 포함되어 있지 않은 이벤트를 모두 포함하고 있다. 도 11에 예시된 이벤트 프로세서는 URL 주소값에 'SEARCH'라는 문자열이 포함되어 있는 이벤트만을 필터링하는 연산을 수행하고 있으며, 그 결과 도 11에 예시된 이벤트 프로세서를 통과한 이벤트 스트림은 URL 주소값에 'SEARCH'라는 문자열이 포함되어 있는 이벤트만을 포함하고 있다.FIG. 11 is a diagram illustrating a process of filtering only an event including a string 'SEARCH' in an attribute value, that is, a URL address value, of a 'GET' event in the real-time event processor. In FIG. 11, the event stream before passing through the event processor includes both an event in which the string 'SEARCH' is included in the URL address value and an event in which the string 'SEARCH' is not included in the URL address value. The event processor illustrated in FIG. 11 performs an operation of filtering only events in which the string 'SEARCH' is included in the URL address value. As a result, the event stream passing through the event processor illustrated in FIG. 11 is assigned to the URL address value. It only contains events that contain the string 'SEARCH'.

도 12는 본 발명의 일 실시예에 따른 이벤트 스트림에서, 타임 윈도우(Time Window)에 따른 이벤트 필터링 과정을 예시한 도면이다.12 is a diagram illustrating an event filtering process according to a time window in an event stream according to an embodiment of the present invention.

도 12에 나타난 것과 같이, 이벤트 프로세서는 이벤트 자체에 대하여 수행하는 연산으로서 타임 윈도우(Time Window)에 따른 필터링을 수행할 수 있다.As shown in FIG. 12, the event processor may perform filtering according to a time window as an operation performed on the event itself.

타임 윈도우(Time Window)에 따른 필터링은 이벤트 감지 시각(Detection Time)이 특정 시점으로부터 기 설정된 시간 이내인 이벤트를 필터링하는 것이다.The filtering according to the time window is to filter events whose event detection time is within a preset time from a specific time point.

타임 윈도우(Time Window)에 따른 필터링은 이벤트의 의미 또는 중요도가 특정 시간 이내에 이루어진 이벤트의 횟수와 연관이 있을 경우에 사용되는 필터링 방식이다. Filtering according to a time window is a filtering method used when the meaning or importance of an event is related to the number of events made within a specific time.

일례로, 동일한 ID로 최근 5초의 시간 동안 로그인 실패 이벤트가 5번 이상 발생한 경우, 매크로를 이용한 해킹 시도로 판단할 수 있다. 이 때 특정 시점으로부터 5초 이내의 이벤트만을 필터링하여 이벤트 분석에 사용하는 것이 유용할 수 있으며, 이 때 사용하는 것이 타임 윈도우이다.For example, if a login failure event occurs five or more times in the last five seconds with the same ID, it may be determined as a hacking attempt using a macro. In this case, it may be useful to filter only events within 5 seconds from a specific time point and use them for event analysis. In this case, the time window is used.

본 발명의 일 실시예에 따른 실시간 이벤트 처리기에서, 특정 URL에 대한 GET 명령이 수행된 후, 기 설정된 시간 이상 다른 URL에 대한 GET 요청이 없는 경우, 사용자가 현재 URL로 표시된 웹 페이지에 관심이 많은 것으로 판단할 수 있다. In the real-time event handler according to an embodiment of the present invention, if there is no GET request for another URL for more than a preset time after the GET command for a specific URL is performed, the user is interested in the web page indicated by the current URL. It can be judged that.

도 12에 예시된 것과 같이, 5초의 타임 윈도우를 사용하여 이벤트를 필터링하였는데 타임 윈도우에 1개의 이벤트만이 존재하는 경우, 해당 이벤트 URL에 대한 사용자의 관심이 많은 것으로 분석할 수 있다.As illustrated in FIG. 12, when an event is filtered using a 5 second time window and only one event exists in the time window, it may be analyzed that the user is interested in the corresponding event URL.

도 13은 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법을 예시한 순서도이다. 구체적으로 도 13은 본 발명의 제1 실시예에 따른 실시간 오퍼 제공 방법을 예시한 순서도이다. 13 is a flowchart illustrating a method of providing a real-time offer according to an embodiment of the present invention. In detail, FIG. 13 is a flowchart illustrating a real-time offer providing method according to a first embodiment of the present invention.

도 13에 예시된 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법은 하나 이상의 서버에 의해 실행될 수 있다. 또는 프로세서, 메모리, 스토리지 및 네트워크 인터페이스를 구비한 모든 종류의 컴퓨팅 장치에 의해 실행될 수 있다.The real-time offer providing method according to an embodiment of the present invention illustrated in FIG. 13 may be executed by one or more servers. Or by any type of computing device having a processor, memory, storage, and network interface.

도 13에 나타난 것과 같이, 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법은 사용자 단말과 웹 서비스 제공부 간 송수신되는 패킷을 캡쳐하는 단계(S1310), 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 단계(S1320), 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계(S1330) 및 이벤트 룰 충족시 실시간 오퍼를 제공하는 단계(S1340)를 포함할 수 있다.As shown in Figure 13, the real-time offer providing method according to an embodiment of the present invention in the step of capturing packets transmitted and received between the user terminal and the web service provider (S1310), generating an event stream using the captured packets In operation S1320, the event stream may be analyzed to determine whether the event rule is satisfied (S1330), and when the event rule is satisfied, the real-time offer may be provided (S1340).

일 실시예에서, 이벤트 룰 충족 여부를 판단하는 단계(S1340) 다음에, 이벤트 스트림을 분석한 결과 이벤트 룰이 충족되지 않았다고 판단되는 경우, 이벤트 룰을 리바이즈(revise)하는 단계를 포함할 수 있다.According to an embodiment, after determining whether the event rule is satisfied (S1340), if it is determined that the event rule is not satisfied as a result of analyzing the event stream, the method may include revising the event rule. .

일 실시예에서, 이벤트 룰을 리바이즈하는 단계는, 이벤트 룰에 포함된 변수의 수치값을 변경시키는 단계를 포함할 수 있다.In an embodiment, revoking the event rule may include changing a numerical value of a variable included in the event rule.

일 실시예에서, 이벤트 룰을 리바이즈하는 단계는, 이벤트 룰에 포함된 변수를 변경시키는 단계를 포함할 수 있다.In one embodiment, revoking the event rule may include changing a variable included in the event rule.

일 실시예에서, 이벤트 룰에 포함된 변수를 변경시키는 단계는, 변수가 사용자 단말이 전송하는 http request 패킷의 'GET' 메소드인 경우, 변수를 http request 패킷의 'POST' 메소드로 변경시키는 단계를 포함할 수 있다.In one embodiment, the step of changing the variable included in the event rule, if the variable is a 'GET' method of the http request packet transmitted by the user terminal, the step of changing the variable to the 'POST' method of the http request packet It may include.

일 실시예에서, 이벤트 룰을 리바이즈하는 단계는, 실시간 오퍼의 대상 상품을 변경시키는 단계를 포함할 수 있다.In one embodiment, revoking the event rule may include changing a target product of the real-time offer.

일 실시예에서, 이벤트 룰을 리바이즈하는 단계는, 실시간 오퍼의 종류를 변경시키는 단계를 포함할 수 있다.In one embodiment, revoking the event rule may include changing the type of real-time offer.

일 실시예에서, 이벤트 룰을 리바이즈하는 단계는, 실시간 오퍼를 제공한 후의 구매율이 기 설정된 확률 이하인 경우, 이벤트 룰을 리바이즈하는 단계를 포함할 수 있다.In an embodiment, reviving the event rule may include reviving the event rule when a purchase rate after providing a real-time offer is equal to or less than a preset probability.

사용자 단말과 웹 서비스 제공부 간 송수신되는 패킷을 캡쳐하는 단계(S1310)에서, 웹 서비스 제공부는 웹 서버일 수 있고, 사용자 단말과 웹 서비스 제공부 간 송수신되는 패킷은 사용자 단말과 웹 서버 사이에서 HTTP 프로토콜에 의하여 전송되는 HTTP 웹 패킷일 수 있다. In step S1310, capturing a packet transmitted and received between the user terminal and the web service provider, the web service provider may be a web server, and the packet transmitted and received between the user terminal and the web service provider may be HTTP between the user terminal and the web server. It may be an HTTP web packet transmitted by a protocol.

캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 단계(S1320)는, 사용자 단말이 웹 서비스 제공부에게 전송하는 요청(request) 메시지에 대한 패킷을 이용하여 이벤트 스트림을 생성하는 것일 수 있다. 구체적으로, 사용자 단말이 웹 서비스 제공부에게 요청(request) 패킷을 전송할 때마다 요청(request) 패킷을 이벤트 스트림에 추가할 수 있다.The generating of the event stream using the captured packet in operation S1320 may be to generate an event stream using a packet for a request message transmitted from the user terminal to the web service provider. Specifically, whenever a user terminal transmits a request packet to a web service provider, the request packet may be added to the event stream.

이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계(S1330)는, 이벤트 스트림에 포함된 이벤트 중 기 설정된 필터링 기준을 충족하는 이벤트를 필터링하는 단계 및 필터링된 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계를 포함할 수 있다.In operation S1330, the event stream is analyzed to determine whether the event rule is satisfied. The filtering of the event meeting the predetermined filtering criteria among the events included in the event stream and analyzing the filtered event stream to determine whether the event rule is satisfied. Determining may include.

필터링하는 단계는, URL 요청(Request-URL)인 이벤트를 필터링하는 단계를 포함할 수 있다. HTTP 패킷에서 'GET' 메소드는 특정 URL이 가지고 있는 정보를 서버 측에 요청하는 것으로서, 도 10에서 예시한 것과 같이 요청(request) 패킷 중 'GET' 메소드를 포함하는 패킷만을 필터링함으로써 URL 요청(Request-URL) 이벤트를 필터링할 수 있다.The filtering may include filtering an event that is a URL request (URL). In the HTTP packet, the 'GET' method is a request for information of a specific URL to the server side. As illustrated in FIG. 10, only a packet including the 'GET' method is requested among the request packets as illustrated in FIG. 10. -URL) events can be filtered.

필터링하는 단계는, 이벤트 속성값에 기 설정된 문자열이 포함된 이벤트를 필터링하는 단계를 포함할 수 있다. 이벤트 속성값은 예컨대 URL 주소값일 수 있다. 웹 사이트에서 특정 검색식을 입력할 경우, 'http://www.shilladfs.com/estore/kr/ko/search?text=(키워드)'와 같이 URL 주소값에 'search'가 포함될 수 있다. 유사한 예로, 포탈 사이트 네이버에서 키워드 검색을 수행할 때의 URL은 'https://search.naver.com/search.naver?ie=UTF-8&query=(키워드)'의 형식이 된다. 즉, URL 주소값이 특정 문자열, 예컨대 'search'를 포함하고 있는지 여부를 판단하는 것만으로도, 사용자가 특정 키워드로 검색을 수행하였는지, 아니면 단순히 링크 또는 폼 버튼을 클릭하여 다른 페이지로 넘어갔는지 여부를 판단할 수 있다. 따라서 URL 주소값에 'search'가 포함된 이벤트만을 필터링할 경우, 사용자의 검색 패턴, 주된 관심사, 관심의 전환 과정 등을 파악할 수 있다.The filtering may include filtering an event including a preset string in an event attribute value. The event attribute value may be, for example, a URL address value. If you enter a specific search expression on a Web site, 'search' may be included in the URL address value, such as 'http://www.shilladfs.com/estore/en/en/search?text=(keyword)'. Similarly, when performing a keyword search in the portal site Naver, the URL is in the form of 'https://search.naver.com/search.naver?ie=UTF-8&query=(keyword)'. That is, simply determining whether a URL address contains a specific string, such as 'search', does the user perform a search with a specific keyword, or simply clicks a link or form button to get to another page? Can be determined. Therefore, when filtering only events that include 'search' in the URL address value, the user's search pattern, main interests, and interest conversion process can be identified.

이벤트 룰 충족 여부를 판단하는 단계(S1330)는, 필터링된 이벤트 스트림에서 특정 이벤트 발생 후 기 설정된 시간 이내에 다음 이벤트가 발생하였는지 여부를 판단하는 단계를 포함할 수 있다. 사용자에 의해 특정 URL에 대한 GET 명령이 수행된 후, 기 설정된 시간 이상 사용자로부터 다른 URL에 대한 GET 요청이 없는 경우, 사용자가 현재 URL로 표시된 웹 페이지에 관심이 많은 것으로 판단할 수 있다. The determining of whether the event rule is satisfied (S1330) may include determining whether the next event occurs within a preset time after a specific event occurs in the filtered event stream. After the GET command for the specific URL is performed by the user, if there is no GET request for the other URL from the user for a preset time, the user may determine that there is much interest in the web page indicated by the current URL.

이벤트 룰 충족 여부를 판단하는 단계(S1330)는, 필터링된 이벤트 스트림에 포함된 각 이벤트의 URL 주소값을 추출하는 단계를 포함할 수 있다. The determining of whether the event rule is satisfied (S1330) may include extracting a URL address value of each event included in the filtered event stream.

URL 주소값이 추출되면, URL 주소값이 어떤 상품에 대한 URL인지 판단할 수 있다. URL 주소값 분석 결과 특정 카테고리의 상품에 대한 상품 설명 페이지 URL이 기 설정된 횟수 이상 카운트될 경우, 사용자가 해당 카테고리에 관심이 많다고 판단할 수 있다. 예컨대 URL 주소값에 'Watch-Jewelry'가 포함된 URL 요청이 기 설정된 횟수 이상 카운트되면, 사용자가 '시계/쥬얼리' 카테고리에 관심이 많은 것으로 판단할 수 있다.When the URL address value is extracted, it is possible to determine which product is the URL address value. As a result of analyzing the URL address value, if the product description page URL of the product of a specific category is counted more than a predetermined number of times, it may be determined that the user is interested in the corresponding category. For example, if a URL request including 'Watch-Jewelry' in a URL address value is counted more than a predetermined number of times, the user may determine that the user is interested in the 'Watch / Jewelry' category.

URL 주소값이 추출되면, URL 주소값이 특정 카테고리의 상품을 장바구니에 담기 위한 URL인지 판단할 수 있다. URL 주소값 분석 결과 특정 카테고리의 상품을 장바구니에 담기 위한 URL이 기 설정된 횟수 이상 카운트될 경우, 사용자가 해당 카테고리에 관심이 상당히 많다고 판단할 수 있다. 상품 설명 페이지에 대한 URL보다 장바구니에 담기 위한 URL이 사용자의 관심도를 더 강하게 반영하는 것으로 판단할 수 있다.When the URL address value is extracted, it may be determined whether the URL address value is a URL for putting a product of a specific category into a shopping cart. As a result of analyzing the URL address value, when a URL for putting a product of a specific category into a shopping bag is counted more than a predetermined number of times, the user may determine that there is a considerable interest in the category. It may be determined that the URL for the shopping cart more strongly reflects the user's interest than the URL for the product description page.

URL 주소값이 추출되면, URL 주소값이 특정 카테고리의 상품을 구매하기 위한 URL인지 판단할 수 있다. URL 주소값 분석 결과 특정 카테고리의 상품을 구매하기 위한 URL이 기 설정된 횟수 이상 카운트될 경우, 사용자가 해당 카테고리에 관심이 매우 많다고 판단할 수 있다. 장바구니에 담기 위한 URL보다 구매하기 위한 URL이 사용자의 관심도를 더 강하게 반영하는 것으로 판단할 수 있다.When the URL address value is extracted, it may be determined whether the URL address value is a URL for purchasing a product of a specific category. As a result of analyzing the URL address value, when a URL for purchasing a product of a specific category is counted more than a predetermined number of times, it may be determined that the user is very interested in the category. It may be determined that the URL to purchase more strongly reflects the user's interest than the URL to add to the shopping cart.

URL 주소값이 추출되면, URL 주소값이 특정 키워드를 검색하기 위한 URL인지 판단할 수 있다. URL 주소값 분석 결과 특정 키워드를 검색하기 위한 URL이 입력되면 사용자가 해당 키워드에 관심이 많다고 판단할 수 있다. 입력된 키워드가 특정 카테고리명(예컨대, '시계', '옷', '화장품', '향수' 등)이 아니라고 하더라도, 입력된 키워드가 사용자의 취향을 다양한 방식으로 반영할 수 있다. 일례로 사용자가 웹 사이트 내에서 '미니멀'이라는 키워드를 검색하였을 경우, 사용자가 미니멀한 상품을 선호하는 것으로 판단하여 미니멀한 디자인의 상품을 추천할 수 있을 것이다. 다른 예로 사용자가 웹 사이트 내에서 '북유럽'이라는 키워드를 검색하였을 경우, 사용자가 북유럽 스타일의 상품을 선호하는 것으로 판단하여 북유럽 스타일의 상품을 추천할 수 있을 것이다. When the URL address value is extracted, it may be determined whether the URL address value is a URL for searching for a specific keyword. As a result of analyzing the URL address value, when a URL for searching for a specific keyword is input, it may be determined that the user is interested in the keyword. Even if the input keyword is not a specific category name (eg, 'watch', 'clothes', 'cosmetics', 'fragrance', etc.), the input keyword may reflect the user's taste in various ways. For example, if a user searches for the keyword 'minimal' within a web site, the user may determine that the user prefers a minimalist product and may recommend a minimally designed product. As another example, when a user searches for the keyword 'Nordic' within a web site, the user may recommend a Nordic style product by determining that the user prefers a Nordic style product.

이벤트 룰 충족 여부를 판단하는 단계(S1330)는, 이벤트 스트림 및 운영DB의 데이터를 분석하여 이벤트 룰 충족 여부를 판단하는 단계를 포함할 수 있다. 운영DB에는 사용자의 연령, 성별, 거주지, 구매 내역, 구매 금액, 구매 추이 변동 등 사용자에 대한 민감한 개인 정보들이 저장되어 있다. 사용자 행동 데이터는 현재 웹 사이트 내에서의 사용자의 행동 패턴만을 반영하고 있을 뿐이므로, 사용자 행동 데이터만을 이용할 경우 사용자의 성향을 완벽하게 반영한 이벤트 룰 판단이 불가능하다. 따라서 운영DB에 접속하여 운영DB로부터 사용자의 성향 분석을 위한 개인 정보를 조회함으로써 사용자의 성향을 더욱 정확하게 고려한 이벤트 룰 판단이 가능해진다.The determining of whether the event rule is satisfied (S1330) may include determining whether the event rule is satisfied by analyzing data of the event stream and the operation DB. The operational DB stores sensitive personal information about the user, such as the user's age, gender, residence, purchase history, purchase amount, and purchase trends. Since the user behavior data only reflects the user's behavior pattern in the current web site, it is impossible to determine the event rule that perfectly reflects the user's disposition when using only the user behavior data. Therefore, by accessing the operation DB and inquiring personal information for analyzing the user's disposition from the operation DB, it is possible to determine the event rule more accurately considering the user's disposition.

그러나 전술한 것과 같이 실시간 이벤트 분석 및 처리를 위하여 운영DB로부터 데이터를 받아 이벤트 룰 판단을 수행할 경우 운영DB에 과도한 부하가 발생할 수 있다. 예를 들어 과거 2년 이내에 100만원 이상 구매 고객을 대상으로 이벤트를 진행할 경우, 모든 접속 고객의 회원 데이터 2년치를 조회해야 하므로 과도한 부하가 발생한다. 이 때 운영DB가 아닌 복제DB를 조회하도록 함으로써 운영DB의 부하를 경감시키고, 운영DB의 서버 다운을 방지할 수 있다.However, when the event rule is determined by receiving data from the operation DB for real-time event analysis and processing as described above, excessive load may occur on the operation DB. For example, if the event is conducted for customers who have purchased more than 1 million won within the past two years, there will be an excessive load because it needs to look up two years of member data of all connected customers. At this time, it can reduce the load of the operation DB and prevent the server down of the operation DB by making a query of the replication DB instead of the operation DB.

운영DB의 부하 경감을 위하여 실시간 이벤트 처리부는 운영DB로부터 직접 데이터를 수신하지 않고, 운영DB를 복제한 복제DB로부터 데이터를 수신하는 것이 바람직하다. 즉, 실시간 이벤트 처리부가 실시간 이벤트 처리를 위하여 운영DB에 저장된 사용자 정보, 거래 내역 등을 참고할 필요가 있을 때, 운영DB 대신 운영DB를 복제한 복제D로부터 수신한 데이터를 이용할 수 있다.In order to reduce the load on the operational DB, the real-time event processor does not receive data directly from the operational DB, but preferably receives data from a replica DB that replicates the operational DB. That is, when the real-time event processing unit needs to refer to user information, transaction history, etc. stored in the operation DB for real-time event processing, the data received from the replica D replicating the operation DB can be used instead of the operation DB.

복제DB는 운영DB와 동일한 데이터를 실시간으로 복제하여 운영DB와 분리되어 구성된다. 복제DB를 사용할 경우, 패킷을 캡쳐하는 단계(S1310) 이전에 복제DB를 업데이트하는 단계를 더 포함할 수 있다. 복제DB를 업데이트하는 단계는, 운영DB의 변경 항목을 파악하는 단계 및 변경 항목을 이용하여 복제DB를 업데이트하는 단계를 포함할 수 있다.Replica DB is configured separately from the production DB by replicating the same data as the production DB in real time. In the case of using the replica DB, the method may further include updating the replica DB before the step of capturing the packet (S1310). The updating of the replication DB may include identifying a change item of the operation DB and updating the replication DB using the change item.

변경 항목을 파악하는 단계는 변경 데이터를 캡쳐(CDC: Changed Data Capture)하는 단계를 포함할 수 있다. 운영DB에서 변경이 발생한 항목에 대해서만 복제DB로 실시간으로 전송하고, 복제DB는 전체 칼럼에서 변경된 부분의 값만 업데이트함으로써, 운영DB와 복제DB의 빠른 동기화가 가능해진다.Identifying the change item may include capturing change data (CDC). Only the items that have changed in the operation database are sent to the replication database in real time, and the replication database updates only the value of the changed part of the entire column, enabling quick synchronization between the operation database and the replication database.

이벤트 룰의 일례로서, 사용자 행동 데이터에서 URL 주소값에 'Watch-Jewelry'가 포함된 URL 요청이 기 설정된 횟수 이상 카운트되면, 사용자가 '시계/쥬얼리' 카테고리에 관심이 많은 것으로 판단할 수 있다. 그러나 사용자 행동 데이터만으로는 사용자가 '시계' 또는 '쥬얼리' 중 무엇을 선호하는지 확신할 수 없다. 이 경우 복제DB에 접속하여 사용자의 구매 내역을 조회한 후, '시계' 또는 '쥬얼리' 중 사용자의 구매 내역이 많은 상품에 대하여 관심이 많은 것으로 판단하고, 해당 상품에 대한 오퍼를 제공할 수 있다. 사용자의 구매 내역 조회 결과 '시계'를 1번 구매하고, '쥬얼리'를 5번 구매한 경우, 사용자가 '쥬얼리'에 관심이 많은 것으로 판단하고, '쥬얼리'에 대한 오퍼를 제공할 수 있을 것이다.As an example of an event rule, when a URL request including 'Watch-Jewelry' is included in a URL address value in user behavior data is counted more than a predetermined number of times, the user may determine that the user is interested in the 'clock / jewelry' category. However, user behavioral data alone is not enough to determine whether a user prefers to watch or jewelry. In this case, after accessing the replication DB and querying the purchase history of the user, it may be determined that there is a lot of interest in a product having a large number of purchase history among 'clock' or 'jewelry', and an offer for the corresponding product may be provided. . If the user purchases 'watch' once and 'jewelry' has been purchased 5 times as a result of the user's purchase history inquiry, the user may be determined to be interested in the 'jewelry' and may offer an offer for 'jewelry'. .

복제DB의 데이터를 참조하여 이벤트 룰 충족 여부를 판단할 경우, 이벤트 룰 충족 여부를 판단하는 단계(S1330)는, 복제DB로부터 사용자의 기 설정된 기간 내의 구매 내역을 조회하는 단계, 구매 내역으로부터 기 설정된 기간 내의 구매 금액을 합산하는 단계 및 합산된 구매 금액이 기 설정된 금액 이상인지 여부를 판단하는 단계를 포함할 수 있다. 사용자의 기 설정된 기간 내의 구매 금액이 일정 금액 이상일 경우, 사용자의 소비 성향이 높은 것으로 볼 수 있으므로, 사용자가 관심이 있는 것으로 판단되는 카테고리 또는 상품에 대하여 추가 프로모션을 제공함으로써 구매를 유도할 수 있다.When determining whether the event rule is satisfied by referring to the data of the replication DB, determining whether the event rule is satisfied (S1330) may include: querying a purchase history within a predetermined period of the user from the replication DB, and setting a preset value from the purchase history. Summing up the purchase amount within the period and determining whether the sum of the purchase amount is greater than or equal to the predetermined amount. If the purchase amount within the user's predetermined period is greater than or equal to a certain amount, the consumption tendency of the user may be regarded as high, and thus, the user may induce a purchase by providing an additional promotion for a category or product determined to be of interest.

실시간 오퍼를 제공하는 단계(S1340)는, 사용자 단말에게 상품 오퍼를 제공하는 단계를 포함할 수 있다. 구체적으로, 웹 사이트 내에서의 현재 사용자 행동 데이터 및 복제DB에 저장된 사용자 개인 정보를 참조하여 실시간 이벤트 분석을 수행한 결과 특정 이벤트 룰이 충족되면, 충족된 이벤트 룰에 따른 출력으로서 사용자에게 상품 오퍼를 제공할 수 있다. 예컨대 최근 2년간 구매 금액이 20만원이 넘는 사용자들 중에서 A 브랜드의 가방을 구매한 사용자는 B 브랜드의 시계를 구매할 확률이 높다는 통계에 기반하여 이벤트 룰을 설정한 경우, 웹 사이트 내에서의 현재 사용자 행동 데이터(즉, A 브랜드의 가방 구매 여부) 및 복제DB에 저장된 사용자 개인 정보(즉, 최근 2년간 구매 금액이 20만원 이상인지 여부)를 실시간으로 판단하고, 해당 조건 충족시 사용자에게 B 브랜드의 시계에 대한 상품 오퍼를 제공할 수 있다.Providing a real time offer (S1340) may include providing a product offer to a user terminal. Specifically, when real-time event analysis is performed by referring to current user behavior data in the web site and user personal information stored in the replication DB, if a specific event rule is satisfied, the product offer is presented to the user as an output according to the satisfied event rule. Can provide. For example, if the user who purchased the brand A bag among the users who purchased more than 200,000 won in the past two years has set the event rule based on the statistics that they are more likely to purchase the brand B watch, the current user on the website Behavioral data (i.e., whether or not A brand is purchased) and user's personal information stored in the replica DB (i.e., whether the purchase amount is more than US $ 200) in the last two years is determined in real time, and the user is Product offers for watches can be provided.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 쿠폰 오퍼일 수 있다. In an embodiment, the offer provided to the user meeting the event rule in operation S1340 may be a coupon offer.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 적립금 오퍼일 수 있다. In an embodiment, the offer provided to the user who satisfies the event rule at step S1340 may be a reserve offer.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 할인 프로모션일 수 있다.In an embodiment, the offer provided to the user meeting the event rule in operation S1340 may be a discount promotion.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 제휴 서비스에 대한 링크를 제공하는 것일 수 있다.In an embodiment, the offer provided to the user meeting the event rule in operation S1340 may be to provide a link to an affiliate service.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 사용자 단말에 대하여 웹 서버에서 제공하는 웹 사이트의 진입페이지를 변경하는 것일 수 있다. 예컨대 사용자가 관심이 많은 것으로 분석된 상품, 브랜드 등이 웹 사이트 최초 접속시부터 표시되도록 진입페이지를 변경할 수 있다.In one embodiment, the offer provided to the user meeting the event rule in the step S1340 of providing a real-time offer may be to change the entry page of the web site provided by the web server for the user terminal. For example, the entry page may be changed so that products, brands, and the like, which are analyzed to be of high interest to the user, are displayed from the first access to the website.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 사용자 단말에 대하여 웹 서버에서 제공하는 웹 사이트의 사용자 인터페이스를 변경하는 것일 수 있다. 예컨대 사용자가 관심이 많은 것으로 분석된 상품, 브랜드 등을 열람하고 구매하기 편리하도록 사용자 인터페이스를 변경할 수 있다.In one embodiment, the offer provided to the user meeting the event rule in the step S1340 of providing a real-time offer may be to change the user interface of the web site provided by the web server for the user terminal. For example, the user interface may be changed to facilitate viewing and purchasing products, brands, and the like, which are analyzed to be of interest to the user.

일 실시예로, 실시간 오퍼를 제공하는 단계(S1340)에서 이벤트 룰을 충족한 사용자에게 제공하는 오퍼는 사용자 단말에 대하여 웹 서버에서 제공하는 웹 사이트의 레이아웃을 변경하는 것일 수 있다. 예컨대 사용자가 관심이 많은 것으로 분석된 상품, 브랜드 등이 웹 페이지에서 차지하는 레이아웃 영역이 확대되도록 웹 사이트의 레이아웃을 변경할 수 있다.In an embodiment, the offer provided to the user who satisfies the event rule in operation S1340 may be to change the layout of the web site provided by the web server for the user terminal. For example, the layout of the web site may be changed so that the layout area occupied by the web page by products, brands, etc. analyzed by the user's interest is enlarged.

이벤트 룰은 현업부서 담당자가 수동으로 설정할 수도 있고, 자동으로 생성될 수도 있다. 이벤트 룰을 자동으로 생성하는 경우, 실시간 오퍼를 제공하는 단계(S1340) 다음에, 새로운 이벤트 룰을 자동으로 생성하는 단계를 더 포함할 수 있다.Event rules can be set manually by the person in charge of the business unit or can be generated automatically. When automatically generating an event rule, the method may further include automatically generating a new event rule after providing a real-time offer (S1340).

새로운 이벤트 룰을 자동으로 생성하는 단계는, 복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 수집하는 단계, 수집된 복수개의 이벤트 스트림 중 기 설정된 비율 이상의 이벤트 스트림이 공통적으로 가지는 패턴을 분석하는 단계 및 패턴을 이용하여 새로운 이벤트 룰을 생성하는 단계를 포함할 수 있다.The step of automatically generating a new event rule may include collecting a plurality of event streams received from a plurality of user terminals, analyzing a pattern that event streams having a predetermined ratio among a plurality of collected event streams have in common; It may include generating a new event rule using a pattern.

예를 들어, 복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 분석한 결과, A를 구매하면 적어도 n번의 Request-URL 패킷 전송 이내에 B를 구매하는 패턴을 발견한 경우, A를 구매한 사람에게 n번의 클릭/터치 이전에 B에 대한 오퍼를 제공하도록 하는 이벤트 룰을 자동으로 생성할 수 있다. For example, when a plurality of event streams received from a plurality of user terminals are analyzed, and if A is found and a pattern is found in which B is purchased within at least n Request-URL packet transmissions, n is returned to the person who purchased A. You can automatically generate an event rule to provide an offer for B before one click / touch.

다른 예로, 복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 분석한 결과, A를 구매하면 적어도 t시간 이내에 B를 구매하는 패턴을 발견한 경우, A를 구매한 사람에게 t시간 이내에 B에 대한 오퍼를 제공하도록 하는 이벤트 룰을 자동으로 생성할 수 있다. As another example, when a plurality of event streams received from a plurality of user terminals are analyzed and a pattern of purchasing B is found within at least t hours when A is purchased, an offer for B within t hours is provided to the person who purchased A. You can automatically create an event rule to provide.

다른 예로, 복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 분석한 결과, A를 장바구니에 담으면 높은 확률로 A에 대한 구매까지 진행하는 패턴을 발견한 경우, A를 장바구니에 담은 사람에게 A에 대한 큰 폭의 할인 프로모션을 제공하도록 하는 이벤트 룰을 자동으로 생성할 수 있다. As another example, when a plurality of event streams received from a plurality of user terminals are analyzed, and if A is found in the shopping cart, a pattern having a high probability of purchasing to A is found. Event rules can be automatically generated to provide large discount promotions for the product.

본 발명의 제2 실시예에 따른 실시간 오퍼 제공 방법은, 제1 실시예에 따른 실시간 오퍼 제공 방법과는 달리 달리 패킷 캡쳐를 하지 않고 웹 페이지에 저장된 스크립트를 이용하여 사용자 행동 데이터를 수집한다. Unlike the real-time offer providing method according to the first embodiment, the real-time offer providing method according to the second embodiment of the present invention collects user behavior data using a script stored in a web page without capturing packets.

구체적으로 본 발명의 제2 실시예에 따른 실시간 오퍼 제공 방법은, 기 설정된 조건을 충족하는 사용자 단말의 입력을 전송하는 스크립트를 실행하는 단계, 스크립트에 의해 전송된 사용자 단말의 입력을 이용하여 이벤트 스트림을 생성하는 단계, 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계 및 이벤트 룰 충족시 실시간 오퍼를 제공하는 단계를 포함할 수 있다. In detail, the method for providing a real-time offer according to the second embodiment of the present invention may include executing a script for transmitting an input of a user terminal that satisfies a preset condition, and using the input of the user terminal transmitted by the script. And generating an event rule, determining whether the event rule is satisfied, and providing a real-time offer when the event rule is satisfied.

본 발명의 제2 실시예에 따른 실시간 오퍼 제공 방법은, 패킷 캡쳐를 하지 않고 웹 페이지에 저장된 스크립트를 이용하여 사용자 행동 데이터를 수집한다는 점 이외에는 제1 실시예에 따른 실시간 오퍼 제공 방법과 동일하므로, 반복되는 부분에 대한 자세한 설명을 생략한다.Since the real-time offer providing method according to the second embodiment of the present invention is the same as the real-time offer providing method according to the first embodiment except that user behavior data is collected using a script stored in a web page without packet capture, Detailed description of repeated parts is omitted.

한편, 본 발명의 제2 실시예에 따른 실시간 오퍼 제공 방법은 하나 이상의 서버에 의해 실행될 수 있다. 또는 프로세서, 메모리, 스토리지 및 네트워크 인터페이스를 구비한 모든 종류의 컴퓨팅 장치에 의해 실행될 수 있다.Meanwhile, the real-time offer providing method according to the second embodiment of the present invention may be executed by one or more servers. Or by any type of computing device having a processor, memory, storage, and network interface.

도 14는 본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법을 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.14 is a hardware block diagram of an exemplary computing device that can implement a method of providing a real-time offer according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 실시간 오퍼 제공 방법을 구현할 수 있는 예시적인 컴퓨팅 장치는, 하나 이상의 프로세서(1410), 프로세서(1410)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(1420), 스토리지(1430), 버스(bus) 및 네트워크 인터페이스(1440)를 포함할 수 있다. 도 14에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 14에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.Exemplary computing devices capable of implementing a method of providing a real-time offer according to an embodiment of the present invention include one or more processors 1410, a memory 1420 for loading a computer program executed by the processor 1410, The storage 1430 may include a bus and a network interface 1440. 14, only components relevant to embodiments of the present invention are shown. Therefore, it will be appreciated by those skilled in the art that the present invention may further include other general purpose components in addition to the components shown in FIG. 14.

본 발명의 실시예들에 따른 방법을 구현할 수 있는 컴퓨팅 장치는 하나 이상의 프로세서를 구비할 수 있다.A computing device capable of implementing the method according to embodiments of the present invention may include one or more processors.

프로세서(1410)는 본 발명의 실시예들에 따른 방법을 구현할 수 있는 컴퓨팅 장치의 각 구성의 전반적인 동작을 제어한다. 프로세서(1410)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(1410)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다.The processor 1410 controls the overall operation of each component of the computing device capable of implementing the method according to embodiments of the present invention. The processor 1410 includes a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), a graphics processing unit (GPU), or any type of processor well known in the art. Can be. In addition, the processor 1410 may perform an operation on at least one application or program for executing a method according to embodiments of the present invention.

메모리(1420)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1420)는 본 발명의 실시예들에 따른 방법을 실행하기 위하여 스토리지(1430)로부터 하나 이상의 컴퓨터 프로그램을 로드할 수 있다. The memory 1420 stores various data, commands, and / or information. Memory 1420 may load one or more computer programs from storage 1430 to execute a method in accordance with embodiments of the present invention.

스토리지(1430)는 하나 이상의 컴퓨터 프로그램을 비임시적으로 저장할 수 있다. 스토리지(1430)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다. 스토리지(1430)에는 본 발명의 실시예들에 따른 방법을 수행하도록 하는 컴퓨터 프로그램이 저장되어 있다.The storage 1430 may non-temporarily store one or more computer programs. The storage 1430 may be a non-volatile memory such as a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, or a technical field to which the present invention pertains. And any known type of computer readable recording medium. The storage 1430 stores a computer program for performing a method according to embodiments of the present invention.

버스(bus)는 본 발명의 실시예들에 따른 방법을 구현할 수 있는 컴퓨팅 장치의 구성요소 간 통신 기능을 제공한다. 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus), 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.A bus provides a communication function between components of a computing device capable of implementing the method according to embodiments of the present invention. The bus may be implemented as various types of buses such as an address bus, a data bus, and a control bus.

네트워크 인터페이스(1440)는 네트워크에 연결된 클라이언트, 서버, 기타 컴퓨팅 장치와 통신을 수행하기 위한 인터페이스이다. The network interface 1440 is an interface for communicating with clients, servers, and other computing devices connected to the network.

본 발명의 일 실시예에 따른 컴퓨팅 장치는, 하나 이상의 프로세서(1410), 프로세서(1410)에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리(1420) 및 컴퓨터 프로그램을 저장하는 스토리지(1430)를 포함하되, 컴퓨터 프로그램은, 사용자 단말과 웹 서버 간 송수신되는 패킷을 캡쳐하는 인스트럭션, 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 인스트럭션, 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 인스트럭션 및 이벤트 룰 충족시 실시간 오퍼를 제공하는 인스트럭션을 포함할 수 있다.A computing device according to an embodiment of the present invention includes one or more processors 1410, a memory 1420 for loading a computer program executed by the processor 1410, and a storage 1430 for storing the computer program, The computer program may include instructions for capturing packets transmitted and received between the user terminal and the web server, instructions for generating an event stream using the captured packets, instructions for analyzing the event stream to determine whether the event rules are met, and real-time when event rules are met. It may include instructions that provide an offer.

본 발명의 일 실시예에 따른 컴퓨팅 장치의 스토리지(1430)에 저장된 컴퓨터 프로그램의 각 인스트럭션은 앞에서 설명한 실시간 오퍼 제공 방법을 수행할 수 있다. 앞에서 설명한 것과 중복되는 내용에 대한 설명은 생략한다.Each instruction of the computer program stored in the storage 1430 of the computing device according to an embodiment of the present invention may perform the real-time offer providing method described above. The description of the overlapping contents will be omitted.

지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터 프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 PC와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The methods according to the embodiments of the present invention described so far may be performed by execution of a computer program implemented in computer readable code. The computer program may be transmitted from the first computing device to the second computing device via a network such as the Internet and installed in the second computing device, thereby being used in the second computing device. The first computing device and the second computing device both include a server device, a physical server belonging to a server pool for cloud services, and a stationary computing device such as a desktop PC.

또한, 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록 매체는, 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 컴퓨터로 읽을 수 있는 기록 매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 다른 컴퓨팅 장치에서 사용될 수 있다.In addition, the inventive concept may be embodied in computer readable code on a computer readable medium. The computer-readable recording medium may be a removable recording medium (CD, DVD, Blu-ray Disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). A computer program recorded on a computer readable recording medium may be transmitted to another computing device and installed in another computing device through a network such as the Internet, thereby being used in another computing device.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티 태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지될 수 있음을 이해하여야 한다.Although the operations are shown in a specific order in the drawings, it should not be understood that the operations must be performed in the specific order or sequential order shown or that all the illustrated operations must be executed to achieve the desired results. In certain situations, multitasking and parallel processing may be advantageous. Moreover, the separation of the various configurations in the embodiments described above should not be understood as such separation being necessary, and the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products. Should be understood.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may be embodied in other specific forms without changing the technical spirit or essential features of the present invention. I can understand. Therefore, it is to be understood that the embodiments described above are exemplary in all respects and not restrictive.

Claims (41)

하나 이상의 서버에 의해 수행되는 방법으로서,
사용자 단말과 웹 서버 간 송수신되는 패킷을 캡쳐하는 단계;
상기 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 단계;
상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 단계; 및
상기 이벤트 룰 충족시 실시간 오퍼를 제공하는 단계를 포함하는,
실시간 오퍼 제공 방법.
A method performed by one or more servers,
Capturing packets transmitted and received between the user terminal and the web server;
Generating an event stream using the captured packet;
Analyzing the event stream to determine whether an event rule is satisfied; And
Providing a real-time offer upon meeting the event rule,
How to offer live offers.
제1항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는,
상기 이벤트 스트림에 포함된 이벤트 중 기 설정된 필터링 기준을 충족하는 이벤트를 필터링하는 단계; 및
상기 필터링된 이벤트 스트림을 분석하여 상기 이벤트 룰 충족 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
Determining whether the event rule is satisfied,
Filtering an event meeting a predetermined filtering criterion among the events included in the event stream; And
Analyzing the filtered event stream to determine whether the event rule is satisfied.
How to offer live offers.
제2항에 있어서,
상기 필터링하는 단계는, URL 요청(Request-URL)인 이벤트를 필터링하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 2,
The filtering may include filtering an event that is a URL request (URL).
How to offer live offers.
제2항에 있어서,
상기 필터링하는 단계는, 이벤트 속성값에 기 설정된 문자열이 포함된 이벤트를 필터링하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 2,
The filtering may include filtering an event including a preset string in an event attribute value.
How to offer live offers.
제2항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에서 특정 이벤트 발생 후 기 설정된 시간 이내에 다음 이벤트가 발생하였는지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 2,
Determining whether the event rule is satisfied includes determining whether a next event occurs within a preset time after a specific event occurs in the filtered event stream.
How to offer live offers.
제2항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에 포함된 각 이벤트의 URL 주소값을 추출하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 2,
Determining whether the event rule is satisfied includes extracting a URL address value of each event included in the filtered event stream.
How to offer live offers.
제6항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에서 특정 카테고리의 상품에 대한 상품 설명 페이지 URL을 속성값으로 가지는 이벤트가 기 설정된 횟수 이상 카운트되었는지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 6,
The determining of whether the event rule is satisfied may include determining whether an event having a product description page URL of a product of a specific category as an attribute value in the filtered event stream has been counted more than a preset number of times.
How to offer live offers.
제6항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에서 특정 카테고리의 상품을 장바구니에 담기 위한 URL을 속성값으로 가지는 이벤트가 기 설정된 횟수 이상 카운트되었는지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 6,
The determining of whether the event rule is satisfied may include determining whether an event having a URL as an attribute value for including a product of a specific category in a shopping cart in the filtered event stream is counted more than a preset number of times.
How to offer live offers.
제6항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에서 특정 카테고리의 상품을 구매하기 위한 URL을 속성값으로 가지는 이벤트가 기 설정된 횟수 이상 카운트되었는지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 6,
The determining whether the event rule is satisfied may include determining whether an event having a URL as an attribute value for purchasing a product of a specific category in the filtered event stream is counted more than a preset number of times.
How to offer live offers.
제6항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에서 특정 상품을 장바구니에 담기 위한 URL을 속성값으로 가지는 이벤트가 기 설정된 횟수 이상 카운트되었는지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 6,
The determining of whether the event rule is satisfied may include determining whether an event having a URL as an attribute value for adding a specific product to a shopping cart in the filtered event stream has been counted more than a preset number of times.
How to offer live offers.
제6항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 필터링된 이벤트 스트림에서 키워드 검색을 위한 URL을 속성값으로 가지는 이벤트가 발생하였는지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 6,
The determining of whether the event rule is satisfied includes determining whether an event having a URL for a keyword search as an attribute value has occurred in the filtered event stream.
How to offer live offers.
제1항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계 다음에,
상기 이벤트 스트림을 분석한 결과 상기 이벤트 룰이 충족되지 않았다고 판단되는 경우, 상기 이벤트 룰을 리바이즈(revise)하는 단계를 더 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
After determining whether the event rule is satisfied,
And analyzing the event stream and determining that the event rule is not satisfied, revising the event rule.
How to offer live offers.
제12항에 있어서,
상기 이벤트 룰을 리바이즈하는 단계는,
상기 이벤트 룰에 포함된 변수의 수치값을 변경시키는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 12,
Reviving the event rule,
Changing a numerical value of a variable included in the event rule;
How to offer live offers.
제12항에 있어서,
상기 이벤트 룰을 리바이즈하는 단계는,
상기 이벤트 룰에 포함된 변수를 변경시키는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 12,
Reviving the event rule,
Changing a variable included in the event rule;
How to offer live offers.
제14항에 있어서,
상기 이벤트 룰에 포함된 변수를 변경시키는 단계는,
상기 변수가 상기 사용자 단말이 전송하는 http request 패킷의 'GET' 메소드인 경우, 상기 변수를 http request 패킷의 'POST' 메소드로 변경시키는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 14,
Changing the variable included in the event rule,
If the variable is a 'GET' method of the http request packet transmitted by the user terminal, comprising the step of changing the variable to the 'POST' method of the http request packet,
How to offer live offers.
제12항에 있어서,
상기 이벤트 룰을 리바이즈하는 단계는,
상기 실시간 오퍼의 대상 상품을 변경시키는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 12,
Reviving the event rule,
Changing a target product of the real-time offer;
How to offer live offers.
제12항에 있어서,
상기 이벤트 룰을 리바이즈하는 단계는,
상기 실시간 오퍼의 종류를 변경시키는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 12,
Reviving the event rule,
Changing the type of real-time offer;
How to offer live offers.
제12항에 있어서,
상기 이벤트 룰을 리바이즈하는 단계는,
상기 실시간 오퍼를 제공한 후의 구매율이 기 설정된 확률 이하인 경우, 상기 이벤트 룰을 리바이즈하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 12,
Reviving the event rule,
If the purchase rate after providing the real-time offer is less than or equal to a preset probability, reviving the event rule;
How to offer live offers.
제1항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는, 상기 이벤트 스트림 및 운영DB를 복제한 복제DB의 데이터를 분석하여 상기 이벤트 룰 충족 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
Determining whether or not the event rule is satisfied includes determining whether the event rule is satisfied by analyzing data of the replication DB that replicates the event stream and the operation DB.
How to offer live offers.
제19항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 단계는,
상기 복제DB로부터 상기 사용자의 기 설정된 기간 내의 구매 내역을 조회하는 단계;
상기 구매 내역으로부터 상기 기 설정된 기간 내의 거래 금액을 합산하는 단계; 및
상기 합산된 거래 금액이 기 설정된 금액 이상인지 여부를 판단하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 19,
Determining whether the event rule is satisfied,
Retrieving a purchase history within a predetermined period of the user from the replica DB;
Summing transaction amounts within the predetermined period from the purchase history; And
Determining whether the summed transaction amount is greater than or equal to a predetermined amount;
How to offer live offers.
제19항에 있어서,
상기 패킷을 캡쳐하는 단계 이전에, 상기 복제DB를 업데이트하는 단계를 더 포함하되,
상기 복제DB를 업데이트하는 단계는,
상기 운영DB의 변경 항목을 파악하는 단계; 및
상기 변경 항목을 이용하여 상기 복제DB를 업데이트하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 19,
Before the step of capturing the packet, further comprising updating the replica DB,
Updating the replica DB,
Identifying a change item of the operation DB; And
Updating the replication DB using the change item;
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에게 상품 오퍼를 제공하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
The providing of the real-time offer includes providing a product offer to the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에게 쿠폰 오퍼를 제공하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
Providing the real-time offer includes providing a coupon offer to the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에게 적립금 오퍼를 제공하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
Providing the real-time offer includes providing a reserve offer to the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에게 특정 상품에 대한 할인 프로모션을 제공하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
The providing of the real-time offer may include providing a discount promotion for a specific product to the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에게 제휴 서비스에 대한 링크를 제공하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
The providing of the real-time offer includes providing a link to an affiliate service to the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에 대하여 상기 웹 서버에서 제공하는 웹 사이트의 진입페이지를 변경하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
The providing of the real-time offer may include changing an entry page of a web site provided by the web server with respect to the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에 대하여 상기 웹 서버에서 제공하는 웹 사이트의 사용자 인터페이스를 변경하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
The providing of the real-time offer may include changing a user interface of a web site provided by the web server for the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계는, 상기 사용자 단말에 대하여 상기 웹 서버에서 제공하는 웹 사이트의 레이아웃을 변경하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
The providing of the real-time offer may include changing a layout of a web site provided by the web server for the user terminal.
How to offer live offers.
제1항에 있어서,
상기 실시간 오퍼를 제공하는 단계 다음에, 새로운 이벤트 룰을 자동으로 생성하는 단계를 더 포함하되,
상기 새로운 이벤트 룰을 자동으로 생성하는 단계는,
복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 수집하는 단계;
상기 수집된 복수개의 이벤트 스트림 중 기 설정된 비율 이상의 이벤트 스트림이 공통적으로 가지는 패턴을 분석하는 단계; 및
상기 패턴을 이용하여 상기 새로운 이벤트 룰을 생성하는 단계를 포함하는,
실시간 오퍼 제공 방법.
The method of claim 1,
After providing the real-time offer, further comprising the step of automatically generating a new event rule,
Automatically generating the new event rule,
Collecting a plurality of event streams received from the plurality of user terminals;
Analyzing a pattern that event streams having a preset ratio among the collected plurality of event streams have in common; And
Generating the new event rule using the pattern;
How to offer live offers.
사용자 단말에게 웹 페이지를 제공하는 웹 서버;
상기 사용자 단말과 상기 웹 서버 간 송수신되는 패킷을 캡쳐하는 패킷 캡쳐부; 및
상기 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하고, 상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하며, 상기 이벤트 룰 충족 여부 판단 결과를 상기 웹 페이지에게 전송하는 실시간 이벤트 처리부를 포함하되,
상기 웹 서버는 상기 이벤트 룰 충족시 상기 사용자 단말에게 실시간 오퍼를 제공하는,
서버 시스템.
A web server for providing a web page to a user terminal;
A packet capture unit which captures packets transmitted and received between the user terminal and the web server; And
A real time event processor for generating an event stream using the captured packet, analyzing the event stream to determine whether an event rule is satisfied, and transmitting a result of determining whether the event rule is satisfied to the web page;
The web server provides a real time offer to the user terminal when the event rule is satisfied.
Server system.
제31항에 있어서,
상기 실시간 이벤트 처리부는, 상기 이벤트 스트림에 포함된 이벤트 중 기 설정된 필터링 기준을 충족하는 이벤트를 필터링하고, 상기 필터링된 이벤트 스트림을 분석하여 상기 이벤트 룰 충족 여부를 판단하는,
서버 시스템.
The method of claim 31, wherein
The real-time event processor is configured to filter an event meeting a predetermined filtering criterion among events included in the event stream, and determine whether the event rule is satisfied by analyzing the filtered event stream.
Server system.
제31항에 있어서,
상기 서버는 운영DB를 복제한 복제DB를 더 포함하되,
상기 실시간 이벤트 처리부는, 상기 이벤트 스트림 및 상기 복제DB의 데이터를 분석하여 이벤트 룰 충족 여부를 판단하는,
서버 시스템.
The method of claim 31, wherein
The server further includes a replica DB replicating the operational DB,
The real time event processing unit, by analyzing the data of the event stream and the replication DB to determine whether the event rule is satisfied,
Server system.
제31항에 있어서,
상기 실시간 오퍼는, 상기 사용자 단말의 화면에 표시되는 상기 웹 페이지의 레이아웃을 변경하는 것인,
서버 시스템.
The method of claim 31, wherein
The real-time offer is to change the layout of the web page displayed on the screen of the user terminal,
Server system.
제31항에 있어서,
상기 실시간 이벤트 처리부는, 복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 수집하고, 상기 수집된 복수개의 이벤트 스트림 중 기 설정된 비율 이상의 이벤트 스트림이 공통적으로 가지는 패턴을 분석하여, 새로운 이벤트 룰을 생성하는,
서버 시스템.
The method of claim 31, wherein
The real-time event processing unit collects a plurality of event streams received from a plurality of user terminals, analyzes a pattern common to event streams having a predetermined ratio among the collected plurality of event streams, and generates a new event rule. ,
Server system.
하나 이상의 프로세서;
상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리; 및
상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되,
상기 컴퓨터 프로그램은,
사용자 단말과 웹 서버 간 송수신되는 패킷을 캡쳐하는 인스트럭션;
상기 캡쳐된 패킷을 이용하여 이벤트 스트림을 생성하는 인스트럭션;
상기 이벤트 스트림을 분석하여 이벤트 룰 충족 여부를 판단하는 인스트럭션; 및
상기 이벤트 룰 충족시 실시간 오퍼를 제공하는 인스트럭션을 포함하는,
컴퓨팅 장치.
One or more processors;
A memory for loading a computer program executed by the processor; And
Storage for storing the computer program,
The computer program,
Instructions for capturing packets transmitted and received between a user terminal and a web server;
Instructions for generating an event stream using the captured packets;
An instruction for analyzing the event stream to determine whether an event rule is satisfied; And
Including an instruction that provides a real-time offer upon meeting the event rule,
Computing device.
제36항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 인스트럭션은,
상기 이벤트 스트림에 포함된 이벤트 중 기 설정된 필터링 기준을 충족하는 이벤트를 필터링하는 인스트럭션; 및
상기 필터링된 이벤트 스트림을 분석하여 상기 이벤트 룰 충족 여부를 판단하는 인스트럭션을 포함하는,
컴퓨팅 장치.
The method of claim 36, wherein
The instruction for determining whether the event rule is satisfied,
Instructions for filtering an event that meets predetermined filtering criteria among the events included in the event stream; And
And an instruction for analyzing the filtered event stream to determine whether the event rule is satisfied.
Computing device.
제36항에 있어서,
상기 이벤트 룰 충족 여부를 판단하는 인스트럭션은, 상기 이벤트 스트림 및 운영DB를 복제한 복제DB의 데이터를 분석하여 이벤트 룰 충족 여부를 판단하는 인스트럭션을 포함하는,
컴퓨팅 장치.
The method of claim 36, wherein
The instruction for determining whether the event rule is satisfied includes an instruction for determining whether the event rule is satisfied by analyzing data of the replica DB that duplicates the event stream and the operation DB.
Computing device.
제36항에 있어서,
상기 실시간 오퍼를 제공하는 인스트럭션은, 상기 사용자 단말의 화면에 표시되는 상기 웹 페이지의 레이아웃을 변경하는 인스트럭션을 포함하는,
컴퓨팅 장치.
The method of claim 36, wherein
The instruction providing the real time offer includes instructions for changing the layout of the web page displayed on the screen of the user terminal.
Computing device.
제36항에 있어서,
상기 실시간 오퍼를 제공하는 인스트럭션 다음에, 새로운 이벤트 룰을 자동으로 생성하는 인스트럭션을 더 포함하되,
상기 새로운 이벤트 룰을 자동으로 생성하는 인스트럭션은,
복수개의 사용자 단말로부터 수신된 복수개의 이벤트 스트림을 수집하는 인스트럭션;
상기 수집된 복수개의 이벤트 스트림 중 기 설정된 비율 이상의 이벤트 스트림이 공통적으로 가지는 패턴을 분석하는 인스트럭션; 및
상기 패턴을 이용하여 상기 새로운 이벤트 룰을 생성하는 인스트럭션을 포함하는,
컴퓨팅 장치.
The method of claim 36, wherein
After the instruction providing the real-time offer, further comprising an instruction for automatically generating a new event rule,
The instruction to automatically generate the new event rule is
Instructions for collecting a plurality of event streams received from the plurality of user terminals;
An instruction for analyzing a pattern that event streams having a predetermined ratio among the collected plurality of event streams have in common; And
Instructions for generating the new event rule using the pattern,
Computing device.
컴퓨터로 하여금 제1항 내지 30항 중 어느 한 항의 방법을 수행하도록 하는 컴퓨터 프로그램이 저장된, 컴퓨터 판독 가능한 기록 매체.A computer readable recording medium having stored thereon a computer program for causing a computer to perform the method of any one of claims 1-30.
KR1020180102698A 2018-08-30 2018-08-30 Method and server system for providnig real-time offer by using real-time event processing KR20200025408A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180102698A KR20200025408A (en) 2018-08-30 2018-08-30 Method and server system for providnig real-time offer by using real-time event processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180102698A KR20200025408A (en) 2018-08-30 2018-08-30 Method and server system for providnig real-time offer by using real-time event processing

Publications (1)

Publication Number Publication Date
KR20200025408A true KR20200025408A (en) 2020-03-10

Family

ID=69800455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180102698A KR20200025408A (en) 2018-08-30 2018-08-30 Method and server system for providnig real-time offer by using real-time event processing

Country Status (1)

Country Link
KR (1) KR20200025408A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102367546B1 (en) * 2021-10-08 2022-02-25 주식회사 이글루시큐리티 Hybrid correlation analysis method between heterogeneous using streaming analysis and batch analysis and apparatus thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080096004A (en) 2007-04-26 2008-10-30 엔에이치엔(주) Data storage and inquiry method for time series analysis of weblog and system for executing the method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080096004A (en) 2007-04-26 2008-10-30 엔에이치엔(주) Data storage and inquiry method for time series analysis of weblog and system for executing the method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102367546B1 (en) * 2021-10-08 2022-02-25 주식회사 이글루시큐리티 Hybrid correlation analysis method between heterogeneous using streaming analysis and batch analysis and apparatus thereof

Similar Documents

Publication Publication Date Title
US20150088598A1 (en) Cross-retail marketing based on analytics of multichannel clickstream data
US8244578B2 (en) Methods and systems to facilitate keyword bid arbitrage with multiple advertisement placement providers
US9037483B1 (en) Multi-touch attribution model for valuing impressions and other online activities
US20190347287A1 (en) Method for screening and injection of media content based on user preferences
US10218599B2 (en) Identifying referral pages based on recorded URL requests
US20090171755A1 (en) Behavior-based generation of site-to-site referrals
US20120296697A1 (en) Systems and methods for automated real time e-commerce marketing activities
US8645411B1 (en) Method and system for generating a modified website
KR20110032878A (en) Keyword ad. method and system for social networking service
US20180053199A1 (en) Auto-segmentation
KR20200045354A (en) Automatic advertisement execution device, method for automatically generating campaign information for an advertisement medium to execute an advertisement and computer program for executing the method
EP3822902A1 (en) Systems and methods for customization of reviews
US11803563B2 (en) Methods and systems for processing and storing streamed event data
US11410201B2 (en) Marketing to consumers using data obtained from abandoned GPS searches
CA3121540A1 (en) Methods and systems for suggesting alternative phrases for text-based web content
US20220036477A1 (en) System and method for determining revenue generated by any zone in a webpage
CN111833219A (en) Method and device for providing intellectual property service commodity data
KR20200025408A (en) Method and server system for providnig real-time offer by using real-time event processing
US20210142386A1 (en) Methods and systems for notifying users of new applications
US20200193458A1 (en) A web-based method for enhanced analysis of analytics setup and data
US20210150593A1 (en) Systems and methods for customization of reviews
CA3134673C (en) Methods and systems for generating search results
US20240012866A1 (en) Queuing analytics events before consent
US20220067795A1 (en) Method And System For Managing Communities Search Platform
US20160103930A1 (en) System and method for providing analytics respective of contextual data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination