KR102208314B1 - 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법 - Google Patents

네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법 Download PDF

Info

Publication number
KR102208314B1
KR102208314B1 KR1020190102038A KR20190102038A KR102208314B1 KR 102208314 B1 KR102208314 B1 KR 102208314B1 KR 1020190102038 A KR1020190102038 A KR 1020190102038A KR 20190102038 A KR20190102038 A KR 20190102038A KR 102208314 B1 KR102208314 B1 KR 102208314B1
Authority
KR
South Korea
Prior art keywords
macro
user
user terminals
scores
reference value
Prior art date
Application number
KR1020190102038A
Other languages
English (en)
Inventor
장철원
정한솔
김성준
Original Assignee
엔에이치엔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔에이치엔 주식회사 filed Critical 엔에이치엔 주식회사
Priority to KR1020190102038A priority Critical patent/KR102208314B1/ko
Priority to JP2020139575A priority patent/JP7451349B2/ja
Priority to US16/999,066 priority patent/US11483392B2/en
Application granted granted Critical
Publication of KR102208314B1 publication Critical patent/KR102208314B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • H04L67/22
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
    • 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/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/142Network analysis or design using statistical or mathematical methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/535Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for monitoring, e.g. of user parameters, terminal parameters, application parameters, network parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Computation (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 실시 예에 따른 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버는, 통신기 및 통신기를 통해 복수의 사용자 단말기들과 통신하는 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는, 통신기를 통해 복수의 사용자 단말기들과 통신하여 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하고, 복수의 사용자 단말기들의 이벤트 이력들에 따라 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하고, 매크로 스코어들을 이용한 연산을 수행함으로써 매크로 사용 여부를 감지하기 위한 기준값을 조절하고, 매크로 스코어들 각각을 기준값과 비교하여 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지한다.

Description

네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법{NETWORK SERVER TO COMMUNICATE WITH PLURALITY OF USER TERMINALS THROUGH NETWORK AND METHOD OF OPERATING THEREOF}
본 발명은 네트워크 시스템에 관한 것으로, 좀 더 구체적으로는 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법에 관한 것이다.
최근 데이터 통신망의 발달로 인하여 많은 사람들이 인터넷을 이용하며, 인터넷 이용의 증가와 함께 인터넷을 이용한 다양한 종류들의 서비스들, 예를 들면 메신저, 쇼핑몰, 게임 등의 서비스들이 제공되고 있다. 다양한 서비스들 중에서도 특히 게임 서비스 분야에서 그 개발 속도 및 보급 속도가 급격히 증가하고 있어, 많은 인터넷 사용자들이 인터넷을 이용해 다양한 방식들의 온라인 게임 서비스를 이용하고 있다. 게임은 퍼스널 컴퓨터에서 오프라인으로 실행되는 방식에서 벗어나, 이동통신망을 포함한 인터넷을 통해 게임 서버에 접속하여 즐길 수 있도록 해주는 온라인 게임의 형태로 발전하고 있다.
이와 같이 게임 서비스들이 널리 이용됨에 따라, 보안 문제가 주요 이슈가 되고 있다. 이러한 보안 문제는 다양한 부정 행위들 및 해킹으로부터 사용자의 개인 정보 및 사이버 자산을 보호하는 것을 포함한다. 게임 서비스에서의 매크로는 정해놓은 커맨드들에 의해 사용자 입력 이벤트들을 제공하는 프로그램을 포함할 수 있으며, 응용 애플리케이션 등 다향한 형태들로 보급될 수 있다. 매크로를 사용하는 사용자는 시간의 제약없이 플레이가 가능하기 때문에 게임 아이템 및 게임 머니 등과 같은 사이버 자산, 임무의 완수 혹은 성공에 대한 보상으로 주어지는 경험치 등의 다양한 객체들을 정상 사용자보다 빠르게 얻을 수 있다. 이 밖에 매크로를 사용하는 사용자와 정상 사용자 간 다양한 불균형들로 인해, 일반 사용자들로 하여금 상대적 박탈감을 느끼게 하여 게임 이탈을 초래할 뿐만 아니라, 게임 내 사용자들 간 밸런스를 붕괴시키는 원인이 될 수 있다.
위 기재된 내용은 오직 본 발명의 기술적 사상들에 대한 배경 기술의 이해를 돕기 위한 것이며, 따라서 그것은 본 발명의 기술 분야의 당업자에게 알려진 선행 기술에 해당하는 내용으로 이해될 수 없다.
본 발명의 실시 예들은 게임 서비스를 이용하는 사용자 단말기들 중 매크로 사용자들을 결정하는 데에 있어 향상된 신뢰성을 가지는 네트워크 서버 및 그것의 동작 방법을 제공하기 위한 것이다. 예를 들면, 네트워크 서버 및 그것의 동작 방법은 사용자들에 따라 다양하게 변할 수 있는 매크로 스코어들에 적응적인 기준값을 결정하고, 결정된 기준값을 이용하여 매크로 사용자를 결정한다.
본 발명의 실시 예에 따른 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버는, 통신기; 및 상기 통신기를 통해 상기 복수의 사용자 단말기들과 통신하는 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는, 상기 통신기를 통해 상기 복수의 사용자 단말기들과 통신하여 상기 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하고; 상기 복수의 사용자 단말기들의 상기 이벤트 이력들에 따라 상기 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하고; 상기 매크로 스코어들을 이용한 연산을 수행함으로써 매크로 사용 여부를 감지하기 위한 기준값을 조절하고; 상기 매크로 스코어들 각각을 상기 기준값과 비교하여 상기 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지한다.
상기 적어도 하나의 프로세서는 상기 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 상기 기준값으로 결정할 수 있다.
상기 매크로 스코어들은 제 1 내지 제 n 매크로 스코어들을 포함하되, 상기 적어도 하나의 프로세서는 수학식
Figure 112019085636451-pat00001
을 연산하여 상기 기준값을 결정하고, 상기 MD는 매크로 거리를 나타내고, 상기 xi는 제 i 매크로 스코어를 나타내고, 상기 v는 변수를 나타내고, 상기 n은 1보다 크거나 같은 정수이고, 상기 i는 1보다 크거나 같고 상기 n보다 작거나 같은 정수이고, 상기 매크로 거리를 최소로 하는 상기 변수가 상기 기준값으로 결정될 수 있다.
상기 적어도 하나의 프로세서는 상기 매크로 스코어들 중 상기 기준값보다 큰 매크로 스코어에 대응하는 사용자 단말기에서 상기 매크로가 사용되었음을 감지할 수 있다.
상기 사용자 입력 이벤트들에 대한 상기 정보는 상기 사용자 입력 이벤트들의 터치 좌표들 및 터치 시간들을 포함할 수 있다.
상기 적어도 하나의 프로세서는, 각 이벤트 이력으로부터 획득되는 해당 사용자 단말기의 상기 사용자 입력 이벤트들에 대한 상기 정보의 중복률에 따라, 상기 해당 사용자 단말기에 대응하는 매크로 스코어를 결정할 수 있다.
상기 적어도 하나의 프로세서는, 각 이벤트 이력으로부터 해당 사용자 단말기의 상기 사용자 입력 이벤트들의 좌표들을 획득하고; 상기 획득된 좌표들 중 중복된 좌표들에 따라 상기 해당 사용자 단말기에 대응하는 매크로 스코어를 결정할 수 있다.
상기 복수의 사용자 단말기들은 제 1 내지 제 n 사용자 단말기들을 포함하고, 상기 매크로 스코어들은 제 1 내지 제 n 매크로 스코어들을 포함하고, 상기 적어도 하나의 프로세서는 수학식
Figure 112019085636451-pat00002
을 연산함으로써 제 j 사용자 단말기의 제 j 매크로 스코어를 결정하되, 상기 n은 1보다 크거나 같은 정수이고, 상기 j는 1보다 크거나 같고 상기 n보다 작거나 같은 정수이고, 상기 MSj는 상기 제 j 매크로 스코어를 나타내고, 상기 DPj는 상기 제 j 사용자 단말기의 상기 사용자 입력 이벤트들의 좌표들 중 가장 많이 중복된 좌표들의 수를 나타내고, 상기 DFj는 상기 제 j 사용자 단말기의 상기 사용자 입력 이벤트들의 상기 좌표들 중 서로 상이한 좌표들의 수를 나타내고, NUIj는 상기 제 j 사용자 단말기의 상기 사용자 입력 이벤트들의 수를 나타낼 수 있다.
본 발명의 다른 실시 예에 따른 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버에 있어서: 통신기; 및 상기 통신기를 통해 상기 복수의 사용자 단말기들과 통신하는 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는, 상기 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하고; 상기 복수의 사용자 단말기들의 상기 이벤트 이력들에 따라 상기 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하고; 상기 매크로 스코어들의 분포를 참조하여 매크로 사용 여부를 감지하기 위한 기준값을 조절하고; 상기 매크로 스코어들 각각을 상기 기준값과 비교하여 상기 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지한다.
상기 적어도 하나의 프로세서는 상기 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 상기 기준값으로 결정할 수 있다.
본 발명의 다른 일면은 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버의 동작 방법에 관한 것이다. 상기 동작 방법은, 상기 네트워크를 통해 상기 복수의 사용자 단말기들과 통신하여 상기 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하는 단계; 상기 복수의 사용자 단말기들의 상기 이벤트 이력들에 따라 상기 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하는 단계; 상기 매크로 스코어들을 이용한 연산을 수행함으로써 매크로 사용 여부를 감지하기 위한 기준값을 조절하는 단계; 및 상기 매크로 스코어들 각각을 상기 기준값과 비교하여 상기 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지하는 단계를 포함한다.
상기 기준값을 조절하는 단계는 상기 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 상기 기준값으로 결정하는 단계를 포함할 수 있다.
상기 매크로 스코어들은 제 1 내지 제 n 매크로 스코어들을 포함하되, 상기 기준값을 조절하는 단계는 수학식
Figure 112019085636451-pat00003
을 연산하는 단계를 포함하고, 상기 MD는 매크로 거리를 나타내고, 상기 xi는 제 i 매크로 스코어를 나타내고, 상기 v는 변수를 나타내고, 상기 n은 1보다 크거나 같은 정수이고, 상기 i는 1보다 크거나 같고 상기 n보다 작거나 같은 정수이고, 상기 매크로 거리를 최소로 하는 상기 변수가 상기 기준값으로 결정될 수 있다.
상기 매크로 사용 여부를 감지하는 단계는 상기 매크로 스코어들 중 상기 기준값보다 큰 매크로 스코어에 대응하는 사용자 단말기에서 상기 매크로가 사용되었음을 감지하는 단계를 포함할 수 있다.
상기 사용자 입력 이벤트들에 대한 상기 정보는 상기 사용자 입력 이벤트들의 터치 좌표들 및 터치 시간들을 포함할 수 있다.
상기 매크로 스코어들을 결정하는 단계는, 각 이벤트 이력으로부터 획득되는 해당 사용자 단말기의 상기 사용자 입력 이벤트들에 대한 상기 정보의 중복률에 따라, 상기 해당 사용자 단말기에 대응하는 매크로 스코어를 결정하는 단계를 포함할 수 있다.
본 발명의 실시 예들에 따르면, 게임 서비스를 이용하는 사용자 단말기들 중 매크로 사용자들을 결정하는 데에 있어 향상된 신뢰성을 가지는 네트워크 서버 및 그것의 동작 방법이 제공될 수 있다.
도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다.
도 2는 도 1의 사용자 로그 데이터를 개념적으로 보여주는 도면이다.
도 3은 도 1의 각 사용자 단말기에서 이벤트 이력을 생성 및 제공하는 방법의 실시 예를 보여주는 도면이다.
도 4는 이벤트 이력을 제공할 수 있는 사용자 단말기의 실시 예를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 매크로를 사용하는 사용자 단말기를 감지하는 방법을 보여주는 순서도이다.
도 6은 각 사용자 단말기에 대응하는 매크로 스코어를 결정하는 방법의 실시 예를 보여주는 순서도이다.
도 7은 사용자 단말기들 중 하나의 사용자 입력 이벤트 유닛들의 좌표들 및 홀드 시간들을 보여주는 다이어그램이다.
도 8은 사용자 단말기들 중 다른 하나의 사용자 입력 이벤트 유닛들의 좌표들 및 홀드 시간들을 보여주는 다이어그램이다.
도 9는 사용자 단말기들에 대응하는 매크로 스코어들의 분포를 예시적으로 보여주는 다이어그램이다.
도 10은 매크로 사용 여부를 감지하기 위한 기준값을 조절하는 방법의 실시 예를 보여주는 순서도이다.
도 11은 변수 및 매크로 거리 사이의 관계를 보여주는 그래프이다.
도 12는 도 5의 S240단계의 실시 예를 보여주는 순서도이다.
도 13은 도 1의 네트워크 서버를 구현하는 데에 적합한 컴퓨터 장치의 실시 예를 보여주는 블록도이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 여기에서 사용된 용어는 특정한 실시예들을 설명하기 위한 것이며 본 발명을 한정하기 위한 것이 아니다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. "X, Y, 및 Z 중 적어도 어느 하나", 그리고 "X, Y, 및 Z로 구성된 그룹으로부터 선택된 적어도 어느 하나"는 X 하나, Y 하나, Z 하나, 또는 X, Y, 및 Z 중 둘 또는 그 이상의 어떤 조합 (예를 들면, XYZ, XYY, YZ, ZZ) 으로 해석될 수 있다. 여기에서, "및/또는"은 해당 구성들 중 하나 또는 그 이상의 모든 조합을 포함한다.
도 1은 본 발명의 실시 예에 따른 네트워크 시스템을 보여주는 블록도이다. 도 2는 도 1의 사용자 로그 데이터를 개념적으로 보여주는 도면이다.
도 1을 참조하면, 네트워크 시스템(100)은 네트워크(105), 제 1 내지 제 n 사용자 단말기들(111~11n), 및 게임 서버(120)를 포함할 수 있다.
네트워크 시스템(100)은 여기에 설명된 본 발명의 실시 예들에 따른 다양한 방법들을 수행하도록 동작하는 복수의 장치들, 서버들, 및/또는 소프트웨어 구성들을 포함할 수 있다. 도 1에 도시된 장치들 및/또는 서버들은 다른 방식들로 구성될 수 있으며, 장치들 및/또는 서버들에 의해 제공되는 동작들 및 서비스들은 여기에 설명된 실시 예들을 위해 결합되거나 분리될 수 있으며, 더 많은 수 혹은 더 적은 수의 장치들 및/또는 서버들에 의해 수행될 수 있다. 하나 또는 그 이상의 장치들 및/또는 서버들은 동일 혹은 상이한 기업체들에 의해 구동 및/또는 유지될 수 있다.
네트워크(105)는 제 1 내지 제 n 사용자 단말기들(111~11n) 및 게임 서버(120)와 같은 네트워크 시스템(100) 내 구성 요소들을 연결한다. 네트워크(105)는 공용 네트워크(public network), 적어도 하나의 사설 네트워크(private network), 유선 네트워크, 무선 네트워크, 다른 적절한 타입의 네트워크, 및 그것들의 조합들 중 적어도 하나를 포함할 수 있다. 네트워크 시스템(100) 내 구성 요소들 각각은 유선 통신 기능 및 무선 통신 기능 중 적어도 하나를 포함할 수 있으며, 그에 따라 네트워크(105)를 통해 상호 간 통신할 수 있다.
제 1 내지 제 n 사용자 단말기들(111~11n)은 네트워크(105)를 통해 게임 서버(120)와 통신할 수 있다(n은 1보다 큰 정수). 제 1 내지 제 n 사용자 단말기들(111~11n) 각각은 게임 애플리케이션을 포함하며, 게임 애플리케이션은 게임 서버(120)와 통신하여 사용자 아이디를 생성한 후 사용자 아이디를 통해 게임 서버(120)에 액세스하여 게임 서비스를 위한 액션들을 수행할 수 있다. 각 사용자 단말기의 게임 애플리케이션은 그것의 사용자 인터페이스를 통해 사용자로부터 사용자 입력 이벤트를 수신할 수 있다. 예를 들면, 사용자 단말기는 다양한 타입들의 사용자 입력 이벤트들, 예를 들면 터치, 터치 및 홀드, 드래그, 드래그 앤 드롭 등을 감지할 수 있다. 수신된 사용자 입력 이벤트에 응답하여, 사용자 단말기의 게임 애플리케이션은 적절한 액션을 수행할 수 있다. 예를 들면, 사용자 단말기의 게임 애플리케이션은 수신된 사용자 입력 이벤트에 따른 요청 신호를 게임 서버(120)에 전송하며, 게임 서버(120)로부터 요청 신호에 대응하는 피드백 신호를 수신하고, 피드백 신호에 응답하여 적절한 그래픽 인터페이스를 디스플레이함으로써 게임 서비스를 지원할 수 있다.
실시 예로서, 사용자 단말들(130, 140) 각각은 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기 등과 같은 정보를 유선 및/또는 무선 환경에서 송수신할 수 있는 장치 등을 포함할 수 있다.
게임 서버(120)는 네트워크 서버로서 제공될 수 있으며, 네트워크(105)를 통해 제 1 내지 제 n 사용자 단말기들(111~11n)과 통신하여 게임 서비스를 제공할 수 있다. 또한, 게임 서버(120)는 제 1 내지 제 n 사용자 단말기들(111~11n)로부터 사용자 입력 이벤트들에 대한 정보를 수신하고, 수신된 사용자 입력 이벤트들에 기반하여 매크로를 사용하는 사용자 단말기를 감지할 수 있다.
게임 서버(120)는 통신기(121), 저장 매체(122), 및 제어부(123)를 포함할 수 있다.
통신기(121)는 제어부(123)와 네트워크(105) 사이의 통신을 제공하도록 구성될 수 있다. 통신기(121)는 외부로부터 수신된 데이터 및/또는 신호를 제어부(123)에 전달하고, 제어부(123)로부터 수신된 데이터 및/또는 신호를 외부에 전달할 수 있다.
저장 매체(122)는 제어부(123)의 제어에 응답하여 동작한다. 저장 매체(122)는 제어부(123)의 제어에 응답하여 사용자 로그 데이터(ULD), 기준값(RV), 및 매크로 사용자 정보(MCR)를 저장하도록 구성될 수 있다. 실시 예들에서, 저장 매체(122)는 램(Random Access Memory, RAM), 롬(Read Only Memory, ROM), 플래시 메모리(flash memory), 하드 디스크(hard disk), 및 다른 타입의 컴퓨터에 의해 판독 가능한 매체 중 적어도 하나를 포함할 수 있다.
도 1에서, 저장 매체(122)는 게임 서버(120)에 포함되는 구성 요소로서 도시되어 있다. 그러나 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 저장 매체(122)의 적어도 일부는 게임 서버(120)의 외부에 제공되고, 제어부(123)는 통신기(121)를 통해 저장 매체(122)로부터 데이터를 읽고, 저장 매체(122)에 데이터를 기입할 수 있다.
제어부(123)는 게임 서버(120)의 제반 동작들을 제어하도록 구성될 수 있다. 제어부(123)는 게임 서비스 제공기(124), 사용자 로그 수집기(125), 및 매크로 탐지기(126)를 포함할 수 있다.
게임 서비스 제공기(124)는 네트워크(105)를 통해 제 1 내지 제 n 사용자 단말기들(111~11n)과 통신하여 게임 서비스를 제공할 수 있다. 예를 들면, 게임 서비스 제공기(124)는 제 1 내지 제 n 사용자 단말기들(111~11n) 각각으로부터 수신되는 요청 신호에 응답하여 피드백 신호를 제공할 수 있다. 예를 들면, 저장 매체(122)는 게임 서비스를 위한 아이템들, 아이콘들, 이미지들, 텍스트들 등과 같은 다양한 오브젝트들, 그리고 레이아웃들을 포함하는 그래픽 인터페이스 소스를 저장하며, 게임 서비스 제공기(124)는 그러한 그래픽 인터페이스 소스에 기반하여 제 1 내지 제 n 사용자 단말기들(111~11n) 각각에 적절한 그래픽 인터페이스를 제공할 수 있다.
제 1 내지 제 n 사용자 단말기들(111~11n) 중 일부의 게임 애플리케이션은 매크로(혹은 매크로 프로그램)에 기인한 사용자 입력 이벤트들을 수신하게 되고, 그러한 사용자 입력 이벤트들에 응답하여 동작할 수 있다. 이때, 매크로는 사람 대신 사용자 입력 이벤트들을 발생시킬 수 있는 모듈을 의미하며, 다양한 형태들로 해당 사용자 단말기에 포함될 수 있다. 이러한 매크로는 일련의 사용자 입력 이벤트들을 반복적으로 발생시키는 명령어들을 포함할 수 있으며, 이러한 명령어들을 수행함으로써 위 사용자 입력 이벤트들을 야기할 수 있다. 일련의 사용자 입력 이벤트들을 반복적으로 발생시키는 명령어들은 사용자에 의해 설정될 수 있으며, 그러므로 그러한 명령어들에 따른 사용자 입력 이벤트들은 다양하게 변할 수 있다. 매크로를 사용하는 사용자는 시간의 제약없이 플레이가 가능하기 때문에 게임 아이템 및 게임 머니 등과 같은 사이버 자산, 임무의 완수 혹은 성공에 대한 보상으로 주어지는 경험치 등의 다양한 객체들을 정상 사용자보다 빠르게 얻을 수 있다. 이 밖에 매크로 사용자와 정상 사용자 간 다양한 불균형들로 인해, 일반 사용자들로 하여금 상대적 박탈감을 느끼게 하여 게임 이탈을 초래할 뿐만 아니라, 게임 내 사용자들 간 밸런스를 붕괴시키는 원인이 될 수 있다. 따라서, 제 1 내지 제 n 사용자 단말기들(111~11n) 각각의 매크로 사용 여부를 감지하는 것이 요구된다.
사용자 로그 수집기(125)는 통신기(121)를 통해 제 1 내지 제 n 사용자 단말기들(111~11n)로부터 수신되는 데이터에 기반하여 사용자 로그 데이터(ULD)를 저장 매체(122)에 저장할 수 있다. 사용자 로그 수집기(125)는 제 1 내지 제 n 사용자 단말기들(111~11n) 각각으로부터 사용자 입력 이벤트에 대한 정보(이하, 사용자 입력 이벤트 유닛)를 수신하고, 각 사용자 단말기 별 사용자 입력 이벤트 유닛들을 사용자 로그 데이터(ULD)에 포함시킬 수 있다.
도 2를 참조하면, 사용자 로그 데이터(ULD)는 제 1 내지 제 n 사용자 단말기들(111~11n)에 각각 대응하는 제 1 내지 제 n 사용자 식별자들(UID1~UIDn), 그리고 제 1 내지 제 n 사용자 식별자들(UID1~UIDn)에 각각 대응하는 제 1 내지 제 n 이벤트 이력들(EVTR1~EVTRn)을 포함할 수 있다. 제 1 내지 제 n 이벤트 이력들(EVTR1~EVTRn)은 각각 제 1 내지 제 n 사용자 단말기들(111~11n)에 의해 제공될 수 있다.
각 사용자 식별자에 대응하는 이벤트 이력은 복수의 사용자 입력 이벤트 유닛들을 포함한다. 각 사용자 입력 이벤트 유닛은 사용자 입력 이벤트를 나타낼 수 있는 다양한 타입들의 정보를 포함할 수 있다. 실시 예들에서, 각 사용자 입력 이벤트 유닛은 사용자 입력 이벤트의 좌표, 사용자 입력 이벤트가 발생된 타임스탬프, 사용자 입력 이벤트의 홀드 시간, 및 이전 사용자 입력 이벤트의 발생 후 현재 사용자 입력 이벤트의 발생까지 소요 시간을 포함할 수 있다. 이때, 사용자 입력 이벤트의 좌표는 x 좌표 및 y 좌표를 포함할 수 있다. 도 2에서, 제 1 이벤트 이력(EVTR1)은 제 1 내지 제 k 사용자 입력 이벤트 유닛들(EVT1~EVTk)을 포함한다. 제 1 사용자 입력 이벤트 유닛(EVT1)은 제 1 좌표(CRDN1), 제 1 타임스탬프(STMP1), 제 1 홀드 시간(HDTM1), 및 제 1 소요 시간(DLTM1)을 포함하고, 제 2 사용자 입력 이벤트 유닛(EVT2)은 제 2 좌표(CRDN2), 제 2 타임스탬프(STMP2), 제 2 홀드 시간(HDTM2), 및 제 2 소요 시간(DLTM2)을 포함하고, 제 k 사용자 입력 이벤트 유닛(EVTk)은 제 k 좌표(CRDNk), 제 k 타임스탬프(STMPk), 제 k 홀드 시간(HDTMk), 및 제 k 소요 시간(DLTMk)을 포함한다. 마찬가지로, 나머지 이벤트 이력들(EVTR2~EVTRn)도 복수의 사용자 입력 이벤트 유닛들을 포함할 수 있다.
다시 도 1을 참조하면, 매크로 탐지기(126)는 사용자 로그 데이터(ULD)에 기반하여 제 1 내지 제 n 사용자 단말기들(111~11n) 각각에서의 매크로 사용 여부를 감지할 수 있다. 실시 예들에서, 매크로 탐지기(126)는 사용자 로그 수집기(125)로부터의 제어 신호(CTRL)에 응답하여 제 1 내지 제 n 사용자 단말기들(111~11n) 각각에서의 매크로 사용 여부를 감지할 수 있다. 예를 들면, 사용자 로그 수집기(125)는 사용자 로그 데이터(ULD)가 정해진 수의 이벤트 이력들(EVTR1~EVTRn)을 포함할 때 제어 신호(CTRL)를 생성할 수 있다.
매크로 탐지기(126)는 사용자 로그 데이터(ULD) 내 이벤트 이력들(EVTR1~EVTRn, 도 2 참조)에 따라 제 1 내지 제 n 사용자 단말기들(111~11n)에 각각 대응하는 매크로 스코어들을 결정하고, 결정된 매크로 스코어들에 따라 제 1 내지 제 n 사용자 단말기들(111~11n) 각각의 매크로 사용 여부를 감지할 수 있다. 감지 결과에 따라, 매크로 탐지기(126)는 제 1 내지 제 n 사용자 단말기들(111~11n) 중 매크로 사용자들을 나타내는 매크로 사용자 정보(MCR)를 저장 매체(122)에 저장할 수 있다. 매크로 사용자 정보(MCR)는 게임 서비스 제공기(124)에 의해 참조될 수 있다. 실시 예들에서, 매크로 탐지기(126)는 매크로 사용자 정보(MCR)를 게임 서비스 제공기(124)에 전송할 수 있다.
매크로 탐지기(126)는 매크로 스코어들을 이용한 연산을 수행함으로써 매크로 사용 여부를 감지하기 위한 기준값(RV)을 조절할 수 있다. 매크로 탐지기(126)는 제 1 내지 제 n 사용자 단말기들(111~11n)의 매크로 스코어들의 분포에 적응적인 기준값(RV)을 결정할 수 있다. 매크로 탐지기(126)는 기준값(RV)을 저장 매체(122)에 저장할 수 있으며, 이후 매크로 사용 여부를 감지하기 위해 저장 매체(122)에 액세스하여 기준값(RV)을 참조할 수 있다. 매크로 탐지기(126)는 매크로 스코어들 각각을 기준값(RV)과 비교함으로써 제 1 내지 제 n 사용자 단말기들(111~11n) 각각의 매크로 사용 여부를 감지할 수 있다.
매크로 사용자는 매크로에 의해 발생될 사용자 입력 이벤트들을 직접 설정할 수 있고, 이에 따라 매크로에 의해 발생될 사용자 입력 이벤트들은 다양하게 변경될 수 있다. 즉, 매크로 사용자들의 매크로 설정에 따라 제 1 내지 제 n 사용자 단말기들(111~11n)의 매크로 스코어들의 분포는 다양하게 변경될 수 있다. 따라서, 만약 매크로 스코어들에 적응적이지 않은, 예를 들면 미리 정해진 기준값을 이용함으로써 매크로 사용자가 결정된다면, 정확하게 매크로 사용자를 결정하기 어려울 수 있다. 이와 같이, 매크로에 의해 발생될 사용자 입력 이벤트들은 매크로 사용자들, 사용될 수 있는 매크로들의 종류들, 게임 서비스의 특성들에 따라 다양하게 변할 수 있고 이에 따라 매크로 스코어들이 변한다는 점을 고려할 때, 매크로 탐지기(126)는 매크로 스코어들의 분포에 적응적인 기준값(RV)을 결정하여 매크로 사용자의 결정에 있어 향상된 신뢰성을 가질 수 있으며, 또한 향상된 호환성을 가질 수 있다.
도 1에서, 사용자 로그 수집기(125) 및 매크로 탐지기(126)는 게임 서비스 제공기(124)와 함께 게임 서버(120)의 구성 요소로서 도시되어 있다. 그러나, 이는 예시적인 것으로 본 발명의 실시 예들은 여기에 한정되지 않는다. 예를 들면, 사용자 로그 수집기(125) 및 매크로 탐지기(126)는 게임 서버(120) 외부의 다른 네트워크 서버의 구성 요소로서 포함될 수 있다. 이러한 경우, 사용자 로그 데이터(ULD), 기준값(RV), 및 매크로 사용자 정보(MCR)는 해당 네트워크 서버의 저장 매체에 저장될 수 있다.
실시 예들에서, 게임 서비스 제공기(124), 사용자 로그 수집기(125), 및 매크로 탐지기(126)는 구현 례들에 따라 결합되거나 더 많은 구성 요소들로 분리될 수 있다. 실시 예들에서, 게임 서비스 제공기(124), 사용자 로그 수집기(125), 및 매크로 탐지기(126) 각각은 하드웨어, 펌웨어, 소프트웨어, 및 그것들의 조합 중 적어도 하나를 통해 구현될 수 있다.
도 3은 도 1의 각 사용자 단말기에서 이벤트 이력을 생성 및 제공하는 방법의 실시 예를 보여주는 도면이다.
도 1 및 도 3을 참조하면, S110단계에서, 사용자 단말기는 사용자 입력 이벤트를 수신한다. 사용자 단말기의 게임 애플리케이션은 사용자 입력 이벤트에 응답하여 게임 서비스를 위한 액션들을 수행할 수 있다.
S120단계에서, 사용자 단말기는 수신된 사용자 입력 이벤트에 따라 사용자 입력 이벤트 유닛을 생성할 수 있다. 실시 예들에서, 사용자 단말기는 게임 애플리케이션과 연관되어 사용자 입력 이벤트를 수집하기 위한 프로그램 코드들 및/또는 명령어들을 포함할 수 있다. 실시 예들에서, 각 사용자 입력 이벤트 유닛은 사용자 입력 이벤트의 좌표, 사용자 입력 이벤트가 발생된 타임스탬프, 사용자 입력 이벤트의 홀드 시간, 및 이전 사용자 입력 이벤트의 발생 후 현재 사용자 입력 이벤트의 발생까지 소요 시간을 포함할 수 있다.
S130단계에서, 사용자 단말기는 생성된 사용자 입력 이벤트 유닛을 그것의 저장 매체에 포함된 리스트에 누적한다. S140단계에서, 사용자 단말기는 누적된 사용자 입력 이벤트 유닛들의 수가 임계값 이상인지 여부에 따라 S150단계를 수행할 수 있다.
S150단계에서, 사용자 단말기는 리스트 내 누적된 사용자 입력 이벤트 유닛들을 이벤트 이력으로서 게임 서버(120)에 전송한다. 게임 서버(120)는 수신된 이벤트 이력을 해당 사용자 단말기의 사용자 식별자와 연관하여 사용자 로그 데이터(ULD)에 포함시킬 것이다.
S160단계에서, 사용자 단말기는 누적된 사용자 입력 이벤트 유닛들을 포함하는 리스트를 초기화한다.
도 4는 이벤트 이력을 제공할 수 있는 사용자 단말기의 실시 예를 보여주는 도면이다.
도 4를 참조하면, 사용자 단말기(200)는 통신기(210), A/V(Audio/Video) 입력기(220), 사용자 인터페이스(230), 디스플레이 장치(240), 불휘발성 저장 매체(250), 프로세서(260), 및 시스템 메모리(270)를 포함한다.
통신기(210)는 유선 통신 기능 및 무선 통신 기능 중 적어도 하나를 포함할 수 있으며, 그에 따라 네트워크(105, 도 1 참조)를 통해 게임 서버(120)와 통신할 수 있다. 실시 예들에서, 통신기(210)는 무선 인터넷에 액세스하거나, 와이파이 통신과 같은 근거리 무선 통신을 수행하여 게임 서버(120)와 통신할 수 있다.
A/V 입력기(220)는 오디오 신호 및 비디오 신호의 입력을 위한 것으로, 카메라를 포함할 수 있다. 카메라는 이미지 센서에 의해 얻어지는 이미지를 처리한다. 카메라에 의해 처리된 이미지는 시스템 메모리(270) 및/또는 불휘발성 저장 매체(250)에 저장되거나, 게임 서비스와 연관하여 게임 서버(120)에 전송될 수 있다.
사용자 인터페이스(230)는 사용자 단말기(200) 혹은 프로세서(260)의 동작들을 제어하기 위한 사용자 입력을 수신한다. 사용자 인터페이스(230)는 키 패드(key pad), 돔 스위치(dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치, 핑거 마우스 등을 포함할 수 있다. 특히, 터치 패드가 디스플레이 장치(240)와 일체로 형성되는 경우, 이를 터치 스크린(touch screen)이라 부를 수 있다. 이러한 경우, 사용자 인터페이스(230)는 디스플레이 장치(240)에 의해 시각화될 수 있다. 사용자 인터페이스(230)를 통해 다양한 타입들의 사용자 입력 이벤트들, 예를 들면 터치, 터치 및 홀드, 드래그, 드래그 앤 드롭 등이 수신될 수 있다.
디스플레이 장치(240)는 프로세서(260)의 제어에 응답하여 동작한다. 디스플레이 장치(240)는 사용자 단말기(200) 혹은 프로세서(260)에 의해 처리되는 정보를 표시한다. 예를 들면, 디스플레이 장치(240)는 프로세서(260)의 제어에 따라 그래픽 인터페이스를 디스플레이할 수 있다.
디스플레이 장치(240)는 액정 디스플레이(liquid crystal display), 유기 발광 다이오드(organic light-emitting diode) 디스플레이, 플렉서블 디스플레이(flexible display) 등 다양한 타입의 디스플레이 장치들 중 적어도 하나를 포함할 수도 있다.
불휘발성 저장 매체(250)는 플래시 메모리(flash memory type), 하드 디스크 (hard disk type), 멀티미디어 카드(multimedia card) 등 중 적어도 하나일 수 있다. 불휘발성 저장 매체(250)는 프로세서(260)의 제어에 응답하여 데이터를 기입하고 독출하도록 구성된다.
프로세서(260)는 범용 혹은 전용 프로세서 중 어느 하나를 포함할 수 있으며, 통신기(210), A/V 입력기(220), 사용자 인터페이스(230), 디스플레이 장치(240), 불휘발성 저장 매체(250), 및 시스템 메모리(270)의 동작들을 제어한다.
시스템 메모리(270)는 프로세서(260)의 워킹 메모리로서 제공될 수 있다. 도 4에서, 시스템 메모리(270)는 프로세서(260)와 분리된 구성 요소로서 도시되어 있으나, 이는 예시적인 것으로 시스템 메모리(270)의 적어도 일부는 프로세서(260) 내에 포함될 수 있다. 또한, 시스템 메모리(270)는 논리적 및/또는 물리적으로 분리된 복수의 메모리들을 포함할 수 있다. 실시 예들에서, 시스템 메모리(270)는 버퍼 메모리로서 제공될 수 있다. 실시 예들에서, 시스템 메모리(270)는 램(Random Access Memory, RAM), 롬(Read Only Memory, ROM), 및 다른 타입들의 컴퓨터에 의해 판독 가능한 저장 매체들 중 적어도 하나를 포함할 수 있다.
프로세서(260)는 프로그램 코드들을 불휘발성 저장 매체(250)로부터 시스템 메모리(270)에 로딩하고, 로딩된 프로그램 코드들을 실행하여 도 1 및 도 3을 참조하여 설명된 사용자 단말기(200)의 동작들 및/또는 기능들을 수행하도록 구성된다.
프로세서(260)는 운영 체제(271)를 시스템 메모리(270)에 로딩하고, 로딩된 운영 체제(271)를 실행할 수 있다. 운영 체제(271)는 게임 애플리케이션(272), 사용자 입력 이벤트 수집 모듈(273), 및 인터페이스 모듈(274)이 통신기(210), A/V 입력기(220), 사용자 인터페이스(230), 디스플레이 장치(240), 불휘발성 저장 매체(250), 및 시스템 메모리(270) 중 적어도 하나를 사용할 수 있는 환경 및/또는 인터페이스를 제공할 수 있다.
프로세서(260)는 게임 애플리케이션(272)을 시스템 메모리(270)에 로딩하고, 로딩된 게임 애플리이션(272)을 실행할 수 있다. 게임 애플리케이션(272)은 사용자 입력 이벤트들에 응답하여 게임 서비스를 위한 액션들을 수행할 수 있다. 사용자 입력 이벤트들은 사용자 입력 인터페이스(230)를 통해 수신될 수 있다. 사용자 입력 이벤트들은 사용자 단말기(200)에 포함될 수 있는 매크로에 의해 생성될 수도 있다.
또한, 프로세서(260)는 프로세서(260)에 의해 실행될 때 사용자 입력 이벤트들에 따라 사용자 입력 이벤트 유닛들을 생성하고 생성된 사용자 입력 이벤트 유닛들을 이벤트 이력으로서 게임 서버(120)에 전송하는 사용자 입력 이벤트 수집 모듈(273)을 시스템 메모리(270)에 로딩하고, 로딩된 사용자 입력 이벤트 수집 모듈(273)을 실행할 수 있다. 사용자 입력 이벤트 수집 모듈(273)은 도 3을 참조하여 설명된 사용자 단말기(200)의 동작들 및/또는 기능들을 수행할 수 있다.
실시 예들에서, 프로세서(260)는 프로세서(260)에 의해 실행될 때 사용자 입력 이벤트들을 수집하는 인터페이스 모듈(274)을 시스템 메모리(270)에 로딩하고, 로딩된 인터페이스 모듈(274)을 실행할 수 있다. 예를 들면, 인터페이스 모듈(274)의 프로그램 코드들 및/또는 명령어들은 게임 애플리케이션(272)의 일부의 프로그램 코드들 및/또는 명령어들을 대체할 수 있으며, 대체된 프로그램 코드들 및/또는 명령어들은 게임 애플리케이션(272)이 감지한 사용자 입력 이벤트들을 사용자 입력 이벤트 수집 모듈(273)에 제공할 수 있다. 예를 들면, 인터페이스 모듈(274)의 프로그램 코드들 및/또는 명령어들은 게임 애플리케이션(272)의 프로그램 코드들 및/또는 명령어들과 구분되며, 게임 애플리케이션(272)이 감지한 사용자 입력 이벤트들을 가로채어(hook) 사용자 입력 이벤트 수집 모듈(273)에 제공할 수 있다.
도 5는 본 발명의 실시 예에 따른 매크로를 사용하는 사용자 단말기를 감지하는 방법을 보여주는 순서도이다. 도 6은 각 사용자 단말기에 대응하는 매크로 스코어를 결정하는 방법의 실시 예를 보여주는 순서도이다. 도 7은 사용자 단말기들 중 하나의 사용자 입력 이벤트 유닛들의 좌표들 및 홀드 시간들을 보여주는 다이어그램이다. 도 8은 사용자 단말기들 중 다른 하나의 사용자 입력 이벤트 유닛들의 좌표들 및 홀드 시간들을 보여주는 다이어그램이다. 도 9는 사용자 단말기들에 대응하는 매크로 스코어들의 분포를 예시적으로 보여주는 다이어그램이다. 실시 예들에서, 도 5 및 도 6의 동작들은 도 1의 게임 서버(120)에 의해 수행될 수 있다.
먼저 도 1 및 도 5를 참조하면, S210단계에서, 게임 서버(120)는 제 1 내지 제 n 사용자 단말기들(111~11n) 각각으로부터 사용자 입력 이벤트 유닛들을 포함하는 이벤트 이력을 획득한다. 각 사용자 입력 이벤트 유닛은 사용자 입력 이벤트를 나타낼 수 있는 다양한 타입들의 정보, 예를 들면 사용자 입력 이벤트의 좌표, 사용자 입력 이벤트가 발생된 타임스탬프, 사용자 입력 이벤트의 홀드 시간, 및 이전 사용자 입력 이벤트의 발생 후 현재 사용자 입력 이벤트의 발생까지 소요 시간 등을 포함할 수 있다.
S220단계에서, 게임 서버(120)는 제 1 내지 제 n 사용자 단말기들(111~11n)의 이벤트 이력들에 따라 제 1 내지 제 n 사용자 단말기들(111~11n)에 각각 대응하는 매크로 스코어들을 결정한다. 실시 예들에서, 도 6을 참조하면, 각 사용자 단말기의 매크로 스코어는 해당 이벤트 이력의 사용자 입력 이벤트 유닛들에 포함되는 정보의 중복률에 따라 결정될 수 있다(S221). 예를 들면, 게임 서버(120)는 사용자 입력 이벤트 유닛들로부터 좌표들, 홀드 시간들, 및/또는 이전 사용자 입력 이벤트의 발생 후 현재 사용자 입력 이벤트의 발생까지 소요 시간들을 획득하고, 획득된 정보의 중복률에 따라 해당 사용자 단말기의 매크로 스코어를 결정할 수 있다. 예를 들면, 제 j 사용자 단말기(11j)의 제 j 매크로 스코어는 아래의 수학식 1에 따라 결정될 수 있다(j는 0보다 크고 n보다 작거나 같은 정수).
Figure 112019085636451-pat00004
수학식 1에서, MSj는 제 j 매크로 스코어를 나타내고, DPj는 제 j 사용자 단말기(11j)의 사용자 입력 이벤트 유닛들의 좌표들 중 가장 많이 중복되어 있는 좌표들의 개수를 나타내고, DFj는 제 j 사용자 단말기(11j)의 사용자 입력 이벤트 유닛들의 좌표들 중 서로 상이한 좌표들의 개수(즉, 중복되어 있는 좌표들의 개수를 하나로 카운트하여 결정되는 서로 상이한 좌표들의 개수)를 나타내고, NUIj는 제 j 사용자 단말기(11j)의 사용자 입력 이벤트 유닛들의 개수(즉, 이벤트 이력에 포함된 사용자 입력 이벤트 유닛들의 개수)를 나타낸다. 수학식 1의 실시 예에서, DPj는 위 설명된 사용자 입력 이벤트 유닛들에 포함되는 정보의 중복률로서 제공된다. 수학식 1에 따르면, 사용자 입력 이벤트들의 좌표들 중 가장 많이 중복되어 있는 좌표들의 개수가 증가할수록 제 j 매크로 스코어는 증가한다.
도 7을 참조하면, 임의의 사용자 단말기의 사용자 입력 이벤트 유닛들의 좌표들 및 홀드 시간들은 다양한 범위들에 걸쳐 분포될 수 있다. 정상 사용자는 게임 서비스를 이용하면서 다양한 사용자 입력 이벤트들을 제공하므로, 도 7의 좌표들 및 홀드 시간들은 정상 사용자에 대응한다고 이해될 수 있다. 반면, 도 8을 참조하면, 다른 사용자 단말기의 사용자 입력 이벤트 유닛들의 좌표들 및 홀드 시간들은 도 7과 비교할 때 실질적으로 반복되는 값들을 갖는다. 매크로 사용자는 특정 사용자 입력 이벤트들을 반복적으로 제공하므로, 도 8의 좌표들 및 홀드 시간들은 매크로 사용자에 대응한다고 이해될 수 있다.
위 설명된 바와 같이, 매크로 스코어는 사용자 입력 이벤트 유닛들에 포함되는 정보의 중복률에 따라 결정되며, 정상 사용자들은 다양한 사용자 입력 이벤트들을 제공한다는 점을 고려할 때, 정상 사용자들의 매크로 스코어들은 상대적으로 낮을 수 있다. 반면, 매크로 사용자의 매크로 스코어는 상대적으로 높을 수 있다. 즉, 사용자 입력 이벤트 유닛들에 포함되는 정보의 중복률이 증가할수록 매크로 스코어는 증가할 수 있다. 도 9를 참조하면, x축은 매크로 스코어를 나타내며, y축은 각 매크로 스코어 범위에 속하는 사용자들의 수를 나타낸다. 제 1 그룹(GRP1)의 사용자들과 같은 대부분의 사용자들은 매크로 스코어 10보다 낮은 매크로 스코어들을 갖는다. 반면, 제 2 그룹(GRP2)의 사용자들과 같은 일부 사용자들은 매크로 스코어 100000보다도 높은 매크로 스코어들을 갖는다.
도 9에서는 설명의 편의를 위해 제 1 그룹(GRP1)과 제 2 그룹(GRP2)의 매크로 스코어들이 명확하게 구별된다. 그러나, 정상 사용자들은 사용자들 개인, 게임 서비스의 특성 등 다양한 요소들에 따라 다양한 사용자 입력 이벤트들을 제공할 수 있으며, 매크로 사용자 또한 사용될 수 있는 매크로들의 종류들, 매크로에 대한 설정, 게임 서비스의 특성 등 다양한 요소들에 따라 다양한 사용자 입력 이벤트들을 제공할 수 있으므로, 도 9의 매크로 스코어들의 분포는 다양하게 변할 수 있다. 예를 들면, 실시 예들에 따라 매크로 스코어들은 명확하게 그룹핑되지 않을 수 있다.
다시 도 1 및 도 5를 참조하면, S230단계에서, 게임 서버(120)는 결정된 매크로 스코어들의 분포를 참조하여 매크로 사용 여부를 감지하기 위한 기준값(RV)을 조절한다. 게임 서버(120)는 매크로 스코어들을 이용한 연산을 수행함으로써 기준값(RV)을 결정할 수 있다. 실시 예들에서, 게임 서버(120)는 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 기준값(RV)으로 결정할 수 있다. 매크로에 의해 발생될 사용자 입력 이벤트들은 매크로 사용자들, 사용될 수 있는 매크로들의 종류들, 게임 서비스의 특성들에 따라 다양하게 변할 수 있다는 점을 고려할 때, 게임 서버(120)는 매크로 스코어들의 분포에 따라 기준값(RV)을 조절함으로써 매크로 사용자의 결정에 있어 향상된 신뢰성을 가질 수 있다. 예를 들면, 도 9의 제 2 그룹(GRP2)에 속하는 사용자들의 수가 증가할 때 게임 서버(120)는 기준값(RV)을 증가시킬 수 있다. 즉, 상대적으로 높은 매크로 스코어들을 갖는 사용자들이 증가할수록 매크로 사용 여부를 감지하기 위한 기준값(RV)은 증가할 수 있다. 예를 들면, 도 9의 제 1 그룹(GRP1)에 속하는 사용자들의 수가 증가할 때 게임 서버(120)는 기준값(RV)을 감소시킬 수 있다. 이와 같이, 게임 서버(120)는 매크로 스코어들의 분포에 따라 적응적으로 기준값(RV)을 조절할 수 있다.
S240단계에서, 게임 서버(120)는 매크로 스코어들 각각을 기준값(RV)과 비교하여 매크로를 사용하는 사용자 단말기를 감지한다.
도 10은 매크로 사용 여부를 감지하기 위한 기준값을 조절하는 방법의 실시 예를 보여주는 순서도이다. 도 11은 변수 및 매크로 거리 사이의 관계를 보여주는 그래프이다.
도 10을 참조하면, S310단계에서, 각 매크로 스코어와 변수 사이의 차이가 연산된다. S320단계에서, 연산된 차이들이 합해져 매크로 거리를 결정한다. S330단계에서, 결정된 매크로 거리가 실질적으로 최소치라고 판단되는지 여부에 따라 S340단계 혹은 S350단계가 수행된다. S340단계에서, 변수를 조절한다. S310단계 내지 S340단계는 실질적으로 최소의 매크로 거리를 찾을 때까지 반복될 수 있다.
그와 같은 반복을 통해 찾아지는 매크로 거리는 도 11의 그래프와 같이 표현될 수 있다. 도 11을 참조하면, 도 9를 참조하여 설명된 바와 같이 사용자들이 매크로 스코어를 기준으로 제 1 그룹(GRP1)과 제 2 그룹(GRP2)으로 구분되는 경우, 매크로 거리(Macro distance)는 변수가 0과 임의의 값 사이에서 증가할수록 감소하고, 변수가 위 임의의 값보다 커져서 증가할수록 증가할 수 있다. 이러한 경우, 매크로 거리는 변수가 위 임의의 값일 때 최소값(MIN)을 가지며, 위 임의의 값은 기준값(RV)으로 결정될 수 있다.
이러한 실시 예에 따라, 상대적으로 높은 매크로 스코어들을 갖는 사용자들(도 9의 GRP2에 속하는 사용자들)이 증가할수록 기준값(RV)은 증가할 수 있다. 이는, 사용자 단말기들이 매크로를 사용하는 것으로 결정될 확률이 증가함을 의미할 수 있다. 반면, 상대적으로 높은 매크로 스코어들을 갖는 사용자들(도 9의 GRP2에 속하는 사용자들)이 감소할수록 기준값(RV)은 감소할 수 있다. 이는, 사용자 단말기들이 매크로를 사용하는 것으로 결정될 확률이 감소함을 의미할 수 있다. 이와 같이, 기준값(RV)은 매크로 스코어들의 분포에 따라 적응적으로 조절될 수 있다. 매크로 사용자들, 사용될 수 있는 매크로들의 종류들, 게임 서비스의 특성들에 따라 매크로에 의해 발생되는 사용자 입력 이벤트들은 다양하게 변할 수 있다는 점을 고려할 때, 매크로 스코어들의 분포에 따라 기준값(RV)을 적응적으로 조절함으로써 매크로 사용자의 결정에 있어 향상된 신뢰성을 제공할 수 있으며, 또한 향상된 호환성을 제공할 수 있다.
다시 도 10을 참조하면, S350단계에서, 매크로 거리를 최소로 하는 변수가 기준값(RV)으로 결정된다.
실시 예들에서, 게임 서버(120)는 아래의 수학식 2에 따라 기준값을 결정할 수 있다.
Figure 112019085636451-pat00005
수학식 2에서, MD는 매크로 거리를 나타내고, xi는 제 i 매크로 스코어를 나타내고, v는 변수를 나타내고, argmin은 MD를 최소로 하는 v값을 찾는 함수를 나타낸다. 이때, n은 1보다 큰 정수이고, i는 1보다 크거나 같고 n보다 작거나 같은 정수이다. 이와 같이, 게임 서버(120)는 매크로 스코어들과의 차이들의 합을 최소로 하는 변수를 찾고, 찾아진 변수를 기준값(RV)으로서 결정할 수 있다.
도 12는 도 5의 S240단계의 실시 예를 보여주는 순서도이다.
도 1 및 도 12를 참조하면, S310단계에서, 게임 서버(120)는 매크로 스코어가 기준값(RV)보다 큰지 여부를 판별한다. 만약 그렇다면, S320단계가 수행된다.
S320단계에서, 게임 서버(120)는 해당 사용자 단말기를 매크로 사용자로 결정한다. S330단계에서, 게임 서버(120)는 매크로 사용자로 결정된 사용자 단말기를 나타내는 정보를 포함하도록 매크로 사용자 정보(MCR)를 업데이트할 수 있다.
게임 서버(120)는 매크로 사용자로 결정된 사용자 단말기에 대해 다양한 정책들을 적용할 수 있다. 매크로 사용자 정보(MCR)는 게임 서비스 제공기(124)에 의해 참조될 수 있다. 예를 들면, 게임 서비스 제공기(124)는 매크로 사용자로 결정된 사용자 단말기에 게임 서비스 중 적어도 일부를 제공하지 않도록 제어될 수 있다.
도 13은 도 1의 네트워크 서버를 구현하는 데에 적합한 컴퓨터 장치의 실시 예를 보여주는 블록도이다.
도 13을 참조하면, 컴퓨터 장치(1000)는 버스(1100), 적어도 하나의 프로세서(1200), 시스템 메모리(1300), 저장 매체 인터페이스(I/F)(1400), 통신 인터페이스(1500), 저장 매체(1600), 및 통신기(1700)를 포함한다.
버스(1100)는 컴퓨터 장치(1000)의 다양한 구성 요소들에 연결되어 데이터, 신호, 및 정보를 전달한다. 프로세서(1200)는 범용 혹은 전용 프로세서 중 어느 하나일 수 있으며, 컴퓨터 장치(1000)의 제반 동작들을 제어할 수 있다.
프로세서(1200)는 실행될 때 다양한 기능들을 제공하는 프로그램 코드들 및 명령어들을 시스템 메모리(1300)에 로딩하고, 로딩된 프로그램 코드들 및 명령어들을 처리하도록 구성된다. 시스템 메모리(1300)는 프로세서(1200)의 워킹 메모리로서 제공될 수 있다. 실시 예로서, 시스템 메모리(1300)는 램(Random Access Memory, RAM), 롬(Read Only Memory, ROM), 및 다른 타입의 컴퓨터에 의해 판독 가능한 매체 중 적어도 하나를 포함할 수 있다.
프로세서(1200)는 프로세서(1200)에 의해 실행될 때 도 1의 게임 서비스 제공기(124)의 기능들을 제공하는 게임 서비스 제공 모듈(1310), 도 1의 사용자 로그 수집기(125)의 기능들을 제공하는 사용자 로그 수집 모듈(1320), 및 도 1의 매크로 탐지기(126)의 기능들을 제공하는 매크로 탐지 모듈(1330)을 시스템 메모리(1300)에 로딩할 수 있다. 그러한 프로그램 코드들 및/또는 명령어들은 프로세서(1200)에 의해 실행되어 도 1을 참조하여 설명된 게임 서비스 제공기(124), 사용자 로그 수집기(125), 및 매크로 탐지기(126)의 동작들을 수행할 수 있다.
이 밖에도, 시스템 메모리(1300)는 게임 서비스 제공기(124), 사용자 로그 수집기(125), 및 매크로 탐지기(126)를 위한 버퍼 메모리로서 기능할 수 있다. 도 13에서, 시스템 메모리(1300)는 프로세서(1200)와 구분된 구성으로 도시되어 있으나, 시스템 메모리(1300)의 적어도 일부는 프로세서(1200)에 포함될 수도 있다. 시스템 메모리(1300)는 실시 예들에 따라 물리적 및/또는 논리적으로 서로 분리된 복수의 메모리들로서 제공될 수 있다.
프로그램 코드들 및/또는 명령어들은 별도의 컴퓨터에 의해 판독 가능한 기록 매체인 저장 매체(1600)로부터 시스템 메모리(1300)에 로딩될 수 있다. 또는, 프로그램 코드들 및/또는 명령어들은 컴퓨터 장치(1000)의 외부로부터 통신기(1700)을 통해 시스템 메모리(1300)에 로딩될 수도 있다.
저장 매체 인터페이스(1400)는 저장 매체(1600)에 연결된다. 저장 매체 인터페이스(1400)는 버스(1100)에 연결된 프로세서(1200) 및 시스템 메모리(1300)와 같은 구성 요소들과 저장 매체(1600) 사이를 인터페이싱할 수 있다. 통신 인터페이스(1500)는 통신기(1700)에 연결된다. 통신 인터페이스(1500)는 버스(1100)에 연결된 구성 요소들과 통신기(1700) 사이를 인터페이싱할 수 있다.
실시 예들에서, 버스(1100), 프로세서(1200), 및 시스템 메모리(1300)는 하나의 보드(1050)에 통합될 수 있다. 예를 들면, 버스(1100), 프로세서(1200), 및 시스템 메모리(1300)는 하나의 반도체 칩에 실장될 수 있다. 실시 예들에서, 보드(1050)는 저장 매체 인터페이스(1400) 및 통신 인터페이스(1500)를 더 포함할 수 있다.
저장 매체(1600)는 전원이 차단되더라도 저장된 데이터를 유지하는 다양한 타입들의 불휘발성 저장 매체들, 예를 들면 플래시 메모리(flash memory), 하드 디스크(hard disk) 등을 포함할 수 있다. 저장 매체(1600)는 도 1의 저장 매체(122)로서 제공될 수 있다. 이러한 경우, 저장 매체(1600)는 도 1의 사용자 로그 데이터(ULD), 기준값(RV), 및 매크로 사용자 정보(MCR)를 저장할 수 있다.
통신기(1700, 혹은 트랜시버)는 네트워크(105)를 통해 컴퓨터 장치(1000)와 네트워크 시스템(100, 도 1 참조) 내 다른 장치들 및/또는 서버들 사이의 신호들을 송수신할 수 있다. 통신기(1700)는 도 1의 통신기(121)로서 제공될 수 있다.
비록 특정 실시 예들 및 적용 례들이 여기에 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정들 및 변형들이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
111~11n: 제 1 내지 제 n 사용자 단말기들
121: 통신기
122: 저장 매체
123: 제어부
124: 게임 서비스 제공기
125: 사용자 로그 수집기
126: 매크로 탐지기

Claims (16)

  1. 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버에 있어서:
    통신기; 및
    상기 통신기를 통해 상기 복수의 사용자 단말기들과 통신하는 적어도 하나의 프로세서를 포함하되,
    상기 적어도 하나의 프로세서는,
    상기 통신기를 통해 상기 복수의 사용자 단말기들과 통신하여 상기 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하고;
    상기 복수의 사용자 단말기들의 상기 이벤트 이력들에 따라 상기 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하고;
    상기 매크로 스코어들을 이용한 연산을 수행함으로써 매크로 사용 여부를 감지하기 위한 기준값을 조절하고;
    상기 매크로 스코어들 각각을 상기 기준값과 비교하여 상기 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지하는 네트워크 서버.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 상기 기준값으로 결정하는 네트워크 서버.
  3. 제 1 항에 있어서,
    상기 매크로 스코어들은 제 1 내지 제 n 매크로 스코어들을 포함하되,
    상기 적어도 하나의 프로세서는 수학식
    Figure 112019085636451-pat00006
    을 연산하여 상기 기준값을 결정하고,
    상기 MD는 매크로 거리를 나타내고, 상기 xi는 제 i 매크로 스코어를 나타내고, 상기 v는 변수를 나타내고, 상기 n은 1보다 크거나 같은 정수이고, 상기 i는 1보다 크거나 같고 상기 n보다 작거나 같은 정수이고,
    상기 매크로 거리를 최소로 하는 상기 변수가 상기 기준값으로 결정되는 네트워크 서버.
  4. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 매크로 스코어들 중 상기 기준값보다 큰 매크로 스코어에 대응하는 사용자 단말기에서 상기 매크로가 사용되었음을 감지하는 네트워크 서버.
  5. 제 1 항에 있어서,
    상기 사용자 입력 이벤트들에 대한 상기 정보는 상기 사용자 입력 이벤트들의 터치 좌표들 및 터치 시간들을 포함하는 네트워크 서버.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    각 이벤트 이력으로부터 획득되는 해당 사용자 단말기의 상기 사용자 입력 이벤트들에 대한 상기 정보의 중복률에 따라, 상기 해당 사용자 단말기에 대응하는 매크로 스코어를 결정하는 네트워크 서버.
  7. 제 1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    각 이벤트 이력으로부터 해당 사용자 단말기의 상기 사용자 입력 이벤트들의 좌표들을 획득하고;
    상기 획득된 좌표들 중 중복된 좌표들에 따라 상기 해당 사용자 단말기에 대응하는 매크로 스코어를 결정하는 네트워크 서버.
  8. 제 1 항에 있어서,
    상기 복수의 사용자 단말기들은 제 1 내지 제 n 사용자 단말기들을 포함하고,
    상기 매크로 스코어들은 제 1 내지 제 n 매크로 스코어들을 포함하고,
    상기 적어도 하나의 프로세서는 수학식
    Figure 112019085636451-pat00007
    을 연산함으로써 제 j 사용자 단말기의 제 j 매크로 스코어를 결정하되, 상기 n은 1보다 크거나 같은 정수이고, 상기 j는 1보다 크거나 같고 상기 n보다 작거나 같은 정수이고,
    상기 MSj는 상기 제 j 매크로 스코어를 나타내고, 상기 DPj는 상기 제 j 사용자 단말기의 상기 사용자 입력 이벤트들의 좌표들 중 가장 많이 중복된 좌표들의 수를 나타내고, 상기 DFj는 상기 제 j 사용자 단말기의 상기 사용자 입력 이벤트들의 상기 좌표들 중 서로 상이한 좌표들의 수를 나타내고, NUIj는 상기 제 j 사용자 단말기의 상기 사용자 입력 이벤트들의 수를 나타내는 네트워크 서버.
  9. 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버에 있어서:
    통신기; 및
    상기 통신기를 통해 상기 복수의 사용자 단말기들과 통신하는 적어도 하나의 프로세서를 포함하되,
    상기 적어도 하나의 프로세서는,
    상기 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하고;
    상기 복수의 사용자 단말기들의 상기 이벤트 이력들에 따라 상기 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하고;
    상기 매크로 스코어들의 분포를 참조하여 매크로 사용 여부를 감지하기 위한 기준값을 조절하고;
    상기 매크로 스코어들 각각을 상기 기준값과 비교하여 상기 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지하는 네트워크 서버.
  10. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 상기 기준값으로 결정하는 네트워크 서버.
  11. 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버의 동작 방법에 있어서:
    상기 네트워크를 통해 상기 복수의 사용자 단말기들과 통신하여 상기 복수의 사용자 단말기들 각각의 사용자 입력 이벤트들에 대한 정보를 포함하는 이벤트 이력을 획득하는 단계;
    상기 복수의 사용자 단말기들의 상기 이벤트 이력들에 따라 상기 복수의 사용자 단말기들에 각각 대응하는 매크로 스코어들을 결정하는 단계;
    상기 매크로 스코어들을 이용한 연산을 수행함으로써 매크로 사용 여부를 감지하기 위한 기준값을 조절하는 단계; 및
    상기 매크로 스코어들 각각을 상기 기준값과 비교하여 상기 복수의 사용자 단말기들 각각의 매크로 사용 여부를 감지하는 단계를 포함하는 동작 방법.
  12. 제 11 항에 있어서,
    상기 기준값을 조절하는 단계는 상기 매크로 스코어들과의 차이들의 합을 최소로 하는 값을 상기 기준값으로 결정하는 단계를 포함하는 동작 방법.
  13. 제 11 항에 있어서,
    상기 매크로 스코어들은 제 1 내지 제 n 매크로 스코어들을 포함하되,
    상기 기준값을 조절하는 단계는 수학식
    Figure 112019085636451-pat00008
    을 연산하는 단계를 포함하고,
    상기 MD는 매크로 거리를 나타내고, 상기 xi는 제 i 매크로 스코어를 나타내고, 상기 v는 변수를 나타내고, 상기 n은 1보다 크거나 같은 정수이고, 상기 i는 1보다 크거나 같고 상기 n보다 작거나 같은 정수이고,
    상기 매크로 거리를 최소로 하는 상기 변수가 상기 기준값으로 결정되는 동작 방법.
  14. 제 11 항에 있어서,
    상기 매크로 사용 여부를 감지하는 단계는 상기 매크로 스코어들 중 상기 기준값보다 큰 매크로 스코어에 대응하는 사용자 단말기에서 상기 매크로가 사용되었음을 감지하는 단계를 포함하는 동작 방법.
  15. 제 11 항에 있어서,
    상기 사용자 입력 이벤트들에 대한 상기 정보는 상기 사용자 입력 이벤트들의 터치 좌표들 및 터치 시간들을 포함하는 동작 방법.
  16. 제 11 항에 있어서,
    상기 매크로 스코어들을 결정하는 단계는, 각 이벤트 이력으로부터 획득되는 해당 사용자 단말기의 상기 사용자 입력 이벤트들에 대한 상기 정보의 중복률에 따라, 상기 해당 사용자 단말기에 대응하는 매크로 스코어를 결정하는 단계를 포함하는 동작 방법.
KR1020190102038A 2019-08-21 2019-08-21 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법 KR102208314B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190102038A KR102208314B1 (ko) 2019-08-21 2019-08-21 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법
JP2020139575A JP7451349B2 (ja) 2019-08-21 2020-08-20 ネットワークを介して複数のユーザ端末と通信するネットワークサーバおよびその動作方法
US16/999,066 US11483392B2 (en) 2019-08-21 2020-08-21 Network server communicating with plurality of user terminals over network and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190102038A KR102208314B1 (ko) 2019-08-21 2019-08-21 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR102208314B1 true KR102208314B1 (ko) 2021-01-27

Family

ID=74238661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190102038A KR102208314B1 (ko) 2019-08-21 2019-08-21 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US11483392B2 (ko)
JP (1) JP7451349B2 (ko)
KR (1) KR102208314B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110067630A (ko) * 2009-12-15 2011-06-22 주식회사 엔씨소프트 온라인 게임 서비스를 위한 불량유저 모니터링 시스템 및 그 방법
KR20130040049A (ko) * 2011-10-13 2013-04-23 주식회사 네오플 비정상 계정 검출 장치 및 방법
KR20130058216A (ko) * 2011-11-25 2013-06-04 (주)네오위즈게임즈 캐릭터의 게임 플레이 영상을 녹화하는 방법 및 서버
KR101791951B1 (ko) * 2016-09-08 2017-11-02 고려대학교 산학협력단 안드로이드 os 기반의 매크로 탐지방법
KR101915802B1 (ko) * 2017-06-21 2018-11-06 넷마블 주식회사 매크로 프로그램 탐지 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8302127B2 (en) * 2000-09-25 2012-10-30 Thomson Licensing System and method for personalized TV
US20080126828A1 (en) * 2006-06-07 2008-05-29 Janice Marie Girouard Dynamic enablement and customization of tracing information in a data processing system
US20150363478A1 (en) * 2008-07-11 2015-12-17 Michael N. Haynes Systems, Devices, and/or Methods for Managing Data
JP2010108469A (ja) 2008-10-01 2010-05-13 Sky Co Ltd 操作監視システム及び操作監視プログラム
AU2012261936B2 (en) 2011-06-01 2014-06-26 Gamblit Gaming, Llc Systems and methods for regulated hybrid gaming
SG11201402176TA (en) 2011-11-10 2014-06-27 Gamblit Gaming Llc Anti-cheating hybrid game
JP5936748B1 (ja) 2015-05-20 2016-06-22 株式会社Cygames 情報処理システム、サーバ及びプログラム、並びに端末及びプログラム
US10790054B1 (en) * 2016-12-07 2020-09-29 Medtronic Minimed, Inc. Method and apparatus for tracking of food intake and other behaviors and providing relevant feedback

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110067630A (ko) * 2009-12-15 2011-06-22 주식회사 엔씨소프트 온라인 게임 서비스를 위한 불량유저 모니터링 시스템 및 그 방법
KR20130040049A (ko) * 2011-10-13 2013-04-23 주식회사 네오플 비정상 계정 검출 장치 및 방법
KR20130058216A (ko) * 2011-11-25 2013-06-04 (주)네오위즈게임즈 캐릭터의 게임 플레이 영상을 녹화하는 방법 및 서버
KR101791951B1 (ko) * 2016-09-08 2017-11-02 고려대학교 산학협력단 안드로이드 os 기반의 매크로 탐지방법
KR101915802B1 (ko) * 2017-06-21 2018-11-06 넷마블 주식회사 매크로 프로그램 탐지 방법 및 장치

Also Published As

Publication number Publication date
US20210058491A1 (en) 2021-02-25
JP2021034051A (ja) 2021-03-01
US11483392B2 (en) 2022-10-25
JP7451349B2 (ja) 2024-03-18

Similar Documents

Publication Publication Date Title
JP5976780B2 (ja) 適応通知
US20160217491A1 (en) Devices and methods for preventing user churn
WO2018170454A2 (en) Using different data sources for a predictive model
US9940187B2 (en) Nexus determination in a computing device
US20170091335A1 (en) Search method, server and client
US20160371366A1 (en) Contact Management Method and Apparatus
US10536556B2 (en) Automation of browsing mode switching
CN109213857A (zh) 一种欺诈行为识别方法和装置
US10922193B2 (en) Data backup method, storage medium, and terminal
CN115841366B (zh) 物品推荐模型训练方法、装置、电子设备及存储介质
CN112384888A (zh) 基于上下文状态的用户界面格式适应
CN116762315A (zh) 利用人工智能自动修复安全问题的技术
US11568081B2 (en) Secure and private hyper-personalization system and method
WO2015003607A1 (en) Systems and methods for filtering microblogs
CN105893624A (zh) 一种数据显示方法以及系统
KR102208314B1 (ko) 네트워크를 통해 복수의 사용자 단말기들과 통신하는 네트워크 서버 및 그것의 동작 방법
CN116307394A (zh) 产品用户体验评分方法、装置、介质及设备
CN115330522A (zh) 基于聚类的信用卡审批方法、装置、电子设备和介质
US9633227B2 (en) Method, apparatus, and system of detecting unauthorized data modification
US20180068324A1 (en) Outputting content based on interests of other users
CN109101153B (zh) 一种悬浮通知的显示方法及移动终端
CN111897709A (zh) 监控用户的方法、装置、电子设备及介质
CN113807403A (zh) 模型训练的方法、装置、计算机设备及存储介质
CN115907812A (zh) 用户分类方法、装置、存储介质及电子设备
CN114301864A (zh) 对象识别方法、装置、存储介质及服务器

Legal Events

Date Code Title Description
GRNT Written decision to grant