KR20180120099A - Method for collecting data and system for performing the same - Google Patents

Method for collecting data and system for performing the same Download PDF

Info

Publication number
KR20180120099A
KR20180120099A KR1020180047144A KR20180047144A KR20180120099A KR 20180120099 A KR20180120099 A KR 20180120099A KR 1020180047144 A KR1020180047144 A KR 1020180047144A KR 20180047144 A KR20180047144 A KR 20180047144A KR 20180120099 A KR20180120099 A KR 20180120099A
Authority
KR
South Korea
Prior art keywords
data
source code
information
game
interface
Prior art date
Application number
KR1020180047144A
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 주식회사 넥슨코리아
Publication of KR20180120099A publication Critical patent/KR20180120099A/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Disclosed are a data collecting method and a system for performing the same. The system for performing the data collecting method comprises: an interface unit obtaining a first source code for collecting data; a conversion unit converting the first source code into a second source code; and an execution unit obtaining data by performing the second source code with respect to the game client.

Description

데이터 수집 방법 및 이를 수행하기 위한 시스템{METHOD FOR COLLECTING DATA AND SYSTEM FOR PERFORMING THE SAME}METHOD FOR COLLECTING DATA AND SYSTEM FOR PERFORMING THE SAME,

본 명세서에서 개시되는 실시예들은 데이터 수집 방법 및 이를 수행하기 위한 시스템에 관한 것으로, 보다 상세하게는 온디맨드(on-demand)로 데이터를 수집할 수 있는 방법 및 이를 수행하기 위한 시스템에 관한 것이다.The embodiments disclosed herein relate to a method of data collection and a system for performing the same, and more particularly to a method of collecting data on-demand and a system for performing the same.

최근 들어 다양한 콘텐츠로 구성된 온라인 게임이 제공되고 있다. Recently, online games composed of various contents are being provided.

게임 서비스 제공자는 안정적인 서비스를 위해 플레이어가 게임을 즐기고 있는지 진단할 필요가 있고, 또한 게임서버 또는 클라이언트가 원활하게 동작하는지 확인하고 싶을 때가 있다. 또한 게임 서비스 제공자는 게임 서비스 정책을 변경하거나 추가하고 싶을 때가 있는데 이를 위해 데이터를 수집하거나 수집한 데이터를 분석할 필요가 있다.The game service provider needs to diagnose whether the player is playing the game for stable service, and sometimes wants to check whether the game server or the client works smoothly. In addition, game service providers may want to change or add game service policies, in which case it is necessary to collect data or analyze the collected data.

실시간으로 제공되는 온라인 게임에서는 이와 같은 데이터 수집을 위해 여러 가지 절차를 거쳐야 한다. In online games that are provided in real time, there are various procedures for collecting such data.

관련하여 도 1을 참조하면, 소정의 데이터를 수집해서 분석해야 하는 니즈를 파악하면(1), 해당 니즈를 처리할 작업자와 일정을 설정(2)하며, 상기 니즈를 충족시킬 수 있는 소스코드를 작업자가 개발(3)하고 해당 소스코드를 삽입하여 테스트(4)하고 패킹(5)하고 난 이후, QA(6)를 거쳐 소스코드 내에 결함이 있는지 여부를 재차 확인한다. 그리고 서비스 점검(7)을 통해 해당 소스코드가 포함된 패치를 배포하여 필요한 로그 데이터를 수집(8)하고, 수집된 로그 데이터에 대한 ETL(Extract, Transform, Load; 9)을 수행함으로써 니즈에 부합하는 데이터를 전달(10)받을 수 있다. 그리고 상기 데이터를 분석의 대상으로 활용(11)할 수 있다.Referring to FIG. 1, when a need for collecting and analyzing predetermined data is grasped (1), a schedule with an operator to process the needs is set (2), and a source code After the worker develops (3), inserts the source code, tests (4), and packs (5), the QA (6) checks again whether the source code has a defect. Then, by distributing the patch containing the source code through service check (7), necessary log data is collected (8), and ETL (Extract, Transform, Load; 9) (10). Then, the data can be utilized as an object of analysis (11).

상술된 바와 같은 프로세스는, 작업자가 게임개발만으로도 벅찬 상황에서 소스코드의 생성 및 테스트 등을 수행해야 한다는 점에서 비용 발생의 원인으로 작용하는 문제점이 될 수 있다.The above-described process may be a cause of cost in that a worker must perform generation and testing of source code in a situation where it is difficult to develop a game alone.

또한, 원하는 데이터를 얻기까지 많은 시간이 소요되어 적시에 원하는 데이터를 얻기 힘들 수 있다. 이와 같은 데이터 수집의 지연은 클라이언트 또는 서버의 성능을 떨어뜨릴 수 있으며, 바로 해결해야 되는 긴급한 문제 발생에 대해 민첩하게 대응하지 못하는 문제점이 된다.In addition, it takes a long time to obtain desired data, and it may be difficult to obtain desired data in a timely manner. Such a delay in data collection can degrade the performance of a client or a server, and it can not cope with an urgent problem that needs to be solved immediately.

아울러, 수집된 데이터를 분석하는데 있어 분석 과정에서 발견되는 단서를 확인하기 위해 또 다른 데이터를 재차 수집하고자 하는 경우, 상술된 프로세스를 처음부터 다시 수행해야 할 필요가 있다. 이에 정확하게 원인을 분석하는데 많은 시간이 소요되며, 분석하는데 많은 자원을 투입해야 하는 문제점도 있다. In addition, when analyzing the collected data, it is necessary to perform the above-described process again from the beginning if another data is to be collected again to check the clues found in the analysis process. Therefore, it takes a lot of time to accurately analyze the cause, and there is also a problem that a lot of resources must be put into the analysis.

이에 상술된 문제점을 해결하기 위한 기술의 분석이 필요하게 되었다. Therefore, analysis of techniques for solving the above-mentioned problems is required.

한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.On the other hand, the background art described above is technical information acquired by the inventor for the derivation of the present invention or obtained in the derivation process of the present invention, and can not necessarily be a known technology disclosed to the general public before the application of the present invention .

본 명세서에서 개시되는 실시예들은, 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시하는 데 목적이 있다.The embodiments disclosed herein are aimed at providing a data collection method and a system for performing the same.

또한 본 명세서에서 개시되는 실시예들은, 어떠한 개발 플랫폼이더라도 데이터 수집이 가능한 방법 및 이를 위한 시스템을 제시하는 데 목적이 있다.The embodiments disclosed herein are also intended to provide a method and system for enabling data collection on any development platform.

또한 본 명세서에서 개시되는 실시예들은, 비용 발생을 최소화시킬 수 있는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시하는 데 목적이 있다.It is also an object of the present invention to provide a data collection method capable of minimizing the occurrence of costs and a system for performing the same.

또한, 본 명세서에서 개시되는 실시예들은, 작업자의 작업을 간소화시키면서 빠른 시간 내에 데이터를 수집할 수 있는 방법 및 이를 수행하기 위한 시스템을 제시하는 데 목적이 있다.It is also an object of the present invention to provide a method for collecting data in a short period of time while simplifying an operator's work and a system for performing the same.

또한, 본 명세서에서 개시되는 실시예들은, 실행 중인 게임을 중단시키지 않고도 원하는 데이터를 실시간으로 추출할 수 있는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시하는 데 목적이 있다.It is also an object of the present invention to provide a data collection method capable of extracting desired data in real time without interrupting a running game and a system for performing the same.

또한 본 명세서에서 개시되는 실시예들은, 데이터 수집에 더하여 수집된 데이터를 가공하여 분석하고자 하는 주제에 관한 현상을 쉽게 확인할 수 있도록 하는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시하는 데 목적이 있다.It is also an object of the present invention to provide a data collection method and a system for carrying out the method, which can collect collected data in addition to data collection and make it easy to confirm the phenomenon of a subject to be analyzed.

또한, 본 명세서에서 개시되는 실시예들은, 시스템에서 본래 제공하던 보안 수준을 낮추지 않으면서, 데이터 수집에 기인한 서비스 장애 발생을 최소화시킬 수 있는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시하는 데 목적이 있다.The embodiments disclosed herein also provide a data collection method that can minimize the occurrence of a service failure due to data collection without lowering the level of security originally provided in the system and a system for performing the same .

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 게임 클라이언트로부터 데이터를 실시간 수집하기 위한 데이터 수집 시스템으로서, 상기 데이터를 수집하기 위한 제1소스코드를 획득하는 인터페이스부, 상기 제1소스코드를 제2소스코드로 변환하는 변환부, 및 상기 제2소스코드를 상기 게임 클라이언트에 대해 실행하여 데이터를 획득하는 실행부를 포함할 수 있다.According to an embodiment of the present invention, there is provided a data collection system for collecting data from a game client in real time, comprising: an interface for acquiring a first source code for collecting the data; A conversion unit for converting one source code into a second source code, and an execution unit for executing the second source code to the game client to acquire the data.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 데이터 수집 시스템이, 게임 클라이언트로부터 실시간으로 데이터를 수집하는 방법으로서, 상기 데이터를 수집하기 위한 제1소스코드를 획득하는 단계, 상기 제1소스코드를 제2소스코드로 변환하는 단계, 및 상기 제2소스코드를 상기 게임 클라이언트에 대해 실행하여 데이터를 획득하는 단계를 포함할 수 있다.According to an embodiment of the present invention, there is provided a method of collecting data in real time from a game client, the method comprising: acquiring a first source code for collecting the data; Converting the first source code to a second source code, and executing the second source code to the game client to obtain data.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 데이터 수집 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체로서 상기 데이터 수집 방법은, 데이터를 수집하기 위한 제1소스코드를 획득하는 단계, 상기 제1소스코드를 제2소스코드로 변환하는 단계, 및 상기 제2소스코드를 상기 게임 클라이언트에 대해 실행하여 데이터를 획득하는 단계를 포함할 수 있다.According to an embodiment of the present invention, there is provided a computer-readable recording medium having recorded thereon a program for performing a data collection method, the data collection method including a first source code for collecting data, Converting the first source code to a second source code, and executing the second source code to the game client to obtain data.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 일 실시예에 따르면, 데이터 수집 시스템에 의해 수행되며, 데이터 수집 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램으로서 상기 데이터 수집 방법은, 데이터를 수집하기 위한 제1소스코드를 획득하는 단계, 상기 제1소스코드를 제2소스코드로 변환하는 단계, 및 상기 제2소스코드를 상기 게임 클라이언트에 대해 실행하여 데이터를 획득하는 단계를 포함할 수 있다.As a technical means for achieving the above technical object, according to an embodiment, there is provided a computer program which is executed by a data collection system and stored in a medium for performing a data collection method, the method comprising: Converting the first source code to a second source code, and executing the second source code to the game client to obtain data.

전술한 과제 해결 수단 중 어느 하나에 의하면, 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시할 수 있다. According to any one of the above-mentioned means for solving the problems, a data collection method and a system for performing the method can be presented.

또한, 전술한 과제 해결 수단 중 어느 하나에 의하면, 어떠한 개발 플랫폼이더라도 데이터 수집이 가능한 방법 및 이를 위한 시스템을 제시할 수 있다.In addition, according to any one of the above-mentioned tasks, it is possible to provide a method capable of data collection and a system therefor, regardless of any development platform.

또한, 전술한 과제 해결 수단 중 어느 하나에 의하면, 비용 발생을 최소화시킬 수 있는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시할 수 있다. In addition, according to any one of the above-mentioned problems, a data collection method capable of minimizing the occurrence of costs and a system for performing the method can be provided.

또한, 전술한 과제 해결 수단 중 어느 하나에 의하면, 작업자의 작업을 간소화시키면서 빠른 시간 내에 데이터를 수집할 수 있는 방법 및 이를 수행하기 위한 시스템을 제시할 수 있다. In addition, according to any one of the above-mentioned tasks, a method of collecting data in a short period of time while simplifying an operator's work and a system for performing the method can be presented.

또한, 전술한 과제 해결 수단 중 어느 하나에 의하면, 실행 중인 게임을 중단시키지 않고도 원하는 데이터를 실시간으로 추출할 수 있는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시할 수 있다. 이를 통해 바로 해결해야 되는 긴급한 문제 발생에 대해 민첩하게 대응할 수 있다.In addition, according to any one of the above-mentioned tasks, it is possible to provide a data collection method capable of extracting desired data in real time without interrupting a game being executed and a system for performing the same. Through this, it is possible to respond promptly to the urgent problem that needs to be solved immediately.

또한, 전술한 과제 해결 수단 중 어느 하나에 의하면, 데이터 수집에 더하여 수집된 데이터를 가공하여 분석하고자 하는 주제에 관한 현상을 쉽게 확인할 수 있도록 하는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시할 수 있다.In addition, according to any one of the above-mentioned means for solving the problems, it is possible to provide a data collecting method and a system for performing the data collecting method, .

또한, 전술한 과제 해결 수단 중 어느 하나에 의하면, 시스템에서 본래 제공하던 보안 수준을 낮추지 않으면서, 데이터 수집에 기인한 서비스 장애 발생을 최소화시킬 수 있는 데이터 수집 방법 및 이를 수행하기 위한 시스템을 제시할 수 있다.In addition, according to any one of the above-mentioned tasks, a data collection method capable of minimizing occurrence of a service failure due to data collection and a system for performing the same can be proposed without lowering the security level originally provided in the system .

개시되는 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtained in the disclosed embodiments are not limited to the effects mentioned above, and other effects not mentioned are obvious to those skilled in the art to which the embodiments disclosed from the following description belong It can be understood.

도 1은 종래의 데이터 수집 방법을 설명하기 위한 도면이다.
도 2은 일 실시예에 따른 데이터 수집 시스템을 도시한 도면이다.
도 3는 일 실시예에 따른 데이터 수집 시스템을 도시한 블록도이다.
도 4는 일 실시예에 따른 데이터 수집 방법을 설명하기 위한 순서도이다.
도 5 내지 도 13은 일 실시예에 따른 데이터 수집 방법을 설명하기 위한 도면이다.
1 is a diagram for explaining a conventional data collection method.
2 is a diagram illustrating a data acquisition system in accordance with one embodiment.
3 is a block diagram illustrating a data acquisition system in accordance with one embodiment.
4 is a flowchart for explaining a data collecting method according to an embodiment.
5 to 13 are views for explaining a data collecting method according to an embodiment.

아래에서는 첨부한 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 아래에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여, 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략하였다. 그리고, 도면에서 실시예들의 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Various embodiments are described in detail below with reference to the accompanying drawings. The embodiments described below may be modified and implemented in various different forms. In order to more clearly describe the features of the embodiments, detailed descriptions of known matters to those skilled in the art are omitted. In the drawings, parts not relating to the description of the embodiments are omitted, and like parts are denoted by similar reference numerals throughout the specification.

명세서 전체에서, 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 어떤 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들을 더 포함할 수도 있음을 의미한다.Throughout the specification, when a configuration is referred to as being "connected" to another configuration, it includes not only a case of being directly connected, but also a case of being connected with another configuration in between. In addition, when a configuration is referred to as " including ", it means that other configurations may be included, as well as other configurations, as long as there is no specially contradicted description.

이하 첨부된 도면을 참고하여 실시예들을 상세히 설명하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 2는 일 실시예에 따른 데이터 수집 시스템을 설명하기 위한 구성도이다. 도 2를 참조하면, 일 실시예에 따른 데이터 수집 시스템(100)은 사용자단말(10) 및 수집서버(20)를 포함할 수 있다.2 is a block diagram illustrating a data acquisition system according to an embodiment of the present invention. Referring to FIG. 2, a data acquisition system 100 according to one embodiment may include a user terminal 10 and a collection server 20.

사용자단말(10)은 네트워크(N)를 통해 원격지의 서버에 접속하거나, 타 단말 및 서버와 연결 가능한 컴퓨터나 휴대용 단말기, 텔레비전, 웨어러블 디바이스(Wearable Device) 등으로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop)등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), GSM(Global System for Mobile communications), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), 스마트폰(Smart Phone), 모바일 WiMAX(Mobile Worldwide Interoperability for Microwave Access) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, 텔레비전은 IPTV(Internet Protocol Television), 인터넷 TV(Internet Television), 지상파 TV, 케이블 TV 등을 포함할 수 있다. 나아가 웨어러블 디바이스는 예를 들어, 시계, 안경, 액세서리, 의복, 신발 등 인체에 직접 착용 가능한 타입의 정보처리장치로서, 직접 또는 다른 정보처리장치를 통해 네트워크를 경유하여 원격지의 서버에 접속하거나 타 단말과 연결될 수 있다.The user terminal 10 can be implemented as a computer, a portable terminal, a television, a wearable device, or the like, which can be connected to a remote server through a network N or connected to other terminals and servers. Here, the computer includes, for example, a notebook computer, a desktop computer, a laptop computer, and the like, each of which is equipped with a web browser (WEB Browser), and the portable terminal may be a wireless communication device , Personal Communication System (PCS), Personal Digital Cellular (PDC), Personal Handyphone System (PHS), Personal Digital Assistant (PDA), Global System for Mobile communications (GSM), International Mobile Telecommunication (IMT) (W-CDMA), Wibro (Wireless Broadband Internet), Smart Phone, Mobile WiMAX (Mobile Worldwide Interoperability for Microwave Access) (Handheld) based wireless communication device. In addition, the television may include an Internet Protocol Television (IPTV), an Internet television (TV), a terrestrial TV, a cable TV, and the like. Further, the wearable device is an information processing device of a type that can be directly worn on a human body, for example, a watch, a glasses, an accessory, a garment, shoes, and the like. The wearable device can be connected to a remote server via a network, Lt; / RTI >

이러한 사용자단말(10)에는 게임서버(미도시)와 통신하기 위한 게임 클라이언트가 설치될 수 있다. 게임 클라이언트는 게임서버(미도시)에 대해 클라이언트로 동작할 수 있으며 플레이어에게 게임(또는 퀘스트)을 제공할 수 있다.The user terminal 10 may be provided with a game client for communicating with a game server (not shown). The game client may act as a client to a game server (not shown) and may provide the player with a game (or quest).

본 발명의 일 실시예에 따른 사용자단말(10)은 제1입출력부(미도시), 제1제어부(미도시), 제1통신부(미도시) 및 제1메모리(미도시)를 포함할 수 있다. The user terminal 10 according to an embodiment of the present invention may include a first input / output unit (not shown), a first control unit (not shown), a first communication unit (not shown), and a first memory have.

사용자단말(10)의 제1입출력부는 게임 클라이언트의 실행에 따른 플레이어의 입력을 수신하기 위한 제1입력부와, 게임 클라이언트의 실행에 따른 결과 또는 사용자단말(10)의 상태 등의 정보를 표시하기 위한 제1출력부를 포함할 수 있다. 예를 들어, 제1입출력부는 플레이어 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다. 다만, 이에 한정되지 않고 제1입출력부는 다양한 입출력을 지원하는 구성을 포함할 수 있다.The first input / output unit of the user terminal 10 includes a first input unit for receiving a player's input in accordance with the execution of the game client, and a second input unit for displaying information such as the result of execution of the game client or the state of the user terminal 10. [ And may include a first output. For example, the first input / output unit may include an operation panel for receiving a player input, a display panel for displaying a screen, and the like. However, the present invention is not limited to this, and the first input / output unit may include a configuration supporting various inputs and outputs.

사용자단말(10)의 제1제어부는 사용자단말(10)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 제1제어부는 후술될 제1통신부를 통해 수신한 소스코드를 실행시켜 게임 클라이언트로부터 데이터를 수집하기 위한 동작을 수행하도록 사용자단말(10)에 포함된 다른 구성들을 제어할 수 있다.The first controller of the user terminal 10 controls the overall operation of the user terminal 10 and may include a processor, such as a CPU. The first control unit may control other components included in the user terminal 10 to execute an operation for collecting data from a game client by executing the source code received through the first communication unit, which will be described later.

사용자단말(10)의 제1통신부는 수집서버(20)와의 유무선 통신을 수행할 수 있다. 이를 위해, 제1통신부는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.The first communication unit of the user terminal 10 can perform wired / wireless communication with the collection server 20. To this end, the first communication unit may include a communication module supporting at least one of various wired / wireless communication methods. For example, the communication module may be implemented in the form of a chipset.

사용자단말(10)의 제1메모리에는 파일, 어플리케이션 및 프로그램 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 사용자단말(10)의 제1제어부는 제1메모리에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 제1메모리에 저장할 수도 있다. Various types of data such as files, applications, and programs can be installed and stored in the first memory of the user terminal 10. The first control unit of the user terminal 10 may access the data stored in the first memory and use it or store the new data in the first memory.

한편 수집서버(20)는, 획득한 명령에 기초하여 실행 중인 게임을 중단시키지 않고도 원하는 데이터를 실시간으로 추출할 수 있다.On the other hand, the collection server 20 can extract desired data in real time without stopping the game being executed based on the acquired command.

본 발명의 일 실시예에 따른 수집서버(20)은 제2입출력부, 제2제어부, 제2통신부 및 제2메모리를 포함할 수 있다The collection server 20 according to an embodiment of the present invention may include a second input / output unit, a second control unit, a second communication unit, and a second memory

수집서버(20)의 제2입출력부는 유저로부터 데이터 수집을 위한 입력을 수신하는 제2입력부와, 데이터 수집의 결과(또는 수집된 데이터를 가공 또는 렌더링한 결과) 또는 수집서버(20)의 상태 등의 정보를 표시하기 위한 제2출력부를 포함할 수 있다. 예를 들어, 제2입출력부는 유저 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다. 다만, 이에 한정되지 않고 제2입출력부는 다양한 입출력을 지원하는 구성을 포함할 수 있다.The second input / output unit of the collection server 20 includes a second input unit for receiving an input for collecting data from a user, a second input unit for receiving the result of data collection (or processing result of the collected data) And a second output unit for displaying information of the second display unit. For example, the second input / output unit may include an operation panel for receiving user input and a display panel for displaying a screen. However, the present invention is not limited to this, and the second input / output unit may include a configuration supporting various inputs and outputs.

수집서버(20)의 제2제어부는 수집서버(20)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 수집서버(20)의 제2제어부는 제2입출력부를 통해 수신한 유저 입력에 대응되는 동작을 수행하도록 수집서버(20)에 포함된 다른 구성들을 제어할 수 있다.The second controller of the collection server 20 controls the overall operation of the collection server 20 and may include a processor such as a CPU. The second control unit of the collection server 20 may control other components included in the collection server 20 to perform an operation corresponding to the user input received through the second input / output unit.

수집서버(20)의 제2통신부는 사용자단말(10)과의 유무선 통신을 수행할 수 있다. 이를 위해, 제2통신부는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.The second communication unit of the collection server 20 can perform wired / wireless communication with the user terminal 10. To this end, the second communication unit may include a communication module supporting at least one of various wired / wireless communication methods. For example, the communication module may be implemented in the form of a chipset.

수집서버(20)의 제2메모리에는 파일, 어플리케이션 및 프로그램 등과 같은 다양한 종류의 데이터가 설치 및 저장될 수 있다. 수집서버(20)의 제2제어부는 수집서버(20)의 제2메모리에 저장된 데이터에 접근하여 이를 이용하거나, 또는 새로운 데이터를 수집서버(20)의 제2메모리에 저장할 수도 있다. 또한, 수집서버(20)의 제2제어부는 제2메모리에 설치된 프로그램을 실행할 수도 있다. 즉, 수집서버(20)의 제2메모리에는 데이터 수집을 수행하기 위한 프로그램이 설치될 수 있다.Various types of data such as files, applications, programs, and the like may be installed and stored in the second memory of the collection server 20. [ The second control unit of the collection server 20 may access and use the data stored in the second memory of the collection server 20 or may store new data in the second memory of the collection server 20. [ Also, the second control unit of the collection server 20 may execute a program installed in the second memory. That is, a program for performing data collection may be installed in the second memory of the collection server 20.

일 실시예에 따르면, 수집서버(20)에서, 제2입출력부를 통해 유저로부터 소정의 데이터를 요청하는 입력을 수신하면, 제2제어부는 제2메모리에 저장된 프로그램을 실행시켜 데이터 수집을 수행한다. According to one embodiment, when the collection server 20 receives an input requesting predetermined data from the user through the second input / output unit, the second control unit executes the program stored in the second memory to perform data collection.

이러한 수집서버(20)는 게임서버(미도시)를 포함할 수 있고 게임서버(미도시)에 포함될 수 있으며, 게임서버(미도시)와 독립된 구성요소로서 게임서버(미도시)와 통신할 수도 있다.The collection server 20 may include a game server (not shown), may be included in a game server (not shown), may communicate with a game server (not shown) as a component independent of the game server have.

한편 도 3은 일 실시예에 따른 데이터 수집 시스템의 구성을 도시한 도면이다. 3 is a diagram illustrating a configuration of a data collection system according to an embodiment.

데이터 수집 시스템(100)은 데이터를 수집하며, 수집되는 데이터는, 예를 들어, 현재 위치, 캐릭터의 레벨, 캐릭터의 직업 등과 같이 주기적으로 수집하는 것이 적절한 데이터일 수 있으며, 사망, 사용한 스킬, 이동한 맵, 퀘스트 완료 등과 같이 특정 함수가 호출되는 시점에 인자값 또는 멤버변수 등을 통해 수집될 수 있는 데이터일 수 있다. 또한, 수집되는 데이터는 가공데이터를 생성하기 위한 데이터일 수 있으며, 예를 들어, 시간 당 데미지와 같이 소정의 기간 동안 누적된 데미지 데이터일 수 있다.The data collection system 100 collects data and the collected data may be data that is periodically collected, such as, for example, the current location, the level of the character, the character's job, Data that can be collected through argument values or member variables at the time a specific function is called, such as a map, a quest completion, and the like. In addition, the data to be collected may be data for generating machining data, and may be damage data accumulated for a predetermined period of time, for example, damage per hour.

도 3을 참조하면, 일 실시예에 따른 데이터 수집 시스템(100)은, 인터페이스부(310), 검출부(320), 변환부(330) 및 실행부(340)를 포함할 수 있다.3, the data acquisition system 100 according to an exemplary embodiment of the present invention may include an interface unit 310, a detection unit 320, a conversion unit 330, and an execution unit 340.

본 발명의 일실시예에 따른 인터페이스부(310)는 데이터 수집을 위한 명령을 획득할 수 있다. The interface unit 310 according to an embodiment of the present invention may acquire a command for data collection.

유저는 어떠한 데이터를 수집할 것인지에 관한 명령을 입력하고자 할 수 있으며, 이를 위해 인터페이스부(310)는 유저가 명령을 입력할 수 있는 인터페이스를 제공할 수 있고 상기 인터페이스를 통해 입력된 명령을 획득할 수 있다. The user may input a command regarding to which data to be collected. To this end, the interface unit 310 may provide an interface through which a user can input a command and acquire an input command through the interface have.

이때 명령을 입력하는 유저는 자신에게 익숙한 프로그래밍 언어로 명령을 입력할 수 있다. 예를 들어 게임을 제작하는데 이용되었던 프로그래밍 언어로 작성된 소스코드를 입력할 수 있고, 인터페이스부(310)는 상기 소스코드를 명령으로서 획득할 수 있다.At this time, the user who inputs the command can input the command in the programming language which is familiar to him. For example, a source code written in a programming language used for producing a game can be input, and the interface unit 310 can acquire the source code as an instruction.

또한 유저는 명령을 나타내는 문자열 또는 이미지 등의 정보를 입력할 수 있고, 인터페이스부(310)는 유저의 입력정보로부터 명령을 추출할 수 있다. 예를 들어, 유저는 프로그래밍 문법에 따른 언어로 명령을 입력하는 대신 이미지로 입력할 수 있고, 이러한 입력정보를 획득한 인터페이스부(310)는 입력정보로부터 명령을 추출하거나, 명령을 획득하기 위해 입력정보를 시스템(100)이 이해할 수 있는 언어로 변환할 수 있다. Further, the user can input information such as a character string or image representing the command, and the interface unit 310 can extract the command from the input information of the user. For example, instead of inputting a command in a language according to a programming grammar, the user can input an image as an image. The interface unit 310, which has obtained the input information, extracts a command from input information, Information can be converted into a language that the system 100 can understand.

상술된 바와 같이 인터페이스부(310)가 명령을 획득함으로써 유저는 다른 추가적인 프로그래밍 언어를 학습하지 않아도 되어, 추가적인 개발비용이 들지 않는다는 장점이 있다. 이는 유저의 작업을 간소화시키면서 빠른 시간 내에 데이터를 수집하도록 하며, 어떠한 개발 플랫폼이더라도 데이터 수집이 가능하도록 한다.As described above, the interface 310 acquires an instruction, so that the user does not need to learn another additional programming language, so that there is no additional development cost. This simplifies the user's work and allows data to be collected in a short period of time, allowing data to be collected on any development platform.

또한, 인터페이스부(310)는 후술될 변환코드를 유저에게 제공해주어 유저로 하여금 자신이 요청한 명령에 대응되는 변환코드가 맞게 생성되었는지를 확인할 수 있게 할 수 있다.In addition, the interface unit 310 may provide the user with a conversion code to be described later so that the user can confirm whether or not the conversion code corresponding to the command requested by the user is generated.

또한, 인터페이스부(310)는 수집된 데이터에 기초하여 가공데이터를 생성할 수 있다. 즉, 인터페이스부(310)는 플레어어의 복수 데이터를 복합적으로 고려하여 결과물을 생성할 수 있다.In addition, the interface unit 310 can generate the processed data based on the collected data. That is, the interface unit 310 can produce a result by considering multiple data of the flare.

이를 위해 인터페이스부(310)는 요청정보를 확인하고, 수집된 데이터 중 요청정보와 관련된 데이터를 추출하여 가공할 수 있다. For this, the interface unit 310 can check the request information and extract and process the data related to the request information among the collected data.

예를 들어, 플레이어의 시간당 돈 획득량에 관한 정보를 확인하고자 한다면, 인터페이스부(310)는 수집된 데이터 중에서, 소정의 시간 동안의 플레이어 돈 획득량 데이터를 추출하여 시간당 돈 획득량을 계산할 수 있다.For example, if it is desired to check the information on the money acquisition amount per hour of the player, the interface unit 310 may extract the player money acquisition amount data for a predetermined time from the collected data to calculate the money acquisition amount per hour .

아울러, 인터페이스부(310)는 수집된 데이터(또는 가공데이터)를 렌더링하여 제공할 수 있다. In addition, the interface unit 310 may render and provide the collected data (or processed data).

즉, 인터페이스부(310)는 수집된 데이터(또는 가공데이터)에 기초한 요청정보를 획득하면 상기 요청정보에 대응되는 인터페이스를 제공하기 위해 수집된 데이터(또는 가공데이터)를 렌더링할 수 있다.That is, when the interface unit 310 obtains the request information based on the collected data (or the processed data), the interface unit 310 may render the collected data (or processed data) to provide the interface corresponding to the requested information.

또한 인터페이스부(310)는 복수의 플레이어들(또는 복수의 게임 클라이언트들)에 대한 데이터가 수집되면, 복수의 플레이어들(또는 복수의 게임 클라이언트들)의 데이터를 함께 렌더링할 수 있다.The interface unit 310 may render data of a plurality of players (or a plurality of game clients) together when data of a plurality of players (or a plurality of game clients) is collected.

예를 들어 유저가 확인하고자 하는 데이터가 소정의 맵 상에 위치한 플레이어 성별 분포인 경우, 인터페이스부(310)는 유저가 직관적으로 이해할 수 있는 인터페이스로 데이터를 렌더링하여 제공할 수 있다. 이를 위해 인터페이스부(310)는 획득한 플레이어의 성별 데이터에 기초하여 게임 맵 중 특정 맵에 대한 유저의 선택을 입력받거나 맵의 적어도 일부 영역에 대한 유저의 선택입력을 받으면, 상기 선택입력을 요청정보로서 처리하기 위해, 선택된 영역 상에 위치한 캐릭터의 위치에, 캐릭터를 제어하는 플레이어의 성별에 대응되는 표지를 표시하여 상기 영역 상에 위치한 플레이어의 성별 분포를 유저가 확인할 수 있도록 한다. 또한, 인터페이스부(310)는 상기 영역 상에 위치한 복수 플레이어들의 성별을 그래프로 도식화하여 제공함으로써 유저로 하여금 상기 영역 상에 위치한 플레이어들의 성별 비율을 확인하도록 할 수 있다.For example, if the data to be checked by the user is a gender-specific distribution located on a predetermined map, the interface unit 310 can render and provide data with an interface that the user can intuitively understand. To this end, the interface unit 310 receives the selection of the user for a specific map in the game map based on the gender data of the acquired player or receives the selection input of the user for at least a partial area of the map, A mark corresponding to the gender of the player controlling the character is displayed at the position of the character positioned on the selected area so that the user can confirm the gender distribution of the player located on the area. In addition, the interface unit 310 may graphically display gender of a plurality of players located on the area, and provide the gender with a graph, thereby allowing the user to confirm the sex ratio of the players located on the area.

한편 인터페이스부(310)는 데이터의 수집량을 조절하기 위해 수집속도를 조절할 수도 있다. 또한 인터페이스부(310)는 데이터 수집 대상이 되는 클라이언트를 선정할 수 있으며, 예를 들어 클라이언트마다 달리 할당된 키(예: 클라이언트 접속 시 클라이언트에 할당된 랜덤키) 등을 이용하여 선정할 수 있다.Meanwhile, the interface unit 310 may adjust the collection rate to adjust the collection amount of data. In addition, the interface unit 310 can select a client to be a data collection target. For example, the interface unit 310 can be selected by using a key (for example, a random key assigned to a client when a client is connected)

한편 본 발명의 일실시예에 따른 검출부(320)는 디버깅 정보가 포함된 데이터베이스인 PDB(프로그램 데이터베이스; program database)를 획득할 수 있다.Meanwhile, the detector 320 according to an embodiment of the present invention may acquire a PDB (program database), which is a database including debugging information.

PDB는 컴파일러가 어떻게 실행파일을 생성했는지에 관한 데이터를 저장하고 있으며, PDB에는 어느 위치에 데이터가 어떻게 들어있는지에 관한 정보를 포함할 수 있다. 즉, 소스코드 내에서의 함수나 변수는 PDB에서 심볼로서 표현되며 PDB는 심볼의 이름, 종류, 타입, 주소 값 등을 저장할 수 있다. 예를 들어 변수 'g_status'를 판독하고자 하면, 표1에서 기재된 바와 같이 PDB에는 가상 주소값(virtual address)과 타입(type)에 관한 정보를 포함할 수 있다.The PDB stores data about how the compiler generated the executable file, and the PDB can contain information about where the data is located. That is, a function or a variable in the source code is expressed as a symbol in the PDB, and the PDB can store the name, kind, type, and address value of the symbol. For example, to read the variable 'g_status', the PDB may include information about a virtual address and type, as described in Table 1.

g_status
virtualAddress 149584
type
baseType btInt
length 4
g_status
virtualAddress 149584
type
baseType btInt
length 4

PDB를 판독함에 따라 심볼의 이름, 종류, 타입, 주소 값 등을 획득할 수 있고 그 결과 검출부(320)는 게임 클라이언트를 실행하는데 이용되는 소스코드의 변수(또는 함수)의 이름, 종류, 타입, 주소 값 등의 정보를 획득할 수 있다. 획득된 정보는 변환부(330)에서 소스코드를 변환하는데 이용될 수 있다.The type, the type, the address, and the like of the symbol can be obtained as the PDB is read. As a result, the detection unit 320 detects the name, type, type, and the like of the variable (or function) Address information and the like can be obtained. The obtained information can be used to convert the source code in the conversion unit 330. [

이와 같은 검출부(320)는 예를 들어, 마이크로소프트사(Microsoft Corporation)의 API인 디버그 인터페이스 액세스 SDK(DIA SDK)를 이용하여 PDB를 판독할 수 있다.The detecting unit 320 may read the PDB using a Debug Interface Access SDK (DIA SDK), which is an API of Microsoft Corporation, for example.

한편 본 발명의 일실시예에 따른 변환부(330)는, 명령을 실행하기 위한 소스코드를 게임 클라이언트에 대해 실행될 수 있는 소스코드로 변환할 수 있으며, 예를 들어, C++ 소스코드를 LUA와 같은 동적 프로그래밍 언어로 변환할 수 있다.Meanwhile, the conversion unit 330 according to an embodiment of the present invention may convert the source code for executing the command into the source code that can be executed for the game client. For example, when the C ++ source code is the same as the LUA It can be converted into a dynamic programming language.

이를 위해 다음의 표2와 같이 LUA의 API를 확장할 수도 있다. 하기에 기재된 것 이외에도 다양하게 확장 가능하다. To do this, we can extend the LUA API as shown in Table 2 below. But can be variously expanded in addition to those described below.

va_to_a 심볼 주소를 실제 메모리 주소로 변환
take_addr 주소값 얻기. & 연산자 구현에 필요
at.member 멤버에 해당하는 객체 리턴
read 메모리 읽기
reg 레지스터 값 읽기
get/set 계산에 필요한 값 불러오기/저장하기
Convert va_to_a symbol address to physical memory address
take_addr Get address value. & Operator required for implementation
Return object corresponding to at.member member
read memory read
read reg register value
Import / save values required for get / set calculation

즉, 소스코드로서 획득된 명령이, 하기의 표3에서의 1행과 같이 C++소스코드인 경우, 변환부(330)는 후술될 실행부(340)에서 실행될 수 있도록 표3에서의 2행에 기재된 바와 같이, 동적 프로그래밍 언어의 하나인 LUA코드로 변환할 수 있다. That is, when the instruction obtained as the source code is the C ++ source code as shown in the line 1 in Table 3 below, the conversion unit 330 converts the instruction to be executed in the execution unit 340, which will be described later, It can be converted to LUA code, which is one of the dynamic programming languages, as described.

TSingleton<CInterfaceMgr>::GetInstance().GetPlayer()->GetCurrentRegion()TSingleton <CInterfaceMgr> :: GetInstance (). GetPlayer () -> GetCurrentRegion () read(((call(va_to_a(18022576),9,take_addr(at(read(call(va_to_a(13261376),9,take_addr(at(read(call(va_to_a(199568),8),'p')))),'p')))))),'i',4) int(call (va_to_a (199568), 8), p))), 9, take_addr (at (read (call (va_to_a (13261376) ), 'p')))))), 'i', 4) int

관련하여 표3의 소스코드 변환은 하기의 표4의 변환과정을 거쳐 변환되었음을 알 수 있다.The source code conversion of Table 3 is transformed through the conversion process shown in Table 4 below.


1

One
TSingleton<CInterfaceMgr>::GetInstance()TSingleton <CInterfaceMgr> :: GetInstance ()
read(((call(va_to_a(199568),8))),'p') CInterfaceMgr&read (((call (va_to_a (199568), 8))), 'p') CInterfaceMgr &
2

2
TSingleton<CInterfaceMgr>::GetInstance().GetPlayer()TSingleton <CInterfaceMgr> :: GetInstance (). GetPlayer ()
(read(((call(va_to_a(13261376),9,take_addr(at(read(call(va_to_a(199568),8),'p')))))),'p')) CCharacter*())))))))) CCharacter * ()))))))))))))))
3

3
TSingleton<CInterfaceMgr>::GetInstance().GetPlayer()
->GetCurrentRegion()
TSingleton <CInterfaceMgr> :: GetInstance (). GetPlayer ()
-> GetCurrentRegion ()
read(((call(va_to_a(18022576),9,take_addr(at(read(call(va_to_a(13261376),9,take_addr(at(read(call(va_to_a(199568),8),'p')))),'p')))))),'i',4) int(call (va_to_a (199568), 8), p))), 9, take_addr (at (read (call (va_to_a (13261376) ), 'p')))))), 'i', 4) int

일 실시예에 따르면 변환부(330)는 C++소스코드를 LUA로 변환할 때, C++소스코드를 LUA소스코드 및 타입에 대응되도록 변환할 수 있다.According to one embodiment, when converting the C ++ source code into the LUA, the conversion unit 330 may convert the C ++ source code to correspond to the LUA source code and type.

따라서 표5의 1행에서 기재된 바와 같이, A타입의 a라는 변수에 관한 소스코드를, 표5의 2행에서 기재된 바와 같이 LUA소스코드 및 타입(C++소스코드에서 사용되던 타입)에 대응되도록 변환할 수 있다. 이때 타입은 검출부(320)에 의해 획득된 타입이 적용될 수 있다.Thus, as described in line 1 of Table 5, the source code for a variable of type A is translated to correspond to the LUA source code and type (the type used in the C ++ source code), as described in line 2 of Table 5 can do. At this time, the type obtained by the detection unit 320 may be applied to the type.

aa at(addr of a), Aat (addr of a), A

또 다른 실시예에 따르면 변환부(330)는 C++소스코드를 LUA로 변환할 때, LUA소스코드 및 타입에 대응되도록 변환하면서, 인자에 관한 정보, 호출 규약(Convention Call)에 관한 정보, 리턴 값의 사이즈에 관한 정보 중 적어도 하나를 변환된 소스코드가 포함하도록 할 수 있다. 상술된 정보 이외의 정보가 변환된 소스코드에 포함되도록, 변환부(330)는 C++소스코드를 LUA로 변환할 수 있다.According to another embodiment, when converting the C ++ source code into the LUA, the conversion unit 330 may convert information corresponding to the LUA source code and type, information about the argument, information on the convention call, So that the converted source code can include at least one of information on the size of the source code. The conversion unit 330 can convert the C ++ source code into LUA so that the information other than the above-described information is included in the converted source code.

예를 들어, 변환부(330)에 의해 변환된 소스코드가 실행될 때 변환된 위치와 실행시키는 위치가 상이하여 함수 인자 등에 관한 정보를 알 수가 없을 수 있다. 즉, 수집서버(20)에서 소스코드를 변환하고, 변환된 소스코드를 게임 클라이언트가 설치된 사용자단말(10)에서 실행하는 경우 사용자단말(10)은 인자 등에 관한 정보를 알 수가 없으므로, 소스코드 변환 시, 변환된 소스코드의 실행을 위해 필요한 정보를 삽입할 수 있다. For example, when the source code converted by the conversion unit 330 is executed, the converted position may be different from the execution position, so that it may not be possible to know the information about the function parameter or the like. That is, when the source server 20 is converted by the collection server 20 and the converted source code is executed in the user terminal 10 installed with the game client, the user terminal 10 can not know the information about the factor etc., , You can insert the necessary information for the execution of the converted source code.

관련하여 표6의 1행에서 기재된 바와 같이, 함수 'F(A,B)'인 C++소스코드를 표6의 2행에서 기재된 바와 같이 LUA소스코드로 변환할 수 있다.The C ++ source code having the function 'F (A, B)' can be converted into the LUA source code as described in the second row of Table 6, as described in the first row of Table 6 in connection with FIG.

이때, 표6의 'FunctionOption'는 [CC, size]로 표현될 수 있으며, CC는 호출 규약(calling convention)이고, size는 리턴값의 길이를 의미한다, 또한, 표6의 'ArgAOption' 및 'ArgBOption'에 대응되는 ArgOption는 [size, reg]로 표현될 수 있으며, size는 인자의 사이즈, reg는 레지스터의 식별정보를 의미할 수 있다.In this case, 'FunctionOption' in Table 6 can be expressed as [CC, size], CC is a calling convention, and size is a length of a return value. In addition, 'ArgAOption' and ' ArgOption corresponding to 'ArgBOption' can be expressed by [size, reg], size is the size of the argument, and reg can be the identification information of the register.

F(A,B)F (A, B) call(
type(F).addr, FunctionOption:int,
code(A), ArgAOption:int,
code(B), ArgBOption:int,
),
type(type(F))
call (
type (F) .addr, FunctionOption: int,
code (A), ArgAOption: int,
code (B), ArgBOption: int,
),
type (type (F))

상술된 바에 따라 동작하기 위해 변환부(330)는 인터페이스부(310)로부터 명령(또는 소스코드)를 전달받을 수 있으며, 검출부(320)로부터 소스코드의 변수 및 함수의 이름, 종류, 타입, 주소 값 등의 정보를 전달 받을 수 있다. 또한, 변환부(330)는, C++소스코드를 파싱할 수 있다. 또한 변환부(330)는 변환코드를 실행부(340)로 전달할 수 있다.In order to operate in accordance with the above description, the converting unit 330 may receive an instruction (or a source code) from the interface unit 310 and may receive from the detecting unit 320 the name, type, Value, and so on. Also, the conversion unit 330 can parse the C ++ source code. The conversion unit 330 may also transmit the conversion code to the execution unit 340.

한편 본 발명의 일실시예에 따른 실행부(340)는 변환된 소스코드인 변환코드를 저장할 수 있다.Meanwhile, the execution unit 340 according to an embodiment of the present invention may store the conversion code, which is the converted source code.

또한 실행부(340)는 게임 클라이언트와 통신하면서 변환코드를 실행하여 데이터를 획득할 수 있다. 이때 실행부(340)는 게임 클라이언트의 런타임에 변환코드가 실행되도록 할 수 있다.In addition, the execution unit 340 can acquire data by executing the conversion code while communicating with the game client. At this time, the execution unit 340 may cause the conversion code to be executed at the runtime of the game client.

또한 실행부(340)는 랜덤하게 또는 주기적으로 변환코드를 실행할 수 있다. The execution unit 340 can also execute the conversion code at random or periodically.

또한 실행부(340)는 임의의 함수를 변환코드로 대체하여 실행하도록 할 수 있다. 이를 위해 실행부(340)는 후킹을 수행할 수 있다. The execution unit 340 may also be configured to execute an arbitrary function by replacing it with a conversion code. For this, the execution unit 340 may perform hooking.

즉, 실행부(340)는 변환코드 또는 변환코드와 관련된 정보를 동적으로 구조체로 생성하고 해당 구조체의 포인터(address of HookInfo)를 스택에 저장하여 전달함으로써 후킹을 수행할 수 있다. 이때, 하기의 표7에서와 같이 어셈블리어를 이용하여 'HookHelper'라는 함수를 호출하도록 할 수 있다. That is, the execution unit 340 can dynamically construct information related to the conversion code or the conversion code, and perform hooking by storing a pointer (address of HookInfo) of the structure in the stack. At this time, the 'HookHelper' function can be called using the assembly language as shown in Table 7 below.

여기서 HookHelper는 변환코드를 실행하기 위한 함수로서 변환코드 진입 시 인자 값 등을 확인하고 필요한 레지스터를 저장하고 시작하도록 하며, 리턴 주소 값(return address)을 설정해두어 함수 종료 시점도 확인할 수 있도록 하는 함수이다. 또한 HookHelper는 상기 포인터를 따라 가서 변환코드를 실행시키고, 수집하고자 하는 데이터를 수집하여 기록할 수 있다.Here, HookHelper is a function to execute the conversion code. It is used to check the argument value when entering the conversion code, store necessary registers and start it, and set the return address (return address) . In addition, HookHelper can go along with the pointer, execute the conversion code, and collect and record data to be collected.

push <address of HookInfo>
jmp <HookHelper>
push <address of HookInfo>
jmp <HookHelper>

상술된 바와 같이, 실행부(340)는 후킹으로 대체할 함수를 동적으로 생성할 수 있다. 이를 통해 후킹하고자 하는 함수가 매번 바뀌는 문제, 또는, 후킹 시 변환코드가 매번 바뀌는 문제를 해결할 수 있다.As described above, the execution unit 340 can dynamically generate the function to be replaced with the hooking. This makes it possible to solve the problem that the function to be hooked changes every time, or the conversion code changes every time when hooking.

이후 실행부(340)는 훅을 제거할 수 있고, 후킹 관련 정보는 훅을 해제한 이후 소정의 시간이 경과되면 삭제할 수 있다. 이를 통해 멀티쓰레드 문제의 발생을 방지할 수 있다.Then, the execution unit 340 can remove the hook, and the hooking related information can be deleted when a predetermined time elapses after releasing the hook. This prevents the occurrence of multi-thread problems.

아울러 실행부(340)는 변환코드를 실행하여 데이터를 획득하고 획득한 데이터를 인터페이스부(310)로 제공할 수 있다. In addition, the execution unit 340 may execute the conversion code to acquire data and provide the acquired data to the interface unit 310.

한편 실행부(340)는 변환코드를 게임서버와 통신하면서 실행할 수 있으며, 게임서버에서 획득가능한 데이터를 획득할 수도 있다.On the other hand, the execution unit 340 may execute the conversion code while communicating with the game server, and may acquire the obtainable data at the game server.

이러한 각 구성요소는 사용자단말(10) 및 수집서버(20) 중 적어도 하나에 구현될 수 있다. 예를 들어, 수집서버(20)에는 인터페이스부(310), 검출부(320) 및 변환부(330)가 구현될 수 있고, 사용자단말(10)에는 실행부(340)가 구현될 수 있다. Each of these components may be implemented in at least one of the user terminal 10 and the collection server 20. [ For example, the interface unit 310, the detection unit 320, and the conversion unit 330 may be implemented in the acquisition server 20, and the execution unit 340 may be implemented in the user terminal 10.

한편 도 4는 일 실시예에 따른 데이터 수집 방법을 설명하기 위한 순서도이다. Meanwhile, FIG. 4 is a flowchart for explaining a data collecting method according to an embodiment.

도 4에 도시된 실시예에 따른 데이터 수집 방법은 도 2 및 도 3에 도시된 데이터 수집 시스템(100)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하에서 생략된 내용이라고 하더라도 도 2 및 도 3에 도시된 데이터 수집 시스템(100)에 관하여 이상에서 기술한 내용은 도 4에 도시된 실시예에 따른 데이터 수집 방법에도 적용될 수 있다.The data collection method according to the embodiment shown in FIG. 4 includes the steps of time series processing in the data collection system 100 shown in FIGS. 2 and 3. Therefore, even if omitted from the following description, the above description regarding the data collection system 100 shown in FIGS. 2 and 3 can be applied to the data collection method according to the embodiment shown in FIG.

수집시스템(100)은 데이터 수집을 위한 소스코드를 획득할 수 있다 (S410). The acquisition system 100 may acquire source code for data acquisition (S410).

그리고 수집시스템(100)은 획득한 소스코드를 또 다른 소스코드로 변환할 수 있다 (S420). 이때 동적 프로그래밍 언어로 변환함으로써 실시간으로 데이터 수집이 가능하게 할 수 있다.Then, the acquisition system 100 may convert the acquired source code into another source code (S420). At this time, conversion into a dynamic programming language makes it possible to collect data in real time.

수집시스템(100)은 클라이언트에 대해 변환된 소스코드를 실행하여 데이터를 획득할 수 있다 (S430). 이때 수집시스템(100)은 후킹을 통해 클라이언트에 변환된 소스코드를 삽입할 수 있다.The acquisition system 100 may execute the converted source code for the client to acquire the data (S430). At this time, the collecting system 100 may insert the converted source code into the client through hooking.

상술된 바와 같이 획득한 데이터를 수집하고 기록함으로써 수집시스템(100)은 유저가 요청한 정보를 제공할 수 있다. By collecting and recording the acquired data as described above, the collection system 100 can provide the information requested by the user.

수집된 데이터를 유저에게 직관적으로 표시되기 위해 수집시스템(100)은 추가적으로 데이터를 렌더링할 수 있다. The collection system 100 may additionally render data to display the collected data intuitively to the user.

즉, 데이터 수집 시스템(100)은 수집된 데이터에 기초한 요청정보를 획득하면 상기 요청정보에 대응되는 인터페이스를 제공하기 위해 수집된 데이터(또는 가공된 데이터)를 렌더링할 수 있다.That is, the data acquisition system 100 may acquire the request information based on the collected data, and render the collected data (or the processed data) to provide the interface corresponding to the request information.

관련하여 도 5 내지 도 13은 일 실시예에 따른 데이터 수집 방법을 설명하기 위한 예시도로서, 특히 도 5 내지 도 12는 본 발명의 일실시예에 따른 데이터 수집 방법에 따라 데이터를 수집하여 제공하는 모습을 사용자단말(10)의 화면을 통해 나타낸 일례를 도시한 것이다. 5 to 13 are views for explaining a data collecting method according to an embodiment of the present invention. Particularly, Figs. 5 to 12 are diagrams for explaining a data collecting method according to an embodiment of the present invention, The user terminal 10 displays a screen of the user terminal 10 on the screen.

도 5는 소정의 맵 상에 위치하는 플레이어의 성별 정보를 확인하고자 하는 유저에게 제공되는 인터페이스이다. 5 is an interface provided to a user who wants to check gender information of a player located on a predetermined map.

즉, 유저가 확인하고자 하는 정보가 맵 상에 위치한 플레이어 성별 분포인 경우, 데이터 수집 시스템(100)은 상기 맵에 관한 이미지(520)를 제공하면서, 게임 플레이어의 성별에 대응되는 표지(남: 세모; 여: 별)가 맵(520) 상에 표시되도록 함으로써 유저가 직관적으로 맵 상의 어떤 성별의 플레이어가 위치하는지 확인할 수 있도록 한다. 또한 데이터 수집 시스템(100)은 필터값을 설정하기 위한 인터페이스(510)도 제공하여 유저가 구체적인 필터값을 입력하여 원하는 값을 확인할 수 있도록 한다. 아울러 데이터 수집 시스템(100)은 필터값을 한눈에 편하게 알아볼 수 있도록 차트 방식을 선택할 수 있는 인터페이스(530)도 제공하며, 표시 기준을 입력할 수 있는 인터페이스(540)도 제공할 수 있다.That is, when the information to be checked by the user is a gender-specific distribution located on the map, the data collection system 100 provides the image 520 of the map and displays a marker corresponding to the gender of the game player ; Star: star) is displayed on the map 520, thereby allowing the user to intuitively check which sex player on the map is positioned. The data collection system 100 also provides an interface 510 for setting a filter value so that a user can input a specific filter value to confirm a desired value. The data collection system 100 also provides an interface 530 for selecting a chart type so that the user can easily recognize the filter value at a glance, and can provide an interface 540 for inputting a display criterion.

또한 유저는 자신이 확인하고자 하는 영역을 선택하여 해당 영역 내에 위치한 플레이어의 상태에 관한 정보를 확인할 수 있다. 즉, 도 6에서 도시된 바와 같이, 맵 상의 영역 중 유저에 의해 일부 영역(610)이 선택될 수 있으며, 선택된 영역(610) 내에 포함되는 플레이어에 관한 정보를 제공할 수 있다. 그에 따라 도 7에서 도시된 바와 같이 총 29명의 플레이어(710)가 선택되었음을 확인할 수 있다.Further, the user can select an area to be confirmed by himself / herself and check the information on the state of the player positioned in the area. That is, as shown in FIG. 6, some of the areas on the map can be selected by the user and information about the players contained in the selected area 610 can be provided. Accordingly, it can be confirmed that a total of 29 players 710 are selected as shown in FIG.

또한 선택된 플레이어들(710)에 대한 레벨(lv)을 확인하고자 하는 입력(720)을 한다면, 데이터 수집 시스템(100)은 플레이어들의 레벨에 관한 정보(730)를 제공할 수 있다. The data collection system 100 may also provide information 730 about the levels of the players if they have an input 720 to check the level lv for the selected players 710.

또한 유저는 맵 내에서의 플레이어들 중에서 성별이 '여성'인 플레이어들의 레벨을 분석하고자 할 수 있으며, 도 8에서 도시된 바와 같이 필터값(810)으로 여성을 입력하고, 표시 기준(820)을 레벨(lv)로 입력하면, 데이터 수집 시스템(100)은 여성 플레이어들의 레벨을 히스토그램(830)으로 표시할 수 있다. The user can also try to analyze the level of the players whose gender is 'female' among the players in the map. The user inputs the female as the filter value 810 and the display standard 820 as shown in FIG. 8 When entered at level (lv), the data collection system 100 may display the level of the female players in the histogram (830).

이와 같이 데이터 수집 시스템(100)은 유저가 직관적으로 이해할 수 있도록 플레이어들의 데이터를 그래프로 도식화하여 제공할 수 있다.In this way, the data collection system 100 can graphically provide data of the players so that the user can intuitively understand the data.

또한 데이터 수집 시스템(100)은 하나 이상의 조건이 설정되었을 때 해당 조건에 따라 데이터를 렌더링하여 제공할 수 있다. The data collection system 100 may render and provide data according to the conditions when one or more conditions are set.

관련하여 유저가 레벨 1000이상인 플레이어를 선택한 이후, 선택된 플레이어 중 성별이 '남성'인 플레이어들의 이벤트 타입을 분석하고자 할 수 있으며, 이에, 레벨 1000이상인 플레이어를 먼저 선택한 이후, 도 9에서 도시된 바와 같이 필터값(910)을 남성으로 입력할 수 있다. 이와 같이 유저가 복수개의 조건을 설정하고, 표시 기준(920)을 이벤트 타입(event_type)으로 입력하면, 데이터 수집 시스템(100)은 레벨 1000이상의 남성 플레이어들의 이벤트 타입을 파이 그래프(930)로 표시할 수 있다.The user can select the player having the level 1000 or more and then analyze the event type of the player whose gender is 'male' among the selected players. Thus, after selecting the player having the level 1000 or higher first, The filter value 910 can be entered as a male. If the user sets a plurality of conditions and inputs the display criterion 920 as an event type (event_type), the data collection system 100 displays the event type of the male players of the level 1000 or more as a pie graph 930 .

한편 유저는 인터페이스에서 제공하고 있지 않은 데이터를 확인하고 싶을 수 있다. 예를 들어, 도 5에서 제공되던 인터페이스는 유저에게 플레이어들의 종족에 관한 정보를 제공하고 있지 못하다.On the other hand, the user may want to check data not provided by the interface. For example, the interface provided in Figure 5 does not provide the user with information about the races of the players.

이를 위해 유저는 자신이 평소 사용하는 프로그래밍 언어로 해당 데이터를 획득하기 위한 소스코드를 입력하면 된다.In order to do this, the user inputs the source code for acquiring the corresponding data in the programming language that he normally uses.

즉, 도 10 및 도 11에서 도시된 바와 같이, 데이터 수집 시스템(100)은 유저가 소스코드를 입력할 수 있는 인터페이스(1010)를 제공할 수 있으며, 이러한 인터페이스(1010)를 통해, 유저는 항목(1110)으로서 종족(race)을 추가할 수 있고 종족 데이터를 획득하기 위한 소스코드(1120)를 입력할 수 있다. 또한 유저가 해당 소스코드(1120)가 적용되도록 인터페이스(1010) 내에 위치한'클라이언트 반영'영역을 활성화시키면, 데이터 수집 시스템(100)은 유저의 소스코드(1120)를 변환하고, 변환코드를 클라이언트에 대해 실행하여 플레이어들의 종족 데이터를 획득할 수 있다. 10 and 11, the data collection system 100 may provide an interface 1010 through which the user may enter the source code, through which the user may select the item (s) A race can be added as the source code 1110 and the source code 1120 for obtaining the race data can be input. In addition, if the user activates the 'Client Reflect' region located within the interface 1010 so that the source code 1120 is applied, the data collection system 100 transforms the user's source code 1120, To obtain the race data of the players.

그 결과 도 12에서 도시된 바와 같이 종족 항목으로서 'race'(1210)가 추가됨을 확인할 수 있으며, 선택된 영역 내에 위치한 총 30명의 플레이어들의 종족을 확인하기 위해 표시 기준(1220)을 종족(race)으로 선택하면 파이 그래프(1230)로서 플레이어들의 종족비율을 확인할 수 있다.As a result, it can be seen that 'race' 1210 is added as a race item as shown in FIG. 12, and the display standard 1220 is used as a race in order to confirm the race of a total of 30 players located in the selected area If selected, the pie graph 1230 can be used to check the race percentage of the players.

상술된 바와 같이 본 발명의 일실시예에 따른 데이터 수집 방법에 따르면, 기존의 데이터 수집 방법에서 소요되는 시간 및 비용을 최소화시킬 수 있다.As described above, according to the data collection method according to an embodiment of the present invention, it is possible to minimize the time and cost in the existing data collection method.

도 13에서 도시된 바와 같이, 본 발명의 일실시예에 따른 데이터 수집 방법에 따르면, 소정의 데이터를 수집해서 분석해야 하는 니즈가 있는 경우 해당 니즈를 파악하고(1310), 유저(작업자)가 필요한 소스코드를 개발(1320)하여 데이터 수집 시스템(100)에 입력하면, 실시간으로 수집된 데이터를 확인하여 분석의 대상으로 활용(1330)할 수 있다. As shown in FIG. 13, according to the data collection method according to an embodiment of the present invention, when there is a need to collect and analyze predetermined data, the needs are identified (1310), and a user When the source code is developed (1320) and input to the data collection system (100), the collected data in real time can be checked and used as an analysis target (1330).

이와 같이 필요한 단계를 최소화하여 데이터 수집을 온디맨드로 가능하게 함으로써, 바로 해결해야 되는 긴급한 문제 발생에 대해 민첩하게 대응할 수 있고, 분석하고자 하는 주제에 관한 현상을 쉽게 확인할 수 있다. By minimizing the necessary steps and enabling data collection on demand, it is possible to respond promptly to the urgent problem that needs to be solved immediately, and to easily identify the phenomenon concerning the topic to be analyzed.

또한, 데이터 수집에 기인한 서비스 장애 발생을 최소화하면서 원하는 데이터를 실시간으로 수집할 수 있어, 플레이어가 게임을 즐기고 있는지, 또는 게임서버(또는 게임 클라이언트)가 안정적으로 동작하고 있는지 등을 원하는 때에 빠르고 안전하게 확인할 수 있다.In addition, it is possible to collect desired data in real time while minimizing the occurrence of a service failure caused by data collection, and it is possible to quickly and safely determine whether the player is enjoying the game or whether the game server (or the game client) Can be confirmed.

또한 실행 중인 게임을 중단시키지 않으면서 데이터를 수집할 수 있어 데이터 수집에 대한 유저의 부담을 최소화시킬 수 있다.In addition, data can be collected without interrupting a running game, thereby minimizing the burden on the user of data collection.

이상의 실시예들에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field programmable gate array) 또는 ASIC 와 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램특허 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.The term &quot; part &quot; used in the above embodiments means a hardware component such as a software or a field programmable gate array (FPGA) or an ASIC, and the 'part' performs certain roles. However, 'part' is not meant to be limited to software or hardware. &Quot; to &quot; may be configured to reside on an addressable storage medium and may be configured to play one or more processors. Thus, by way of example, 'parts' may refer to components such as software components, object-oriented software components, class components and task components, and processes, functions, , Subroutines, segments of program patent code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.

구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로부터 분리될 수 있다.The functions provided within the components and components may be combined with a smaller number of components and components or separated from additional components and components.

뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU 들을 재생시키도록 구현될 수도 있다.In addition, the components and components may be implemented to play back one or more CPUs in a device or a secure multimedia card.

도 4를 통해 설명된 실시예에 따른 데이터 수집 방법은 컴퓨터에 의해 실행 가능한 명령어 및 데이터를 저장하는, 컴퓨터로 판독 가능한 매체의 형태로도 구현될 수 있다. 이때, 명령어 및 데이터는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터로 판독 가능한 매체는 컴퓨터 기록 매체일 수 있는데, 컴퓨터 기록 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 예를 들어, 컴퓨터 기록 매체는 HDD 및 SSD 등과 같은 마그네틱 저장 매체, CD, DVD 및 블루레이 디스크 등과 같은 광학적 기록 매체, 또는 네트워크를 통해 접근 가능한 서버에 포함되는 메모리일 수 있다. The data collection method according to the embodiment described with reference to FIG. 4 may also be embodied in the form of a computer-readable medium for storing instructions and data executable by a computer. At this time, the command and data may be stored in the form of program code, and when executed by the processor, a predetermined program module may be generated to perform a predetermined operation. In addition, the computer-readable medium can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable medium can also be a computer storage medium, which can be volatile and non-volatile, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, Volatile, removable and non-removable media. For example, the computer recording medium may be a magnetic storage medium such as an HDD and an SSD, an optical recording medium such as a CD, a DVD and a Blu-ray Disc, or a memory included in a server accessible via a network.

또한 도 4를 통해 설명된 실시예에 따른 데이터 수집 방법은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(또는 컴퓨터 프로그램 제품)으로 구현될 수도 있다. 컴퓨터 프로그램은 프로세서에 의해 처리되는 프로그래밍 가능한 기계 명령어를 포함하고, 고레벨 프로그래밍 언어(High-level Programming Language), 객체 지향 프로그래밍 언어(Object-oriented Programming Language), 어셈블리 언어 또는 기계 언어 등으로 구현될 수 있다. 또한 컴퓨터 프로그램은 유형의 컴퓨터 판독가능 기록매체(예를 들어, 메모리, 하드디스크, 자기/광학 매체 또는 SSD(Solid-State Drive) 등)에 기록될 수 있다. The data collection method according to the embodiment described with reference to FIG. 4 may also be implemented as a computer program (or a computer program product) including instructions executable by a computer. A computer program includes programmable machine instructions that are processed by a processor and can be implemented in a high-level programming language, an object-oriented programming language, an assembly language, or a machine language . The computer program may also be recorded on a computer readable recording medium of a type (e.g., memory, hard disk, magnetic / optical medium or solid-state drive).

따라서 도 4를 통해 설명된 실시예에 따른 데이터 수집 방법은 상술한 바와 같은 컴퓨터 프로그램이 컴퓨팅 장치에 의해 실행됨으로써 구현될 수 있다. 컴퓨팅 장치는 프로세서와, 메모리와, 저장 장치와, 메모리 및 고속 확장포트에 접속하고 있는 고속 인터페이스와, 저속 버스와 저장 장치에 접속하고 있는 저속 인터페이스 중 적어도 일부를 포함할 수 있다. 이러한 성분들 각각은 다양한 버스를 이용하여 서로 접속되어 있으며, 공통 머더보드에 탑재되거나 다른 적절한 방식으로 장착될 수 있다. Thus, the data collection method according to the embodiment described with reference to FIG. 4 can be implemented by a computer program as described above being executed by the computing device. The computing device may include a processor, a memory, a storage device, a high-speed interface connected to the memory and a high-speed expansion port, and a low-speed interface connected to the low-speed bus and the storage device. Each of these components is connected to each other using a variety of buses and can be mounted on a common motherboard or mounted in any other suitable manner.

여기서 프로세서는 컴퓨팅 장치 내에서 명령어를 처리할 수 있는데, 이런 명령어로는, 예컨대 고속 인터페이스에 접속된 디스플레이처럼 외부 입력, 출력 장치상에 GUI(Graphic User Interface)를 제공하기 위한 그래픽 정보를 표시하기 위해 메모리나 저장 장치에 저장된 명령어를 들 수 있다. 다른 실시예로서, 다수의 프로세서 및(또는) 다수의 버스가 적절히 다수의 메모리 및 메모리 형태와 함께 이용될 수 있다. 또한 프로세서는 독립적인 다수의 아날로그 및(또는) 디지털 프로세서를 포함하는 칩들이 이루는 칩셋으로 구현될 수 있다. Where the processor may process instructions within the computing device, such as to display graphical information to provide a graphical user interface (GUI) on an external input, output device, such as a display connected to a high speed interface And commands stored in memory or storage devices. As another example, multiple processors and / or multiple busses may be used with multiple memory and memory types as appropriate. The processor may also be implemented as a chipset comprised of chips comprising multiple independent analog and / or digital processors.

또한 메모리는 컴퓨팅 장치 내에서 정보를 저장한다. 일례로, 메모리는 휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 다른 예로, 메모리는 비휘발성 메모리 유닛 또는 그들의 집합으로 구성될 수 있다. 또한 메모리는 예컨대, 자기 혹은 광 디스크와 같이 다른 형태의 컴퓨터 판독 가능한 매체일 수도 있다. The memory also stores information within the computing device. In one example, the memory may comprise volatile memory units or a collection thereof. In another example, the memory may be comprised of non-volatile memory units or a collection thereof. The memory may also be another type of computer readable medium such as, for example, a magnetic or optical disk.

그리고 저장장치는 컴퓨팅 장치에게 대용량의 저장공간을 제공할 수 있다. 저장 장치는 컴퓨터 판독 가능한 매체이거나 이런 매체를 포함하는 구성일 수 있으며, 예를 들어 SAN(Storage Area Network) 내의 장치들이나 다른 구성도 포함할 수 있고, 플로피 디스크 장치, 하드 디스크 장치, 광 디스크 장치, 혹은 테이프 장치, 플래시 메모리, 그와 유사한 다른 반도체 메모리 장치 혹은 장치 어레이일 수 있다. And the storage device can provide a large amount of storage space to the computing device. The storage device may be a computer readable medium or a configuration including such a medium and may include, for example, devices in a SAN (Storage Area Network) or other configurations, and may be a floppy disk device, a hard disk device, Or a tape device, flash memory, or other similar semiconductor memory device or device array.

상술된 실시예들은 예시를 위한 것이며, 상술된 실시예들이 속하는 기술분야의 통상의 지식을 가진 자는 상술된 실시예들이 갖는 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 상술된 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be apparent to those skilled in the art that the above-described embodiments are for illustrative purposes only and that those skilled in the art will readily understand that other embodiments can be readily modified without departing from the spirit or essential characteristics of the embodiments described above You will understand. It is therefore to be understood that the above-described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 명세서를 통해 보호 받고자 하는 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태를 포함하는 것으로 해석되어야 한다.It is to be understood that the scope of the present invention is defined by the appended claims rather than the foregoing description and should be construed as including all changes and modifications that come within the meaning and range of equivalency of the claims, .

10: 사용자단말 20: 수집서버
100: 데이터 수집 시스템
310: 인터페이스부 320: 검출부
330: 변환부 340: 실행부
10: user terminal 20: collection server
100: Data acquisition system
310: interface unit 320: detection unit
330: conversion unit 340: execution unit

Claims (14)

게임 클라이언트로부터 데이터를 실시간 수집하기 위한 데이터 수집 시스템으로서,
상기 데이터를 수집하기 위한 제1소스코드를 획득하는 인터페이스부;
상기 제1소스코드를 제2소스코드로 변환하는 변환부; 및
상기 제2소스코드를 상기 게임 클라이언트에 대해 실행하여 데이터를 획득하는 실행부를 포함하는, 데이터 수집 시스템.
A data collection system for collecting data from a game client in real time,
An interface for acquiring a first source code for collecting the data;
A conversion unit for converting the first source code into a second source code; And
And an execution unit for executing the second source code to the game client to acquire data.
제1항에 있어서,
PDB(프로그램 데이터베이스; program database)를 판독하는 검출부를 더 포함하고,
상기 변환부는,
상기 PDB를 판독하여 획득한 정보에 기초하여 상기 제1소스코드를 상기 제2소스코드로 변환하는, 데이터 수집 시스템.
The method according to claim 1,
Further comprising a detecting section for reading a PDB (program database)
Wherein,
And converts the first source code into the second source code based on the information obtained by reading the PDB.
제2항에 있어서,
상기 획득한 정보는 상기 제1소스코드에 기재된 변수의 타입 및 주소값 중 적어도 하나를 포함하는, 데이터 수집 시스템.
3. The method of claim 2,
Wherein the acquired information comprises at least one of a type and an address value of a variable described in the first source code.
제1항에 있어서,
상기 인터페이스부는,
획득한 데이터를 렌더링하여 제공하는, 데이터 수집 시스템.
The method according to claim 1,
The interface unit includes:
A data acquisition system that renders and provides acquired data.
제1항에 있어서,
상기 인터페이스부는,
획득한 데이터에 기초한 요청정보를 획득하면, 상기 요청정보에 대응되는 인터페이스를 제공하기 위해 획득한 데이터를 렌더링하는, 데이터 수집 시스템.
The method according to claim 1,
The interface unit includes:
And acquires the request information based on the acquired data, rendering the acquired data to provide an interface corresponding to the request information.
제1항에 있어서,
상기 인터페이스부는,
상기 게임 클라이언트가 복수개이면 복수개의 게임 클라이언트로부터 획득한 데이터를 함께 렌더링하여 제공하는, 데이터 수집 시스템.
The method according to claim 1,
The interface unit includes:
And rendering and acquiring data acquired from a plurality of game clients if the plurality of game clients are provided.
제1항에 있어서,
상기 실행부는,
상기 게임 클라이언트에 대한 후킹을 수행함으로써 상기 제2소스코드를 실행하는, 데이터 수집 시스템.
The method according to claim 1,
The execution unit may include:
And executes the second source code by performing hooking to the game client.
제1항에 있어서,
상기 실행부는,
상기 제2소스코드에 대응되는 정보를 구조체로 생성하여 상기 구조체의 포인터를 스택에 저장하는, 데이터 수집 시스템
The method according to claim 1,
The execution unit may include:
Generating a structure corresponding to the second source code, and storing a pointer of the structure in a stack;
데이터 수집 시스템이, 게임 클라이언트로부터 실시간으로 데이터를 수집하는 방법으로서,
상기 데이터를 수집하기 위한 제1소스코드를 획득하는 단계;
상기 제1소스코드를 제2소스코드로 변환하는 단계; 및
상기 제2소스코드를 상기 게임 클라이언트에 대해 실행하여 데이터를 획득하는 단계를 포함하는, 데이터 수집 방법.
A method for a data collection system to collect data in real time from a game client,
Obtaining a first source code for collecting the data;
Converting the first source code to a second source code; And
And executing the second source code for the game client to obtain data.
제9항에 있어서,
상기 변환하는 단계는,
PDB(프로그램 데이터베이스; program database)를 판독하여 획득한 정보에 기초하여 상기 제1소스코드를 상기 제2소스코드로 변환하는 단계를 포함하는, 데이터 수집 방법.
10. The method of claim 9,
Wherein the converting comprises:
And reading the PDB (program database) to convert the first source code into the second source code based on the acquired information.
제9항에 있어서,
상기 실행하는 단계는,
상기 게임 클라이언트에 대한 후킹을 수행함으로써 상기 제2소스코드를 실행하는 단계를 포함하는, 데이터 수집 방법.
10. The method of claim 9,
Wherein the performing comprises:
And executing the second source code by performing hooking to the game client.
제9항에 있어서,
상기 데이터를 획득하는 단계는,
상기 제2소스코드에 대응되는 정보를 구조체로 생성하는 단계; 및
상기 구조체의 포인터를 스택에 저장하는 단계를 포함하는, 데이터 수집 방법.
10. The method of claim 9,
The step of acquiring the data comprises:
Generating information corresponding to the second source code as a structure; And
And storing the pointer of the structure in a stack.
제9항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium on which a program for carrying out the method according to claim 9 is recorded. 데이터 수집 시스템에 의해 수행되며, 제9항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.A computer program stored on a medium for performing the method recited in claim 9 performed by a data acquisition system.
KR1020180047144A 2017-04-26 2018-04-24 Method for collecting data and system for performing the same KR20180120099A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170053353 2017-04-26
KR20170053353 2017-04-26

Publications (1)

Publication Number Publication Date
KR20180120099A true KR20180120099A (en) 2018-11-05

Family

ID=64329201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180047144A KR20180120099A (en) 2017-04-26 2018-04-24 Method for collecting data and system for performing the same

Country Status (1)

Country Link
KR (1) KR20180120099A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113730922A (en) * 2021-09-03 2021-12-03 网易(杭州)网络有限公司 Graph rendering method and device, electronic equipment and storage medium
CN113730922B (en) * 2021-09-03 2024-06-04 网易(杭州)网络有限公司 Graphics rendering method, graphics rendering device, electronic equipment and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113730922A (en) * 2021-09-03 2021-12-03 网易(杭州)网络有限公司 Graph rendering method and device, electronic equipment and storage medium
CN113730922B (en) * 2021-09-03 2024-06-04 网易(杭州)网络有限公司 Graphics rendering method, graphics rendering device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
CN109240576B (en) Image processing method and device in game, electronic device and storage medium
JP6888019B2 (en) Memory access command transfer descriptor
US20190050323A1 (en) Determining visual testing coverages
CN108959430B (en) Advertisement promotion data acquisition method, device and equipment
CN102591696A (en) Method and system for extracting behavioral data of mobile phone software
US11175735B2 (en) Choice-based analytics that combine gaze and selection data
US10705858B2 (en) Automatic import of third party analytics
US11201806B2 (en) Automated analysis and recommendations for highly performant single page web applications
US20150006961A1 (en) Capturing trace information using annotated trace output
US9778737B1 (en) Game recommendations based on gesture type
US11762720B2 (en) Information processing apparatus and non-transitory computer-readable storage medium for storing API use history display program
CN110597704B (en) Pressure test method, device, server and medium for application program
US20190004923A1 (en) Non-transitory computer-readable storage medium, display control method, and display control device
CN109032911B (en) Frame rate detection method and device for mobile device and electronic device
US20140123126A1 (en) Automatic topology extraction and plotting with correlation to real time analytic data
JP2016066197A (en) Analysis system and analysis method
JP6505849B2 (en) Generation of element identifier
US20130083194A1 (en) Video monitoring server and method
US11347821B2 (en) Real-time generation of an improved graphical user interface for overlapping electronic content
CN109408323B (en) Server lua performance hot spot analysis method
CN116156266A (en) Multi-channel video data storage method, system, electronic equipment and storage medium
KR20180120099A (en) Method for collecting data and system for performing the same
CN106528411A (en) Method and device for coverage rate detection and equipment
KR101735652B1 (en) Terminal apparatus and method for detecting cyber attack application thereby
CN114416256A (en) Information processing method, information processing device, electronic equipment and storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal