KR102287483B1 - Data sharding system, data sharding method, and program stored in a recording medium - Google Patents

Data sharding system, data sharding method, and program stored in a recording medium Download PDF

Info

Publication number
KR102287483B1
KR102287483B1 KR1020200168822A KR20200168822A KR102287483B1 KR 102287483 B1 KR102287483 B1 KR 102287483B1 KR 1020200168822 A KR1020200168822 A KR 1020200168822A KR 20200168822 A KR20200168822 A KR 20200168822A KR 102287483 B1 KR102287483 B1 KR 102287483B1
Authority
KR
South Korea
Prior art keywords
information
data
query
server
country
Prior art date
Application number
KR1020200168822A
Other languages
Korean (ko)
Inventor
김근석
Original Assignee
김근석
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김근석 filed Critical 김근석
Priority to KR1020200168822A priority Critical patent/KR102287483B1/en
Priority to KR1020210101705A priority patent/KR20220079416A/en
Application granted granted Critical
Publication of KR102287483B1 publication Critical patent/KR102287483B1/en
Priority to EP21901016.2A priority patent/EP4258129A1/en
Priority to US18/039,936 priority patent/US20240004890A1/en
Priority to PCT/KR2021/018051 priority patent/WO2022119328A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A data sharding system according to one embodiment of the present invention comprises: a server that receives and processes a request from a client terminal, and detects country information and region information related to the request; and a database part that connects to the server through a network, receives a query for the request from the server, and transmits a response for the query to the server, wherein the query comprises a shard key determined based on the country information and the region information related to the request, and the database part may comprise a plurality of data nodes wherein the query is distributed and processed based on the shard key. Therefore, the present invention is capable of improving a speed for data processing.

Description

데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램 {DATA SHARDING SYSTEM, DATA SHARDING METHOD, AND PROGRAM STORED IN A RECORDING MEDIUM}Data sharding system, data sharding method and program stored on recording medium {DATA SHARDING SYSTEM, DATA SHARDING METHOD, AND PROGRAM STORED IN A RECORDING MEDIUM}

본 발명은 데이터 분산 처리 기술에 관한 것으로서, 더욱 상세하게는, 데이터를 분산하여 처리할 수 있는 데이터 샤딩 시스템, 데이터 샤딩 방법 및 기록 매체에 저장된 프로그램에 관한 것이다.The present invention relates to a data distribution processing technology, and more particularly, to a data sharding system capable of distributing and processing data, a data sharding method, and a program stored in a recording medium.

최근 비즈니스 환경에서 폭발적인 데이터의 증가로 데이터 분산 처리 및 저장 기술과 함께 발전된 분산 데이터베이스 기술이 각광을 받고 있다. 다양한 데이터 처리 기술 가운데 샤딩(Sharding) 기술은 대용량의 데이터를 나누어 처리하므로서 고성능의 시스템을 도입하지 않고서도 저가의 시스템을 이용한 Scale out 방식의 시스템 증설로 대용량 데이터 처리를 할 수 있다.Recently, with the explosive increase of data in the business environment, distributed database technology developed along with data distributed processing and storage technology is in the spotlight. Among various data processing technologies, sharding technology divides and processes large amounts of data, so it is possible to process large amounts of data by expanding a scale-out system using a low-cost system without introducing a high-performance system.

데이터베이스 분야에서 샤딩은 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법을 의미하며, 샤드(shard)라고 부르는 각각의 개별 파티션이 있는 하나의 데이터베이스의 수평적인 파티셔닝을 의미한다. 샤딩을 수행하는 경우 하나의 큰 데이터베이스를 관리하는 것에 비하여, 각 샤드가 연산 자원의 지원을 더 많이 받을 수 있으므로, 데이터 처리 속도가 빨라지고, 이중화 기술이 적용되는 경우 하나의 샤드에 장애가 발생하더라도 다른 샤드에서 서비스를 제공할 수 있으므로 신뢰도가 향상되는 등의 효과가 있다.In the database field, sharding refers to a method of distributing and retrieving data in a physically different database in a horizontally partitioned manner, and it refers to the horizontal partitioning of a single database with each individual partition called a shard. When sharding is performed, compared to managing one large database, each shard can receive more computational resources, so the data processing speed is faster. Since the service can be provided from

한편, 호텔스닷컴 또는 에어비앤비 등의 숙박 예약 사이트의 경우에 전세계의 호텔, 리조트, 민박 등에 대한 공급자의 서비스에 대한 정보를 제공한다. 전세계를 대상으로 하는 글로벌 예약 사이트의 경우에, 대량의 데이터를 처리해야할 필요가 있다. 유저는 숙박 예약 사이트에서 제공되는 정보를 이용하여 자신이 희망하는 숙박 스타일에 적합한 공급자의 서비스를 예약할 수 있다. On the other hand, in the case of accommodation reservation sites such as Hotels.com or Airbnb, information on the services of suppliers for hotels, resorts and guesthouses around the world is provided. In the case of a global reservation site that covers the world, it is necessary to process a large amount of data. The user can use the information provided by the lodging reservation site to reserve the service of a provider suitable for his/her desired lodging style.

데이터베이스를 샤딩하는 다양한 방법이 사용될 수 있다. 샤딩을 더 쉽게 만들기 위하여 상이한 샤드 저장소에 걸친 샤딩 및 부하 균형을 자동화하는 파티셔닝된 데이터베이스 아키텍처가 출현하였다. 종래 기술의 아키텍처는 데이터베이스를 저장하는 분산 컴퓨팅 시스템의 샤드 저장소에 데이터를 할당하기 위하여 키 기반 해시(key-based hash) 파티셔닝 또는 레인지(Range) 파티셔닝을 사용한다. Various methods of sharding a database can be used. To make sharding easier, partitioned database architectures have emerged that automate sharding and load balancing across different shard repositories. The prior art architecture uses key-based hash partitioning or Range partitioning to allocate data to the shard storage of a distributed computing system that stores the database.

그러나, 이와 같은 키 기반 해시 파티셔닝 또는 범위 파티셔닝의 문제는 대형 데이터베이스 시스템에서 키 기반의 해시의 계산은 상당한 계산력과 시간을 필요로 하므로 이와 같은 키의 데이터에 대한 요청을 다룰 때 처리 속도가 늦어진다는 문제가 있다. 또한, 복수의 샤드 저장소에 데이터가 할당되어 있는 경우에, 어느 샤드 저장소에 조회와 관련된 데이터가 저장되어 있는지 확인하기 위해서는 모든 샤드 저장소를 스캔하거나 또는 모든 샤드 저장소에 저장된 데이터를 인덱싱할 필요가 있었다.However, the problem of such key-based hash partitioning or range partitioning is that in a large database system, the calculation of a key-based hash requires considerable computational power and time, so the processing speed is slow when handling requests for data of such a key. there is In addition, when data is allocated to multiple shard storages, it was necessary to scan all shard storages or index the data stored in all shard storages in order to check which shard storages store the data related to the inquiry.

본 발명이 해결하고자 하는 과제는, 상술한 종래 기술의 문제점을 해결하기 위한 것으로서, 데이터 처리 속도가 향상되고 별도의 데이터 인덱싱 작업을 수행하지 않고도 조희하는 데이터의 저장 위치를 용이하게 찾을 수 있는 데이터 사딩 시스템, 데이터 샤딩 방법 및 기록 매체에 기록된 프로그램을 제공하는 것이다.The problem to be solved by the present invention is to solve the problems of the prior art described above. Data sharding that improves the data processing speed and can easily find the storage location of the data to be played without performing a separate data indexing operation To provide a system, a data sharding method, and a program recorded on a recording medium.

상술한 과제를 해결하기 위한 수단으로서, 본 발명의 일 실시형태에 따른 데이터 샤딩 시스템은, 클라이언트 단말로부터의 요청을 수신하여 처리하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 서버; 및 상기 서버와 네트워크를 통하여 연결되고, 상기 서버로부터의 상기 요청에 대한 쿼리를 수신하고, 상기 쿼리에 대한 응답을 상기 서버에 전송하는 데이터베이스부를 포함하고, 상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 데이터베이스부는 상기 쿼리가 상기 샤드키를 기준으로 분산하여 처리되는 복수의 데이터 노드를 포함할 수 있다.As a means for solving the above problems, the data sharding system according to an embodiment of the present invention, a server for receiving and processing a request from a client terminal, and detecting country information and region information related to the request; and a database unit connected to the server through a network, receiving a query for the request from the server, and transmitting a response to the query to the server, wherein the query includes country information and region related to the request. A shard key determined based on information may be included, and the database unit may include a plurality of data nodes in which the query is distributed and processed based on the shard key.

일 실시예에서, 상기 데이터베이스부는 상기 서버로부터의 상기 쿼리를 분석하여, 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산 처리하는 메타 노드를 더 포함하고, 상기 메타 노드는 상기 쿼리를 상기 샤드키에 대응하는 데이터 노드에 전송하여 상기 쿼리에 대한 응답을 취득할 수 있다.In one embodiment, the database unit further comprises a meta node that analyzes the query from the server and distributes the query to a plurality of data nodes based on the shard key, and the meta node processes the query as the shard key. A response to the query can be obtained by sending it to the data node corresponding to the shard key.

일 실시예에서, 상기 샤드키는 국가 정보 및 지역 정보에 기초하여 결정되는 장비 코드를 포함하고, 상기 서버는 국가 정보, 지역 정보 및 대응하는 장비 코드에 관한 룩업 테이블을 포함할 수 있다.In an embodiment, the shard key may include a device code determined based on country information and region information, and the server may include a lookup table for country information, region information, and a corresponding equipment code.

일 실시예에서, 상기 서버는 상기 클라이언트 단말의 IP 어드레스 정보 또는 상기 클라이언트 단말에 의해 입력된 위치 정보에 기초하여 상기 국가 정보 및 지역 정보를 검출할 수 있다.In an embodiment, the server may detect the country information and the region information based on IP address information of the client terminal or location information input by the client terminal.

일 실시예에서, 상기 서버는, 상기 클라이언트 단말로부터 수신된 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출부; 검출된 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블에 기초하여 결정하는 장비 코드 결정부; 및 상기 장비 코드를 샤드키로 포함하는 쿼리를 상기 데이터베이스부에 전송하고, 상기 데이터베이스부로부터의 응답을 상기 클라이언트 단말에 전송하는 데이터 전송부를 포함할 수 있다.In an embodiment, the server may include: a region information detection unit configured to detect country information and region information related to a request received from the client terminal; an equipment code determining unit that determines an equipment code corresponding to the detected country information and region information based on a lookup table; and a data transmitter configured to transmit a query including the equipment code as a shard key to the database unit, and transmit a response from the database unit to the client terminal.

일 실시예에서, 국가별로 상이한 장비 코드가 할당될 수 있다. 또는, 동일한 국가 내의 복수의 지역에 대하여 동일한 장비 코드가 할당될 수 있다. 또는, 동일한 국가 내의 상이한 지역에 대하여 다른 장비 코드가 할당될 수 있다.In one embodiment, different equipment codes may be assigned to different countries. Alternatively, the same equipment code may be assigned to a plurality of regions within the same country. Alternatively, different equipment codes may be assigned to different regions within the same country.

상술한 과제를 해결하기 위한 수단으로서, 본 발명의 다른 실시형태에 따른 데이터 샤딩 방법은, 서버와 데이터베이스부를 포함하는 데이터 샤딩 시스템에 의해 수행되는 데이터 샤딩 방법으로서, 상기 서버가 클라이언트 단말로부터의 요청을 수신하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출 단계; 상기 서버가 상기 요청에 대한 쿼리를 데이터베이스부에 전송하는 쿼리 전송 단계; 및 상기 데이터베이스부가 상기 쿼리를 수신하고, 상기 쿼리를 분석하여 샤드키를 기준으로 데이터를 복수의 데이터 노드에 분산 처리하는 분산 처리 단계를 포함하고, 상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 데이터베이스부는 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산하여 처리할 수 있다.As a means for solving the above problems, a data sharding method according to another embodiment of the present invention is a data sharding method performed by a data sharding system including a server and a database unit, wherein the server receives a request from a client terminal. a region information detection step of receiving and detecting country information and region information related to the request; a query transmission step in which the server transmits a query for the request to a database unit; and a distributed processing step of receiving the query by the database unit, analyzing the query, and distributing the data to a plurality of data nodes based on the shard key, wherein the query includes country information and regional information related to the request. It includes a shard key determined based on the shard key, and the database unit may distribute and process the query to a plurality of data nodes based on the shard key.

상술한 과제를 해결하기 위한 수단으로서, 본 발명의 다른 실시형태에 따른 프로그램은, 상기 데이터 샤딩 방법을 컴퓨터에 의해 수행하기 위해 기록 매체에 저장된 프로그램일 수 있다.As a means for solving the above problems, a program according to another embodiment of the present invention may be a program stored in a recording medium to perform the data sharding method by a computer.

본 발명의 일 실시예에 따르면, 쿼리가 클라이언트 단말의 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 상기 쿼리가 상기 샤드키를 기준으로 복수의 데이터 노드에 분산하여 처리되는 구성을 포함함으로써, 데이터 처리 속도가 향상되고 별도의 데이터 인덱싱 작업을 수행하지 않고도 조회하는 데이터의 저장 위치를 용이하게 찾을 수 있는 데이터 사딩 시스템, 데이터 샤딩 방법 및 기록 매체에 기록된 프로그램이 제공될 수 있다.According to an embodiment of the present invention, a query includes a shard key determined based on country information and region information related to a request from a client terminal, and the query is processed by distributing it to a plurality of data nodes based on the shard key A data sharding system, a data sharding method, and a program recorded on a recording medium that can improve data processing speed and easily find the storage location of the data to be inquired without performing a separate data indexing operation will be provided. can

도 1은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템의 구성 및 네트워크 연결 관계를 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템의 서버의 구성을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템의 룩업 테이블을 도시하는 도면이다.
도 4a는 종래 기술의 데이터 샤딩 방식인 해시(hash) 함수 기반의 샤딩 알고리즘을 설명하는 도면이다.
도 4b는 종래 기술의 데이터 샤딩 방식인 키 범위(Key Range) 기반의 샤딩 알고리즘을 설명하는 도면이다.
도 4c는 본 발명의 일 실시예에 따른 샤딩 알고리즘을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템에 의해 수행되는 데이터 샤딩 방법의 프로세스를 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 코드 분산 처리 서버의 네트워크 연결 관계를 도시하는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 코드 분산 처리 서버의 구성을 나타내는 블록도이다.
도 8은 본 발명의 일 실시예에 따른 코드 분산 처리 서버 또는 데이터베이스에서 사용되는 코드 정보와 각 코드간의 계층적 관계를 예시하는 도면이다.
도 9는 수요자가 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)에 접속한 경우의 화면의 예시이다.
도 10은 한국 유저가 "음식" 메뉴를 클릭한 경우에 표시되거나, 또는 다른 나라의 유저가 "음식" 메뉴를 클릭한 후에 한국의 위치 정보를 입력한 경우에 표시되는 화면을 일예를 도시한다.
도 11은 한국 유저가 "음식" 메뉴를 클릭한 후에 미국의 위치 정보를 입력한 경우, 또는 미국 유저가 "음식" 메뉴를 클릭한 경우에 표시되는 화면을 일예를 도시한다.
도 12는 본 발명의 일 실시예에 따른 코드 분산 처리 장치에 의해 수행되는 코드 분산 처리 방법의 흐름도이다.
1 is a block diagram illustrating a configuration and network connection relationship of a data sharding system according to an embodiment of the present invention.
2 is a block diagram showing the configuration of a server of a data sharding system according to an embodiment of the present invention.
3 is a diagram illustrating a lookup table of a data sharding system according to an embodiment of the present invention.
4A is a diagram for explaining a sharding algorithm based on a hash function, which is a data sharding method of the prior art.
4B is a diagram for explaining a sharding algorithm based on a key range, which is a data sharding method of the prior art.
4C is a diagram for explaining a sharding algorithm according to an embodiment of the present invention.
5 is a flowchart illustrating a process of a data sharding method performed by a data sharding system according to an embodiment of the present invention.
6 is a block diagram illustrating a network connection relationship of a code distribution processing server according to an embodiment of the present invention.
7 is a block diagram showing the configuration of a code distribution processing server according to an embodiment of the present invention.
8 is a diagram illustrating a hierarchical relationship between code information and each code used in a code distributed processing server or database according to an embodiment of the present invention.
9 is an example of a screen when a consumer accesses the code distribution processing server 60 according to an embodiment of the present invention.
FIG. 10 shows an example of a screen displayed when a Korean user clicks on a “food” menu or when a user of another country inputs Korean location information after clicking on a “food” menu.
11 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu and then inputs location information in the United States, or when the American user clicks on the “food” menu.
12 is a flowchart of a code distribution processing method performed by a code distribution processing apparatus according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다The terms used in the present invention have been selected as currently widely used general terms as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than the name of a simple term.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.In the entire specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, terms such as "...unit" and "module" described in the specification mean a unit that processes at least one function or operation, which may be implemented as hardware or software, or a combination of hardware and software. .

아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those of ordinary skill in the art can easily carry out the embodiments of the present invention. However, the present invention may be embodied in many different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

도 1은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)의 구성 및 네트워크 연결 관계를 도시하는 블록도이다.1 is a block diagram illustrating a configuration and network connection relationship of a data sharding system 1 according to an embodiment of the present invention.

도 1을 참조하면, 데이터 샤딩 시스템(1)은 서버(10) 및 데이터베이스부(20)를 포함할 수 있다. 서버(10), 데이터베이스부(20) 및 복수의 단말(30)은 통신 네트워크(N)를 통하여 연결되어 있다. 서버(10), 데이터베이스부(20) 및 복수의 클라이언트 단말(30)은 통신 네트워크(N)를 이용하여 데이터를 송신 및 수신할 수 있다.Referring to FIG. 1 , the data sharding system 1 may include a server 10 and a database unit 20 . The server 10 , the database unit 20 , and the plurality of terminals 30 are connected through a communication network N . The server 10 , the database unit 20 , and the plurality of client terminals 30 may transmit and receive data using the communication network N .

네트워크(N)는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크(N)의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, WiFi 등이 포함되나 이에 한정되지는 않는다. The network (N) refers to a connection structure capable of exchanging information between each node, such as terminals and servers, and an example of such a network (N) is the Internet, a local area network (LAN), These include, but are not limited to, Wireless Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), 3G, 4G, LTE, WiFi, and the like.

클라이언트 단말(30)은, 네트워크(N)를 통해 원격지의 서버나 단말에 접속할 수 있는 컴퓨터로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 노트북, 데스크톱(Desktop), 랩톱(Laptop) 등을 포함할 수 있다. 클라이언트 단말(30)은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(smartphone), 스마트 패드(smartpad), 타블렛 PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.The client terminal 30 may be implemented as a computer capable of accessing a remote server or terminal through the network N. Here, the computer may include, for example, a laptop computer, a desktop computer, and a laptop computer. The client terminal 30 is, for example, a wireless communication device that ensures portability and mobility, and includes a Personal Communication System (PCS), a Global System for Mobile communications (GSM), a Personal Digital Cellular (PDC), and a Personal Handyphone System (PHS). , PDA (Personal Digital Assistant), IMT (International Mobile Telecommunication)-2000, CDMA (Code Division Multiple Access)-2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet) terminal, smart phone ( smartphone), a smart pad, a tablet PC, and the like, may include all kinds of handheld-based wireless communication devices.

서버(10)는 클라이언트 단말(30)로부터의 요청(Request)을 수신하여 처리하고, 요청과 관련된 국가 정보 및 지역 정보를 검출할 수 있다. 일 실시예에서, 서버(10)는 웹 애플리케이션 서버(Web Application Server), 웹 컨테이너(Web Container) 또는 서블릿 컨테이너(Servlet Container)일 수 있다. 서버(10)는 JSP 또는 Servlet이 실행가능한 구동 환경을 제공할 수 있다.The server 10 may receive and process a request from the client terminal 30 , and detect country information and region information related to the request. In one embodiment, the server 10 may be a web application server (Web Application Server), a web container (Web Container) or a servlet container (Servlet Container). The server 10 may provide a running environment in which JSP or Servlet can be executed.

서버(10)가 클라이언트 단말(30)로부터 요청(Request)을 받으면, 서버(10)는 클라이언트 단말(30)로부터의 요청과 관련된 서블릿(Servlet)을 메모리에 올리고, 해당 서블릿에 대한 쓰레드(thread)를 생성할 수 있다. 쓰레드는 서블릿의 service() 메쏘드를 호출하고, service() 메쏘드는 요청에 따라 doGet() 또는 doPost() 메쏘드를 호출할 수 있다. doGet() 또는 doPost() 메쏘드는 인자에 맞게 생성된 동적 페이지를 응답으로서 클라이언트 단말(30)에 직접 전달하거나 또는 웹 서버를 경유하여 클라이언트 단말(30)에 전달할 수 있다.When the server 10 receives a request from the client terminal 30 , the server 10 loads a servlet related to the request from the client terminal 30 in memory, and a thread for the servlet can create The thread calls the servlet's service() method, and the service() method can call the doGet() or doPost() method according to the request. The doGet() or doPost() method may directly transmit a dynamic page generated according to an argument to the client terminal 30 as a response or to the client terminal 30 via a web server.

서버(10)는 클라이언트 단말(30)의 IP 어드레스 정보 또는 클라이언트 단말(30)에 의해 입력된 위치 정보에 기초하여 국가 정보 및 지역 정보를 검출할 수 있다. 클라이언트 단말(30)이 서버(10)에 접속하면 서버(10)는 클라이언트 단말(30)의 IP 어드레스 정보를 취득할 수 있다. IP 어드레스 정보로부터 해당 IP 어드레스의 등록된 주소를 검출할 수 있고, 검출된 주소로부터 클라이언트 단말(30)이 접속한 국가 정보 및 지역(도시) 정보가 파악될 수 있다.The server 10 may detect country information and region information based on IP address information of the client terminal 30 or location information input by the client terminal 30 . When the client terminal 30 accesses the server 10 , the server 10 may acquire IP address information of the client terminal 30 . A registered address of the corresponding IP address may be detected from the IP address information, and country information and region (city) information accessed by the client terminal 30 may be identified from the detected address.

클라이언트 단말(30)에 의해 입력된 위치 정보는 예를 들면, 클라이언트 단말(30)이 서버(10)에 접속하는 경우에, 서버(10)가 제공하는 웹 페이지상에 클라이언트 단말(30)의 유저가 숙박 예약, 음식 배달, 뷰티 서비스 예약 등을 위해 웹 페이지상의 주소 입력란에 입력한 주소로부터 파악될 수 있다. 또는, 클라이언트 단말(30)의 유저가 웹 페이지상의 지도 표시 화면을 이동 또는 확대/축소하여 디스플레이되는 국가 및 지역으로부터 파악될 수 있다. The location information input by the client terminal 30 is, for example, when the client terminal 30 connects to the server 10 , the user of the client terminal 30 is displayed on a web page provided by the server 10 . may be identified from the address entered in the address input field on the web page for accommodation reservation, food delivery, beauty service reservation, and the like. Alternatively, the user of the client terminal 30 may move or enlarge/reduce the map display screen on the web page to be identified from the displayed country and region.

데이터베이스부(20)는 서버(10)로부터의 요청에 대한 쿼리(Query)를 수신하고, 쿼리에 대한 응답(Response)을 서버(10)에 전송할 수 있다. 데이터베이스부(20)는 메타 노드(210) 및 복수의 데이터 노드(230A~230C)를 포함할 수 있다. The database unit 20 may receive a query for a request from the server 10 , and transmit a response to the query to the server 10 . The database unit 20 may include a meta node 210 and a plurality of data nodes 230A to 230C.

쿼리는 서버(10)로부터의 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키(shardkey)를 포함할 수 있다. 샤드키를 기준으로 쿼리가 실행되는 데이터 노드가 결정될 수 있다.The query may include a shardkey determined based on country information and region information related to the request from the server 10 . A data node on which a query is executed may be determined based on the shard key.

샤드키는 국가 정보 및 지역 정보에 따라 미리 결정된 장비 코드를 포함할 수 있다. 장비 코드는 서버(10)에 저장된 룩업 테이블에 의해 결정될 수 있고, 룩업 테이블은 어떤 국가의 어떤 지역이 어떤 장비에 할당되는지를 나타내는 국가 코드/지역 코드/장비 코드를 포함하는 복수의 데이터 세트로 구성될 수 있다.The shard key may include a predetermined equipment code according to country information and regional information. The equipment code may be determined by a look-up table stored in the server 10, and the look-up table consists of a plurality of data sets including country codes/region codes/equipment codes indicating which equipment is assigned to which equipment in which country. can be

데이터베이스부(20)에서는 쿼리가 샤드키를 기준으로 분산되어 복수의 데이터 노드(230A~230C)에서 처리될 수 있다. 메타 노드(210)는 서버(10)로부터의 쿼리를 분석하여, 샤드키를 기준으로 쿼리를 복수의 데이터 노드(230A~230C)에 분산 처리를 시킬 수 있다. 메타 노드(210)는 쿼리를 샤드키에 대응하는 데이터 노드(230)에 전송하여 쿼리에 대한 응답을 취득할 수 있다.In the database unit 20, queries may be distributed based on the shard key and processed in the plurality of data nodes 230A to 230C. The meta node 210 may analyze the query from the server 10 and distribute the query to the plurality of data nodes 230A to 230C based on the shard key. The meta node 210 may transmit a query to the data node 230 corresponding to the shard key to obtain a response to the query.

도 2는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)의 서버(10)의 구성을 나타내는 블록도이다. 2 is a block diagram showing the configuration of the server 10 of the data sharding system 1 according to an embodiment of the present invention.

도 2를 참조하면, 서버(10)는 지역 정보 검출부(110), 장비 코드 결정부(120), 데이터 전송부(130) 및 룩업 테이블(140)를 포함할 수 있다.Referring to FIG. 2 , the server 10 may include a region information detector 110 , an equipment code determiner 120 , a data transmitter 130 , and a lookup table 140 .

지역 정보 검출부(100)는 클라이언트 단말(30)로부터 수신된 요청과 관련된 국가 정보 및 지역 정보를 검출할 수 있다. 수신된 요청과 관련된 국가 정보 및 지역 정보는 클라이언트 단말(30)의 IP 어드레스 정보 또는 클라이언트 단말(30)에 의해 입력된 위치 정보로부터 검출될 수 있다. The region information detection unit 100 may detect country information and region information related to a request received from the client terminal 30 . Country information and region information related to the received request may be detected from IP address information of the client terminal 30 or location information input by the client terminal 30 .

클라이언트 단말(30)로부터의 명확한 위치 입력이 없는 경우에(예를 들면, 웹 페이지에 최초 접속한 경우), 지역 정보 검출부(100)는 클라이언트 단말(30)의 IP 어드레스 정보로부터 해당 IP 어드레스의 등록된 주소를 검출할 수 있고, 검출된 주소로부터 클라이언트 단말(30)이 접속한 국가 정보 및 지역(도시) 정보가 파악될 수 있다.When there is no clear location input from the client terminal 30 (eg, when a web page is accessed for the first time), the area information detection unit 100 registers the corresponding IP address from the IP address information of the client terminal 30 . address can be detected, and country information and region (city) information accessed by the client terminal 30 can be identified from the detected address.

클라이언트 단말(30)로부터의 명확한 위치 입력이 있는 경우에(예를 들면, 서버(10)가 제공하는 웹 페이지상에 클라이언트 단말(30)의 유저가 숙박 예약, 음식 배달, 뷰티 서비스 예약 등을 위해 웹 페이지상의 주소 입력하는 경우 또는 클라이언트 단말(30)의 유저가 웹 페이지상의 지도 표시 화면을 이동 또는 확대/축소하는 경우), 클라이언트 단말(30)에 의해 입력된 위치 정보로부터 국가 정보 및 지역 정보가 파악될 수 있다.When there is a clear location input from the client terminal 30 (for example, the user of the client terminal 30 on the web page provided by the server 10 for accommodation reservation, food delivery, beauty service reservation, etc. When entering an address on a web page or when a user of the client terminal 30 moves or enlarges/reduces a map display screen on a web page), country information and region information are obtained from the location information input by the client terminal 30 can be comprehended.

장비 코드 결정부(120)는 검출된 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블(140)에 기초하여 결정할 수 있다. 룩업 테이블(140)은 국가 코드, 국가명, 지역 코드, 지역명, 장비 코드의 대응관계를 나타내는 데이터를 포함할 수 있다.The equipment code determiner 120 may determine an equipment code corresponding to the detected country information and region information based on the lookup table 140 . The lookup table 140 may include data indicating a correspondence between a country code, a country name, a region code, a region name, and an equipment code.

데이터 전송부(130)는 장비 코드를 샤드키로 포함하는 쿼리를 데이터베이스부(20)에 전송하고, 데이터베이스부(20)로부터의 응답을 클라이언트 단말(30)에 전송할 수 있다.The data transmission unit 130 may transmit a query including the equipment code as a shard key to the database unit 20 , and transmit a response from the database unit 20 to the client terminal 30 .

도 3은 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)의 룩업 테이블을 도시하는 도면이다.3 is a diagram illustrating a lookup table of the data sharding system 1 according to an embodiment of the present invention.

도 3을 참조하면, 룩업 테이블은 국가 코드, 국가명, 지역 코드, 지역명 및 장비코드의 대응 관계를 나타내는 데이터 세트를 포함할 수 있다. 예를 들면, 미국과 관련된 데이터를 4개의 데이터 노드에 분산 저장하거나, 미국과 관련된 쿼리를 4개의 데이터 노드에서 분산 실행하는 경우에, 미국의 복수의 지역을 통합하여 해당 지역들을 하나의 장비가 담당하는 것으로 할 수 있다. Referring to FIG. 3 , the lookup table may include a data set indicating a correspondence relationship between a country code, a country name, a region code, a region name, and an equipment code. For example, if data related to the United States is distributed and stored in 4 data nodes or when queries related to the US are distributed and executed on 4 data nodes, a single device is responsible for the regions by integrating multiple regions of the US it can be done by

예를 들면, Valdez, Vallecitos, Vaughn, Velarde 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA1에 대응하는 데이터 노드로 샤딩되고, Villanueva, White Sands, Williamsburg, Zuni, Alamo 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA2에 대응하는 데이터 노드로 샤딩되며, Amargosa Valley, Arrolime, Austin, Baker 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA3에 대응하는 데이터 노드로 샤딩되고, Khmelevoye, Boulder City, Bunkerville, Caliente, Carson City, Crystal Bay 지역에 관련된 데이터 또는 쿼리는 장비 코드 NA4에 대응하는 데이터 노드로 샤딩될 수 있다. 이와 같이, 동일한 국가 내의 복수의 지역에 대하여 동일한 장비 코드가 할당될 수 있다.For example, data or queries pertaining to regions Valdez, Vallecitos, Vaughn, and Velarde are sharded into data nodes corresponding to equipment code NA1, and data or queries pertaining to regions Villanueva, White Sands, Williamsburg, Zuni, and Alamo are unit code NA2. Data or queries related to the Amargosa Valley, Arrolime, Austin, and Baker regions are sharded into the data nodes corresponding to equipment code NA3, Khmelevoye, Boulder City, Bunkerville, Caliente, Carson City, Crystal Bay Region-related data or queries may be sharded into data nodes corresponding to equipment code NA4. In this way, the same equipment code may be assigned to a plurality of regions within the same country.

또는, 동일한 국가 내의 상이한 지역(예를 들면, 미국의 경우에 State 범위 또는 한국의 경우에 특별시/광역시/도 범위)에 대하여 다른 장비 코드가 할당될 수 있다. 또한, 국가별로 상이한 장비 코드가 할당될 수 있다.Alternatively, different equipment codes may be assigned to different regions within the same country (eg, State scope in the United States or special city/metropolitan/province scope in Korea). Also, different equipment codes may be assigned for each country.

도 4a 및 도 4b는 종래 기술의 데이터 샤딩 방식을 설명하는 도면이고, 도 4c는 본 발명의 일 실시예에 따른 데이터 샤딩 방식을 설명하는 도면이다.4A and 4B are diagrams illustrating a data sharding method of the prior art, and FIG. 4C is a diagram illustrating a data sharding method according to an embodiment of the present invention.

도 4a를 참조하여, 종래 기술의 데이터 샤딩 방식인 해시(hash) 함수 기반의 샤딩 알고리즘에 대하여 설명한다. ID No.1 부터 ID No.8 까지의 데이터 세트가 메타 노드(310)에 수신되면, 메타 노드(310)에서는 샤딩 함수에 의해 각 데이터 세트를 데이터 노드 1, 데이터 노드 2 및 데이터 노드 3에 샤딩한다.A sharding algorithm based on a hash function, which is a data sharding method of the prior art, will be described with reference to FIG. 4A. When the data sets from ID No.1 to ID No.8 are received by the meta node 310, the meta node 310 shards each data set to data node 1, data node 2, and data node 3 by a sharding function. do.

메타 노드(310)의 샤딩 함수는 ID No.를 샤드키로 하여 "ID No.%3"(ID No.를 3으로 나누었을 때의 나머지)의 값이 "1"인 경우에, 해당 데이터는 데이터 노드 1(330A)로 샤딩된다. "ID No.%3"의 값이 "2"인 경우에, 해당 데이터는 데이터 노드 2(330B)로 샤딩된다. "ID No.%3"의 값이 "0"인 경우에, 해당 데이터는 데이터 노드 3(330C)으로 샤딩된다.The sharding function of the meta node 310 uses the ID No. as the shard key, and when the value of "ID No. %3" (the remainder when the ID No. is divided by 3) is "1", the corresponding data is data It is sharded to node 1 (330A). When the value of "ID No. %3" is "2", the corresponding data is sharded to data node 2 330B. When the value of "ID No. %3" is "0", the corresponding data is sharded to data node 3 330C.

해시 함수 기반의 샤딩 방식에 따르면, "ID No. 1", "ID No. 4"및 "ID No.7"에 해당하는 데이터가 데이터 노드 1(330A)에 샤딩되고, "ID No. 2", "ID No. 5"및 "ID No.8"에 해당하는 데이터가 데이터 노드 2(330B)에 샤딩되며, "ID No. 3" 및 "ID No. 6"에 해당하는 데이터가 데이터 노드 3(330C)에 샤딩된다.According to the hash function-based sharding method, data corresponding to "ID No. 1", "ID No. 4" and "ID No. 7" are sharded to data node 1 330A, and "ID No. 2" , data corresponding to “ID No. 5” and “ID No. 8” are sharded to data node 2 330B, and data corresponding to “ID No. 3” and “ID No. 6” are sharded to data node 3 sharded to (330C).

이러한 해시 함수 기반의 샤딩 방식에 따르면, 데이터 노드(330A~330C)에 분산 저장되어 있는 데이터의 값 중에서 "data1"와 관련된 데이터를 찾고자 하는 경우에, 메타 노드(310)는 모든 데이터 노드(330A~330C)에 쿼리를 보내어 "data1"을 갖는 데이터 노드 1(330A)로부터 응답을 받을 필요가 있다. 이러한 경우, 데이터 조회 또는 검색시에 모든 데이터 노드에 쿼리를 전송해야 하므로 데이터 처리에 지연이 발생하는 문제점이 있다.According to this hash function-based sharding method, when it is desired to find data related to “data1” among the data values distributed and stored in the data nodes 330A to 330C, the meta node 310 includes all data nodes 330A to 330A. It needs to send a query to 330C to receive a response from data node 1 330A with "data1". In this case, there is a problem in that data processing is delayed because a query must be sent to all data nodes during data inquiry or retrieval.

도 4b를 참조하여, 종래 기술의 데이터 샤딩 방식인 키 범위(Key Range) 기반의 샤딩 알고리즘에 대하여 설명한다. ID No.1 부터 ID No.8 까지의 데이터 세트가 메타 노드(410)에 수신되면, 메타 노드(410)에서는 샤딩 함수에 의해 각 데이터 세트를 데이터 노드 1, 데이터 노드 2 및 데이터 노드 3에 샤딩한다.A sharding algorithm based on a key range, which is a data sharding method of the prior art, will be described with reference to FIG. 4B. When the data sets from ID No.1 to ID No.8 are received by the meta node 410, the meta node 410 shards each data set to data node 1, data node 2, and data node 3 by a sharding function. do.

메타 노드(410)의 샤딩 함수는 ID No.를 샤드키로 하여 ID No.가 3 이하인 경우에 해당 데이터는 데이터 노드 1(430A)로 샤딩된다. ID No.가 4 이상 6 이하인 경우에, 해당 데이터는 데이터 노드 2(430B)로 샤딩된다. ID No.가 7 이상인 경우에, 해당 데이터는 데이터 노드 3(430C)으로 샤딩된다.The sharding function of the meta node 410 uses the ID No. as the shard key, and when the ID No. is 3 or less, the corresponding data is sharded to the data node 1 430A. When the ID No. is 4 or more and 6 or less, the corresponding data is sharded to the data node 2 430B. If the ID No. is 7 or more, the corresponding data is sharded to data node 3 (430C).

키 범위 기반의 샤딩 방식에 따르면, ID No. 1 부터 ID No.3 까지의 데이터가 데이터 노드 1(430A)에 샤딩되고, ID No. 4 부터 ID No.6 까지의 데이터가 데이터 노드 2(430B)에 샤딩되며, ID No. 7 부터 ID No. 8 까지의 데이터가 데이터 노드 3(430C)에 샤딩된다.According to the key range-based sharding method, ID No. Data from 1 to ID No. 3 are sharded to data node 1 430A, and ID No. Data from 4 to ID No. 6 are sharded to data node 2 (430B), and ID No. 7 to ID No. Up to 8 data are sharded to data node 3 430C.

이러한 키 범위 기반의 샤딩 방식에 따르면, 데이터 노드(430A~430C)에 분산 저장되어 있는 데이터의 값 중에서 "data1"에 관련된 데이터를 찾고자 하는 경우에, 메타 노드(410)는 모든 데이터 노드(430A~430C)에 쿼리를 보내어 "data1"을 갖는 데이터 노드 1(430A)로부터 응답을 받을 필요가 있다. 이러한 경우, 데이터 조회 또는 검색시에 모든 데이터 노드에 쿼리를 전송해야 하므로 데이터 처리에 지연이 발생하는 문제점이 있다.According to this key range-based sharding method, when it is desired to find data related to “data1” among the data values distributed and stored in the data nodes 430A to 430C, the meta node 410 includes all data nodes 430A to 430A. It needs to send a query to 430C to receive a response from data node 1 430A with "data1". In this case, there is a problem in that data processing is delayed because a query must be sent to all data nodes during data inquiry or retrieval.

도 4c를 참조하여, 본 발명의 일 실시예에 따른 샤딩 알고리즘으로서, 국가 및 지역 정보에 기초하여 결정된 장비 코드를 샤드키로 하는 샤딩 알고리즘에 대하여 설명한다. ID No.1 부터 ID No.8 까지의 데이터 세트가 메타 노드(210)에 수신되면, 메타 노드(210)에서는 샤딩 함수에 의해 각 데이터 세트를 데이터 노드 1(230A), 데이터 노드 2(230B) 및 데이터 노드 3(230C)에 샤딩한다.With reference to FIG. 4C, as a sharding algorithm according to an embodiment of the present invention, a sharding algorithm using a device code determined based on country and region information as a shard key will be described. When the data sets from ID No. 1 to ID No. 8 are received by the meta node 210, the meta node 210 converts each data set to data node 1 (230A) and data node 2 (230B) by a sharding function. and data node 3 230C.

모든 데이터 세트는 장비 코드(Equipment No.)를 포함할 수 있다. 장비 코드의 개수는 샤딩되는 데이터 노드의 개수와 동일할 수 있다. 예를 들면, 도 4c에서는 3개의 데이터 노드(230A~230C)가 존재하며, 이러한 경우에 각 데이터에 할당되는 장비 코드는 E01, E02, E03일 수 있다. 장비 코드는 도 3을 참조하여 상술한 바와 같이 미리 결정된 룩업 테이블에 의해서 정해질 수 있다.All data sets may contain an Equipment No. The number of equipment codes may be equal to the number of data nodes to be sharded. For example, in FIG. 4C , there are three data nodes 230A to 230C, and in this case, equipment codes assigned to each data may be E01, E02, and E03. The equipment code may be determined by a predetermined lookup table as described above with reference to FIG. 3 .

메타 노드(210)의 샤딩 함수는 Equipment No.를 샤드키로 하며, 할당된 Equipment No.가 E01인 경우에 해당 데이터는 데이터 노드 1(230A)로 샤딩된다. 할당된 Equipment No.가 E02인 경우에, 해당 데이터는 데이터 노드 2(230B)로 샤딩된다. 할당된 Equipment No.가 E03인 경우에, 해당 데이터는 데이터 노드 3(230C)으로 샤딩된다.The sharding function of the meta node 210 uses Equipment No. as a shard key, and when the assigned Equipment No. is E01, the corresponding data is sharded to the data node 1 230A. When the assigned Equipment No. is E02, the corresponding data is sharded to the data node 2 (230B). When the assigned Equipment No. is E03, the corresponding data is sharded to the data node 3 (230C).

국가 및 지역 정보에 기초하여 결정된 장비 코드를 샤드키로 하는 본 발명의 일 실시예에 따른 샤딩 방식에 따르면, ID No. 1 부터 ID No.2 까지의 데이터가 데이터 노드 1(230A)에 샤딩되고, ID No. 3의 데이터가 데이터 노드 2(230B)에 샤딩되며, ID No. 4 부터 ID No. 8 까지의 데이터가 데이터 노드 3(230C)에 샤딩된다.According to the sharding method according to an embodiment of the present invention in which the equipment code determined based on country and region information is the shard key, ID No. Data from 1 to ID No. 2 are sharded to data node 1 (230A), and ID No. 3's data is sharded to data node 2 (230B), ID No. 4 to ID No. Up to 8 data are sharded to data node 3 230C.

본 발명의 일 실시예에 따른 샤딩 방식에 의하면, 데이터 노드(230A~230C)에 분산 저장되어 있는 데이터의 값 중에서 "data1"과 관련된 데이터를 찾고자 하는 경우에, 메타 노드(410)는 "data1"에 관한 국가 정보 및 지역 정보에 따라 결정되는 장비 코드 E01에 대응하는 데이터 노드(230A)에 쿼리를 보내어 "data1"과 관련된 데이터에 대하여 응답을 받을 수 있다. 이러한 경우, 데이터 조회 또는 검색시에 모든 데이터 노드에 쿼리를 전송할 필요가 없고, 해당 데이터와 관련된 국가 정보 및 지역 정보에 따라 결정되는 샤드키에 의해 해당 데이터가 저장된 데이터 노드에 직접 쿼리를 요청할 수 있기 때문에 데이터 처리의 지연을 줄일 수 있다.According to the sharding method according to an embodiment of the present invention, when it is desired to find data related to “data1” among the data values distributed and stored in the data nodes 230A to 230C, the meta node 410 is “data1” By sending a query to the data node 230A corresponding to the equipment code E01, which is determined according to the country information and the regional information about , a response may be received for data related to “data1”. In this case, there is no need to send a query to all data nodes when querying or retrieving data, and a query can be directly requested to the data node where the data is stored by the shard key determined according to the country and region information related to the data. Therefore, it is possible to reduce the delay of data processing.

도 5는 본 발명의 일 실시예에 따른 데이터 샤딩 시스템(1)에 의해 수행되는 데이터 샤딩 방법의 프로세스를 나타내는 흐름도이다.5 is a flowchart illustrating a process of a data sharding method performed by the data sharding system 1 according to an embodiment of the present invention.

도 5를 참조하면, 데이터 샤딩 시스템(1)에 의해 수행되는 데이터 샤딩 방법은 지역 정보 검출 단계(S10), 장비 코드 결정 단계(S20), 쿼리 전송 단계(S30) 및 분산 처리 단계(S40)를 포함할 수 있다.5, the data sharding method performed by the data sharding system 1 includes a local information detection step (S10), an equipment code determination step (S20), a query transmission step (S30), and a distributed processing step (S40). may include

지역 정보 검출 단계(S10)에서는, 서버(10)의 지역 정보 검출부(110)가 클라이언트 단말(30)로부터의 수신된 요청으로부터 요청과 관련된 국가 정보 및 지역 정보를 검출할 수 있다. 지역 정보 검출부(110)는 클라이언트 단말(30)의 IP 어드레스 정보 또는 클라이언트 단말(30)에 의해 입력된 위치 정보에 기초하여 국가 정보 및 지역 정보를 검출할 수 있다. In the region information detection step S10 , the region information detection unit 110 of the server 10 may detect country information and region information related to the request from the request received from the client terminal 30 . The area information detection unit 110 may detect country information and area information based on IP address information of the client terminal 30 or location information input by the client terminal 30 .

장비 코드 결정 단계(S20)에서, 장비 코드 결정부(120)가 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블에 기초하여 결정할 수 있다. 룩업 테이블은 국가 코드, 국가명, 지역 코드, 지역명, 장비 코드의 대응관계를 나타내는 데이터를 포함할 수 있다.In the equipment code determination step (S20), the equipment code determiner 120 may determine the equipment code corresponding to the country information and the region information based on the lookup table. The lookup table may include data representing a correspondence between a country code, a country name, a region code, a region name, and an equipment code.

쿼리 전송 단계(S30)에서, 데이터 전송부(130)가 클라이언트 단말(30)의 요청에 대한 쿼리를 데이터베이스부(20)에 전송할 수 있다. 데이터 전송부(130)는 장비 코드 결정부(120)에 의해 결정된 장비 코드를 샤드키로 포함하는 쿼리를 데이터베이스부(20)에 전송할 수 있다.In the query transmission step S30 , the data transmission unit 130 may transmit a query for the request of the client terminal 30 to the database unit 20 . The data transmitter 130 may transmit a query including the equipment code determined by the equipment code determiner 120 as a shard key to the database unit 20 .

분산 처리 단계(S40)에서, 데이터베이스부(20)가 서버(10)로부터 쿼리를 수신하고, 수신된 쿼리를 분석하여 샤드키를 기준으로 데이터를 복수의 데이터 노드에 분산 처리할 수 있다.In the distributed processing step (S40), the database unit 20 may receive a query from the server 10, analyze the received query, and distribute the data to a plurality of data nodes based on the shard key.

본 발명의 일 실시예에 따른 데이터 샤딩 방법에 의하면, 쿼리가 클라이언트 단말의 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고, 쿼리가 샤드키를 기준으로 복수의 데이터 노드에 분산하여 처리되어, 데이터 처리 속도가 향상되고 별도의 데이터 인덱싱 작업을 수행하지 않고도 조희하는 데이터의 저장 위치를 용이하게 찾을 수 있다. According to the data sharding method according to an embodiment of the present invention, a query includes a shard key determined based on country information and region information related to a request from a client terminal, and the query is sent to a plurality of data nodes based on the shard key. Distributed processing improves the data processing speed and makes it easy to find the storage location of the data to be played without performing a separate data indexing operation.

도 6은 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)의 네트워크 연결 관계를 도시하는 블록도이다.6 is a block diagram illustrating a network connection relationship of the code distribution processing server 60 according to an embodiment of the present invention.

도 6을 참조하면, 코드 분산 처리 서버(60)는 통신 네트워크(N)를 통해 복수의 클라이언트 단말(70) 및 복수의 데이터베이스(80: 80A, 80B, 80C)와 연결될 수 있다. 코드 분산 처리 서버(60)에 대하여는 모순되지 않는 경우에 도 1에 도시된 서버(10)에 대한 설명이 참조될 수 있고, 데이터베이스(80)에 대하여는 모순되지 않는 경우에 도 1에 도시된 데이터베이스부(20)에 대한 설명이 참조될 수 있다.Referring to FIG. 6 , the code distribution processing server 60 may be connected to a plurality of client terminals 70 and a plurality of databases 80: 80A, 80B, and 80C through a communication network N. For the code distributed processing server 60, the description of the server 10 shown in FIG. 1 may be referred to when it is not contradictory, and for the database 80, the database unit shown in FIG. 1 when it is not contradictory The description of (20) may be referred to.

코드 분산 처리 서버(60)는 클라이언트 단말(70)로부터 요청을 수신하여 처리하고, 복수의 데이터베이스(80) 중 클라이언트 단말(70)로부터의 요청과 관련된 데이터베이스(80A, 80B 또는 80C)에 요청과 관련된 쿼리를 전송하고, 쿼리 실행 결과를 취득하여 클라이언트 단말(70)에 제공할 수 있다.The code distribution processing server 60 receives and processes the request from the client terminal 70 , and relates the request to the database 80A, 80B or 80C related to the request from the client terminal 70 among the plurality of databases 80 . It is possible to transmit a query, obtain a query execution result, and provide it to the client terminal 70 .

코드 분산 처리 서버(60)는 클라이언트 단말(70)을 통해 서버에 접속한 유저에게 공급자가 제공하는 복수의 서비스에 대한 정보를 제공할 수 있다. 일 실시예에서, 코드 분산 처리 서버(60)는 숙박, 음식 및 뷰티에 관한 공급자 정보 및 서비스 정보를 제공할 수 있다. 유저는 코드 분산 처리 서버(60)에 접속하여 이용을 희망하는 국가의 숙박, 음식, 뷰티 서비스 등을 조회하고, 조회된 서비스의 예약 또는 구매를 실행할 수 있다.The code distribution processing server 60 may provide information about a plurality of services provided by the provider to a user who accesses the server through the client terminal 70 . In one embodiment, the code distributed processing server 60 may provide provider information and service information related to accommodation, food and beauty. The user may access the code distribution processing server 60 to inquire about accommodation, food, beauty services, etc. in a country that he/she wants to use, and may make a reservation or purchase of the inquired service.

복수의 데이터베이스(80: 80A, 80B, 80C)는 공급자가 제공하는 서비스에 관련된 서비스 정보, 공급자의 개인 정보(계정, 거래 정보, 연락처 정보 등), 수요자의 개인 정보(계정, 거래 정보, 연락처 정보 등)를 저장할 수 있다. 서비스 정보, 공급자 및 수요자의 개인 정보는 국가 정보, 지역 정보 및 언어 정보를 포함할 수 있다. 이하에서, 복수의 데이터베이스 전체를 나타낼 때는 도면부호 80이 사용되고, 개별 데이터베이스를 나타낼 때는 도면부호 80A, 80B, 80C)가 사용된다.A plurality of databases (80: 80A, 80B, 80C) includes service information related to the service provided by the provider, personal information of the provider (account, transaction information, contact information, etc.), personal information of the consumer (account, transaction information, contact information, etc.) etc.) can be saved. Service information and personal information of suppliers and consumers may include country information, regional information, and language information. Hereinafter, reference numeral 80 is used to indicate the entire plurality of databases, and reference numerals 80A, 80B, and 80C) are used to indicate individual databases.

일 실시예에서, 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등은 각 정보에 포함되는 국가 정보에 기초하여 결정되는 샤드키를 기준으로 각 데이터베이스(80A, 80B, 80C)에 분산 저장될 수 있다. 다른 실시예에서, 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등은 각 정보에 포함되는 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 기준으로 각 데이터베이스(80A, 80B, 80C)에 분산 저장될 수 있다. 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 기준으로 각 데이터베이스(80A, 80B, 80C)에 분산 저장되는 방법에 대하여는 도 4c를 참조하여 설명한 데이터 분산 방법에 관한 설명이 참조될 수 있다.In one embodiment, service information, personal information of suppliers, and personal information of consumers, etc. may be distributed and stored in each database 80A, 80B, 80C based on a shard key determined based on country information included in each information. there is. In another embodiment, service information, personal information of suppliers, and personal information of consumers, etc. are distributed in each database 80A, 80B, 80C based on a shard key determined based on country information and regional information included in each information. can be saved. For a method of distributed storage in each database 80A, 80B, and 80C based on a shard key determined based on country information and regional information, the description of the data distribution method described with reference to FIG. 4C may be referred to.

예를 들면, 데이터베이스(80A)는 한국에 관한 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등을 저장하고, 데이터베이스(80B)는 미국에 관한 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등을 저장하며, 데이터베이스(80C)는 일본에 관한 서비스 정보, 공급자의 개인 정보 및 수요자의 개인 정보 등을 저장할 수 있다. For example, the database 80A stores service information about Korea, personal information of suppliers and personal information of consumers, and the like, and the database 80B stores service information about the United States, personal information of suppliers, personal information of consumers, etc. , and the database 80C may store service information about Japan, personal information of suppliers, and personal information of consumers.

한국 관련 데이터가 저장된 데이터베이스(80A)의 데이터 테이블은 한국의 국가 정보 및 해당 서비스 등과 관련된 구체적인 지역 정보(서울, 경기 등)를 포함할 수 있다. 미국 관련 데이터가 저장된 데이터베이스(80B)의 데이터 테이블은 미국의 국가 정보 및 해당 서비스 등과 관련된 구체적인 지역 정보(뉴욕, 시카고 등)를 포함할 수 있다.The data table of the database 80A in which Korea-related data is stored may include specific regional information (Seoul, Gyeonggi, etc.) related to Korea's country information and a corresponding service. The data table of the database 80B in which data related to the United States is stored may include country information of the United States and specific area information (New York, Chicago, etc.) related to a corresponding service.

도 7은 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)의 구성을 나타내는 블록도이다.7 is a block diagram showing the configuration of a code distribution processing server 60 according to an embodiment of the present invention.

도 7을 참조하면, 코드 분산 처리 서버(60)는 위치 정보 검출부(610), 정보 취득부(620) 및 정보 제공부(630)를 포함할 수 있다. 코드 분산 처리 서버(60)는 위치 정보 검출부(610), 정보 취득부(620) 및 정보 제공부(630)에 의해 클라이언트 단말(70)로부터의 요청을 처리하여, 요청과 관련된 데이터를 클라이언트 단말(70)에 제공할 수 있다. Referring to FIG. 7 , the code distribution processing server 60 may include a location information detecting unit 610 , an information obtaining unit 620 , and an information providing unit 630 . The code distribution processing server 60 processes the request from the client terminal 70 by the location information detection unit 610, the information acquisition unit 620 and the information providing unit 630, and transmits data related to the request to the client terminal ( 70) can be provided.

위치 정보 검출부(610)는 클라이언트 단말(70)의 요청과 관련된 위치 정보를 검출할 수 있다. 위치 정보 검출부(610)는 클라이언트 단말(70)이 접속된 IP 어드레스 정보 또는 클라이언트 단말(70)에 의해 입력된 위치 정보에 기초하여 국가 정보를 검출할 수 있다.The location information detector 610 may detect location information related to the request of the client terminal 70 . The location information detection unit 610 may detect country information based on IP address information to which the client terminal 70 is connected or location information input by the client terminal 70 .

클라이언트 단말(70)로부터 요청(서비스 조회, 검색, 열람 등)을 수신하면, 위치 정보 검출부(610)는 클라이언트 단말(70)의 요청과 관련된 위치 정보를 검출할 수 있다. 코드 분산 처리 서버(60)는 위치 정보를 검출함으로써 복수의 데이터베이스(80) 중 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)에 요청에 대응하는 정보를 조회할 수 있다. Upon receiving a request (service inquiry, search, reading, etc.) from the client terminal 70 , the location information detection unit 610 may detect location information related to the request of the client terminal 70 . The code distribution processing server 60 may inquire information corresponding to the request to the database 80A, 80B, or 80C in which data related to the detected location information among the plurality of databases 80 is stored by detecting the location information.

정보 취득부(620)는 복수의 데이터베이스(80) 중 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)에 대하여, 클라이언트 단말(70)의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회할 수 있다. 정보 취득부(620)는 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 복수의 상기 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를, 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)로부터 취득할 수 있다.The information acquisition unit 620 relates to a common service type code corresponding to a request of the client terminal 70 with respect to a database 80A, 80B, or 80C in which data related to the detected location information is stored among the plurality of databases 80 . information can be viewed. The information acquisition unit 620 obtains a plurality of first detailed service type codes related to a common service type code and a plurality of first detailed service type information related to a plurality of the first detailed service type codes, data related to the detected location information. may be obtained from the stored database 80A, 80B or 80C.

도 8은 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60) 또는 데이터베이스(80)에서 사용되는 코드 정보와 각 코드간의 계층적 관계를 예시하는 도면이다. 도 8의 (a)는 한국 데이터베이스(80A)에 저장된 코드 정보를 도시하고, 도 8의 (b)는 미국 데이터베이스(80B)에 저장된 코드 정보를 도시한다.8 is a diagram illustrating a hierarchical relationship between code information and each code used in the code distribution processing server 60 or the database 80 according to an embodiment of the present invention. Fig. 8 (a) shows code information stored in the Korean database 80A, and Fig. 8 (b) shows code information stored in the US database 80B.

도 8을 참조하면, 음식 서비스에 대하여 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드는 "FC"이다. 공통 서비스 타입 코드는 서비스 공급자가 제공하는 서비스의 유형을 나타낼 수 있다. 다른 실시예에서, 숙박 서비스에 대하여 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드는 "AC"일 수 있고, 뷰티 서비스에 대하여 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드는 "BC"일 수 있다. 모든 국가에 공통적으로 부여되는 공통 서비스 타입 코드를 이용하여 국가별 데이터가 저장된 데이터베이스(80A, 80B, 80C)에 저장된 데이터를 조회하는 구성에 의해 웹 서비스 또는 모바일 애플리케이션 서비스의 개발시에 모든 국가에 공통적으로 적용가능한 프로그래밍 코드로 작성이 가능하며, 이에 따라 웹 서비스 및 모바일 애플리케이션 서비스의 글로벌 확장시에 소요되는 비용 및 인력 수요가 절감될 수 있다.Referring to FIG. 8 , a common service type code commonly assigned to all countries for a food service is “FC”. The common service type code may indicate the type of service provided by the service provider. In another embodiment, the common service type code common to all countries for the accommodation service may be "AC", and the common service type code common to all countries for the beauty service may be "BC". . By using the common service type code that is commonly given to all countries, the data stored in the database (80A, 80B, 80C) in which country-specific data is stored is commonly used in all countries during the development of web services or mobile application services. It can be written with applicable programming code, and accordingly, the cost and manpower demand required for global expansion of web services and mobile application services can be reduced.

도 8의 (a)를 참조하면, 한국 코드 정보에서는 공통 서비스 타입 코드 "FC"와 관련하여 "AA"와 "BB"의 제1 상세 서비스 타입이 존재한다. "한식"을 나타내는 제1 상세 서비스 타입 코드는 "AA"이고, "분식"을 나타내는 제1 상세 서비스 타입 코드는 "BB"로 설정될 수 있다.Referring to FIG. 8A , in Korean code information, first detailed service types of “AA” and “BB” exist in relation to the common service type code “FC”. A first detailed service type code indicating "Korean food" may be set to "AA", and a first detailed service type code indicating "bansik" may be set to "BB".

또한, 제1 상세 서비스 타입인 "한식"과 관련된 제2 상세 서비스 타입은 고기(A1), 민물회(A2), 바다회(A3), 백반(A4), 기타(A5)이고, 다른 제1 상세 서비스 타입인 "분식"과 관련된 제2 상세 서비스 타입은 김밥(B1), 면(B2), 떡볶이(B3), 덮밥(B4), 기타(B5)로 설정될 수 있다.In addition, the second detailed service type related to the first detailed service type "Korean food" is meat (A1), freshwater sashimi (A2), sea sashimi (A3), alum (A4), other (A5), and the other first The second detailed service type related to the detailed service type "Bunsik" may be set to gimbap (B1), noodles (B2), tteokbokki (B3), rice bowl (B4), and others (B5).

도 8의 (b)를 참조하면, 미국 코드 정보에서는 공통 서비스 타입 코드 "FC"와 관련된 "AA"와 "BB"의 제1 상세 서비스 타입이 존재한다. "미국음식"을 나타내는 제1 상세 서비스 타입 코드는 "AA"이고, "아시안음식"을 나타내는 제2 상세 서비스 타입 코드는 "BB"로 설정될 수 있다.Referring to FIG. 8B , in US code information, first detailed service types of “AA” and “BB” associated with common service type code “FC” exist. A first detailed service type code indicating "American food" may be set to "AA", and a second detailed service type code indicating "Asian food" may be set to "BB".

또한, 제1 상세 서비스 타입인 "미국음식"과 관련된 제2 상세 서비스 타입은 스테이크(A1), 햄버거(A2), 바비큐(A3), 디저트(A4), 기타(A5)이고, 다른 제1 상세 서비스 타입인 "아시안음식"과 관련된 제2 상세 서비스 타입은 한국음식(B1), 일본음식(B2), 중국음식(B3), 베트남음식(B4), 기타(B5)로 설정될 수 있다.In addition, the second detailed service type related to the first detailed service type "American food" is steak (A1), hamburger (A2), barbecue (A3), dessert (A4), other (A5), and other first details The second detailed service type related to the service type "Asian food" may be set to Korean food (B1), Japanese food (B2), Chinese food (B3), Vietnamese food (B4), and others (B5).

도 8에 도시된 코드 정보에서는 한국과 미국에서 상이한 상세 서비스 타입에 대하여 동일한 상세 서비스 타입 코드를 사용하고 있으나, 다른 실시예에서는 상이한 상세 서비스 타입에 대하여 상이한 서비스 타입 코드를 사용할 수 있고, 이러한 실시예도 본 발명의 기술적 사상의 범위 내에 포함될 수 있다.In the code information shown in FIG. 8 , the same detailed service type code is used for different detailed service types in Korea and the United States, but different service type codes may be used for different detailed service types in another embodiment. It may be included within the scope of the technical spirit of the present invention.

다시 도 7을 참조하면, 정보 취득부(620)는 클라이언트 단말(70)의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 데이터베이스(80)에 조회할 수 있다. 정보 취득부(620)는, 공통 서비스 타입 코드 및 위치 정보에 대응하는 국가 코드를 포함하는 쿼리(query)를 이용하여 공통 서비스 타입 코드와 관련된 정보를 조회할 수 있다. 정보 취득부(620)는 데이터베이스(80)로부터 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 관련된 복수의 제1 상세 서비스 타입 정보를 취득할 수 있다.Referring back to FIG. 7 , the information acquisition unit 620 may inquire the database 80 for information related to the common service type code corresponding to the request of the client terminal 70 . The information acquisition unit 620 may inquire information related to the common service type code by using a query including the common service type code and the country code corresponding to the location information. The information acquisition unit 620 may acquire a plurality of first detailed service type codes related to the common service type code and a plurality of related first detailed service type information from the database 80 .

일 실시예에서, 클라이언트 단말(70)로부터 한국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)는 한국과 관련된 데이터가 저장된 데이터베이스(80A)에 음식 서비스 요청을 조회할 수 있다. 예를 들면, 음식 서비스 요청과 관련된 공통 서비스 타입 코드가 "FC"인 경우에, 정보 취득부(620)는 데이터베이스(80A)에 공통 서비스 타입 코드 "FC"와 관련된 정보를 조회하여, "FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 공급자 서비스 정보 등)을 취득할 수 있다.In one embodiment, when there is a query request for Korean food service from the client terminal 70, the information acquisition unit 620 may inquire the food service request to the database 80A in which data related to Korea is stored. . For example, when the common service type code related to the food service request is "FC", the information acquisition unit 620 inquires the database 80A for information related to the common service type code "FC", A first detailed service type code (AA, BB) related to , and information related to the first detailed service type code (eg, provider service information related to AA and BB) may be acquired.

다른 실시예에서, 코드 분산 처리 서버(60)가 개별 데이터베이스(80A, 80B, 80C)에 요청에 관한 쿼리를 전송하지 않고, 데이터베이스(80)에 음식 서비스 요청에 관한 쿼리를 전송하면, 데이터베이스(80) 내의 메타 노드(미도시)가 요청과 관련된 국가 정보에 대응하는 데이터베이스(80A, 80B 또는 80C)에서 쿼리를 실행하도록 하고, 정보 취득부(620)가 데이터베이스(80) 로부터 쿼리 실행 결과를 취득할 수 있다.In another embodiment, the code distributed processing server 60 does not send the query about the request to the individual databases 80A, 80B, 80C, but sends the query about the food service request to the database 80, then the database 80 ) in the meta node (not shown) executes a query in the database 80A, 80B or 80C corresponding to the country information related to the request, and the information acquisition unit 620 acquires the query execution result from the database 80 can

일 실시예에서, 클라이언트 단말(70)로부터 미국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)는 미국과 관련된 데이터가 저장된 데이터베이스(80B)에 음식 서비스 요청을 조회할 수 있다. 예를 들면, 음식 서비스 요청에 대응하는 공통 서비스 타입 코드가 "FC"인 경우에, 정보 취득부(620)는 데이터베이스(80B)에 공통 서비스 타입 코드 "FC"와 관련된 정보를 조회하고, "FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 공급자 서비스 정보 등)을 데이터베이스(80B)로부터 취득할 수 있다.In an embodiment, when there is a query request for food service in the United States from the client terminal 70, the information acquisition unit 620 may inquire the food service request to the database 80B in which data related to the United States is stored. . For example, when the common service type code corresponding to the food service request is "FC", the information acquisition unit 620 inquires the database 80B for information related to the common service type code "FC", and "FC" The first detailed service type code (AA, BB) related to " and information related to the first detailed service type code (such as provider service information related to AA and BB) may be acquired from the database 80B.

클라이언트 단말이 복수의 제1 상세 서비스 타입 정보로부터 특정의 제1 상세 서비스 타입을 선택한 경우에, 정보 취득부(620)는 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드와 관련된 정보를 조회하고, 선택된 제1 상세 서비스 타입과 관련된 복수의 제2 상세 서비스 타입 코드 및 복수의 상기 제2 상세 서비스 타입 코드와 관련된 복수의 제2 상세 서비스 타입 정보를 취득할 수 있다. 정보 취득부(620)는 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드 및 국가 코드를 포함하는 쿼리(query)를 이용하여 선택된 제1 상세 서비스 타입 코드 및 관련된 정보를 조회할 수 있다.When the client terminal selects a specific first detailed service type from the plurality of first detailed service type information, the information acquisition unit 620 inquires for information related to the first detailed service type code of the selected first detailed service type and , a plurality of second detailed service type codes related to the selected first detailed service type and a plurality of second detailed service type information related to the plurality of second detailed service type codes may be acquired. The information acquisition unit 620 may inquire the selected first detailed service type code and related information by using a query including the first detailed service type code and country code of the selected first detailed service type.

일 실시예에서, 한식(AA) 및 분식(BB)에 관련된 공급자 서비스 정보가 클라이언트 단말(70)에 제공된 후에, 수요자가 제1 상세 서비스 타입인 한식(AA)과 분식(BB) 중에서 한식(AA)을 선택한 경우에, 정보 취득부(620)는 선택된 제1 상세 서비스 타입("한식")의 제1 상세 서비스 타입 코드("AA")에 관련된 정보를 데이터베이스(80A)에 조회하고, 선택된 제1 상세 서비스 타입("한식")과 관련된 제2 상세 서비스 타입 코드 및 관련된 정보(A1: 고기, A2: 민물회, A3: 바다회, A4: 백반, A5: 기타 및 A1~A5와 관련된 공급자의 서비스 정보)를 취득할 수 있다.In one embodiment, after the provider service information related to Korean food (AA) and bansik (BB) is provided to the client terminal 70, the consumer selects Korean food (AA) from among the first detailed service types of Korean food (AA) and bansik (BB). ), the information acquisition unit 620 inquires the database 80A for information related to the first detailed service type code (“AA”) of the selected first detailed service type (“Korean food”), and 1 The second detailed service type code and related information related to 1 detailed service type (“Korean food”) and related information (A1: meat, A2: freshwater sashimi, A3: sea sashimi, A4: alum, A5: other and the supplier's information related to A1-A5 service information).

일 실시예에서, 미국음식(AA) 및 아시안음식(BB)에 관련된 공급자 서비스 정보가 클라이언트 단말(70)에 제공된 후에, 수요자가 제1 상세 서비스 타입인 미국음식(AA) 및 아시안음식(BB) 중에서 미국음식(AA)을 선택한 경우에, 정보 취득부(620)는 선택된 제1 상세 서비스 타입("미국음식")의 제1 상세 서비스 타입 코드("AA")과 관련된 정보를 데이터베이스(80B)에 조회하고, 선택된 제1 상세 서비스 타입("미국음식")과 관련된 제2 상세 서비스 타입 코드 및 관련된 정보(A1: 스테이크, A2: 햄버거, A3: 바비큐, A4: 디저트, A5: 기타 및 A1~A5와 관련된 공급자의 서비스 정보)를 취득할 수 있다.In one embodiment, after the provider service information related to American food (AA) and Asian food (BB) is provided to the client terminal 70 , the consumer is a first detailed service type of American food (AA) and Asian food (BB) When American food (AA) is selected from among, the information acquisition unit 620 stores information related to the first detailed service type code (“AA”) of the selected first detailed service type (“American food”) to the database 80B. A second detailed service type code and related information (A1: Steak, A2: Hamburger, A3: Barbecue, A4: Dessert, A5: Other and A1- Service information of the supplier related to A5) can be obtained.

정보 제공부(630)는 클라이언트 단말(70)의 요청에 따라 정보 취득부(620)에 의해 조회 및 취득된 제1 상세 서비스 타입 정보 또는 제2 상세 서비스 타입 정보를 클라이언트 단말(70)에 제공할 수 있다. The information providing unit 630 may provide the client terminal 70 with the first detailed service type information or the second detailed service type information queried and acquired by the information acquisition unit 620 according to the request of the client terminal 70 . can

일 실시예에서, 클라이언트 단말(70)로부터 한국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)에 의해 취득된 공통 서비스 타입 코드 FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 한국 공급자 서비스 정보 등)가 클라이언트 단말(70)에 제공될 수 있다. In one embodiment, when there is an inquiry request for Korean food service from the client terminal 70, the first detailed service type code (AA) related to the common service type code FC acquired by the information acquisition unit 620 , BB) and information related to the first detailed service type code (eg, Korean provider service information related to AA and BB) may be provided to the client terminal 70 .

또한, 클라이언트 단말(70)에 의해 한국의 음식 서비스 중 "한식"이 선택된 경우에, 정보 취득부(620)에 의해 취득된"한식"과 관련된 제2 서비스 타입 코드 및 제2 상세 서비스 타입 정보(고기(A1), 민물회(A2), 바다회(A3), 백반(A4), 기타(A5) 및 관련된 공급자 서비스 정보)가 클라이언트 단말(70)에 제공될 수 있다.In addition, when “Korean food” is selected among Korean food services by the client terminal 70 , the second service type code and second detailed service type information related to “Korean food” acquired by the information acquisition unit 620 ( Meat (A1), freshwater sashimi (A2), sea sashimi (A3), alum (A4), other (A5) and related supplier service information) may be provided to the client terminal 70 .

일 실시예에서, 클라이언트 단말(70)로부터 미국의 음식 서비스에 대한 조회 요청이 있는 경우에, 정보 취득부(620)에 의해 취득된 공통 서비스 타입 코드 FC"와 관련된 제1 상세 서비스 타입 코드(AA, BB) 및 제1 상세 서비스 타입 코드와 관련된 정보(AA 및 BB와 관련된 미국 공급자 서비스 정보 등)가 클라이언트 단말(70)에 제공될 수 있다.In one embodiment, when there is an inquiry request for food service in the United States from the client terminal 70, the first detailed service type code (AA) associated with the common service type code FC acquired by the information acquisition unit 620” , BB) and information related to the first detailed service type code (such as US provider service information related to AA and BB) may be provided to the client terminal 70 .

또한, 클라이언트 단말(70)에 의해 미국의 음식 서비스 중 "미국음식"이 선택된 경우에, 정보 취득부(620)에 의해 취득된"미국음식"과 관련된 제2 서비스 타입 코드 및 제2 상세 서비스 타입 정보(스테이크(A1), 햄버거(A2), 바비큐(A3), 디저트(A4), 기타(A5) 및 관련된 공급자 서비스 정보)가 클라이언트 단말(70)에 제공될 수 있다.In addition, when “American food” is selected among American food services by the client terminal 70 , the second service type code and the second detailed service type related to “American food” acquired by the information acquisition unit 620 . Information (steak A1, hamburger A2, barbecue A3, dessert A4, other A5 and related provider service information) may be provided to the client terminal 70 .

도 9는 수요자가 본 발명의 일 실시예에 따른 코드 분산 처리 서버(60)에 접속한 경우의 화면의 예시이다.9 is an example of a screen when a consumer accesses the code distribution processing server 60 according to an embodiment of the present invention.

도 9를 참조하면, 코드 분산 처리 서버(60)는 웹페이지 또는 모바일 애플리케이션을 통해 유저가 접속하면 제공하는 서비스의 유형을 나타내는 메뉴를 표시할 수 있다. 도 9의 실시예에서 코드 분산 처리 서버(60)는 음식, 숙박 및 뷰티 서비스의 관한 정보를 제공할 수 있다. Referring to FIG. 9 , the code distribution processing server 60 may display a menu indicating the type of service provided when a user accesses it through a web page or a mobile application. In the embodiment of FIG. 9 , the code distribution processing server 60 may provide information about food, accommodation, and beauty services.

예를 들면,"음식" 메뉴가 클릭되면, 프랜차이즈 음식점, 비프랜차이즈 음식점, 카페, 한식, 중식 등의 여하의 음식 관련 서비스 공급자의 서비스 정보가 표시될 수 있다. "숙박" 메뉴가 클릭되면, 호텔, 민박, 호스텔, 등 여하의 숙박 관련 서비스 공급자의 서비스 정보가 표시될 수 있다. "뷰티" 메뉴가 클릭되면, 헤어, 메이크업, 마사지, 네일 등 여하의 뷰티 관련 서비스 공급자의 서비스 정보가 표시될 수 있다.For example, when a "food" menu is clicked, service information of any food-related service provider such as a franchise restaurant, a non-franchise restaurant, a cafe, Korean food, and Chinese food may be displayed. When the "accommodation" menu is clicked, service information of any accommodation-related service provider, such as a hotel, a guest house, a hostel, and the like, may be displayed. When the “beauty” menu is clicked, service information of any beauty-related service provider such as hair, makeup, massage, and nails may be displayed.

도 10은 한국 유저가 "음식" 메뉴를 클릭한 경우에 표시되거나, 또는 다른 나라의 유저가 "음식" 메뉴를 클릭한 후에 한국의 위치 정보를 입력한 경우에 표시되는 화면을 일예를 도시한다. 10 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu, or when a user of another country inputs Korean location information after clicking on the “food” menu.

한국 유저가 "음식" 메뉴를 클릭한 경우에 표시되거나, 또는 다른 나라의 유저가 "음식" 메뉴를 클릭한 후에 한국의 위치 정보를 입력한 경우에, 코드 분산 처리 서버(60)는 "음식"에 대한 공통 서비스 타입 코드(FC)와 관련된 정보를 한국과 관련된 데이터베이스(80A)에 조회할 수 있다. 한국과 관련된 데이터베이스(80A)에서는 공통 서비스 타입 코드 및 국가 정보를 포함하는 쿼리가 실행되고, 음식과 관련된 제1 상세 서비스 타입 코드 및 관련된 제1 상세 서비스 타입 정보(AA: 한식, BB: 분식과 관련된 공급자의 서비스 정보)를 한국 유저의 단말(70)에 제공할 수 있다. 단말(70)의 화면에는 도 10의 (a)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 유형으로서 한식과 분식, 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.Displayed when a Korean user clicks on the "Food" menu, or when a user from another country enters location information in Korea after clicking on the "Food" menu, the code distributed processing server 60 displays "Food" Information related to the common service type code (FC) for . may be queried in the database 80A related to Korea. In the database 80A related to Korea, a query including a common service type code and country information is executed, and the first detailed service type code related to food and the first detailed service type information related to (AA: Korean food, BB: food related information) are executed. service information of the provider) may be provided to the terminal 70 of the Korean user. As shown in (a) of FIG. 10 , on the screen of the terminal 70 , map data near the access location, Korean food and snacks as a restaurant type, and service information (not shown) of a related provider may be displayed on the screen of the terminal 70 . In this case, the provided service information may be limited to the service information of the provider displayed on the map data near the access location.

또한, 한국 유저가 음식점 유형 중 한식을 선택한 경우에, 코드 분산 처리 서버(60)는 "한식"과 관련된 정보를 한국과 관련된 데이터베이스(80A)에 조회할 수 있다. 한국과 관련된 데이터베이스(80A)에서는 "한식"과 관련된 제1 상세 서비스 타입 코드 "AA" 및 국가 정보를 포함하는 쿼리가 실행되고, "한식"과 관련된 제2 상세 서비스 타입 코드 및 관련된 제2 상세 서비스 타입 정보(고기:A1, 민물회:A2, 바다회:A3, 백반:A4, 기타:A5와 관련된 공급자의 서비스 정보)를 한국 유저의 단말(70)에 제공할 수 있다. Also, when the Korean user selects Korean food from among the restaurant types, the code distribution processing server 60 may inquire information related to “Korean food” in the database 80A related to Korea. In the database 80A related to Korea, a query including a first detailed service type code “AA” and country information related to “Korean food” is executed, and a second detailed service type code related to “Korean food” and a second detailed service related to it are executed. Type information (meat: A1, freshwater sashimi: A2, sea sashimi: A3, alum: A4, other: service information of providers related to A5) may be provided to the terminal 70 of the Korean user.

단말(70)의 화면에는 도 10의 (b)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 유형으로서 고기, 민물회, 바다회, 백반, 기타 및 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.On the screen of the terminal 70, as shown in (b) of FIG. 10, map data near the access location, meat, freshwater sashimi, sea sashimi, alum, and other related service information (not shown) as a restaurant type etc. may be displayed. In this case, the provided service information may be limited to the service information of the provider displayed on the map data near the access location.

도 11은 한국 유저가 "음식" 메뉴를 클릭한 후에 미국의 위치 정보를 입력한 경우, 또는 미국 유저가 "음식" 메뉴를 클릭한 경우에 표시되는 화면을 일예를 도시한다.11 illustrates an example of a screen displayed when a Korean user clicks on the “food” menu and then inputs location information in the United States, or when the American user clicks on the “food” menu.

한국 유저가 "음식" 메뉴를 클릭한 후에 미국의 위치 정보를 입력한 경우, 또는 미국 유저가 "음식" 메뉴를 클릭한 경우에, 코드 분산 처리 서버(60)는 "음식"에 대한 공통 서비스 타입 코드(FC)와 관련된 정보를 미국과 관련된 데이터베이스(80B)에 조회할 수 있다. 미국과 관련된 데이터베이스(80B)에서는 공통 서비스 타입 코드 및 국가 정보를 포함하는 쿼리가 실행되고, 음식과 관련된 제1 상세 서비스 타입 코드 및 관련된 제1 상세 서비스 타입 정보(AA: 미국음식, BB: 아시안음식과 관련된 공급자의 서비스 정보)를 미국 유저의 단말(70)에 제공할 수 있다. 단말(70)의 화면에는 도 11의 (a)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 유형으로서 미국음식과 아시안음식, 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.When a Korean user enters location information in the United States after clicking on the "Food" menu, or when an American user clicks on the "Food" menu, the code distributed processing server 60 provides a common service type for "Food" Information related to the code FC may be queried in the database 80B related to the United States. In the database 80B related to the United States, a query including a common service type code and country information is executed, and a first detailed service type code related to food and first detailed service type information related to (AA: American food, BB: Asian food) is executed. service information related to the provider) may be provided to the terminal 70 of the US user. As shown in (a) of FIG. 11 , on the screen of the terminal 70, map data near the access location, American food and Asian food as a restaurant type, and service information of a related provider (not shown) may be displayed on the screen of the terminal 70 . . In this case, the provided service information may be limited to the service information of the provider displayed on the map data near the access location.

또한, 미국 유저가 음식점 유형 중 미국음식을 선택한 경우에, 코드 분산 처리 서버(60)는 "미국음식"과 관련된 정보를 미국과 관련된 데이터베이스(80B)에 조회할 수 있다. 미국과 관련된 데이터베이스(80B)에서는 "미국음식"과 관련된 제1 상세 서비스 타입 코드 "AA" 및 국가 정보를 포함하는 쿼리가 실행되고, "미국음식"과 관련된 제2 상세 서비스 타입 코드 및 관련된 제2 상세 서비스 타입 정보(스테이크:A1, 햄버거:A2, 바비큐:A3, 디저트:A4, 기타:A5와 관련된 공급자의 서비스 정보)를 미국 유저의 단말(70)에 제공할 수 있다. In addition, when the US user selects American food from among the restaurant types, the code distribution processing server 60 may inquire information related to "American food" to the database 80B related to the United States. In the database 80B related to the United States, a query including a first detailed service type code "AA" and country information related to "American food" is executed, and a second detailed service type code related to "American food" and a related second Detailed service type information (service information of providers related to steak: A1, hamburger: A2, barbecue: A3, dessert: A4, and others: A5) may be provided to the terminal 70 of the US user.

단말(70)의 화면에는 도 11의 (b)에 도시된 바와 같이 접속 위치 근처의 지도 데이터, 음식점 상세 유형으로서 스테이크, 햄버거 바비큐, 디저트, 기타 및 이와 관련된 공급자의 서비스 정보(미도시) 등이 표시될 수 있다. 이때 제공되는 서비스 정보는 접속 위치 근처의 지도 데이터에 표시되는 공급자의 서비스 정보로 제한될 수 있다.On the screen of the terminal 70, as shown in (b) of FIG. 11 , map data near the access location, steak, hamburger barbecue, dessert, and other related service information (not shown) as a detailed type of restaurant are displayed. can be displayed. In this case, the provided service information may be limited to the service information of the provider displayed on the map data near the access location.

도 12는 본 발명의 일 실시예에 따른 코드 분산 처리 장치(60)에 의해 수행되는 코드 분산 처리 방법의 흐름도이다.12 is a flowchart of a code distribution processing method performed by the code distribution processing apparatus 60 according to an embodiment of the present invention.

도 12를 참조하면, 코드 분산 처리 방법은 위치 정보 검출 단계(S210), 제1 정보 취득 단계(S220), 제1 정보 제공 단계(S230), 제2 정보 취득 단계(S240) 및 제2 정보 제공 단계(S250)를 포함할 수 있다.12, the code distribution processing method includes a location information detection step (S210), a first information acquisition step (S220), a first information provision step (S230), a second information acquisition step (S240), and a second information provision It may include a step (S250).

위치 정보 검출 단계(S210)에서는, 코드 분산 처리 서버(60)의 위치 정보 검출부(610)가 클라이언트 단말(70)의 요청과 관련된 위치 정보를 검출할 수 있다.In the location information detection step ( S210 ), the location information detection unit 610 of the code distribution processing server 60 may detect location information related to the request of the client terminal 70 .

제1 정보 취득 단계(S220)에서는, 코드 분산 처리 서버(60)의 정보 취득부(620)가 복수의 데이터베이스(80) 중 상기 위치 정보와 관련된 데이터가 저장된 데이터베이스(80A, 80B 또는 80C)로부터 클라이언트 단말(70)의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 공통 서비스 타입 코드에 대응하는 복수의 제1 상세 서비스 타입 코드 및 복수의 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득할 수 있다.In the first information acquisition step (S220), the information acquisition unit 620 of the code distribution processing server 60 stores the data related to the location information among the plurality of databases 80 from the database 80A, 80B or 80C. Inquire information related to the common service type code corresponding to the request of the terminal 70, and a plurality of first detailed service type codes corresponding to the common service type code and a plurality of first detailed service type codes related to the plurality of first detailed service type codes Detailed service type information can be obtained.

제1 정보 제공 단계(S230)에서는, 코드 분산 처리 서버(60)의 정보 제공부(630)가 정보 취득부(620)에 의해 취득된 복수의 제1 상세 서비스 타입 정보를 클라이언트 단말(70)에 제공할 수 있다. In the first information providing step ( S230 ), the information providing unit 630 of the code distribution processing server 60 transmits the plurality of first detailed service type information acquired by the information obtaining unit 620 to the client terminal 70 . can provide

제2 정보 취득 단계(S240)에서는, 코드 분산 처리 서버(60)의 정보 취득부(620)가, 선택된 제1 상세 서비스 타입의 제1 상세 서비스 타입 코드에 관련된 정보를 조회하고, 선택된 제1 상세 서비스 타입과 관련된 복수의 제2 상세 서비스 타입 코드 및 복수의 제2 상세 서비스 타입 코드와 관련된 복수의 제2 상세 서비스 타입 정보를 취득할 수 있다. In the second information acquisition step (S240), the information acquisition unit 620 of the code distribution processing server 60 inquires for information related to the first detailed service type code of the selected first detailed service type, and the selected first detailed service type A plurality of second detailed service type codes related to a service type and a plurality of second detailed service type information related to a plurality of second detailed service type codes may be acquired.

제2 정보 제공 단계(S250)에서는, 코드 분산 처리 서버(60)의 정보 제공부(630)가 정보 취득부(620)에 의해 취득된 복수의 제2 상세 서비스 타입 정보를 클라이언트 단말(70)에 제공할 수 있다.In the second information providing step (S250), the information providing unit 630 of the code distribution processing server 60 sends a plurality of second detailed service type information acquired by the information acquiring unit 620 to the client terminal 70 . can provide

상술한 본 발명의 일 실시예에 따른 코드 분산 처리 방법에 의하면, 클라이언트 단말의 요청과 관련된 위치 정보를 검출하고, 검출된 위치 정보와 관련된 데이터가 저장된 데이터베이스에 대하여 클라이언트 단말의 요청에 대응하는 공통 서비스 타입 코드와 관련된 정보를 조회하고, 공통 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 코드 및 복수의 제1 상세 서비스 타입 코드와 관련된 복수의 제1 상세 서비스 타입 정보를 취득함으로써, 서비스의 글로벌 확장이 용이하고, 서비스 확장의 범용성이 향상될 수 있다.According to the code distribution processing method according to an embodiment of the present invention described above, the location information related to the request of the client terminal is detected, and the common service corresponding to the request of the client terminal with respect to the database in which data related to the detected location information is stored. Global expansion of the service by inquiring information related to the type code and obtaining a plurality of first detailed service type codes related to a common service type code and a plurality of first detailed service type information related to a plurality of first detailed service type codes This is easy, and the versatility of service extension can be improved.

이상에서 설명된 단계 또는 프로세스는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합에 의해 실행될 수 있다. 예를 들어, 실시예들에서 설명된 단계 또는 프로세스는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 실행될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The steps or processes described above may be executed by a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, a step or process described in the embodiments may be, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), a PLU It may be implemented using one or more general purpose or special purpose computers, such as a programmable logic unit, microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and used by those skilled in the art. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

1: 데이터 샤딩 시스템 10: 서버
20: 데이터베이스부 30: 단말
110: 지역 정보 검출부 120: 장비 코드 결정부
130: 데이터 전송부 140: 룩업 테이블
210: 메타 노드 230A~230C: 데이터 노드
60: 서버 70: 클라이언트 단말
80, 80A, 80B, 80C: 데이터베이스 610: 위치 정보 검출부
620: 정보 취득부 630: 정보 제공부
1: Data sharding system 10: Server
20: database unit 30: terminal
110: area information detection unit 120: equipment code determination unit
130: data transmitter 140: lookup table
210: meta node 230A~230C: data node
60: server 70: client terminal
80, 80A, 80B, 80C: database 610: location information detection unit
620: information acquisition unit 630: information providing unit

Claims (10)

클라이언트 단말로부터의 요청을 수신하여 처리하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 서버; 및
상기 서버와 네트워크를 통하여 연결되고, 상기 서버로부터의 상기 요청에 대한 쿼리를 수신하고, 상기 쿼리에 대한 응답을 상기 서버에 전송하는 데이터베이스부
를 포함하고,
상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고,
상기 데이터베이스부는 상기 쿼리가 상기 샤드키를 기준으로 분산하여 처리되는 복수의 데이터 노드를 포함하고,
상기 샤드키는 국가 정보 및 지역 정보에 기초하여 결정되는 장비 코드를 포함하고,
상기 서버는 국가 정보, 지역 정보 및 대응하는 장비 코드에 관한 룩업 테이블을 포함하는 데이터 샤딩 시스템.
a server for receiving and processing a request from a client terminal, and detecting country information and region information related to the request; and
A database unit connected to the server through a network, receiving a query for the request from the server, and transmitting a response to the query to the server
including,
The query includes a shard key determined based on country information and region information related to the request,
The database unit includes a plurality of data nodes in which the query is distributed and processed based on the shard key,
The shard key includes an equipment code determined based on country information and regional information,
The server is a data sharding system comprising a lookup table for country information, region information and corresponding equipment codes.
제1항에 있어서,
상기 데이터베이스부는 상기 서버로부터의 상기 쿼리를 분석하여, 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산 처리하는 메타 노드를 더 포함하고,
상기 메타 노드는 상기 쿼리를 상기 샤드키에 대응하는 데이터 노드에 전송하여 상기 쿼리에 대한 응답을 취득하는 데이터 샤딩 시스템.
According to claim 1,
The database unit further comprises a meta node that analyzes the query from the server and distributes the query to a plurality of data nodes based on the shard key,
The meta node transmits the query to a data node corresponding to the shard key to obtain a response to the query.
삭제delete 제1항에 있어서,
상기 서버는 상기 클라이언트 단말의 IP 어드레스 정보 또는 상기 클라이언트 단말에 의해 입력된 위치 정보에 기초하여 상기 국가 정보 및 지역 정보를 검출하는 데이터 샤딩 시스템.
According to claim 1,
The server is a data sharding system for detecting the country information and the region information based on the IP address information of the client terminal or the location information input by the client terminal.
제1항에 있어서,
상기 서버는,
상기 클라이언트 단말로부터 수신된 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출부;
검출된 국가 정보 및 지역 정보에 대응하는 장비 코드를 룩업 테이블에 기초하여 결정하는 장비 코드 결정부; 및
상기 장비 코드를 샤드키로 포함하는 쿼리를 상기 데이터베이스부에 전송하고, 상기 데이터베이스부로부터의 응답을 상기 클라이언트 단말에 전송하는 데이터 전송부
를 포함하는 데이터 샤딩 시스템.
According to claim 1,
The server is
a region information detection unit configured to detect country information and region information related to a request received from the client terminal;
an equipment code determining unit that determines an equipment code corresponding to the detected country information and region information based on a lookup table; and
A data transmission unit that transmits a query including the equipment code as a shard key to the database unit, and transmits a response from the database unit to the client terminal
A data sharding system that includes.
제1항에 있어서,
국가별로 상이한 장비 코드가 할당되는 데이터 샤딩 시스템.
According to claim 1,
A data sharding system where different equipment codes are assigned by country.
제1항에 있어서,
동일한 국가 내의 복수의 지역에 대하여 동일한 장비 코드가 할당되는 데이터 샤딩 시스템.
According to claim 1,
A data sharding system in which the same equipment code is assigned to multiple regions within the same country.
제1항에 있어서,
동일한 국가 내의 상이한 지역에 대하여 다른 장비 코드가 할당되는 데이터 샤딩 시스템.
According to claim 1,
A data sharding system in which different equipment codes are assigned for different regions within the same country.
서버와 데이터베이스부를 포함하는 데이터 샤딩 시스템에 의해 수행되는 데이터 샤딩 방법으로서,
상기 서버가 클라이언트 단말로부터의 요청을 수신하고, 상기 요청과 관련된 국가 정보 및 지역 정보를 검출하는 지역 정보 검출 단계;
상기 서버가 상기 요청에 대한 쿼리를 데이터베이스부에 전송하는 쿼리 전송 단계; 및
상기 데이터베이스부가 상기 쿼리를 수신하고, 상기 쿼리를 분석하여 샤드키를 기준으로 데이터를 복수의 데이터 노드에 분산 처리하는 분산 처리 단계
를 포함하고,
상기 쿼리는 상기 요청과 관련된 국가 정보 및 지역 정보에 기초하여 결정되는 샤드키를 포함하고,
상기 데이터베이스부는 상기 샤드키를 기준으로 상기 쿼리를 복수의 데이터 노드에 분산하여 처리하며,
상기 샤드키는 국가 정보 및 지역 정보에 기초하여 결정되는 장비 코드를 포함하고,
상기 서버는 국가 정보, 지역 정보 및 대응하는 장비 코드에 관한 룩업 테이블을 포함하는 데이터 샤딩 방법.
A data sharding method performed by a data sharding system including a server and a database unit, the data sharding method comprising:
an area information detection step in which the server receives a request from a client terminal, and detects country information and area information related to the request;
a query transmission step in which the server transmits a query for the request to a database unit; and
Distributed processing step of receiving the query by the database unit, analyzing the query, and distributing data to a plurality of data nodes based on the shard key
including,
The query includes a shard key determined based on country information and region information related to the request,
The database unit processes the query by distributing it to a plurality of data nodes based on the shard key,
The shard key includes an equipment code determined based on country information and regional information,
The server includes a lookup table for country information, region information and corresponding equipment codes.
제9항에 기재된 데이터 샤딩 방법을 컴퓨터에 의해 수행시키기 위한 컴퓨터 판독가능 기록매체에 저장된 프로그램.A program stored in a computer-readable recording medium for performing the data sharding method according to claim 9 by a computer.
KR1020200168822A 2020-12-04 2020-12-04 Data sharding system, data sharding method, and program stored in a recording medium KR102287483B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020200168822A KR102287483B1 (en) 2020-12-04 2020-12-04 Data sharding system, data sharding method, and program stored in a recording medium
KR1020210101705A KR20220079416A (en) 2020-12-04 2021-08-03 Data sharding system, data sharding method, and program stored in a recording medium
EP21901016.2A EP4258129A1 (en) 2020-12-04 2021-12-02 Data sharding system, data sharding method, and program stored in recording medium
US18/039,936 US20240004890A1 (en) 2020-12-04 2021-12-02 Data sharding system, data sharding method, and program stored in recording medium
PCT/KR2021/018051 WO2022119328A1 (en) 2020-12-04 2021-12-02 Data sharding system, data sharding method, and program stored in recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200168822A KR102287483B1 (en) 2020-12-04 2020-12-04 Data sharding system, data sharding method, and program stored in a recording medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210101705A Division KR20220079416A (en) 2020-12-04 2021-08-03 Data sharding system, data sharding method, and program stored in a recording medium

Publications (1)

Publication Number Publication Date
KR102287483B1 true KR102287483B1 (en) 2021-08-06

Family

ID=77315006

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200168822A KR102287483B1 (en) 2020-12-04 2020-12-04 Data sharding system, data sharding method, and program stored in a recording medium
KR1020210101705A KR20220079416A (en) 2020-12-04 2021-08-03 Data sharding system, data sharding method, and program stored in a recording medium

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210101705A KR20220079416A (en) 2020-12-04 2021-08-03 Data sharding system, data sharding method, and program stored in a recording medium

Country Status (1)

Country Link
KR (2) KR102287483B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022119328A1 (en) * 2020-12-04 2022-06-09 김근석 Data sharding system, data sharding method, and program stored in recording medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026213A1 (en) * 2013-06-06 2015-01-22 Oracle International Corporation System and method for providing a shareable global cache for use with a database environment
JP2018514028A (en) * 2015-04-20 2018-05-31 オラクル・インターナショナル・コーポレイション System and method for providing access to a sharded database using a cache and shard topology
KR20190067581A (en) * 2017-12-07 2019-06-17 한국전자통신연구원 Apparatus and method for distributed processing of blockchain transactions
JP2020052347A (en) * 2018-09-28 2020-04-02 株式会社リコー Heating member, belt heating device, fixing device, and image forming apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150026213A1 (en) * 2013-06-06 2015-01-22 Oracle International Corporation System and method for providing a shareable global cache for use with a database environment
JP2018514028A (en) * 2015-04-20 2018-05-31 オラクル・インターナショナル・コーポレイション System and method for providing access to a sharded database using a cache and shard topology
KR20190067581A (en) * 2017-12-07 2019-06-17 한국전자통신연구원 Apparatus and method for distributed processing of blockchain transactions
JP2020052347A (en) * 2018-09-28 2020-04-02 株式会社リコー Heating member, belt heating device, fixing device, and image forming apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박준호 외 5인, 고성능 분산 인메모리 DBMS, 알티베이스 샤딩. 한국정보과학회 학술발표논문집. 2019.6. 193-195페이지. 1부.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022119328A1 (en) * 2020-12-04 2022-06-09 김근석 Data sharding system, data sharding method, and program stored in recording medium

Also Published As

Publication number Publication date
KR20220079416A (en) 2022-06-13

Similar Documents

Publication Publication Date Title
US10212228B2 (en) Implementing synchronization of state information betweeen instances of an application as well as between different applications in an efficient, scalable manner
US20180210962A1 (en) Methods and systems for pathing analysis
WO2020063848A1 (en) Method and device for searching for hosting program
US20160364792A1 (en) Cloud service brokerage method and apparatus using service image store
EP3128440B1 (en) Method and device for invoking service in mobile terminal
US20180035367A1 (en) Method and Apparatus for Accessing Wifi Access Point in Target Shop
KR102287483B1 (en) Data sharding system, data sharding method, and program stored in a recording medium
US20150113092A1 (en) Method and apparatus for distributed enterprise data pattern recognition
JP5869010B2 (en) System and method for providing mobile URL in mobile search environment
US11086925B2 (en) Fashion by trend user interfaces
KR102238188B1 (en) Temporary prohibition of processing restricted storage operand requests
KR102265085B1 (en) Code distribution processing server, code distribution processing method, and program stored in a recording medium
US20240004890A1 (en) Data sharding system, data sharding method, and program stored in recording medium
US9538363B2 (en) User terminal apparatus, server, and method of providing a customized service
US11496608B2 (en) Task proximity for cloud services
US10965781B2 (en) Method and server for displaying access content
US10089369B2 (en) Searching method, searching apparatus and device
KR102147978B1 (en) User assist system using user assist app
US20170220676A1 (en) Method of providing search results and system for performing the method
US11200285B2 (en) Geocoding administrative areas with user-defined content
CN110209914B (en) Information query method and related device
KR102344920B1 (en) Electronic apparatus and keyword management method thereof
US20210117209A1 (en) Deriving personalized experiences of smart environments
EP4018310A1 (en) Task proximity for cloud services
KR20210124942A (en) Method and apparatus for providing web browsing window

Legal Events

Date Code Title Description
A107 Divisional application of patent
GRNT Written decision to grant