KR20240149853A - Apparatus for providing statistical information associated with service - Google Patents
Apparatus for providing statistical information associated with service Download PDFInfo
- Publication number
- KR20240149853A KR20240149853A KR1020240132110A KR20240132110A KR20240149853A KR 20240149853 A KR20240149853 A KR 20240149853A KR 1020240132110 A KR1020240132110 A KR 1020240132110A KR 20240132110 A KR20240132110 A KR 20240132110A KR 20240149853 A KR20240149853 A KR 20240149853A
- Authority
- KR
- South Korea
- Prior art keywords
- feature
- statistical information
- electronic device
- type message
- message
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/117—Tagging; Marking up; Designating a block; Setting of attributes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Health & Medical Sciences (AREA)
- Accounting & Taxation (AREA)
- Mathematical Physics (AREA)
- Development Economics (AREA)
- General Health & Medical Sciences (AREA)
- Finance (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Algebra (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Game Theory and Decision Science (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 개시의 일 실시 예에 따른 전자 장치가 서비스와 연관된 통계 정보를 제공하는 방법은, 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인하는 단계; 사용자에 의해 설정된 서비스와 연관된 피쳐 설정을 확인하는 단계; 제1 타입 메시지 및 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성하는 단계; 및 제2 타입 메시지를 기반으로 피쳐 설정에 대응하는 통계 정보를 제공하는 단계를 포함한다.A method for an electronic device to provide statistical information associated with a service according to one embodiment of the present disclosure comprises: checking a first type message including information on an event associated with the service; checking a feature setting associated with the service set by a user; generating a second type message for deriving statistical information based on the first type message and the feature setting; and providing statistical information corresponding to the feature setting based on the second type message.
Description
본 개시의 실시 예는 서비스와 연관된 통계 정보를 제공하는 방법 및 장치에 관한 것이다.Embodiments of the present disclosure relate to a method and apparatus for providing statistical information associated with a service.
인터넷의 사용이 보편화됨에 따라 전자상거래 시장이 확대되고 있다. 특히 감염병의 확산에 따라, 오프라인 매장에 방문하여 상품을 구매하는 비중은 줄어들고 있는 반면, 컴퓨터 또는 스마트폰을 이용한 전자상거래를 통해 상품을 구매하는 비중은 급속도로 증가하고 있다.As the use of the Internet becomes more widespread, the e-commerce market is expanding. In particular, as infectious diseases spread, the proportion of people visiting offline stores to purchase products is decreasing, while the proportion of people purchasing products through e-commerce using computers or smartphones is rapidly increasing.
인터넷과 같은 네트워크 상에서 소비자(즉, 고객)와 생산자 간의 제품 거래를 중개하는 전자상거래 서비스, 소비자가 인터넷 상에서 스토어의 음식을 주문하고 주문된 음식을 스토어로부터 소비자의 위치까지 배달해주는 음식 배달 중개 서비스 등에서는, 소비자에게 제품 또는 스토어를 추천하기 위해 소비자의 주문 성향 및 다수의 소비자에게 인기 있는 제품 또는 스토어를 파악할 필요가 있다. 이를 위해서는 서비스 제공자가 빠르게 변화하는 소비자의 주문 성향, 주문 패턴, 페이지 방문 이력, 아이템, 스토어 또는 메뉴의 검색 이력 등과 같은 통계 정보를 실시간으로 생성하는 것이 중요하다. 통계 정보는 피쳐(feature)로 지칭될 수 있으며, 음식 배달 중개 서비스에서 생성되는 피쳐는 서비스의 품질을 향상시키기 위해 고객, 배달원, 스토어 등에 대해 수집할 필요가 있는 의미있는 정보를 포함할 수 있다. In electronic commerce services that mediate product transactions between consumers (i.e., customers) and producers on networks such as the Internet, and food delivery intermediary services that allow consumers to order food from a store on the Internet and have the ordered food delivered from the store to the consumer's location, it is necessary to understand consumers' ordering tendencies and products or stores that are popular with many consumers in order to recommend products or stores to consumers. To this end, it is important for service providers to generate statistical information in real time, such as consumers' rapidly changing ordering tendencies, ordering patterns, page visit history, and search history for items, stores, or menus. Statistical information may be referred to as features, and features generated by food delivery intermediary services may include meaningful information that needs to be collected about customers, delivery people, stores, etc. in order to improve the quality of services.
고객, 스토어 및 배달원의 액션과 관련된 이벤트의 누적되는 데이터 양이 방대하고, 서비스 제공자의 비즈니스 시나리오가 빠르게 변화하는 서비스에서, 실시간으로 피쳐를 계산하는 기술은 매우 중요하다. 그러나, 기존의 실시간 피쳐 계산 방법에서 낮은 피쳐 처리 레이턴시, 높은 피쳐 가용률, 및 장기간의 실시간 피쳐 추출을 유지하는 것은 상당히 어렵고, 서비스 제공자는 실시간 스트림 데이터로부터 추출하고자 하는 피쳐를 명확히 설정하고, 추출된 피쳐를 동적으로 애플리케이션에 로딩할 필요가 있으나, 기존의 피쳐 계산 방법에서는 이와 같은 실시간 피쳐의 추출 및 동적 로딩을 실현하는 것 또한 어려움이 따른다.In a service where the accumulated data of events related to the actions of customers, stores, and delivery personnel is huge, and the business scenario of the service provider changes rapidly, the technology for calculating features in real time is very important. However, it is quite difficult to maintain low feature processing latency, high feature availability, and long-term real-time feature extraction in the existing real-time feature calculation method. Service providers need to clearly set the features they want to extract from real-time stream data and dynamically load the extracted features into the application, but it is also difficult to realize such real-time feature extraction and dynamic loading in the existing feature calculation method.
이와 같은 실시간 통계 정보 제공 방법에 대한 선행문헌으로 대한민국등록특허 제10-1654847호가 있다.As a prior document on a method for providing real-time statistical information, there is Republic of Korea Patent No. 10-1654847.
본 개시의 실시 예는 상술한 문제점을 해결하기 위하여 제안된 것으로, 사용자에 의해 설정된 서비스와 연관된 피쳐 설정을 확인하고, 피쳐 설정을 기반으로 이벤트에 대한 정보를 포함하는 메시지로부터 서비스와 연관된 통계 정보를 도출하는 것을 목적으로 한다. An embodiment of the present disclosure is proposed to solve the above-described problem, and aims to identify feature settings associated with a service set by a user, and derive statistical information associated with the service from a message including information about an event based on the feature settings.
상술한 과제를 달성하기 위하여, 본 개시의 일 실시 예에 따르는 전자 장치가 서비스와 연관된 통계 정보를 제공하는 방법은, 상기 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인하는 단계; 사용자에 의해 설정된 상기 서비스와 연관된 피쳐 설정을 확인하는 단계; 상기 제1 타입 메시지 및 상기 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성하는 단계; 및 상기 제2 타입 메시지를 기반으로 상기 피쳐 설정에 대응하는 상기 통계 정보를 제공하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above-described task, a method for an electronic device to provide statistical information associated with a service according to an embodiment of the present disclosure is characterized by including: a step of checking a first type message including information on an event associated with the service; a step of checking a feature setting associated with the service set by a user; a step of generating a second type message for deriving statistical information based on the first type message and the feature setting; and a step of providing the statistical information corresponding to the feature setting based on the second type message.
일 실시 예에 따르면, 상기 피쳐 설정은 주체(subject) 필드를 포함하고, 상기 제2 타입 메시지는 상기 주체 필드를 기반으로 상기 제1 타입 메시지를 변환함으로써 생성되는 것을 특징으로 한다.According to one embodiment, the feature setting is characterized in that it includes a subject field, and the second type message is generated by converting the first type message based on the subject field.
일 실시 예에 따르면, 상기 제1 타입 메시지를 변환하는 것은 상기 제1 타입 메시지에 상기 주체 필드 및 상기 주체 필드에 대응하는 키 값을 나타내는 태그를 추가하는 것을 포함하는 것을 특징으로 한다.In one embodiment, converting the first type message comprises adding a tag indicating the subject field and a key value corresponding to the subject field to the first type message.
일 실시 예에 따르면, 상기 피쳐 설정은 객체(object) 필드 및 계산 함수를 더 포함하고, 상기 통계 정보를 제공하는 단계는 상기 제2 타입 메시지에 대해 상기 객체 필드에 상기 계산 함수를 적용하여 상기 통계 정보를 생성하는 단계를 포함하는 것을 특징으로 한다.According to one embodiment, the feature setting further includes an object field and a calculation function, and the step of providing the statistical information includes a step of generating the statistical information by applying the calculation function to the object field for the second type message.
일 실시 예에 따르면, 상기 이벤트는 상기 서비스를 통해 고객이 스토어에 대해 취한 액션에 대한 정보를 포함하고, 상기 주체 필드는 상기 고객 및 상기 스토어 중 적어도 하나와 연관된 식별자를 포함하는 것을 특징으로 한다.In one embodiment, the event comprises information about an action taken by a customer with respect to the store via the service, wherein the subject field comprises an identifier associated with at least one of the customer and the store.
일 실시 예에 따르면, 상기 액션은 상기 고객의 상기 스토어 검색; 상기 고객의 상기 스토어의 페이지 방문; 및 상기 고객의 상기 스토어의 메뉴에 대한 주문 중 적어도 하나를 포함하는 것을 특징으로 한다.In one embodiment, the action comprises at least one of: the customer searching the store; the customer visiting a page of the store; and the customer ordering a menu of the store.
일 실시 예에 따르면, 상기 제1 타입 메시지는 상기 이벤트가 발생함에 따라 메시지 큐에 큐잉되고, 상기 제1 타입 메시지를 확인하는 단계는 설정된 조건을 만족하면 상기 메시지 큐에서 상기 제1 타입 메시지를 불러오는 단계를 포함하는 것을 특징으로 한다.According to one embodiment, the first type message is queued in a message queue as the event occurs, and the step of checking the first type message includes a step of retrieving the first type message from the message queue if a set condition is satisfied.
일 실시 예에 따르면, 상기 피쳐 설정은 상기 통계 정보의 생성 주기와 연관된 계산 시간을 포함하고, 상기 조건은 상기 계산 시간을 기반으로 설정되는 것을 특징으로 한다.According to one embodiment, the feature setting includes a calculation time associated with a generation cycle of the statistical information, and the condition is characterized in that it is set based on the calculation time.
일 실시 예에 따르면, 상기 메시지 큐는 복수의 메시지 큐 중 제1 메시지 큐를 포함하고, 상기 피쳐 설정은 상기 복수의 메시지 큐 중 상기 제1 메시지 큐를 선택하기 위한 소스 정보를 포함하는 것을 특징으로 한다.According to one embodiment, the message queue includes a first message queue among a plurality of message queues, and the feature setting is characterized in that it includes source information for selecting the first message queue among the plurality of message queues.
일 실시 예에 따르면, 상기 피쳐 설정은 주체 필드 및 객체 필드를 포함하고, 상기 피쳐 설정을 기반으로 하나의 상기 제1 타입 메시지로부터 2개 이상의 상기 제2 타입 메시지가 생성되며, 상기 2개 이상의 제2 타입 메시지가 갖는 상기 주체 필드 및 상기 객체 필드 중 적어도 하나는 상이한 것을 특징으로 한다.According to one embodiment, the feature setting includes a subject field and an object field, and two or more second type messages are generated from one first type message based on the feature setting, and at least one of the subject field and the object field of the two or more second type messages is different.
일 실시 예에 따르면, 상기 피쳐 설정은 계산 함수를 더 포함하고, 상기 피쳐 설정을 기반으로 하나의 상기 제2 타입 메시지로부터 2개 이상의 상기 통계 정보가 생성되며, 상기 2개 이상의 통계 정보는 동일한 주체 필드 및 객체 필드를 기반으로 생성되는 것을 특징으로 한다.According to one embodiment, the feature setting further includes a calculation function, and two or more pieces of statistical information are generated from one of the second type messages based on the feature setting, and the two or more pieces of statistical information are generated based on the same subject field and object field.
일 실시 예에 따르면, 통계 정보를 제공하는 방법은 상기 통계 정보를 기반으로 제1 고객과 연관된 프로모션 정보를 프로모션 시스템에 요청하는 단계; 및 상기 프로모션 시스템으로부터 수신한 상기 프로모션 정보를 상기 제1 고객에게 제공하는 단계를 더 포함하는 것을 특징으로 한다.According to one embodiment, a method for providing statistical information further comprises the steps of requesting promotional information associated with a first customer from a promotion system based on the statistical information; and providing the promotional information received from the promotion system to the first customer.
일 실시 예에 따르면, 상기 제2 타입 메시지는 제1 데이터베이스에 저장되고, 상기 통계 정보는 제2 데이터베이스에 저장되며, 상기 제2 데이터베이스에 저장되는 상기 통계 정보는 상기 피쳐 설정에서 설정된 주기로 업데이트되는 것을 특징으로 한다.According to one embodiment, the second type message is stored in the first database, the statistical information is stored in the second database, and the statistical information stored in the second database is updated at a cycle set in the feature setting.
일 실시 예에 따르면, 통계 정보를 제공하는 방법은 상기 제1 데이터베이스에서 일정 기간 동안 들어오는 메시지가 없음을 감지하는 단계; 및 상기 감지를 기반으로 상기 메시지와 연관된 데이터 유실 경보를 제공하는 단계를 더 포함하는 것을 특징으로 한다.According to one embodiment, a method for providing statistical information further comprises the steps of: detecting that there is no incoming message from the first database for a predetermined period of time; and providing a data loss alert associated with the message based on the detection.
일 실시 예에 따르면, 상기 통계 정보는 제1 기간에 대한 실시간 통계 정보를 포함하고, 상기 통계 정보를 제공하는 방법은 상기 제1 기간 외의 제2 기간에 대한 오프라인 통계 정보를 제3 데이터베이스에서 확인하는 단계를 더 포함하고, 상기 통계 정보는 상기 제1 기간의 상기 실시간 통계 정보 및 상기 제2 기간의 상기 오프라인 통계 정보를 기반으로 생성되는 것을 특징으로 한다.According to one embodiment, the statistical information includes real-time statistical information for a first period, and the method for providing the statistical information further includes a step of checking offline statistical information for a second period other than the first period in a third database, wherein the statistical information is generated based on the real-time statistical information of the first period and the offline statistical information of the second period.
본 개시의 일 실시 예에 따르는 비일시적 컴퓨터 판독 가능 저장 매체는, 컴퓨터 판독 가능 명령어들을 저장하도록 구성되는 매체를 포함하고, 상기 컴퓨터 판독 가능 명령어들은 프로세서에 의해 실행되는 경우 상기 프로세서가: 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인하는 단계; 사용자에 의해 설정된 상기 서비스와 연관된 피쳐 설정을 확인하는 단계; 상기 제1 타입 메시지 및 상기 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성하는 단계; 및 상기 제2 타입 메시지를 기반으로 상기 피쳐 설정에 대응하는 상기 통계 정보를 제공하는 단계를 포함하는, 상기 서비스와 연관된 통계 정보를 제공하는 방법을 수행하도록 하는 것을 특징으로 한다.According to one embodiment of the present disclosure, a non-transitory computer-readable storage medium comprises a medium configured to store computer-readable instructions, which when executed by a processor cause the processor to perform a method for providing statistical information associated with a service, the method comprising: identifying a first type message including information about an event associated with a service; identifying a feature setting associated with the service set by a user; generating a second type message for deriving statistical information based on the first type message and the feature setting; and providing the statistical information corresponding to the feature setting based on the second type message.
본 개시의 일 실시 예에 따르는 서비스와 연관된 통계 정보를 제공하는 전자 장치는, 적어도 하나의 명령어를 저장하는 메모리; 및 상기 적어도 하나의 명령어를 실행함으로써, 상기 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인하고, 사용자에 의해 설정된 상기 서비스와 연관된 피쳐 설정을 확인하고, 상기 제1 타입 메시지 및 상기 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성하고, 상기 제2 타입 메시지를 기반으로 상기 피쳐 설정에 대응하는 상기 통계 정보를 제공하는 프로세서를 포함하는 것을 특징으로 한다.An electronic device providing statistical information associated with a service according to one embodiment of the present disclosure comprises: a memory storing at least one command; and a processor executing the at least one command to: identify a first type message including information on an event associated with the service, identify a feature setting associated with the service set by a user, generate a second type message for deriving statistical information based on the first type message and the feature setting, and provide the statistical information corresponding to the feature setting based on the second type message.
본 개시의 실시 예에 따르면, 전자 장치는 서비스와 연관된 이벤트에 대한 정보를 포함하는 메시지로부터 통계 정보를 생성할 때 사용자에 의해 설정된 피쳐 설정을 확인함으로써, 사용자로 하여금 이벤트 데이터로부터 추출하고자 하는 피쳐에 대한 정보를 전자 장치에 정확히 전달하고 필요에 따라 피쳐 정보를 쉽게 변경할 수 있도록 하고, 전자 장치는 사용자에 의해 설정된 피쳐 정보를 동적으로 반영하여 사용자가 원하는 통계 정보를 실시간으로 생성할 수 있다. According to an embodiment of the present disclosure, when generating statistical information from a message including information on an event associated with a service, an electronic device verifies feature settings set by a user, thereby allowing the user to accurately transmit information on features desired to be extracted from event data to the electronic device and easily change the feature information as needed, and the electronic device can dynamically reflect the feature information set by the user to generate statistical information desired by the user in real time.
또한, 본 개시의 일 실시 예에 따르면, 전자 장치는 제1 고객과 연관된 통계 정보를 기반으로 프로모션 정보를 제공함으로써 제1 고객의 선호도와 행동에 따라 맞춤형 정보를 제공하여 제1 고객이 선호하는 스토어와 메뉴 등을 추천할 수 있고, 제1 고객의 만족도를 향상시킬 수 있다. 또한, 전자 장치는 제1 고객의 재방문을 유도하고 새로운 고객을 유치함으로써 스토어의 매출을 증대시킬 수 있으며, 프로모션 정보를 프로모션 시스템에서 관리하게 함으로써 프로모션 정보의 일관성을 유지할 수 있다.In addition, according to one embodiment of the present disclosure, the electronic device can provide promotional information based on statistical information associated with the first customer, thereby providing customized information according to the preferences and behavior of the first customer, thereby recommending stores and menus preferred by the first customer, and improving the satisfaction of the first customer. In addition, the electronic device can increase the sales of the store by inducing the first customer to revisit and attracting new customers, and can maintain the consistency of the promotional information by managing the promotional information in the promotion system.
또한, 본 개시의 일 실시 예에 따르면, 전자 장치는 실시간 플로우와 오프라인 플로우에서 획득된 데이터를 모두 활용하여 통계 정보를 생성함으로써, 전반적인 처리 속도를 향상시키고 데이터 처리 비용을 절감할 수 있으며, 사용자로 하여금 더욱 정확하고 유용한 정보를 얻을 수 있도록 하고, 이로써 고객의 만족도 또한 향상시킬 수 있다. Furthermore, according to one embodiment of the present disclosure, the electronic device can generate statistical information by utilizing both data acquired from real-time flows and offline flows, thereby improving the overall processing speed and reducing data processing costs, enabling users to obtain more accurate and useful information, and thereby also improving customer satisfaction.
도 1은 본 개시의 일 실시 예에 따른 통계 정보를 제공하는 전자 장치의 각 구성을 개략적으로 도시하는 예시적인 도면이다.
도 2는 본 개시의 일 실시 예에 따른 실시간으로 통계 정보를 제공하기 위한 시스템의 전반적인 아키텍처를 나타내는 도면이다.
도 3은 본 개시의 일 실시 예에 따른 실시간 피쳐 계산 아키텍처를 개략적으로 나타내는 도면이다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 실시간 피쳐 계산 프로세스의 데이터 플로우를 예시적으로 나타내는 도면이다.
도 5a 내지 도 5b는 본 개시의 일 실시 예에 따른 피쳐 설정과 연관된 피쳐 속성의 구성요소 중 적어도 일부를 설명하기 위한 도면이다.
도 6a 내지 도 6d는 본 개시의 일 실시 예에 따른 사용자가 추출하고자 하는 피쳐를 설정할 수 있는 사용자 인터페이스를 예시적으로 나타내는 도면이다.
도 7a 내지 도 7b는 본 개시의 일부 실시 예에 따른 전자 장치가 피쳐를 동적으로 로딩하는 방법을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시 예에 따른 전자 장치가 메시지를 하나 이상의 메시지로 포크하는 방법을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따른 전자 장치의 피쳐 계산 플로우를 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시 예에 따른 전자 장치가 서비스와 연관된 통계 정보를 제공하는 방법의 흐름을 나타내는 순서도이다.FIG. 1 is an exemplary diagram schematically illustrating each component of an electronic device providing statistical information according to an embodiment of the present disclosure.
FIG. 2 is a diagram illustrating the overall architecture of a system for providing statistical information in real time according to one embodiment of the present disclosure.
FIG. 3 is a schematic diagram illustrating a real-time feature calculation architecture according to one embodiment of the present disclosure.
FIG. 4 is a diagram exemplarily showing a data flow of a real-time feature calculation process of an electronic device according to an embodiment of the present disclosure.
FIGS. 5A and 5B are diagrams illustrating at least some of the components of feature properties associated with feature settings according to one embodiment of the present disclosure.
FIGS. 6A to 6D are diagrams exemplarily showing a user interface that allows a user to set a feature to be extracted according to one embodiment of the present disclosure.
FIGS. 7A and 7B are diagrams illustrating a method for an electronic device to dynamically load features according to some embodiments of the present disclosure.
FIG. 8 is a diagram illustrating a method by which an electronic device according to one embodiment of the present disclosure forks a message into one or more messages.
FIG. 9 is a diagram for explaining a feature calculation flow of an electronic device according to an embodiment of the present disclosure.
FIG. 10 is a flowchart illustrating a method for an electronic device to provide statistical information associated with a service according to an embodiment of the present disclosure.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.In describing the embodiments, descriptions of technical contents that are well known in the technical field to which the present invention belongs and are not directly related to the present invention will be omitted. This is to convey the gist of the present invention more clearly without obscuring it by omitting unnecessary explanations.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.For the same reason, some components in the attached drawings are exaggerated, omitted, or schematically illustrated. In addition, the size of each component does not entirely reflect the actual size. The same or corresponding components in each drawing are given the same reference numbers.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.The advantages and features of the present invention, and the methods for achieving them, will become clear with reference to the embodiments described in detail below together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and the present embodiments are provided only to make the disclosure of the present invention complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.At this time, it will be understood that each block of the processing flow diagrams and combinations of the flow diagrams can be performed by computer program instructions. These computer program instructions can be loaded onto a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing equipment, so that the instructions executed by the processor of the computer or other programmable data processing equipment create a means for performing the functions described in the flow diagram block(s). These computer program instructions can also be stored in a computer-available or computer-readable memory that can be directed to a computer or other programmable data processing equipment to implement the function in a specific manner, so that the instructions stored in the computer-available or computer-readable memory can also produce a manufactured article including an instruction means for performing the functions described in the flow diagram block(s). Since the computer program instructions may be installed on a computer or other programmable data processing apparatus, a series of operational steps may be performed on the computer or other programmable data processing apparatus to produce a computer-executable process, so that the instructions executing the computer or other programmable data processing apparatus may also provide steps for executing the functions described in the flowchart block(s).
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block may represent a module, segment, or portion of code that contains one or more executable instructions for performing a particular logical function(s). It should also be noted that in some alternative implementation examples, the functions mentioned in the blocks may occur out of order. For example, two blocks shown in succession may in fact be performed substantially concurrently, or the blocks may sometimes be performed in reverse order, depending on the functionality they perform.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.Here, the term '~ part' used in the present embodiment means software or hardware components such as FPGA or ASIC, and the '~ part' performs certain roles. However, the '~ part' is not limited to software or hardware. The '~ part' may be configured to be in an addressable storage medium and may be configured to reproduce one or more processors. Accordingly, as an example, the '~ part' includes components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data structures, tables, arrays, and variables. The functions provided in the components and '~ parts' may be combined into a smaller number of components and '~ parts' or further separated into additional components and '~ parts'. Additionally, the components and '~parts' may be implemented to regenerate one or more CPUs within the device or secure multimedia card.
도 1은 본 개시의 일 실시 예에 따른 통계 정보를 제공하는 전자 장치의 각 구성을 개략적으로 도시하는 예시적인 도면이다.FIG. 1 is an exemplary diagram schematically illustrating each component of an electronic device providing statistical information according to an embodiment of the present disclosure.
도 1을 참조하면, 전자 장치(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있고, 서비스와 연관된 통계 정보를 제공하는 방법을 수행할 수 있다. 도 1에 도시된 전자 장치(100)에는 본 실시 예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에는 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.Referring to FIG. 1, an electronic device (100) may include a processor (110) and a memory (120), and may perform a method of providing statistical information associated with a service. Only components related to the present embodiments are illustrated in the electronic device (100) illustrated in FIG. 1. Accordingly, it is apparent to a person skilled in the art that the electronic device (100) may further include other general components in addition to the components illustrated in FIG. 1.
프로세서(110)는 전자 장치(100)에서의 통계 정보 생성 및 제공을 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.The processor (110) controls the overall functions for generating and providing statistical information in the electronic device (100). For example, the processor (110) controls the electronic device (100) overall by executing programs stored in the memory (120) in the electronic device (100). The processor (110) may be implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), etc., provided in the electronic device (100), but is not limited thereto.
메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 전자 장치(100)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.Memory (120) is a hardware that stores various data processed within the electronic device (100), and memory (120) can store data processed and data to be processed in the electronic device (100). In addition, memory (120) can store applications, drivers, etc. to be driven by the electronic device (100). Memory (120) can include random access memory (RAM) such as dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD-ROM, Blu-ray or other optical disk storage, hard disk drive (HDD), solid state drive (SSD), or flash memory.
일 실시 예에서, 전자 장치(100)는 전자상거래 서비스 또는 음식 배달 중개 서비스 중 적어도 하나를 제공하는 서비스 서버에 포함될 수 있다. 일 실시 예에서, 전자 장치(100)는 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인하고, 사용자에 의해 설정된 서비스와 연관된 피쳐 설정을 확인하고, 제1 타입 메시지 및 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성하고, 제2 타입 메시지를 기반으로 피쳐 설정에 대응하는 통계 정보를 제공할 수 있다. In one embodiment, the electronic device (100) may be included in a service server providing at least one of an e-commerce service or a food delivery brokerage service. In one embodiment, the electronic device (100) may check a first type message including information on an event associated with a service, check a feature setting associated with a service set by a user, generate a second type message for deriving statistical information based on the first type message and the feature setting, and provide statistical information corresponding to the feature setting based on the second type message.
인터넷과 같은 네트워크 상에서 소비자(즉, 고객)와 생산자 간의 제품 거래를 중개하는 전자상거래 서비스, 소비자가 인터넷 상에서 스토어의 음식을 주문하고 주문된 음식을 스토어로부터 소비자의 위치까지 배달해주는 음식 배달 중개 서비스 등에서는, 소비자에게 제품 또는 스토어를 추천하기 위해 소비자의 주문 성향 및 다수의 소비자에게 인기 있는 제품 또는 스토어를 파악할 필요가 있다. 이를 위해서는 서비스 제공자가 빠르게 변화하는 소비자의 주문 성향, 주문 패턴, 페이지 방문 이력, 아이템, 스토어 또는 메뉴의 검색 이력 등과 같은 통계 정보를 실시간으로 생성하는 것이 중요하다. 통계 정보는 피쳐(feature)로 지칭될 수 있으며, 음식 배달 중개 서비스에서 생성되는 피쳐는 서비스의 품질을 향상시키기 위해 고객, 배달원, 스토어 등에 대해 수집할 필요가 있는 의미있는 정보를 포함할 수 있다. 그 예로서, 피쳐는 지난 5분 동안 고객이 스토어를 클릭한 횟수, 지난 1시간 동안 스토어 페이지에 방문한 고객의 수, 지난 한달 동안 고객이 검색한 스토어의 리스트, 지난 1년 동안 가장 많은 배달원이 배달 업무를 수락한 위치 등을 포함할 수 있다.In an e-commerce service that mediates product transactions between consumers (i.e., customers) and producers on a network such as the Internet, or a food delivery intermediary service that allows consumers to order food from a store on the Internet and have the ordered food delivered from the store to the consumer's location, it is necessary to understand the consumer's ordering tendency and products or stores that are popular with many consumers in order to recommend products or stores to the consumer. To this end, it is important for the service provider to generate statistical information in real time, such as the rapidly changing consumer ordering tendency, ordering pattern, page visit history, and search history for items, stores, or menus. The statistical information may be referred to as features, and the features generated by the food delivery intermediary service may include meaningful information that needs to be collected about customers, delivery workers, stores, etc. in order to improve the quality of the service. For example, features may include the number of times a customer clicked on a store in the past 5 minutes, the number of customers who visited the store page in the past hour, a list of stores searched by customers in the past month, and the location where the most delivery workers accepted delivery orders in the past year.
고객, 스토어 및 배달원의 액션과 관련된 이벤트의 누적되는 데이터 양이 방대하고, 서비스 제공자의 비즈니스 시나리오가 빠르게 변화하는 서비스에서, 실시간으로 피쳐를 생성하는 기술은 매우 중요하다. 서비스 제공자는 수집하고자 하는 피쳐를 필요에 따라 애플리케이션에 동적으로 추가 및 제거하고(즉, 애플리케이션을 재시작하지 않고 바로 적용), 피처 처리 레이턴시를 줄이고(예를 들어, 200ms 미만), 피쳐의 가용률을 향상시키고(예를 들어, 99.9%), 실시간으로 피쳐를 추출할 수 있는 기간을 늘릴(예를 들어, 7일 이상) 필요가 있다. 본 개시의 일 실시 예에 따른 전자 장치(100)의 실시간 피쳐 계산 방법은 새로운 피쳐 계산 및 저장 엔진을 활용하여 위와 같은 기술적 목표의 적어도 일부를 달성하는 것을 목적으로 한다. 이하 도 2에서는, 전자 장치(100)가 실시간으로 피쳐를 계산하기 위한 전반적인 아키텍처에 대해 설명한다.In a service where the accumulated data of events related to the actions of customers, stores, and delivery personnel is huge, and the business scenario of the service provider changes rapidly, the technology of generating features in real time is very important. The service provider needs to dynamically add and remove features to be collected to the application as needed (i.e., apply them immediately without restarting the application), reduce feature processing latency (e.g., less than 200 ms), improve feature availability (e.g., 99.9%), and increase the period for which features can be extracted in real time (e.g., more than 7 days). A method for calculating features in real time of an electronic device (100) according to an embodiment of the present disclosure aims to achieve at least some of the above technical goals by utilizing a new feature calculation and storage engine. In the following, FIG. 2 describes an overall architecture for calculating features in real time by the electronic device (100).
도 2는 본 개시의 일 실시 예에 따른 실시간으로 통계 정보를 제공하기 위한 시스템의 전반적인 아키텍처(200)를 나타내는 도면이다. 도 2를 참조하면, 소스 데이터로부터 획득한 데이터로부터 피쳐를 계산 및 제공하기 위한 실시간 플로우(210) 및 오프라인 플로우(220)가 개략적으로 도시된다. FIG. 2 is a diagram illustrating the overall architecture (200) of a system for providing statistical information in real time according to one embodiment of the present disclosure. Referring to FIG. 2, a real-time flow (210) and an offline flow (220) for calculating and providing features from data acquired from source data are schematically illustrated.
일 실시 예에서, 실시간 플로우(210)(또는 온라인 플로우)는 상대적으로 단기간의 피쳐를 생성하기 위한 플로우로, 전자 장치는 메시지 큐(211)에 저장된 메시지를 ETL을 통해 가공하여 메시지에 대한 실시간 피쳐 계산 프로세스(213)를 수행하며, 이때 피쳐의 실시간 계산은 사용자에 의해 설정된 피쳐 설정(212)을 기반으로 수행될 수 있다. In one embodiment, a real-time flow (210) (or online flow) is a flow for generating relatively short-term features, in which an electronic device processes messages stored in a message queue (211) through ETL to perform a real-time feature calculation process (213) for the messages, and in this case, the real-time calculation of the features can be performed based on feature settings (212) set by a user.
일 실시 예에서, 메시지 큐(211)는 실시간으로 스트리밍되는 데이터를 게시, 구독, 저장 및 처리할 수 있는 아파치 카프카(Apache Kafka)를 포함할 수 있다. 아파치 카프카는 대용량 실시간 로그 처리 시스템으로서, 발행/구독(publish/subscribe) 패러다임을 사용하여 메시지를 처리하는 메시지 큐잉(queueing) 시스템이다. 아파치 카프카는 확장성이 뛰어나고 처리량이 높은 분산 메시지 시스템으로, 안정적이고 지속적인 메시지 전달 성능을 보장한다. 카프카는 생산자-소비자 문제를 응용하여, 프로듀서(producer)/컨슈머(consumer)/브로커(broker)의 세가지의 시스템 구성요소를 사용하여, 대량의 데이터의 토픽(topic)을 설정하여 토픽을 기준으로 파티션을 구성해 순서대로 저장한다. 카프카에서는 이 저장된 데이터들을 순차적으로 컨슈머에게 전달하여 효율적으로 처리를 진행하게 된다. 카프카는 대용량의 실시간 로그 처리에 특화되어 있는 솔루션이며 데이터를 유실 없이 안전하게 전달하는 것이 주목적인 메시지 시스템에서 고장 허용(fault-tolerant)의 안정적인 아키텍처와 신속한 성능으로 데이터를 처리할 수 있다. In one embodiment, the message queue (211) may include Apache Kafka, which can publish, subscribe, store, and process data streaming in real time. Apache Kafka is a large-capacity real-time log processing system, and is a message queuing system that processes messages using a publish/subscribe paradigm. Apache Kafka is a distributed message system with excellent scalability and high throughput, and guarantees stable and continuous message delivery performance. Kafka applies the producer-consumer problem, and uses three system components of producer/consumer/broker to set topics for a large amount of data, configure partitions based on the topics, and store them in order. Kafka sequentially delivers these stored data to consumers to process them efficiently. Kafka is a solution specialized in processing large amounts of real-time logs, and can process data with a fault-tolerant, stable architecture and fast performance in a messaging system whose main purpose is to safely transmit data without loss.
일 실시 예에서, 실시간 피쳐 계산 프로세스는 오픈 소스의 통합 스트리밍 처리 및 배치(batch) 처리 프레임워크인 아파치 플링크(Apache Flink)에서 수행될 수 있다. 아파치 플링크는 정확히 한번(Exactly-once)의 이벤트 처리를 보장하는 네이티브(native) 스트림 방식으로, 지연 발생이 적고 처리량이 높으며 비교적 사용하기 쉬운 이점이 있는 프레임워크이다. 이외에도, 아파치 스파크(Spark), 스톰(Storm), 삼자(Samza), 카프카 스트림즈(Kafka Streams) 등을 포함하여 다양한 스트리밍 처리 프레임워크가 본 개시에 따른 실시간 피쳐 계산에 사용될 수 있다. In one embodiment, the real-time feature computation process can be performed in Apache Flink, an open source integrated streaming processing and batch processing framework. Apache Flink is a native stream-oriented framework that guarantees exactly-once event processing, and has the advantages of low latency, high throughput, and relative ease of use. In addition, various streaming processing frameworks, including Apache Spark, Storm, Samza, Kafka Streams, etc., can be used for the real-time feature computation according to the present disclosure.
아파치 플링크의 스트리밍 데이터 처리는 소스(source) 연산자, 변환(transformation) 연산자 및 싱크(sink) 연산자에 의해 수행될 수 있다. 소스는 데이터 입력을 정의하는 단계로 소스 시스템의 로그, 클릭 이벤트, IoT 장치 등에서 발생하는 데이터를 실시간 이벤트 스트림이나 데이터베이스, 파일, 키-값 저장소 등의 매체로부터 수신할 수 있다. 변환은 데이터를 가공하는 단계로서, 스트림 내의 특정 값에 가중치를 주거나 분석하여 새로운 스트림을 형성할 수 있고, 특정 키 값을 기반으로 스트림을 처리할 수 있다. 스트림의 처리는 윈도우의 할당을 통해 수행될 수 있으며, 윈도우 할당 방식은 텀블링(tumbling), 슬라이딩(sliding), 세션(session), 글로벌(global) 방식을 포함할 수 있다. 싱크는 처리한 스트림을 출력 또는 저장하는 단계로, 처리 결과를 소비할 애플리케이션, 이벤트 로그 또는 데이터베이스 등으로 출력할 수 있다. Apache Flink's streaming data processing can be performed by source operators, transformation operators, and sink operators. The source is a step that defines data input, and can receive data generated from source system logs, click events, IoT devices, etc. from media such as real-time event streams, databases, files, and key-value stores. Transformation is a step that processes data, and can form a new stream by weighting or analyzing specific values in the stream, and can process the stream based on specific key values. Stream processing can be performed through window allocation, and the window allocation method can include tumbling, sliding, session, and global methods. The sink is a step that outputs or stores the processed stream, and can output the processing result to an application that consumes it, an event log, or a database.
한편, 일 실시 예에서, 통계 정보 생성을 위한 실시간 계산 프로세스(213)를 장기간 동안 누적된 데이터에 대해 수행하는 것은 너무 많은 비용이 소요되므로, 전자 장치는 단기간(예를 들어, 48시간 이내)의 이벤트와 관련된 데이터에 대해서만 실시간 계산 프로세스(213)를 통해 피쳐를 계산하고, 그 외의 장기간(예를 들어, 48시간 초과)의 이벤트와 관련된 데이터에 대해서는 하이브(Hive)와 같은 데이터베이스에 오프라인으로 저장된 과거 데이터를 활용하는 오프라인 플로우(220)를 통해 피쳐를 계산할 수 있다. 일 실시 예에서, 통계 정보는 제1 기간(예를 들어, 24시간 이내)에 대한 실시간 통계 정보를 포함하고, 전자 장치는 제1 기간 외의 제2 기간(예를 들어, 24시간 초과)에 대한 오프라인 통계 정보를 제3 데이터베이스(예를 들어, 아파치 카산드라(Apache Cassandra), 레디스(Redis))에서 확인할 수 있으며, 통계 정보는 제1 기간의 실시간 통계 정보 및 제2 기간의 오프라인 통계 정보를 기반으로 생성될 수 있다. 이와 같이 실시간 플로우(210) 및 오프라인 플로우(220)에서 획득되어 집계된 피쳐는 서비스(215)를 통해 사용자에게 제공될 수 있다.Meanwhile, in one embodiment, since it is too costly to perform the real-time calculation process (213) for generating statistical information on data accumulated over a long period of time, the electronic device may calculate features through the real-time calculation process (213) only for data related to events over a short period of time (e.g., within 48 hours), and may calculate features through an offline flow (220) that utilizes past data stored offline in a database such as Hive for data related to events over a long period of time (e.g., more than 48 hours). In one embodiment, the statistical information includes real-time statistical information for a first period of time (e.g., within 24 hours), and the electronic device may check offline statistical information for a second period of time (e.g., more than 24 hours) other than the first period in a third database (e.g., Apache Cassandra, Redis), and the statistical information may be generated based on the real-time statistical information of the first period and the offline statistical information of the second period. In this way, features acquired and aggregated from real-time flow (210) and offline flow (220) can be provided to users through service (215).
예를 들어, 전자 장치는 스토어에 대한 14일 동안의 통계 정보를 생성하기 위해, 과거 13일 동안 일 단위로 데이터베이스(214) 또는 데이터베이스(217)에 저장된 피쳐 정보와 최근 1일 동안 실시간으로 데이터베이스(214) 또는 데이터베이스(217)에 저장된 피쳐 정보를 집계하여 14일 동안의 통계 정보를 생성할 수 있다. 일 실시 예에서, 과거 13일 동안의 데이터의 처리는 처리 플랫폼(216)(예를 들어, 아파치 스파크, 아파치 플핑크 또는 배치 처리)를 통해 수행될 수 있다. 즉, 전자 장치는 T 일인 현재까지의 이벤트에 대한 피쳐를 생성하기 위해, T-1일까지의 이벤트에 대한 오프라인 피쳐 값과 T일의 이벤트에 대한 실시간 피쳐 값을 결합할 수 있다. 또한, 전자 장치는 T+1일인 현재까지의 이벤트에 대한 피쳐를 생성할 때, T 일에 대한 오프라인 데이터가 준비되지 않은 경우, T+1일 및 T일의 이벤트에 대한 실시간 피쳐 값과, T-1일까지의 이벤트에 대한 오프라인 피쳐 값을 결합할 수 있다. 또한, 전자 장치는 T+1일인 현재까지의 이벤트에 대한 피쳐를 생성할 때, T 일에 대한 오프라인 데이터가 준비된 경우, T+1일에 디한 실시간 피쳐 값과, T일까지의 이벤트에 대한 오프라인 피쳐 값을 결합할 수 있다.For example, the electronic device may generate statistical information for the store for 14 days by aggregating feature information stored in the database (214) or the database (217) on a daily basis for the past 13 days and feature information stored in the database (214) or the database (217) in real time for the past 1 day. In one embodiment, the processing of data for the past 13 days may be performed through a processing platform (216) (e.g., Apache Spark, Apache Flunky, or batch processing). That is, the electronic device may combine offline feature values for events up to day T-1 and real-time feature values for events on day T to generate features for events up to day T. In addition, when generating features for events up to day T+1, if offline data for day T is not prepared, the electronic device may combine real-time feature values for events on day T+1 and day T, and offline feature values for events on day T-1. Additionally, when the electronic device generates features for events up to the present day (T+1 day), if offline data for day T is prepared, the electronic device can combine the real-time feature values for events up to day T with the offline feature values for events up to day T.
일 실시 예에서, 데이터베이스(214)는 키-값(key-value) 구조의 오픈 소스 비관계형 데이터베이스인 레디스(Redis)를 포함할 수 있다. 레디스는 관계형 데이터베이스와 같이 쿼리 연산을 지원하지 않지만, 데이터의 고속 읽기와 쓰기에 최적화된 구조로서, 인메모리(In-Memory) 솔루션으로 다양한 데이터 구조체를 지원하고, 메모리에서만 데이터를 처리하기 때문에 작업 속도가 빠르다.In one embodiment, the database (214) may include Redis, an open source non-relational database with a key-value structure. Redis does not support query operations like a relational database, but is structured to be optimized for high-speed reading and writing of data, supports various data structures as an in-memory solution, and is fast because it processes data only in memory.
일 실시 예에서, 데이터베이스(217)는 오픈 소스 분산형 No-SQL DBMS인 아파치 카산드라(Apache Cassandra)를 포함할 수 있다. 아파치 카산드라는 단일 장애점(single point of failure; SPOF) 없이 고성능을 제공하면서 수많은 서버 간의 대용량의 데이터를 관리할 수 있으며, 여러 데이터 센터에 걸쳐 클러스터를 지원하고, 모든 클라이언트에 대한 낮은 레이턴시 운영을 허용할 수 있다. 전자 장치는 메시지로부터 추출한 피처의 데이터 양이 큰 경우, 이를 레디스가 아닌 카산드라 데이터베이스에 저장할 수 있다.In one embodiment, the database (217) may include Apache Cassandra, an open source distributed No-SQL DBMS. Apache Cassandra can manage large amounts of data across a large number of servers while providing high performance without a single point of failure (SPOF), can support clusters across multiple data centers, and can allow low latency operation for all clients. If the amount of data of features extracted from messages is large, the electronic device may store it in a Cassandra database rather than Redis.
이하에서는 도 3을 통해 도 2의 실시간 플로우(210)의 아키텍처에 대해 보다 상세히 설명한다.Below, the architecture of the real-time flow (210) of FIG. 2 is described in more detail with reference to FIG. 3.
도 3은 본 개시의 일 실시 예에 따른 실시간 피쳐 계산 아키텍처(300)를 개략적으로 나타내는 도면이다. FIG. 3 is a diagram schematically illustrating a real-time feature calculation architecture (300) according to one embodiment of the present disclosure.
일 실시 예에서, 전자 장치는 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인할 수 있다. 일 실시 예에서, 서비스는 고객과 스토어 간의 음식 배달을 중개하는 서비스를 포함할 수 있다. 일 실시 예에서, 이벤트는 서비스를 통해 고객이 스토어에 대해 취한 액션에 대한 정보를 포함할 수 있으며, 액션은 예를 들어, 고객의 스토어 검색, 고객의 스토어 페이지 방문, 및 고객의 스토어 메뉴에 대한 주문 중 적어도 하나를 포함할 수 있다. 한편, 이벤트는 고객 및 스토어 간에 행해지는 액션 뿐만 아니라, 고객 및 배달원, 또는 배달원 및 스토어 간에 행해지는 다양한 액션(예를 들어, 고객의 배달원의 배달 현황 확인, 고객과 배달원의 접선, 배달원의 스토어 페이지 방문 등)을 모두 포괄할 수 있다. In one embodiment, the electronic device may identify a first type message including information about an event associated with a service. In one embodiment, the service may include a service that mediates food delivery between a customer and a store. In one embodiment, the event may include information about an action taken by the customer with respect to the store through the service, and the action may include at least one of, for example, the customer searching for the store, the customer visiting a store page, and the customer ordering a store menu. Meanwhile, the event may encompass not only actions performed between the customer and the store, but also various actions performed between the customer and a delivery person, or a delivery person and the store (for example, the customer checking the delivery status of the delivery person, the customer contacting the delivery person, the delivery person visiting the store page, etc.).
일 실시 예에서, 제1 타입 메시지는 이벤트에 대한 정보를 포함하는 메시지 또는 로그 데이터를 포함할 수 있다. 일 실시 예에서, 제1 타입 메시지는 이벤트가 발생함에 따라 메시지 큐(310)에 큐잉되고, 전자 장치는 설정된 조건을 만족하면 메시지 큐에서 제1 타입 메시지를 불러올 수 있다. 메시지 큐는 예를 들어, 아파치 카프카를 포함할 수 있다. 일 실시 예에서, 사용자는 통계 정보의 생성 주기와 연관된 계산 시간을 설정할 수 있고, 조건은 계산 시간을 기반으로 설정될 수 있다. 예를 들어, 사용자가 고객 A가 5분 동안 스토어 B를 클릭한 횟수에 대한 통계 정보를 획득하고자 하는 경우, 사용자는 통계 정보의 생성 주기를 5분으로 설정할 수 있고, 전자 장치는 5분 동안 메시지 큐에 저장된 제1 타입 메시지를 모두 불러올 수 있다. 다른 예로서, 설정된 조건은 메시지 큐에 저장된 메시지의 양이 일정 임계치를 초과할 것을 포함할 수 있으며, 전자 장치는 메시지 큐에 저장된 메시지의 양이 일정량을 초과하는 경우 메시지 큐에 저장된 제1 타입 메시지를 불러올 수 있다.In one embodiment, the first type message may include a message or log data including information about an event. In one embodiment, the first type message is queued in the message queue (310) as the event occurs, and the electronic device may retrieve the first type message from the message queue when a set condition is satisfied. The message queue may include, for example, Apache Kafka. In one embodiment, the user may set a calculation time associated with the generation period of the statistical information, and the condition may be set based on the calculation time. For example, if the user wants to obtain statistical information about the number of times customer A clicked store B for 5 minutes, the user may set the generation period of the statistical information to 5 minutes, and the electronic device may retrieve all first type messages stored in the message queue for 5 minutes. As another example, the set condition may include that the amount of messages stored in the message queue exceeds a certain threshold, and the electronic device may retrieve the first type message stored in the message queue when the amount of messages stored in the message queue exceeds the certain amount.
일 실시 예에서, 전자 장치는 사용자에 의해 설정된 서비스와 연관된 피쳐 설정(320)을 확인할 수 있다. 피쳐 설정(320)은 피쳐 관리 시스템에 의해 관리될 수 있으며, 전자 장치가 메시지 큐(310)에 저장된 메시지로부터 추출하고자 하는 피쳐에 대한 설정 정보를 포함할 수 있다. 일 실시 예에서, 사용자는 전자상거래 서비스 또는 음식 배달 중개 서비스를 제공하는 업체에서 마케팅을 위해 피쳐 정보를 추출할 필요가 있는 관리자를 포함할 수 있다.In one embodiment, the electronic device can check the feature settings (320) associated with the service set by the user. The feature settings (320) can be managed by the feature management system and can include setting information for features that the electronic device wants to extract from messages stored in the message queue (310). In one embodiment, the user can include an administrator who needs to extract feature information for marketing purposes in a business providing an e-commerce service or a food delivery brokerage service.
일 실시 예에서, 피쳐 설정(320)은 주체 필드, 객체 필드, 계산 함수 및 계산 시간 중 적어도 하나를 포함할 수 있다. 주체 필드는 통계 정보를 계산하고자 하는 액션의 주체에 대한 정보를 포함하고, 객체 필드는 주체의 액션의 대상이 되는 객체의 정보를 포함할 수 있다. 예를 들어, 고객 A가 5분 동안 스토어 B의 페이지를 방문한 횟수에 대한 통계 정보에서, 주체 필드는 고객 A의 정보를 포함하고 객체 필드는 스토어 B의 정보를 포함할 수 있다. 일 실시 예에서, 주체 필드는 고객 및 스토어 중 적어도 하나와 연관된 식별자를 포함할 수 있다(예를 들어, memberSrl, storeID). 계산 함수는 데이터로부터 통계 정보를 계산하기 위한 함수의 정보를 포함할 수 있으며, 함수는 예를 들어, 총합(sum), 카운트(count), 평균(average), 첫번째(first), 마지막(last), 최댓값(max), 최솟값(min), set(집합), 고유 카운트(unique count), 상위K(topK) 등을 포함할 수 있다. 계산 시간은 통계 정보의 생성 주기와 연관되거나, 피쳐를 계산하기 위한 타임 윈도우에 대한 정보를 포함할 수 있다. 그 밖의 피쳐 설정(320)에 포함되는 다른 정보에 대해서는 이하 도 5a-5b, 도 6a-6d를 통해 후술하기로 한다.In one embodiment, the feature setting (320) may include at least one of a subject field, an object field, a calculation function, and a calculation time. The subject field may include information about a subject of an action for which statistical information is to be calculated, and the object field may include information about an object that is a target of the subject's action. For example, in statistical information about the number of times that customer A visited a page of store B for 5 minutes, the subject field may include information about customer A, and the object field may include information about store B. In one embodiment, the subject field may include an identifier associated with at least one of the customer and the store (e.g., memberSrl, storeID). The calculation function may include information about a function for calculating statistical information from data, and the function may include, for example, sum, count, average, first, last, max, min, set, unique count, topK, etc. The calculation time may be associated with a generation cycle of the statistical information, or may include information about a time window for calculating the feature. Other information included in the other feature settings (320) will be described later with reference to FIGS. 5a-5b and 6a-6d.
일 실시 예에서, 전자 장치는 제1 타입 메시지 및 피쳐 설정(320)을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성할 수 있다. 제2 타입 메시지 생성 및 통계 정보 도출은 도 3의 실시간 피쳐 계산 프로세스(330)를 통해 수행되어, 도출된 통계 정보는 피쳐 저장소(340)에 저장될 수 있다. In one embodiment, the electronic device may generate a second type message for deriving statistical information based on the first type message and feature setting (320). The generation of the second type message and deriving statistical information may be performed through the real-time feature calculation process (330) of FIG. 3, and the derived statistical information may be stored in the feature storage (340).
일 실시 예에서, 제2 타입 메시지는 피쳐 설정(320)에 포함된 주체 필드를 기반으로 제1 타입 메시지를 변환할 수 있다. 일 실시 예에서, 제1 타입 메시지를 변환하는 것은 제1 타입 메시지를 주체 필드를 기반으로 하나 이상의 그룹으로 분류하는 것을 포함할 수 있다. 예를 들어, 전자 장치는 피쳐 설정(320)에서 주체 필드가 "고객 A"로 지정되어 있음을 확인하고, "memberSrl"이 "고객 A"에 대응하는 제1 타입 메시지를 하나의 그룹으로 분류함으로써 제2 타입 메시지를 생성할 수 있다. 전자 장치는 "고객 A"와 연관된 이벤트 정보를 나타내는 제2 타입 메시지를 데이터베이스(예를 들어, 아파치 플링크 플랫폼의 RocksDB(331))에 임시로 저장하고, 일정 주기에 따라 피쳐 저장소(340)에 제2 타입 메시지를 기반으로 생성된 통계 정보를 업데이트할 수 있다.In one embodiment, the second type message can transform the first type message based on the subject field included in the feature setting (320). In one embodiment, transforming the first type message can include classifying the first type message into one or more groups based on the subject field. For example, the electronic device can generate the second type message by confirming that the subject field is specified as "Customer A" in the feature setting (320) and classifying the first type message in which "memberSrl" corresponds to "Customer A" into one group. The electronic device can temporarily store the second type message indicating event information associated with "Customer A" in a database (e.g., RocksDB (331) of the Apache Flink platform) and update the statistical information generated based on the second type message in the feature storage (340) periodically.
일 실시 예에서, 제1 타입 메시지를 변환하는 것은 제1 타입 메시지에 주체 필드 및 주체 필드에 대응하는 키 값을 나타내는 태그를 추가하는 것을 포함할 수 있다. 이와 같은 태깅은 대량의 데이터에 대한 전자 장치의 검색을 용이하게 하여 실시간으로 피처를 계산하는 것을 가능하게 할 수 있다. In one embodiment, converting a first type message may include adding tags to the first type message that indicate a subject field and a key value corresponding to the subject field. Such tagging may facilitate searching of the electronic device for large amounts of data, thereby enabling feature computation in real time.
일 실시 예에서, 전자 장치는 제2 타입 메시지를 기반으로 통계 정보를 생성할 수 있다. 일 실시 예에서, 전자 장치는 피쳐 설정(320)에 포함된 객체 필드 및 계산 함수를 확인하고, 제2 타입 메시지에 대해 객체 필드에 계산 함수를 적용하여 통계 정보를 생성할 수 있다. 예를 들어, 피쳐 설정(320)에 포함된 주체 필드가 "고객 A"이고, 객체 필드가 "스토어 B"이고, 계산 함수가 "카운트"인 경우, 고객 A가 스토어 B에 방문한 횟수를 통계 정보로서 생성할 수 있다. 일 실시 예에서, 전자 장치는 통계 정보를 생성하기 위해 피쳐 설정(320)에 포함된 계산 시간 및 이벤트 타입(예를 들어, 클릭, 검색 등)을 더 확인할 수 있다.In one embodiment, the electronic device may generate statistical information based on the second type message. In one embodiment, the electronic device may check the object field and the calculation function included in the feature setting (320), and apply the calculation function to the object field for the second type message to generate statistical information. For example, if the subject field included in the feature setting (320) is “Customer A,” the object field is “Store B,” and the calculation function is “Count,” the number of times Customer A visited Store B may be generated as statistical information. In one embodiment, the electronic device may further check the calculation time and the event type (e.g., click, search, etc.) included in the feature setting (320) to generate the statistical information.
일 실시 예에서, 제2 타입 메시지는 제1 데이터베이스에 저장되고, 통계 정보는 제2 데이터베이스에 저장되며, 제2 데이터베이스에 저장되는 통계 정보는 피쳐 설정에서 설정된 주기로 업데이트될 수 있다. 예를 들어, 제1 데이터베이스는 아파치 플링크 플랫폼의 RocksDB(331)를 포함할 수 있고, 제2 데이터베이스는 피쳐 저장소(340)를 포함할 수 있으며, 피쳐 저장소(340)는 레디스 및 아파치 카산드라 데이터베이스를 포함할 수 있다. 전자 장치는 피쳐 설정(320)을 기반으로 제1 타입 메시지로부터 변환된 제2 타입 메시지를 RocksDB(331)에 임시로 저장하고, 피쳐 설정(320)에서 설정된 주기(예를 들어, 1시간, 6시간, 1일, 일주일 등)에 따라 제2 타입 메시지를 기반으로 생성된 통계 정보를 업데이터하여 피쳐 저장소(340)에 저장할 수 있다.In one embodiment, the second type message is stored in the first database, the statistical information is stored in the second database, and the statistical information stored in the second database can be updated at a cycle set in the feature setting. For example, the first database may include RocksDB (331) of the Apache Flink platform, the second database may include a feature store (340), and the feature store (340) may include Redis and Apache Cassandra databases. The electronic device temporarily stores the second type message converted from the first type message in RocksDB (331) based on the feature setting (320), and updates the statistical information generated based on the second type message at a cycle set in the feature setting (320) (for example, 1 hour, 6 hours, 1 day, 1 week, etc.) and stores the updated statistical information in the feature store (340).
일 실시 예에서, 전자 장치는 제1 데이터베이스에서 일정 기간 동안 들어오는 메시지가 없음을 감지하고, 감지를 기반으로 메시지와 연관된 데이터 유실 경보를 제공할 수 있다. 이를 위해, 전자 장치는 제1 데이터베이스에 저장된 메시지와 연관된 데이터를 주기적으로 검사하고, 만약 일정 기간 동안 해당 데이터가 업데이트되지 않은 경우, 데이터가 유실되었다고 판단할 수 있다. 유실된 데이터가 있는 경우, 전자 장치는 해당 데이터와 연관된 사용자 또는 기타 장치에 데이터 유실 경보를 제공하고, 데이터 복구를 위한 조치를 취할 수 있다.In one embodiment, the electronic device may detect that there is no incoming message from the first database for a certain period of time, and provide a data loss alert associated with the message based on the detection. To this end, the electronic device may periodically check data associated with the message stored in the first database, and if the data has not been updated for a certain period of time, determine that the data is lost. If there is lost data, the electronic device may provide a data loss alert to a user or other device associated with the data, and take steps to recover the data.
이하에서는, 전자 장치의 실시간 피쳐 계산 프로세스(330)의 데이터 플로우에 대해 도 4를 통해 설명한다.Below, the data flow of the real-time feature calculation process (330) of the electronic device is described through FIG. 4.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 실시간 피쳐 계산 프로세스의 데이터 플로우(400)를 예시적으로 나타내는 도면이다.FIG. 4 is a diagram exemplarily showing a data flow (400) of a real-time feature calculation process of an electronic device according to one embodiment of the present disclosure.
도 4를 참조하면, 전자 장치는 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지(410)를 확인하고, 사용자에 의해 설정된 서비스와 연관된 피쳐 설정(420)을 확인하고, 제1 타입 메시지(410) 및 피쳐 설정(420)을 기반으로 통계 정보 도출을 위한 제2 타입 메시지(430)를 생성할 수 있다.Referring to FIG. 4, the electronic device can check a first type message (410) including information on an event associated with a service, check a feature setting (420) associated with a service set by a user, and generate a second type message (430) for deriving statistical information based on the first type message (410) and the feature setting (420).
제1 타입 메시지(410)는 예를 들어, D1, D2, ..., Dn을 포함할 수 있으며, 고객 정보(memberSrl), 스토어 정보(storeID), 이벤트 타입(eventType) 등의 정보를 포함할 수 있다. 제1 타입 메시지(410)는 아파치 카프카와 같은 메시지 큐에 저장될 수 있으며, 사용자가 서비스와 연관된 액션을 취할 때마다 액션에 대응하는 메시지가 메시지 큐에 저장될 수 있고, 메시지는 도 4에 도시된 바와 같이 액션에 대응하는 이벤트 정보를 포함할 수 있다. The first type message (410) may include, for example, D1, D2, ..., Dn, and may include information such as customer information (memberSrl), store information (storeID), and event type (eventType). The first type message (410) may be stored in a message queue such as Apache Kafka, and whenever a user takes an action associated with a service, a message corresponding to the action may be stored in the message queue, and the message may include event information corresponding to the action as illustrated in FIG. 4.
피쳐 설정(420)은 사용자에 의해 설정된 정보를 포함할 수 있으며, 사용자는 예를 들어, 도 6a-6d에 도시된 인터페이스를 사용하여 피쳐 설정(420)에 포함될 정보를 전자 장치에 제공할 수 있다. 피쳐 설정(420)는 예를 들어, 사용자가 추출하고자 하는 피쳐의 코드("user_click_store_5m"), 계산 함수("set"), 주체 필드("memberSrl"), 객체 필드("storeID"), 필터 조건("eventType=='click'"), 윈도우 타입("sliding") 등을 포함할 수 있다. The feature setting (420) may include information set by the user, and the user may provide the information to be included in the feature setting (420) to the electronic device, for example, using the interface illustrated in FIGS. 6a-6d . The feature setting (420) may include, for example, a code of a feature that the user wants to extract ("user_click_store_5m"), a calculation function ("set"), a subject field ("memberSrl"), an object field ("storeID"), a filter condition ("eventType=='click'"), a window type ("sliding"), etc.
전자 장치는 제1 타입 메시지(410) 및 피쳐 설정(420)을 기반으로 통계 정보 도출을 위한 제2 타입 메시지(430)를 생성할 수 있다. 일 실시 예에서, 전자 장치는 주체 필드(subjectField)를 기반으로 제1 타입 메시지(410)를 하나 이상의 그룹으로 분류함으로써, 제2 타입 메시지(430)를 생성할 수 있다. 전자 장치는 제2 타입 메시지(430)의 그룹 각각에 대해 피쳐를 계산하고, 이를 집계하여 데이터베이스 클러스터(예를 들어, 레디스)에 저장할 수 있다.The electronic device can generate a second type message (430) for deriving statistical information based on the first type message (410) and feature setting (420). In one embodiment, the electronic device can generate the second type message (430) by classifying the first type message (410) into one or more groups based on a subject field (subjectField). The electronic device can calculate a feature for each group of the second type message (430), aggregate it, and store it in a database cluster (e.g., Redis).
일 실시 예에서, 전자 장치는 피쳐 설정(420)에서 설정된 계산 시간을 기반으로 제1 타입 메시지(410)를 복수의 그룹에 포함된 제2 타입 메시지(430)로 분류할 수 있다. 예를 들어, 전자 장치는 5분 동안의 클릭 정보에 대한 통계 정보를 생성하기 위해, 5분 동안의 제1 타입 메시지(410)를 각각 1분에 동안의 제2 타입 메시지(430)의 그룹(즉, 5개의 그룹)으로 분류할 수 있다. 이와 같은 병렬적 계산은 전자 장치의 계산 부하를 감소시킬 수 있다.In one embodiment, the electronic device may classify the first type message (410) into the second type message (430) included in the plurality of groups based on the calculation time set in the feature setting (420). For example, the electronic device may classify the first type message (410) for 5 minutes into groups of the second type message (430) for 1 minute each (i.e., 5 groups) to generate statistical information on click information for 5 minutes. Such parallel calculation may reduce the computational load of the electronic device.
이와 같이, 전자 장치는 서비스와 연관된 이벤트에 대한 정보를 포함하는 메시지로부터 통계 정보를 생성할 때 사용자에 의해 설정된 피쳐 설정을 확인함으로써, 사용자로 하여금 이벤트 데이터로부터 추출하고자 하는 피쳐에 대한 정보를 전자 장치에 정확히 전달하고 필요에 따라 피쳐 정보를 쉽게 변경할 수 있도록 하고, 전자 장치는 사용자에 의해 설정된 피쳐 정보를 동적으로 반영하여 사용자가 원하는 통계 정보를 실시간으로 생성할 수 있다. In this way, when the electronic device generates statistical information from a message including information about an event associated with a service, the electronic device accurately transmits information about features that the user wants to extract from event data to the electronic device and allows the user to easily change the feature information as needed, by checking the feature settings set by the user, and the electronic device dynamically reflects the feature information set by the user to generate statistical information desired by the user in real time.
일 실시 예에서, 전자 장치는 통계 정보를 기반으로 제1 고객과 연관된 프로모션 정보를 프로모션 시스템에 요청하고, 프로모션 시스템으로부터 수신한 프로모션 정보를 제1 고객에게 제공할 수 있다. 예를 들어, 전자 장치는 피쳐 설정에서 주체 필드가 "제1 고객"으로 설정되어 있음을 확인하고, 제1 고객이 서비스를 통해 수행한 액션과 연관된 이벤트에 대한 통계 정보를 생성하여, 통계 정보를 기반으로 제1 고객이 많이 방문한 스토어에 대한 정보, 이 스토어와 유사한 메뉴를 제공하는 다른 스토어에 대한 정보, 이 스토어와 유사한 메뉴를 제공하면서 다른 고객들에게 인기가 높은 스토어에 대한 정보, 및 제1 고객이 높은 평점으로 평가하였던 스토어에 대한 정보와 같은 다양한 정보를 제1 고객에게 제공할 수 있다. 또한, 전자 장치는 통계 정보를 기반으로 제1 고객이 많이 방문한 스토어에 대한 프로모션 정보(예를 들어, 재주문시 20% 할인 혜택 제공, 할인 쿠폰 제공, 서비스 메뉴 증정)를 제공할 수 있다. 일 실시 예에서, 프로모션 정보는 NPS와 같은 프로모션과 연관된 시스템에서 관리할 수 있으며, 전자 장치는 특정 스토어에서 제공하는 프로모션이 있는지 여부를 프로모션 시스템에 질의하고, 프로모션 시스템으로부터 특정 스토어에서 진행 중인 프로모션이나 제1 고객에게만 제공되는 특별 프로모션 정보를 수신할 수 있다. In one embodiment, the electronic device may request the promotion system for promotional information related to the first customer based on the statistical information, and provide the promotional information received from the promotion system to the first customer. For example, the electronic device may determine that the subject field in the feature setting is set to "first customer", generate statistical information about an event related to an action performed by the first customer through the service, and provide the first customer with various information, such as information about stores frequently visited by the first customer, information about other stores that provide similar menus to this store, information about stores that provide similar menus to this store and are popular with other customers, and information about stores that the first customer has rated highly, based on the statistical information. In addition, the electronic device may provide promotional information about stores frequently visited by the first customer (e.g., providing a 20% discount benefit for reordering, providing a discount coupon, and providing a service menu) based on the statistical information. In one embodiment, the promotion information may be managed in a system associated with the promotion, such as NPS, and the electronic device may query the promotion system to determine whether a specific store has any promotions, and receive from the promotion system information about ongoing promotions at a specific store or special promotions available only to first-time customers.
이와 같이, 전자 장치는 제1 고객과 연관된 통계 정보를 기반으로 프로모션 정보를 제공함으로써 제1 고객의 선호도와 행동에 따라 맞춤형 정보를 제공하여 제1 고객이 선호하는 스토어와 메뉴 등을 추천할 수 있고, 제1 고객의 만족도를 향상시킬 수 있다. 또한, 전자 장치는 제1 고객의 재방문을 유도하고 새로운 고객을 유치함으로써 스토어의 매출을 증대시킬 수 있으며, 프로모션 정보를 프로모션 시스템에서 관리하게 함으로써 프로모션 정보의 일관성을 유지할 수 있다.In this way, the electronic device can provide promotional information based on statistical information related to the first customer, thereby providing customized information according to the preferences and behavior of the first customer, thereby recommending stores and menus preferred by the first customer, and improving the satisfaction of the first customer. In addition, the electronic device can increase the sales of the store by inducing the first customer to revisit and attracting new customers, and can maintain the consistency of the promotional information by managing the promotional information in the promotion system.
이하에서는 도 5a-5b 및 도 6a-6d를 통해 사용자에 의해 설정 가능한 통계 정보 도출을 위한 피쳐 설정에 대해 설명하기로 한다.Below, feature settings for deriving user-configurable statistical information are described through FIGS. 5a-5b and 6a-6d.
도 5a 내지 도 5b는 본 개시의 일 실시 예에 따른 피쳐 설정과 연관된 피쳐 속성의 구성요소 중 적어도 일부를 설명하기 위한 도면이다.FIGS. 5A and 5B are diagrams illustrating at least some of the components of feature properties associated with feature settings according to one embodiment of the present disclosure.
도 5a를 참조하면, 피쳐 설정에서 사용자가 설정할 수 있는 피쳐 속성의 구성요소가 도시된다. 피쳐 속성은 기본 속성, 계산 함수 속성, 계산 시간 속성, 입력/출력 정보 및 라이플사이클 관리를 포함할 수 있다. 도 5b는 피쳐 속성에 포함된 각 구성요소에 대한 세부 속성, 값 타입 및 설명을 포함한다. 한편, 도 5a 및 도 5b에 도시된 구성은 예시적인 것일 뿐이며, 피쳐 속성과 관련된 다양한 속성이 필요에 따라 일부 변형된 구성으로 피쳐 속성에 포함될 수 있다.Referring to FIG. 5a, components of feature properties that can be set by a user in feature settings are illustrated. Feature properties can include basic properties, calculation function properties, calculation time properties, input/output information, and life cycle management. FIG. 5b includes detailed properties, value types, and descriptions for each component included in the feature properties. Meanwhile, the configurations illustrated in FIGS. 5a and 5b are merely exemplary, and various properties related to the feature properties can be included in the feature properties with some modified configurations as needed.
도 6a 내지 도 6d는 본 개시의 일 실시 예에 따른 사용자가 추출하고자 하는 피쳐를 설정할 수 있는 사용자 인터페이스를 예시적으로 나타내는 도면이다. 전자 장치는 도 6a 내지 6d에 도시된 바와 같은 사용자 인터페이스를 사용자에게 제공하여, 사용자로 하여금 추출하고자 하는 피쳐의 정보를 입력하도록 할 수 있다.FIGS. 6A to 6D are diagrams exemplarily showing a user interface for setting a feature that a user wants to extract according to an embodiment of the present disclosure. An electronic device may provide a user interface as shown in FIGS. 6A to 6D to a user, thereby allowing the user to input information on a feature that the user wants to extract.
도 6a는 사용자가 피쳐의 입력/출력 정보를 설정할 수 있는 페이지(610)를 도시한다. 일 실시 예에서, 메시지 큐는 복수의 메시지 큐 중 제1 메시지 큐를 포함하고, 피쳐 설정은 복수의 메시지 큐 중 제1 메시지 큐를 선택하기 위한 소스 정보를 포함할 수 있다. 전자 장치는 페이지(610)의 데이터 소스 항목을 통해 사용자가 제1 타입 메시지를 로딩할 메시지 큐를 지정하도록 할 수 있다. 예를 들어, 복수의 메시지 큐는 사용자의 액션이 수행되는 페이지(예를 들어, 상세 정보 페이지, 게이트웨이 페이지, 검색 결과 페이지 등)에 따라 액션과 연관된 메시지가 상이한 메시지 큐에 저장되도록 구성될 수 있다. 또한, 전자 장치는 액션이 수행되는 페이지, 고객의 유형(예를 들어, 배달원, 스토어의 점주, 소비자, 서비스에 가입한지 얼마 되지 않은 신규 회원 등), 액션의 유형(클릭, 광고 노출, 검색 등) 등에 따라 메시지가 상이한 메시지 큐에 저장되도록 복수의 메시지 큐를 설정할 수 있다. 또한, 전자 장치는 사용자가 페이지(610)를 통해 메시지를 로딩할 데이터 소스, 구동 이벤트, 처리한 스트림을 출력할 싱크(sink) 및 싱크 빈도를 설정하도록 할 수 있다.FIG. 6A illustrates a page (610) where a user can set input/output information of a feature. In one embodiment, the message queue may include a first message queue among a plurality of message queues, and the feature setting may include source information for selecting the first message queue among the plurality of message queues. The electronic device may enable the user to designate a message queue to load a first type message through a data source item of the page (610). For example, the plurality of message queues may be configured such that messages associated with an action are stored in different message queues depending on a page on which the user's action is performed (e.g., a detail page, a gateway page, a search result page, etc.). In addition, the electronic device may set the plurality of message queues such that messages are stored in different message queues depending on a page on which the action is performed, a type of customer (e.g., a delivery person, a store owner, a consumer, a new member who has just joined the service, etc.), a type of action (click, advertisement exposure, search, etc.), and the like. Additionally, the electronic device may allow the user to set a data source to load messages through the page (610), a driving event, a sink to output the processed stream, and a sync frequency.
도 6b는 사용자가 피쳐의 기본 속성을 설정할 수 있는 페이지(620)를 도시한다. 일 실시 예에서, 전자 장치는 페이지(620)를 통해, 사용자가 생성하고자 하는 통계 정보에 대응하는 피쳐 코드를 선택하도록 할 수 있다. 피쳐 코드는 사용자가 통계 정보를 생성하기 위해 설정할 수 있는 피쳐 속성을 포함하는, 전자 장치에 의해 사전에 생성된 템플릿으로, 사용자는 사전에 생성된 복수의 피쳐 코드 중 하나를 선택함으로써 피쳐 설정을 쉽게 변경할 수 있고, 사용자 인터페이스의 다른 항목들의 입력 값은 선택된 피쳐 코드에 따라 자동으로 변경될 수 있다. 또한, 전자 장치는 사용자가 페이지(620)를 통해 피쳐의 그룹 이름, 값 타입 및 계산 타입과 같은 기본 속성을 설정하도록 할 수 있다.FIG. 6B illustrates a page (620) where a user can set basic properties of a feature. In one embodiment, the electronic device may enable the user to select a feature code corresponding to statistical information that the user wishes to generate through the page (620). The feature code is a template pre-generated by the electronic device that includes feature properties that the user can set to generate statistical information, and the user can easily change the feature setting by selecting one of a plurality of pre-generated feature codes, and input values of other items of the user interface may be automatically changed according to the selected feature code. In addition, the electronic device may enable the user to set basic properties such as a group name, a value type, and a calculation type of the feature through the page (620).
도 6c는 사용자가 피쳐의 계산 함수 속성을 설정할 수 있는 페이지(630)를 도시한다. 전자 장치는 사용자가 페이지(630)를 통해 메시지에 대한 필터 조건을 설정하고, 계산 함수, 주체 필드, 객체 필드 및 객체 필드 값 타입과 같은 계산 속성을 설정하도록 할 수 있다. 사용자는 주체 필드에 하나 이상의 주체를 입력할 수 있고, 객체 필드에 하나 이상의 객체를 입력할 수 있다.FIG. 6c illustrates a page (630) where a user can set a calculation function property of a feature. The electronic device can enable a user to set filter conditions for a message through the page (630) and set calculation properties such as a calculation function, a subject field, an object field, and an object field value type. The user can enter one or more subjects in a subject field, and one or more objects in an object field.
도 6d는 사용자가 피쳐의 계산 시간 속성을 설정할 수 있는 페이지(640)를 도시한다. 전자 장치는 사용자가 페이지(640)에 윈도우 타입, 윈도우 길이 및 오프셋과 같은 시간 속성을 설정하도록 할 수 있다. 예를 들어, 윈도우 타입은 텀블링, 슬라이딩, 세션, 및 글로벌 타입을 포함할 수 있다.FIG. 6d illustrates a page (640) where a user can set computation time properties of a feature. The electronic device may enable a user to set time properties such as window type, window length, and offset on the page (640). For example, the window type may include tumbling, sliding, session, and global types.
도 7a 내지 도 7b는 본 개시의 일부 실시 예에 따른 전자 장치가 피쳐를 동적으로 로딩하는 방법을 설명하기 위한 도면이다. FIGS. 7A and 7B are diagrams illustrating a method for an electronic device to dynamically load features according to some embodiments of the present disclosure.
도 7a 내지 도 7b를 참조하면, 메시지로부터 생성한 새로운 통계 정보 또는 변경된 통계 정보를 관리 플랫폼에서 감지하기 위한 두 가지 솔루션이 각각 도시된다. Referring to FIGS. 7a and 7b, two solutions for detecting new or changed statistical information generated from a message in a management platform are respectively illustrated.
도 7a는 전자 장치가 애플리케이션 시작시 과거 특정 시점부터 현재까지의 시구간에 변경된 모든 피쳐를 불러오고, 이후 특정 주기마다 각 시구간에서 수정된 피쳐를 로딩하는 방식의 솔루션을 설명한다. 이 방식은 데이터의 중복된 판독이 발생할 수 있지만 변경 구성을 병합하거나 병합된 모든 구성의 세트를 퍼블리시할 필요가 없다는 장점이 있다.Figure 7a illustrates a solution in which the electronic device fetches all features that have changed in a time interval from a specific point in time in the past to the present at the start of the application, and then loads the modified features from each time interval at specific intervals thereafter. This approach may result in duplicate reading of data, but has the advantage of not having to merge change configurations or publish a set of all merged configurations.
도 7b는 전자 장치가 메시지 큐(예를 들어, 아파치 카프카) 토픽으로부터 변경된 피쳐에 대한 정보를 직접 획득하는 방식의 솔루션을 설명한다. 이 방식은 피쳐 관리 시스템을 수정해야 하고 병합된 모든 구성의 세트를 메시지 큐로 퍼블리시해야 하지만, 메시지가 피쳐 수정에 의해 직접 트리거링되고 데이터의 중복된 판독이 발생하지 않는다는 장점이 있다.Figure 7b illustrates a solution whereby the electronic device directly obtains information about changed features from a message queue (e.g., Apache Kafka) topic. This approach requires modifying the feature management system and publishing a set of all merged configurations to the message queue, but has the advantage that messages are triggered directly by feature modifications and no duplicate reading of data occurs.
도 8은 본 개시의 일 실시 예에 따른 전자 장치가 메시지를 2개 이상의 메시지로 포크하는 방법을 설명하기 위한 도면이다.FIG. 8 is a diagram illustrating a method for an electronic device according to an embodiment of the present disclosure to fork a message into two or more messages.
도 8을 참조하면, 전자 장치가 제1 타입 메시지(810) 및 피쳐 구성(820)을 기반으로 통계 정보 도출을 위한 제2 타입 메시지(830)를 생성하는 과정에 대한 개념도(800)가 도시된다. 전자 장치는 실시간 통계 정보를 생성함에 있어서, 소비자 기준으로 통계 정보를 도출하거나, 소비자 및 스토어 모두를 기준으로 통계 정보를 도출할 필요가 있을 수 있다. 이와 같이 피쳐를 계산하기 위한 차원(dimension)이 늘어나야 하는 경우, 전자 장치는 주체 필드를 키로 지정하여 하나의 제1 타입 메시지를 하나 이상의 제2 타입 메시지로 포크하고, 포크된 각각의 메시지에 대해 피쳐를 계산할 수 있다.Referring to FIG. 8, a conceptual diagram (800) is illustrated for a process in which an electronic device generates a second type message (830) for deriving statistical information based on a first type message (810) and a feature configuration (820). When generating real-time statistical information, the electronic device may need to derive statistical information based on a consumer basis or based on both a consumer and a store. In this case, when the dimension for calculating a feature needs to increase, the electronic device may fork one first type message into one or more second type messages by specifying a subject field as a key, and calculate a feature for each of the forked messages.
일 실시 예에서, 피쳐 설정(820)은 주체 필드 및 객체 필드를 포함하고, 피쳐 설정(820)을 기반으로 하나의 제1 타입 메시지(810)로부터 2개 이상의 제2 타입 메시지(830)가 생성될 수 있으며, 2개 이상의 제2 타입 메시지(830)가 갖는 주체 필드 및 객체 필드 중 적어도 하나는 상이할 수 있다. 전자 장치는 피쳐 구성에 포함된 복수의 주체 필드를 기반으로 제1 타입 메시지(810)를 복수의 제2 타입 메시지(830)로 포크(fork)할 수 있다. 일 실시 예에서, 포크는 제1 타입 메시지(810)에 주체 필드 및 주체 필드에 대응하는 키 값을 나타내는 태그를 추가함으로써 수행될 수 있다. In one embodiment, the feature configuration (820) includes a subject field and an object field, and two or more second type messages (830) can be generated from one first type message (810) based on the feature configuration (820), and at least one of the subject field and the object field of the two or more second type messages (830) can be different. The electronic device can fork the first type message (810) into a plurality of second type messages (830) based on the plurality of subject fields included in the feature configuration. In one embodiment, the forking can be performed by adding a tag indicating a subject field and a key value corresponding to the subject field to the first type message (810).
한편, 피쳐 설정(820)에서 동일한 주체 필드 및 객체 필드를 갖지만 계산 함수가 상이한 경우, 동일한 메시지로부터 상이한 통계 정보가 생성될 수 있다. 일 실시 예에서, 피쳐 설정(820)은 계산 함수를 더 포함하고, 피쳐 설정(820)을 기반으로 하나의 제2 타입 메시지(830)로부터 2개 이상의 통계 정보가 생성될 수 있으며, 2개 이상의 통계 정보는 동일한 주체 필드 및 객체 필드를 기반으로 생성될 수 있다. 이와 같이, 사용자는 피쳐 설정(820)을 변경함으로써 동일한 메시지로부터 다양한 통계 정보를 생성할 수 있다.Meanwhile, if the feature setting (820) has the same subject field and object field but different calculation functions, different statistical information may be generated from the same message. In one embodiment, the feature setting (820) further includes a calculation function, and two or more statistical information may be generated from one second type message (830) based on the feature setting (820), and the two or more statistical information may be generated based on the same subject field and object field. In this way, a user can generate various statistical information from the same message by changing the feature setting (820).
도 9는 본 개시의 일 실시 예에 따른 전자 장치의 피쳐 계산 플로우를 설명하기 위한 도면이다.FIG. 9 is a diagram for explaining a feature calculation flow of an electronic device according to an embodiment of the present disclosure.
도 9를 참조하면, 전자 장치에서 피쳐를 계산하고, 계산된 피쳐를 다운스트림으로 전송하는 플로우(900)가 개략적으로 도시된다. 전자 장치는 현재 이벤트에 대해 피쳐 필터 조건을 적용하여 피쳐를 계산하고, 계산된 피쳐를 즉시 다운스트림으로 보낼 것인지, 아니면 처리 타이머를 등록하여 일정 주기(예를 들어, 10초) 에 따라 한꺼번에 다운스트림으로 보낼 것인지를 결정할 수 있다. 전자 장치는 계산된 피쳐에 대해 즉시(처리 타이머가 등록된 경우 처리 타이머가 트리거된 이후) 피쳐의 윈도우 길이에 따라 시간 슬롯의 상태를 집계하여 피쳐 값을 획득하고, 획득된 피쳐 결과 리스트에 추가할 수 있다.Referring to FIG. 9, a flow (900) for calculating a feature in an electronic device and transmitting the calculated feature downstream is schematically illustrated. The electronic device can calculate a feature by applying a feature filter condition to a current event and determine whether to immediately send the calculated feature downstream or to send the calculated feature downstream all at once according to a certain period (e.g., 10 seconds) by registering a processing timer. The electronic device can immediately (if a processing timer is registered, after the processing timer is triggered) obtain a feature value by aggregating the status of a time slot according to a window length of the feature for the calculated feature and add it to a list of obtained feature results.
도 10은 본 개시의 일 실시 예에 따른 전자 장치가 서비스와 연관된 통계 정보를 제공하는 방법의 흐름을 나타내는 순서도이다. 도 10에 도시된 단계들은 도 1에 도시된 전자 장치(100)에 의해 수행될 수 있으며, 전술한 내용과 중복되는 설명이 이하에서는 생략될 수 있다.FIG. 10 is a flowchart illustrating a method for an electronic device to provide statistical information related to a service according to an embodiment of the present disclosure. The steps illustrated in FIG. 10 may be performed by the electronic device (100) illustrated in FIG. 1, and any description that overlaps with the above-described content may be omitted below.
S1010에서, 전자 장치는 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인할 수 있다.In S1010, the electronic device can check a first type message including information about an event associated with a service.
S1020에서, 전자 장치는 사용자에 의해 설정된 서비스와 연관된 피쳐 설정을 확인할 수 있다.In S1020, the electronic device can check feature settings associated with a service set by the user.
S1030에서, 전자 장치는 제1 타입 메시지 및 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성할 수 있다.In S1030, the electronic device can generate a second type message for deriving statistical information based on the first type message and feature settings.
S1040에서, 전자 장치는 제2 타입 메시지를 기반으로 피쳐 설정에 대응하는 통계 정보를 제공할 수 있다.In S1040, the electronic device can provide statistical information corresponding to the feature setting based on the second type message.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.Meanwhile, the present specification and drawings have disclosed preferred embodiments of the present invention, and although specific terms have been used, they have been used only in a general sense to easily explain the technical contents of the present invention and to help understand the invention, and are not intended to limit the scope of the present invention. It will be apparent to those skilled in the art that other modified examples based on the technical idea of the present invention can be implemented in addition to the embodiments disclosed herein.
100: 전자 장치
110: 프로세서
120: 메모리100: Electronic devices
110: Processor
120: Memory
Claims (1)
상기 서비스와 연관된 이벤트에 대한 정보를 포함하는 제1 타입 메시지를 확인하는 단계;
사용자에 의해 설정된 상기 서비스와 연관된 피쳐 설정을 확인하는 단계;
상기 제1 타입 메시지 및 상기 피쳐 설정을 기반으로 통계 정보 도출을 위한 제2 타입 메시지를 생성하는 단계; 및
상기 제2 타입 메시지를 기반으로 상기 피쳐 설정에 대응하는 상기 통계 정보를 제공하는 단계를 포함하고,
상기 제2 타입 메시지는 제1 데이터베이스에 저장되고,
상기 통계 정보를 제공하는 방법은
상기 제1 데이터베이스에서 일정 기간 동안 들어오는 메시지가 없음을 감지하는 단계; 및
상기 감지를 기반으로 상기 메시지와 연관된 유실 경보를 제공하는 단계를 더 포함하는, 통계 정보를 제공하는 방법.A method for an electronic device to provide statistical information associated with a service,
A step of checking a first type message containing information about an event associated with the above service;
A step of checking feature settings associated with the above service set by the user;
A step of generating a second type message for deriving statistical information based on the first type message and the feature setting; and
A step of providing the statistical information corresponding to the feature setting based on the second type message,
The above second type message is stored in the first database,
How to provide the above statistical information
A step of detecting that there are no incoming messages for a certain period of time in the first database; and
A method for providing statistical information, further comprising the step of providing a loss alert associated with the message based on the detection.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020240132110A KR20240149853A (en) | 2023-03-30 | 2024-09-27 | Apparatus for providing statistical information associated with service |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230042117A KR102713444B1 (en) | 2023-03-30 | 2023-03-30 | Apparatus for providing statistical information associated with service |
| KR1020240132110A KR20240149853A (en) | 2023-03-30 | 2024-09-27 | Apparatus for providing statistical information associated with service |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230042117A Division KR102713444B1 (en) | 2023-03-30 | 2023-03-30 | Apparatus for providing statistical information associated with service |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20240149853A true KR20240149853A (en) | 2024-10-15 |
Family
ID=93114789
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230042117A Active KR102713444B1 (en) | 2023-03-30 | 2023-03-30 | Apparatus for providing statistical information associated with service |
| KR1020240132110A Pending KR20240149853A (en) | 2023-03-30 | 2024-09-27 | Apparatus for providing statistical information associated with service |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020230042117A Active KR102713444B1 (en) | 2023-03-30 | 2023-03-30 | Apparatus for providing statistical information associated with service |
Country Status (2)
| Country | Link |
|---|---|
| KR (2) | KR102713444B1 (en) |
| TW (1) | TW202445476A (en) |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100912177B1 (en) * | 2007-05-17 | 2009-08-14 | 엔에이치엔(주) | User Behavior Analysis Method and System |
| WO2009127639A1 (en) * | 2008-04-16 | 2009-10-22 | International Business Machines Corporation | Query processing visualization system and method of visualizing query processing |
| CN108153850A (en) * | 2017-06-01 | 2018-06-12 | 广州舜飞信息科技有限公司 | A kind of user behavior statistical analysis technique and system |
| CN110061887B (en) | 2019-03-07 | 2020-08-25 | 阿里巴巴集团控股有限公司 | Block chain-based traffic statistical method, device and equipment |
| TWI691556B (en) * | 2019-07-03 | 2020-04-21 | 國立暨南國際大學 | Dichromatic azo dyes and black materials |
| CN113781133B (en) * | 2020-06-22 | 2025-03-18 | 北京沃东天骏信息技术有限公司 | Order data processing method and device |
| CN113094413B (en) * | 2021-04-30 | 2023-07-25 | 平安国际智慧城市科技股份有限公司 | Data statistics method and device based on queue, computer equipment and storage medium |
| KR20220170322A (en) * | 2021-06-22 | 2022-12-29 | 에스케이텔레콤 주식회사 | Method for Determining Triggering Method And Message Based Advertisement Platform Therefore |
| US20230010906A1 (en) * | 2021-07-12 | 2023-01-12 | Citrix Systems, Inc. | System event analysis and data management |
| CN115860831A (en) * | 2021-12-09 | 2023-03-28 | 武汉千企云树科技网络有限公司 | Background data statistical system for advertisement promotion |
| CN115619475A (en) * | 2022-09-26 | 2023-01-17 | 上海微盟企业发展有限公司 | Commodity recommendation method, commodity recommendation system and related devices |
-
2023
- 2023-03-30 KR KR1020230042117A patent/KR102713444B1/en active Active
-
2024
- 2024-03-22 TW TW113110678A patent/TW202445476A/en unknown
- 2024-09-27 KR KR1020240132110A patent/KR20240149853A/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| TW202445476A (en) | 2024-11-16 |
| KR102713444B1 (en) | 2024-10-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12141183B2 (en) | Dynamic partition allocation for query execution | |
| US11586692B2 (en) | Streaming data processing | |
| US10853847B2 (en) | Methods and systems for near real-time lookalike audience expansion in ads targeting | |
| US10977260B2 (en) | Task distribution in an execution node of a distributed execution environment | |
| US11663227B2 (en) | Generating a subquery for a distinct data intake and query system | |
| US11416528B2 (en) | Query acceleration data store | |
| US11232100B2 (en) | Resource allocation for multiple datasets | |
| US11163758B2 (en) | External dataset capability compensation | |
| US10795884B2 (en) | Dynamic resource allocation for common storage query | |
| US11461334B2 (en) | Data conditioning for dataset destination | |
| US10726009B2 (en) | Query processing using query-resource usage and node utilization data | |
| US11663033B2 (en) | Design-time information based on run-time artifacts in a distributed computing cluster | |
| Huang et al. | Tencentrec: Real-time stream recommendation in practice | |
| US10698900B2 (en) | Generating a distributed execution model with untrusted commands | |
| US10592561B2 (en) | Co-located deployment of a data fabric service system | |
| US10409650B2 (en) | Efficient access scheduling for super scaled stream processing systems | |
| US10762539B2 (en) | Resource estimation for queries in large-scale distributed database system | |
| US20200106844A1 (en) | System and method for separating content site visitor profiles | |
| US10698897B2 (en) | Executing a distributed execution model with untrusted commands | |
| US12348592B2 (en) | System and method for separating content site visitor profiles | |
| US11562319B1 (en) | Machine learned item destination prediction system and associated machine learning techniques | |
| Jayanthi et al. | A framework for real-time streaming analytics using machine learning approach | |
| KR102713444B1 (en) | Apparatus for providing statistical information associated with service | |
| US12259936B1 (en) | Method and system for providing customized experience to a user profile | |
| US11438426B1 (en) | Systems and methods for intelligent session recording |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A107 | Divisional application of patent | ||
| PA0107 | Divisional application |
St.27 status event code: A-0-1-A10-A18-div-PA0107 St.27 status event code: A-0-1-A10-A16-div-PA0107 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |