KR20180120099A - Method for collecting data and system for performing the same - Google Patents
Method for collecting data and system for performing the same Download PDFInfo
- 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
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling 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
Description
본 명세서에서 개시되는 실시예들은 데이터 수집 방법 및 이를 수행하기 위한 시스템에 관한 것으로, 보다 상세하게는 온디맨드(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
사용자단말(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
이러한 사용자단말(10)에는 게임서버(미도시)와 통신하기 위한 게임 클라이언트가 설치될 수 있다. 게임 클라이언트는 게임서버(미도시)에 대해 클라이언트로 동작할 수 있으며 플레이어에게 게임(또는 퀘스트)을 제공할 수 있다.The
본 발명의 일 실시예에 따른 사용자단말(10)은 제1입출력부(미도시), 제1제어부(미도시), 제1통신부(미도시) 및 제1메모리(미도시)를 포함할 수 있다. The
사용자단말(10)의 제1입출력부는 게임 클라이언트의 실행에 따른 플레이어의 입력을 수신하기 위한 제1입력부와, 게임 클라이언트의 실행에 따른 결과 또는 사용자단말(10)의 상태 등의 정보를 표시하기 위한 제1출력부를 포함할 수 있다. 예를 들어, 제1입출력부는 플레이어 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다. 다만, 이에 한정되지 않고 제1입출력부는 다양한 입출력을 지원하는 구성을 포함할 수 있다.The first input / output unit of the
사용자단말(10)의 제1제어부는 사용자단말(10)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 제1제어부는 후술될 제1통신부를 통해 수신한 소스코드를 실행시켜 게임 클라이언트로부터 데이터를 수집하기 위한 동작을 수행하도록 사용자단말(10)에 포함된 다른 구성들을 제어할 수 있다.The first controller of the
사용자단말(10)의 제1통신부는 수집서버(20)와의 유무선 통신을 수행할 수 있다. 이를 위해, 제1통신부는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.The first communication unit of the
사용자단말(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
한편 수집서버(20)는, 획득한 명령에 기초하여 실행 중인 게임을 중단시키지 않고도 원하는 데이터를 실시간으로 추출할 수 있다.On the other hand, the
본 발명의 일 실시예에 따른 수집서버(20)은 제2입출력부, 제2제어부, 제2통신부 및 제2메모리를 포함할 수 있다The
수집서버(20)의 제2입출력부는 유저로부터 데이터 수집을 위한 입력을 수신하는 제2입력부와, 데이터 수집의 결과(또는 수집된 데이터를 가공 또는 렌더링한 결과) 또는 수집서버(20)의 상태 등의 정보를 표시하기 위한 제2출력부를 포함할 수 있다. 예를 들어, 제2입출력부는 유저 입력을 수신하는 조작 패널(operation panel) 및 화면을 표시하는 디스플레이 패널(display panel) 등을 포함할 수 있다. 다만, 이에 한정되지 않고 제2입출력부는 다양한 입출력을 지원하는 구성을 포함할 수 있다.The second input / output unit of the
수집서버(20)의 제2제어부는 수집서버(20)의 전체적인 동작을 제어하며, CPU 등과 같은 프로세서를 포함할 수 있다. 수집서버(20)의 제2제어부는 제2입출력부를 통해 수신한 유저 입력에 대응되는 동작을 수행하도록 수집서버(20)에 포함된 다른 구성들을 제어할 수 있다.The second controller of the
수집서버(20)의 제2통신부는 사용자단말(10)과의 유무선 통신을 수행할 수 있다. 이를 위해, 제2통신부는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다. 예를 들어, 통신 모듈은 칩셋(chipset)의 형태로 구현될 수 있다.The second communication unit of the
수집서버(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
일 실시예에 따르면, 수집서버(20)에서, 제2입출력부를 통해 유저로부터 소정의 데이터를 요청하는 입력을 수신하면, 제2제어부는 제2메모리에 저장된 프로그램을 실행시켜 데이터 수집을 수행한다. According to one embodiment, when the
이러한 수집서버(20)는 게임서버(미도시)를 포함할 수 있고 게임서버(미도시)에 포함될 수 있으며, 게임서버(미도시)와 독립된 구성요소로서 게임서버(미도시)와 통신할 수도 있다.The
한편 도 3은 일 실시예에 따른 데이터 수집 시스템의 구성을 도시한 도면이다. 3 is a diagram illustrating a configuration of a data collection system according to an embodiment.
데이터 수집 시스템(100)은 데이터를 수집하며, 수집되는 데이터는, 예를 들어, 현재 위치, 캐릭터의 레벨, 캐릭터의 직업 등과 같이 주기적으로 수집하는 것이 적절한 데이터일 수 있으며, 사망, 사용한 스킬, 이동한 맵, 퀘스트 완료 등과 같이 특정 함수가 호출되는 시점에 인자값 또는 멤버변수 등을 통해 수집될 수 있는 데이터일 수 있다. 또한, 수집되는 데이터는 가공데이터를 생성하기 위한 데이터일 수 있으며, 예를 들어, 시간 당 데미지와 같이 소정의 기간 동안 누적된 데미지 데이터일 수 있다.The
도 3을 참조하면, 일 실시예에 따른 데이터 수집 시스템(100)은, 인터페이스부(310), 검출부(320), 변환부(330) 및 실행부(340)를 포함할 수 있다.3, the
본 발명의 일실시예에 따른 인터페이스부(310)는 데이터 수집을 위한 명령을 획득할 수 있다. The
유저는 어떠한 데이터를 수집할 것인지에 관한 명령을 입력하고자 할 수 있으며, 이를 위해 인터페이스부(310)는 유저가 명령을 입력할 수 있는 인터페이스를 제공할 수 있고 상기 인터페이스를 통해 입력된 명령을 획득할 수 있다. The user may input a command regarding to which data to be collected. To this end, the
이때 명령을 입력하는 유저는 자신에게 익숙한 프로그래밍 언어로 명령을 입력할 수 있다. 예를 들어 게임을 제작하는데 이용되었던 프로그래밍 언어로 작성된 소스코드를 입력할 수 있고, 인터페이스부(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
또한 유저는 명령을 나타내는 문자열 또는 이미지 등의 정보를 입력할 수 있고, 인터페이스부(310)는 유저의 입력정보로부터 명령을 추출할 수 있다. 예를 들어, 유저는 프로그래밍 문법에 따른 언어로 명령을 입력하는 대신 이미지로 입력할 수 있고, 이러한 입력정보를 획득한 인터페이스부(310)는 입력정보로부터 명령을 추출하거나, 명령을 획득하기 위해 입력정보를 시스템(100)이 이해할 수 있는 언어로 변환할 수 있다. Further, the user can input information such as a character string or image representing the command, and the
상술된 바와 같이 인터페이스부(310)가 명령을 획득함으로써 유저는 다른 추가적인 프로그래밍 언어를 학습하지 않아도 되어, 추가적인 개발비용이 들지 않는다는 장점이 있다. 이는 유저의 작업을 간소화시키면서 빠른 시간 내에 데이터를 수집하도록 하며, 어떠한 개발 플랫폼이더라도 데이터 수집이 가능하도록 한다.As described above, the
또한, 인터페이스부(310)는 후술될 변환코드를 유저에게 제공해주어 유저로 하여금 자신이 요청한 명령에 대응되는 변환코드가 맞게 생성되었는지를 확인할 수 있게 할 수 있다.In addition, the
또한, 인터페이스부(310)는 수집된 데이터에 기초하여 가공데이터를 생성할 수 있다. 즉, 인터페이스부(310)는 플레어어의 복수 데이터를 복합적으로 고려하여 결과물을 생성할 수 있다.In addition, the
이를 위해 인터페이스부(310)는 요청정보를 확인하고, 수집된 데이터 중 요청정보와 관련된 데이터를 추출하여 가공할 수 있다. For this, the
예를 들어, 플레이어의 시간당 돈 획득량에 관한 정보를 확인하고자 한다면, 인터페이스부(310)는 수집된 데이터 중에서, 소정의 시간 동안의 플레이어 돈 획득량 데이터를 추출하여 시간당 돈 획득량을 계산할 수 있다.For example, if it is desired to check the information on the money acquisition amount per hour of the player, the
아울러, 인터페이스부(310)는 수집된 데이터(또는 가공데이터)를 렌더링하여 제공할 수 있다. In addition, the
즉, 인터페이스부(310)는 수집된 데이터(또는 가공데이터)에 기초한 요청정보를 획득하면 상기 요청정보에 대응되는 인터페이스를 제공하기 위해 수집된 데이터(또는 가공데이터)를 렌더링할 수 있다.That is, when the
또한 인터페이스부(310)는 복수의 플레이어들(또는 복수의 게임 클라이언트들)에 대한 데이터가 수집되면, 복수의 플레이어들(또는 복수의 게임 클라이언트들)의 데이터를 함께 렌더링할 수 있다.The
예를 들어 유저가 확인하고자 하는 데이터가 소정의 맵 상에 위치한 플레이어 성별 분포인 경우, 인터페이스부(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
한편 인터페이스부(310)는 데이터의 수집량을 조절하기 위해 수집속도를 조절할 수도 있다. 또한 인터페이스부(310)는 데이터 수집 대상이 되는 클라이언트를 선정할 수 있으며, 예를 들어 클라이언트마다 달리 할당된 키(예: 클라이언트 접속 시 클라이언트에 할당된 랜덤키) 등을 이용하여 선정할 수 있다.Meanwhile, the
한편 본 발명의 일실시예에 따른 검출부(320)는 디버깅 정보가 포함된 데이터베이스인 PDB(프로그램 데이터베이스; program database)를 획득할 수 있다.Meanwhile, the
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.
virtualAddress 149584
type
baseType
btInt
length
4g_status
virtualAddress 149584
type
baseType btInt
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
이와 같은 검출부(320)는 예를 들어, 마이크로소프트사(Microsoft Corporation)의 API인 디버그 인터페이스 액세스 SDK(DIA SDK)를 이용하여 PDB를 판독할 수 있다.The detecting
한편 본 발명의 일실시예에 따른 변환부(330)는, 명령을 실행하기 위한 소스코드를 게임 클라이언트에 대해 실행될 수 있는 소스코드로 변환할 수 있으며, 예를 들어, C++ 소스코드를 LUA와 같은 동적 프로그래밍 언어로 변환할 수 있다.Meanwhile, the
이를 위해 다음의 표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.
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
관련하여 표3의 소스코드 변환은 하기의 표4의 변환과정을 거쳐 변환되었음을 알 수 있다.The source code conversion of Table 3 is transformed through the conversion process shown in Table 4 below.
1
One
2
2
3
3
->GetCurrentRegion()TSingleton <CInterfaceMgr> :: GetInstance (). GetPlayer ()
-> GetCurrentRegion ()
일 실시예에 따르면 변환부(330)는 C++소스코드를 LUA로 변환할 때, C++소스코드를 LUA소스코드 및 타입에 대응되도록 변환할 수 있다.According to one embodiment, when converting the C ++ source code into the LUA, the
따라서 표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
또 다른 실시예에 따르면 변환부(330)는 C++소스코드를 LUA로 변환할 때, LUA소스코드 및 타입에 대응되도록 변환하면서, 인자에 관한 정보, 호출 규약(Convention Call)에 관한 정보, 리턴 값의 사이즈에 관한 정보 중 적어도 하나를 변환된 소스코드가 포함하도록 할 수 있다. 상술된 정보 이외의 정보가 변환된 소스코드에 포함되도록, 변환부(330)는 C++소스코드를 LUA로 변환할 수 있다.According to another embodiment, when converting the C ++ source code into the LUA, the
예를 들어, 변환부(330)에 의해 변환된 소스코드가 실행될 때 변환된 위치와 실행시키는 위치가 상이하여 함수 인자 등에 관한 정보를 알 수가 없을 수 있다. 즉, 수집서버(20)에서 소스코드를 변환하고, 변환된 소스코드를 게임 클라이언트가 설치된 사용자단말(10)에서 실행하는 경우 사용자단말(10)은 인자 등에 관한 정보를 알 수가 없으므로, 소스코드 변환 시, 변환된 소스코드의 실행을 위해 필요한 정보를 삽입할 수 있다.
For example, when the source code converted by the
관련하여 표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.
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
한편 본 발명의 일실시예에 따른 실행부(340)는 변환된 소스코드인 변환코드를 저장할 수 있다.Meanwhile, the
또한 실행부(340)는 게임 클라이언트와 통신하면서 변환코드를 실행하여 데이터를 획득할 수 있다. 이때 실행부(340)는 게임 클라이언트의 런타임에 변환코드가 실행되도록 할 수 있다.In addition, the
또한 실행부(340)는 랜덤하게 또는 주기적으로 변환코드를 실행할 수 있다. The
또한 실행부(340)는 임의의 함수를 변환코드로 대체하여 실행하도록 할 수 있다. 이를 위해 실행부(340)는 후킹을 수행할 수 있다. The
즉, 실행부(340)는 변환코드 또는 변환코드와 관련된 정보를 동적으로 구조체로 생성하고 해당 구조체의 포인터(address of HookInfo)를 스택에 저장하여 전달함으로써 후킹을 수행할 수 있다. 이때, 하기의 표7에서와 같이 어셈블리어를 이용하여 'HookHelper'라는 함수를 호출하도록 할 수 있다. That is, the
여기서 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.
jmp <HookHelper>push <address of HookInfo>
jmp <HookHelper>
상술된 바와 같이, 실행부(340)는 후킹으로 대체할 함수를 동적으로 생성할 수 있다. 이를 통해 후킹하고자 하는 함수가 매번 바뀌는 문제, 또는, 후킹 시 변환코드가 매번 바뀌는 문제를 해결할 수 있다.As described above, the
이후 실행부(340)는 훅을 제거할 수 있고, 후킹 관련 정보는 훅을 해제한 이후 소정의 시간이 경과되면 삭제할 수 있다. 이를 통해 멀티쓰레드 문제의 발생을 방지할 수 있다.Then, the
아울러 실행부(340)는 변환코드를 실행하여 데이터를 획득하고 획득한 데이터를 인터페이스부(310)로 제공할 수 있다. In addition, the
한편 실행부(340)는 변환코드를 게임서버와 통신하면서 실행할 수 있으며, 게임서버에서 획득가능한 데이터를 획득할 수도 있다.On the other hand, the
이러한 각 구성요소는 사용자단말(10) 및 수집서버(20) 중 적어도 하나에 구현될 수 있다. 예를 들어, 수집서버(20)에는 인터페이스부(310), 검출부(320) 및 변환부(330)가 구현될 수 있고, 사용자단말(10)에는 실행부(340)가 구현될 수 있다. Each of these components may be implemented in at least one of the
한편 도 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
수집시스템(100)은 데이터 수집을 위한 소스코드를 획득할 수 있다 (S410). The
그리고 수집시스템(100)은 획득한 소스코드를 또 다른 소스코드로 변환할 수 있다 (S420). 이때 동적 프로그래밍 언어로 변환함으로써 실시간으로 데이터 수집이 가능하게 할 수 있다.Then, the
수집시스템(100)은 클라이언트에 대해 변환된 소스코드를 실행하여 데이터를 획득할 수 있다 (S430). 이때 수집시스템(100)은 후킹을 통해 클라이언트에 변환된 소스코드를 삽입할 수 있다.The
상술된 바와 같이 획득한 데이터를 수집하고 기록함으로써 수집시스템(100)은 유저가 요청한 정보를 제공할 수 있다. By collecting and recording the acquired data as described above, the
수집된 데이터를 유저에게 직관적으로 표시되기 위해 수집시스템(100)은 추가적으로 데이터를 렌더링할 수 있다. The
즉, 데이터 수집 시스템(100)은 수집된 데이터에 기초한 요청정보를 획득하면 상기 요청정보에 대응되는 인터페이스를 제공하기 위해 수집된 데이터(또는 가공된 데이터)를 렌더링할 수 있다.That is, the
관련하여 도 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
도 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
또한 유저는 자신이 확인하고자 하는 영역을 선택하여 해당 영역 내에 위치한 플레이어의 상태에 관한 정보를 확인할 수 있다. 즉, 도 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
또한 선택된 플레이어들(710)에 대한 레벨(lv)을 확인하고자 하는 입력(720)을 한다면, 데이터 수집 시스템(100)은 플레이어들의 레벨에 관한 정보(730)를 제공할 수 있다. The
또한 유저는 맵 내에서의 플레이어들 중에서 성별이 '여성'인 플레이어들의 레벨을 분석하고자 할 수 있으며, 도 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
이와 같이 데이터 수집 시스템(100)은 유저가 직관적으로 이해할 수 있도록 플레이어들의 데이터를 그래프로 도식화하여 제공할 수 있다.In this way, the
또한 데이터 수집 시스템(100)은 하나 이상의 조건이 설정되었을 때 해당 조건에 따라 데이터를 렌더링하여 제공할 수 있다. The
관련하여 유저가 레벨 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
한편 유저는 인터페이스에서 제공하고 있지 않은 데이터를 확인하고 싶을 수 있다. 예를 들어, 도 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
그 결과 도 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
상술된 바와 같이 본 발명의 일실시예에 따른 데이터 수집 방법에 따르면, 기존의 데이터 수집 방법에서 소요되는 시간 및 비용을 최소화시킬 수 있다.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 " part " 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 " 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.
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.
상기 획득한 정보는 상기 제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.
상기 인터페이스부는,
획득한 데이터를 렌더링하여 제공하는, 데이터 수집 시스템.The method according to claim 1,
The interface unit includes:
A data acquisition system that renders and provides acquired data.
상기 인터페이스부는,
획득한 데이터에 기초한 요청정보를 획득하면, 상기 요청정보에 대응되는 인터페이스를 제공하기 위해 획득한 데이터를 렌더링하는, 데이터 수집 시스템.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.
상기 인터페이스부는,
상기 게임 클라이언트가 복수개이면 복수개의 게임 클라이언트로부터 획득한 데이터를 함께 렌더링하여 제공하는, 데이터 수집 시스템.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.
상기 실행부는,
상기 게임 클라이언트에 대한 후킹을 수행함으로써 상기 제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.
상기 실행부는,
상기 제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.
상기 변환하는 단계는,
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.
상기 실행하는 단계는,
상기 게임 클라이언트에 대한 후킹을 수행함으로써 상기 제2소스코드를 실행하는 단계를 포함하는, 데이터 수집 방법.10. The method of claim 9,
Wherein the performing comprises:
And executing the second source code by performing hooking to the game client.
상기 데이터를 획득하는 단계는,
상기 제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.
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)
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 |
-
2018
- 2018-04-24 KR KR1020180047144A patent/KR20180120099A/en not_active Application Discontinuation
Cited By (2)
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 |