KR20150136300A - Apparatus and method for sorting item using longest increasing subsequence of item group - Google Patents

Apparatus and method for sorting item using longest increasing subsequence of item group Download PDF

Info

Publication number
KR20150136300A
KR20150136300A KR1020140063587A KR20140063587A KR20150136300A KR 20150136300 A KR20150136300 A KR 20150136300A KR 1020140063587 A KR1020140063587 A KR 1020140063587A KR 20140063587 A KR20140063587 A KR 20140063587A KR 20150136300 A KR20150136300 A KR 20150136300A
Authority
KR
South Korea
Prior art keywords
item
items
update
groups
order
Prior art date
Application number
KR1020140063587A
Other languages
Korean (ko)
Other versions
KR102247032B1 (en
Inventor
문동선
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Priority to KR1020140063587A priority Critical patent/KR102247032B1/en
Priority to PCT/KR2014/010406 priority patent/WO2015182833A1/en
Priority to US14/898,441 priority patent/US10664235B2/en
Publication of KR20150136300A publication Critical patent/KR20150136300A/en
Application granted granted Critical
Publication of KR102247032B1 publication Critical patent/KR102247032B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)

Abstract

Disclosed are an apparatus and a method for arranging an item using the longest increasing partial subsequence of an item group. The method comprises the following steps: generating item groups by grouping neighboring items among items included in an item list; selecting exceptional groups corresponding to the longest increasing partial subsequence among the item groups; selecting update groups except the exceptional groups from the item groups; and performing an item arrangement for the items by performing an update about the update groups. By grouping various items of the item list, and performing the update by selecting the groups to be updated among the item groups, the method can efficiently use a system by reducing the system operation amount in accordance with the update.

Description

아이템 그룹의 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법 {APPARATUS AND METHOD FOR SORTING ITEM USING LONGEST INCREASING SUBSEQUENCE OF ITEM GROUP}[0001] APPARATUS AND METHOD FOR SORTING ITEM USING LONGEST INCREASING SUBSEQUENCE OF ITEM GROUP [0002]

본 발명은 아이템 그룹핑을 통해 데이터베이스에서 효율적으로 아이템 정보를 업데이트하고, 아이템 목록을 정렬할 수 있는 아이템 그룹의 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for arranging an item using a longest partial sequence of an item group in which item information can be efficiently updated in a database through item grouping and an item list can be sorted.

스마트 폰과 태플릿 PC 분야의 빠른 성장으로 다양한 모바일 컨텐츠와 서비스를 제공하는 모바일 앱스토어도 급속하게 성장하고 있다. 이와 같은 모바일 앱스토어에서는 다양하고 많은 양의 모바일 아이템들을 제공하고 있다. 따라서, 사용자들에게 보다 편리하게 아이템들을 제공하기 위해서 아이템의 내용이나 사용자 단말기의 종류 또는 모바일 아이템을 이용하기 위한 추가 이용 요금 여부 등에 따라서 항목을 분류하여 제공하고 있다. 또한, 이와 같은 항목 분류에서도 아이템들의 인기도나 최신성에 따라 아이템 목록에서의 노출 순위가 결정되고, 수시로 노출 순위를 갱신하면서 제공되고 있다. The rapid growth of smartphones and tablet PCs is driving the rapid growth of mobile app stores that offer a variety of mobile content and services. These mobile app stores offer a wide variety of mobile items. Accordingly, in order to provide items to the users more conveniently, the items are classified and provided according to the contents of the items, the type of the user terminal, the additional usage fee for using the mobile item, and the like. Also, in such item classification, the exposure ranking in the item list is determined according to the popularity and the latestness of the items, and is provided while updating the exposure rank from time to time.

이에 따라 많은 양의 모바일 아이템을 제공하는 앱스토어 서버는 수시로 변동되는 아이템들의 노출 순위를 업데이트하여 데이터베이스에 저장하고 관리해야 하는데, 이러한 작업은 경우에 따라 커다란 부하를 줄 수 있어 시스템에 있어서는 마이너스 적인 요소가 되고 있다. 그럼에도 불구하고 시스템 부하를 걱정하여 제공하는 모바일 아이템의 수를 줄이거나, 성능향상을 위해 시스템을 증축에 막대한 비용을 지출하는 방법은 사업자에게 있어 큰 부담이 될 수 있다.Accordingly, the app store server that provides a large amount of mobile items needs to update and update the exposure order of the items that are changed frequently from time to time, and to store and manage them in the database. Such a work may cause a heavy load depending on the case, . Nevertheless, reducing the number of mobile items provided by worrying about the system load, or spending a huge amount of money on expanding the system to improve performance, can be a burden for the operators.

한국 공개 특허 제10-2001-0025387호, 2001년 4월 6일 공개 (명칭: 인터넷을 이용한 순위 측정 시스템 및 방법)Korean Patent Laid-Open No. 10-2001-0025387, published on April 6, 2001 (name: system and method for ranking using the Internet)

본 발명의 목적은, 스토어에서 제공하는 아이템 목록의 다양한 아이템들을 그룹핑하고, 아이템 그룹들 중에서 업데이트할 업데이트 그룹만을 선별하여 업데이트를 수행함으로써 시스템이 아이템 업데이트를 위해 효율적인 연산을 수행할 수 있도록 하는 것이다.It is an object of the present invention to allow the system to perform efficient operations for item update by grouping various items in the item list provided by the store and performing an update by selecting only update groups to be updated among the item groups.

또한, 본 발명의 목적은 아이템 목록에 포함된 아이템들 중 한번에 여러 개의 아이템들에 대해서 업데이트를 수행하는 경우에 업데이트 수행량을 최소한으로 줄일 수 있는 경우의 값을 찾아 제공함으로써 아이템의 업데이트에 따른 시스템 작업량을 감소시키는 것이다.It is also an object of the present invention to provide a system for updating an item by searching for and providing a value when an update performance amount can be minimized when performing an update for a plurality of items at a time among items included in an item list, Reducing the workload.

상기한 목적을 달성하기 위한 본 발명에 따른 아이템 정렬 방법은, 아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성하는 단계; 상기 아이템 그룹들 중 최장 증가 부분수열(longest increasing subsequence)에 해당하는 제외 그룹들을 선별하는 단계; 상기 아이템 그룹들에서 상기 제외 그룹들을 제외하여 업데이트 그룹들을 선별하는 단계; 및 상기 업데이트 그룹들에 대하여 업데이트를 수행하여, 상기 아이템들에 대한 아이템 정렬을 수행하는 단계를 포함한다.According to another aspect of the present invention, there is provided an item alignment method comprising: grouping adjacent items among items included in an item list to generate item groups; Selecting exclusion groups corresponding to a longest increasing subsequence among the item groups; Selecting update groups by excluding the exclusion groups from the item groups; And performing an update on the update groups to perform item alignment for the items.

이 때, 아이템 그룹들을 생성하는 단계는 상기 아이템 목록에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑 할 수 있다.At this time, the step of generating the item groups may group the items whose update order is incremented by 1 among the items included in the item list.

이 때, 제외 그룹들을 선별하는 단계는 상기 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 상기 최장 증가 부분수열을 찾고, 상기 최장 증가 부분수열에 포함된 상기 시작 순서에 상응하는 아이템 그룹들을 상기 제외 그룹들로 선별할 수 있다.The selecting of the excluded groups may include searching for the longest incremental partial sequence using a start order corresponding to each of the item groups, and extracting groups of items corresponding to the start sequence contained in the longest incremental partial sequence, Groups can be selected.

이 때, 제외 그룹들을 선별하는 단계는 상기 최장 증가 부분수열이 둘 이상인 경우에, 상기 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 상기 제외 그룹들을 선별할 수 있다.In this case, in the case where the longest incremental partial sequence is more than two, the step of selecting the exclusion groups may select the exclusion groups considering the size of the group of the item groups corresponding to the start order included in the longest incremental partial sequence have.

이 때, 업데이트는 상기 아이템들 중 상기 업데이트 그룹들에 상응하는 업데이트 아이템들에 대해서만 수행될 수 있다.At this time, the update may be performed only for the update items corresponding to the update groups among the items.

이 때, 아이템 정렬을 수행하는 단계는 다중 정렬 색인들을 이용하여 상기 아이템 정렬을 수행할 수 있다.At this time, performing the item alignment may perform the item alignment using multiple alignment indices.

이 때, 아이템 정렬을 수행하는 단계는 상기 아이템들 중 상기 다중 정렬 색인들 중 주요 색인(primary index)이 동일한 아이템들에 대하여 상기 다중 정렬 색인들 중 보조 색인(auxiliary index)을 이용하여 상기 아이템 정렬을 수행할 수 있다.In this case, the step of performing the item alignment may include arranging the items in the plurality of ordered indexes by using an auxiliary index among the multiple ordered indexes for items having the same primary index among the multiple ordered indexes among the items. Can be performed.

이 때, 업데이트는 상기 아이템들 중 상기 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 상기 다중 정렬 색인들을 고려하여 수행할 수 있다.At this time, the update may be performed in consideration of the multiple sort indexes of the items among the items that differ from the update items in the update order by one step.

이 때, 업데이트는 상기 업데이트 아이템들과 상기 갱신 순서가 한 단계씩 차이 나는 아이템들의 상기 주요 색인이 동일한 경우에, 상기 업데이트 아이템들과 상기 갱신 순서가 한 단계씩 차이 나는 아이템들 중 어느 하나의 상기 보조 색인을 변경하여 수행할 수 있다.In this case, if the update index is identical to the main index of the update items and the items whose update order is one step difference, You can do this by changing the secondary index.

이 때, 업데이트는 상기 업데이트 아이템들과 상기 갱신 순서가 한 단계씩 차이 나는 아이템들과 상기 주요 색인이 동일한 아이템들의 개수를 고려하여 수행할 수 있다.At this time, the update may be performed in consideration of the number of the items having the same index and the items differing in the update order by one step from the update items.

또한, 본 발명에 따른 아이템 정렬 장치는, 서버로부터 아이템 목록을 수신하는 아이템 목록 수신부; 상기 아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성하는 아이템 그룹 생성부; 최장 증가 부분수열(longest increasing subsequence) 을 이용하여 상기 아이템 그룹들 중 업데이트 그룹들을 업데이트하는 아이템 업데이트부; 및 상기 업데이트에 기반하여 상기 아이템들에 대한 아이템 정렬을 수행하는 아이템 정렬부를 포함한다.According to another aspect of the present invention, there is provided an apparatus for sorting an item, comprising: an item list receiving unit for receiving an item list from a server; An item group generating unit for grouping adjacent items among the items included in the item list to generate item groups; An item update unit updating the update groups among the item groups using a longest increasing subsequence; And an item arrangement unit for performing item arrangement on the items based on the update.

이 때, 아이템 그룹 생성부는 상기 아이템 목록에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑 할 수 있다.At this time, the item group generating unit may group items in which the update order of the items included in the item list is incremented by one.

이 때, 아이템 업데이트부는 상기 아이템 그룹들 중 최장 증가 부분수열에 해당하는 제외 그룹들을 선별하는 제외 그룹 선별부; 및 상기 아이템 그룹들에서 상기 제외 그룹들을 제외하여 상기 업데이트 그룹들을 선별하는 업데이트 그룹 선별부를 포함할 수 있다.In this case, the item update unit may include an excluded group selection unit for selecting excluded groups corresponding to the longest incremental partial sequence among the item groups; And an update group selector for selecting the update groups by excluding the exclusion groups from the item groups.

이 때, 제외 그룹 선별부는 상기 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 상기 최장 증가 부분수열을 찾고, 상기 최장 증가 부분수열에 포함된 상기 시작 순서에 상응하는 아이템 그룹들을 상기 제외 그룹들로 선별할 수 있다.At this time, the excluded group selection unit searches for the longest incremental partial sequence using the start order corresponding to each of the item groups, and groups the items corresponding to the start sequence included in the longest incremental partial sequence into the excluded groups Can be selected.

이 때, 제외 그룹 선별부는 상기 최장 증가 부분수열이 둘 이상인 경우에, 상기 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 상기 제외 그룹들을 선별할 수 있다.In this case, when the longest incremental partial sequence is more than one, the excluded group selection unit may select the exclusion groups considering the size of the group of item groups corresponding to the start order included in the longest incremental partial sequence.

이 때, 아이템 업데이트부는 상기 아이템들 중 상기 업데이트 그룹들에 상응하는 업데이트 아이템들만 업데이트할 수 있다.At this time, the item update unit may update only the update items corresponding to the update groups among the items.

이 때, 아이템 정렬부는 다중 정렬 색인들을 이용하여 상기 아이템 정렬을 수행할 수 있다.At this time, the item arrangement unit may perform the item alignment using multiple alignment indexes.

이 때, 아이템 정렬부는 상기 아이템들 중 상기 다중 정렬 색인들 중 주요 색인(primary index)이 동일한 아이템들에 대하여 상기 다중 정렬 색인들 중 보조 색인(auxiliary index)을 이용하여 상기 아이템 정렬을 수행할 수 있다.At this time, the item sorting unit can perform the item sorting using the auxiliary index among the multiple sorting indexes for items having the same primary index among the multiple sorting indexes among the items have.

이 때, 아이템 업데이트부는 상기 아이템들 중 상기 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 상기 다중 정렬 색인들을 고려하여 상기 업데이트 아이템들을 업데이트할 수 있다.In this case, the item update unit may update the update items in consideration of the multiple sorting indexes of the items whose update order is one step out of the update items among the items.

본 발명에 따르면, 사용자들에게 컨텐츠나 아이템을 제공하는 서버 시스템에 대해서, 한번에 여러 개의 아이템들을 업데이트하는 경우 업데이트의 수행량을 최소한으로 줄일 수 있는 경우의 값을 찾아 제공함으로써 아이템의 업데이트에 따른 서버 시스템의 작업량을 감소시킬 수 있다.According to the present invention, when a plurality of items are updated at a time for a server system that provides contents or items to users, a value obtained when the amount of update can be minimized can be found and provided, The workload of the system can be reduced.

또한, 본 발명은 아이템 그룹을 이용하여 아이템 목록에 포함된 아이템들 중 업데이트할 아이템을 효과적으로 검색할 수 있어, 아이템을 업데이트하기 위한 시스템 작업량을 현저하게 감소시킬 수 있다.In addition, the present invention can effectively search for items to be updated among the items included in the item list using the item group, thereby significantly reducing the system workload for updating the items.

도 1은 본 발명의 일실시예에 따른 아이템 정렬 방법을 나타낸 동작 흐름도이다.
도 2는 본 발명의 일실시예에 따른 아이템 그룹들을 생성하는 과정을 나타낸 도면이다.
도 3은 최장 증가 부분수열의 일 예를 나타낸 도면이다.
도 4는 아이템 정렬 과정을 나타낸 도면이다.
도 5는 카테고리에 따른 아이템 목록을 나타낸 도면이다.
도 6은 아이템 노출 순위 변경을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 다중 정렬 색인을 이용한 아이템 정렬 과정을 나타낸 도면이다.
도 8은 본 발명의 다른 실시예에 따른 다중 정렬 색인을 이용한 아이템 정렬 과정을 나타낸 도면이다.
도 9는 본 발명의 일실시예에 따른 아이템 정렬 장치를 나타낸 블록도이다.
도 10은 도 9에 도시된 아이템 업데이트부의 일 예를 나타낸 블록도이다.
1 is a flowchart illustrating an item sorting method according to an exemplary embodiment of the present invention.
2 is a diagram illustrating a process of generating groups of items according to an embodiment of the present invention.
3 is a diagram showing an example of the longest incremental partial sequence.
4 is a view showing an item sorting process.
5 is a view showing a list of items according to categories.
FIG. 6 is a view showing an item exposure ranking change.
FIG. 7 is a diagram illustrating an item alignment process using multiple alignment indexes according to an exemplary embodiment of the present invention. Referring to FIG.
8 is a view illustrating an item alignment process using multiple alignment indexes according to another embodiment of the present invention.
9 is a block diagram showing an item alignment apparatus according to an embodiment of the present invention.
10 is a block diagram showing an example of the item update unit shown in FIG.

이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다. 또한 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다.The terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings and the inventor is not limited to the concept of terminology for describing his or her invention in the best way. It should be interpreted as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible. Also, the terms first, second, etc. are used for describing various components and are used only for the purpose of distinguishing one component from another component, and are not used to define the components.

도 1은 본 발명의 일실시예에 따른 아이템 정렬 방법을 나타낸 동작 흐름도이다.1 is a flowchart illustrating an item sorting method according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 아이템 정렬 방법은 아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성할 수 있다(S110). Referring to FIG. 1, an item sorting method according to an exemplary embodiment of the present invention may generate item groups by grouping adjacent items among items included in an item list (S110).

이 때, 아이템들은 각각 상품, 컨텐츠 또는 서비스 등에 상응하는 것일 수 있다. 스마트 폰이나 태블릿 PC를 통해서 이용할 수 있는 상품, 컨텐츠 및 서비스는 그 종류에 따라 어플리케이션 스토어, 북 스토어 및 뮤직 스토어 등 다양한 종류의 스토어를 통해 제공될 수 있다. 이러한 아이템들은 아이템 목록을 통해 사용자들에게 노출시킬 수 있다. 또한, 아이템 목록을 전시할 때 아이템 목록에 포함된 아이템들 각각의 인기도나 최신성 등을 반영하여 아이템 목록에서의 노출 순위를 결정할 수 있다. 이와 같은 노출 순위는 인기도나 최신성을 반영하기 때문에 시간이 지남에 따라 수시로 변동될 수 있다. 따라서, 아이템을 제공하는 서버 시스템에서는 사용자들에게 업데이트 된 최신 정보를 제공하기 위해서 아이템들의 노출 순위 변동에 따라 시스템에 저장된 정보들을 실시간으로 업데이트하여 제공할 수 있다.At this time, the items may correspond to goods, contents or services, respectively. Products, contents, and services that can be used through a smartphone or a tablet PC can be provided through various types of stores such as an application store, a book store, and a music store, depending on their types. These items can be exposed to users through the item list. In addition, when displaying the item list, the exposure order in the item list can be determined by reflecting the popularity or the latestness of each item included in the item list. Such exposure rankings may change over time as they reflect popularity or up-to-date. Accordingly, in the server system providing the item, the information stored in the system can be updated in real time according to the change of the exposure order of the items in order to provide updated updated information to the users.

그러나, 이와 같이 시스템에 저장된 아이템 정보들을 업데이트하기 위해 매번 수많은 아이템들을 모두 업데이트하는 행위는 시스템에 커다란 부하를 가져올 수 있다. 따라서, 아이템들을 업데이트할 때 시스템이 처리할 업데이트 작업량을 최소한으로 감소시킬 수 있는 값들을 찾아 업데이트를 수행할 수 있다.However, updating the numerous items every time in order to update the item information stored in the system as described above can put a heavy load on the system. Therefore, when updating the items, the system can perform updates by finding values that can minimize the amount of update work to be processed.

실제 서비스에서는 아이템 목록에 포함된 아이템들에 비해서 비교적 적은 수의 아이템들만 노출 순위가 변경되는 경우가 많을 수 있다. 따라서, 이러한 경우에 적합한 아이템 업데이트 및 아이템 정렬을 위해 인접하는 아이템들 중 갱신 순서가 증가하는 아이템들을 그룹핑하여 아이템 정렬을 위한 단계를 수행할 수 있다. In an actual service, only a relatively small number of items may change the exposure ranking compared to the items included in the item list. Accordingly, in this case, items for which the update order of the adjacent items is increased are grouped for item update and item alignment to perform item alignment.

이 때, 아이템 목록에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑할 수 있다. 예를 들어, 1-2-3-5-6-4-7-8-9-10-11-12-13-14-15의 갱신 순서로 아이템들이 배열되어 있을 때, 갱신 순서 1에 상응하는 아이템부터 갱신 순서가 1씩 증가하는 갱신 순서 3에 상응하는 아이템까지 그룹핑하여 아이템 그룹 G1(1,2,3)을 생성할 수 있다. At this time, the items in the list of items can be grouped by 1 in order of increasing the update order. For example, when items are arranged in the update order of 1-2-3-5-6-4-7-8-9-10-11-12-13-14-15, Item group G1 (1, 2, 3) can be generated by grouping items corresponding to the update order 3 in which the update order is incremented by 1 from the item.

이 때, 갱신 순서는 노출 순위 변동과 같은 변화에 따라 아이템 목록에 포함된 아이템들을 배열한 순서일 수 있다. 예를 들어, 아이템 목록의 1위부터 5위까지의 아이템들 중 5위의 아이템 순위가 1위로 변경되었다면 갱신 순서는 5-1-2-3-4 일 수 있다. 즉, 갱신 순서는 단위 갱신이 이루어지기 전과 이루어진 후의 순위 변동 관계에 상응하는 것일 수 있다.At this time, the update order may be an order in which the items included in the item list are arranged in accordance with the change such as the exposure order change. For example, if the item ranking of the 5th item from the first to fifth items in the item list is changed to 1, the update order may be 5-1-2-3-4. That is, the update order may correspond to a rank change relationship before and after the unit update is performed.

따라서, 아이템 그룹 G1(1,2,3)을 생성한 것과 같은 방법으로 G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)와 같이 3개의 아이템 그룹을 더 생성할 수 있다. 이러한 아이템 그룹들은 각각 시작 순서와 그룹의 크기를 가질 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3)의 경우에 시작 순서는 '1'이고 그룹의 크기는 그룹에 포함된 아이템의 개수인 '3'일 수 있다. 이와 같은 시작 순서와 그룹의 크기는 아이템 그룹들 중 업데이트될 업데이트 그룹들을 선별할 때 이용될 수 있다.Therefore, G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) are generated in the same way as item group G1 ) Can be further created. These item groups may have start order and group size respectively. For example, in the case of the item group G1 (1,2,3), the start order is '1' and the size of the group may be '3', which is the number of items included in the group. The start order and the size of the group may be used to select update groups to be updated among the group of items.

또한, 본 발명의 일실시예에 따른 아이템 정렬 방법은 아이템 그룹들 중 최장 증가 부분수열(longest increasing subsequence)에 해당하는 제외 그룹들을 선별할 수 있다(S120). 시스템에서 처리할 업데이트 작업량을 최소한으로 감소시킬 수 있는 경우의 값들을 찾기 위해 최장 증가 부분수열을 이용할 수 있다. 최장 증가 부분수열(longest increasing subsequence)은 값이 증가하는 부분수열 중 가장 긴 수열로, 앞에서부터 뒤로 증가하는 숫자를 선택해 나갈 때 최대 길이를 갖는 수열이다. 따라서 순차적으로 증가하는 숫자들에 해당하는 최장 증가 부분수열에 해당하는 아이템들은 업데이트 대상에서 제외함으로써 시스템 작업량을 최소화시킬 수 있는 아이템들을 선별할 수 있다. 예를 들어, 5개의 아이템들이 1-4-2-3-5 의 갱신 순서를 갖는다면, 갱신 순서에서 최장 증가 부분수열은 4개의 갱신 순서를 수열로 갖는 1-2-3-5 일 수 있다. 또한, 최장 증가 부분수열인 1-2-3-5 에 해당하는 갱신 순서에 상응하는 아이템들은 제외 아이템들로 선별할 수 있다.In addition, the item sorting method according to an embodiment of the present invention may select exclusion groups corresponding to the longest increasing subsequence among the group of items (S120). You can use the longest incremental partial sequence to find the values when the system can reduce the update workload to a minimum. The longest increasing subsequence is the longest of the partial sequences for which the value is increasing. It is the sequence that has the maximum length when selecting numbers that increase from the beginning to the end. Accordingly, items corresponding to the longest incremental sequence corresponding to sequentially increasing numbers can be excluded from the update target, thereby selecting items that can minimize the system load. For example, if five items have an update order of 1-4-2-3-5, then the longest incremental partial sequence in the update sequence may be 1-2-3-5 having four update sequences as a sequence . Items corresponding to the update sequence corresponding to the longest incremental partial sequence 1-2-3-5 can be selected as excluded items.

이와 같은 최장 증가 부분수열을 이용함으로써, 다양한 카테고리에 대한 아이템이 혼재된 아이템 목록에서의 노출 순위 변동에 상응하게 특정 카테고리의 아이템들로만 구성된 아이템 목록을 업데이트하는 것이 가능하다. 예를 들어, 게임, 생활, 어학 등의 카테고리에 대한 아이템이 혼재된 아이템 목록 A가 있다고 가정할 수 있다. 만약 아이템 목록 A에 포함된 게임 아이템 a의 노출 순위가 변경되었다면, 게임 카테고리에 상응하는 아이템들만으로 구성된 아이템 목록 B에서도 게임 아이템 a의 노출 순위를 업데이트할 수 있다.By using such a longest incremental partial sequence, it is possible to update the item list composed only of items of a certain category corresponding to the change of the exposure order in the list of items in which items for various categories are mixed. For example, it can be assumed that there is an item list A in which items for categories such as game, life, and language are mixed. If the exposure order of the game item a included in the item list A has been changed, the exposure order of the game item a can also be updated in the item list B including only the items corresponding to the game category.

또한, 현재 알려진 최장 증가 부분수열의 계산 복잡도를 구하는 가장 효율적인 알고리즘은 O(nlog(n))이고, 여기서 n은 입력수열의 개수, 즉 아이템의 개수일 수 있다. 예를 들어, 아이템 목록에 1024개의 아이템들이 포함되어 있다면 해당 아이템 목록에서 최장 증가 부분수열을 통해 업데이트할 아이템을 선별하기 위한 계산 복잡도는 O(10000) 정도일 수 있다. Also, the most efficient algorithm for finding the computational complexity of the currently known longest incremental partial sequence is O (nlog (n)), where n may be the number of input sequences, i. For example, if the item list contains 1024 items, the computational complexity for selecting items to update through the longest incremental sequence in the item list may be O (10,000).

그러나, 아이템들을 그룹핑하여 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)의 값일 수 있다. 예를 들어, 1024개의 아이템 목록에 포함된 아이템들을 그룹핑하여 4개의 아이템 그룹을 생성하였을 때, 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)인 O(16)일 수 있다. 이와 같이 실제로 계산했을 때 현저히 적은 연산만으로 업데이트 아이템들을 선별할 수 있기 때문에, 아이템들을 그룹핑하여 아이템 정렬을 수행함으로써 시스템의 작업량을 감소시킬 수 있다.However, if the items are grouped to calculate the computational complexity of the longest incremental partial sequence through the group of items, it may be a value of O (the square of the number of groups). For example, if you create four item groups by grouping items contained in a list of 1024 items, if you calculate the calculation complexity of the longest incremental partial sequence through the group of items, then O (16, the square of the number of groups) ). In this way, since the update items can be selected only by a very small number of calculations in actual calculation, the workload of the system can be reduced by grouping the items and performing item alignment.

이 때, 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 최장 증가 부분수열을 찾고, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별할 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3), G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)가 생성되었다고 가정한다면, 각 아이템 그룹들의 시작 순서인 '1', '5', '4', '7'을 이용하여 최장 증가 부분수열인 (1,5,7)을 찾을 수 있다. 이렇게 찾은 최장 증가 부분수열(1,5,7)에 포함된 시작 순서에 상응하는 아이템 그룹들인 G1(1,2,3), G2(5,6) 및 G4(7,8,9,10,11,12,13,14,15)를 제외 그룹들로 선별할 수 있다.At this time, the longest incremental partial sequence may be searched using the start order corresponding to each of the item groups, and the item groups corresponding to the start sequence included in the longest incremental partial sequence may be selected as the excluded groups. For example, it is assumed that item groups G1 (1,2,3), G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) , We can find the longest incremental sequence (1, 5, 7) using '1', '5', '4', and '7' G1 (1,2,3), G2 (5,6), and G4 (7,8,9,10,10) corresponding to the start order included in the longest incremental partial sequence (1,5,7) 11, 12, 13, 14, 15) can be selected as exclusion groups.

이 때, 최장 증가 부분수열이 둘 이상인 경우에, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 제외 그룹들을 선별할 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3), G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)가 생성되었다고 가정한다면, 각 아이템 그룹들의 시작 순서인 '1', '5', '4', '7'을 이용하여 (1,5,7) 및 (1,4,7)과 같은 두 개의 최장 증가 부분수열을 찾을 수 있다. 이 때, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별하기 때문에, 최장 증가 부분수열 (1,5,7)과 (1,4,7)을 각각 이용하여 선별된 제외 그룹들은 상이할 수 있다. 그러나, 본 발명은 아이템의 업데이트 시 시스템에서 보다 적은 작업을 수행하기 위한 업데이트 값을 제공하기 위한 것으로, 보다 많은 아이템이 업데이트에서 제외 대상이 되는 값을 선택할 수 있다. 따라서, 두 개의 최장 증가 부분수열 중 보다 많은 아이템을 제외할 수 있는 (1,5,7)을 이용하여 제외 그룹들을 선별할 수 있다.In this case, when the longest incremental partial sequence is two or more, the excluded groups can be selected in consideration of the size of the group of item groups corresponding to the start order included in the longest incremental partial sequence. For example, it is assumed that item groups G1 (1,2,3), G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) Assuming that the two longest incremental parts (1, 5, 7) and (1, 4, 7) such as (1, 5, 7) and You can find the sequence. In this case, since the group of items corresponding to the start order included in the longest incremental partial sequence is selected as the exclusion groups, selection using the longest incremental partial sequences (1,5,7) and (1,4,7) The excluded groups may be different. However, the present invention is intended to provide an update value for performing less work in the system when updating an item, and more items can be selected from values to be excluded from the update. Therefore, exclusion groups can be selected using (1,5,7) which can exclude more items from the two longest incremental partial sequences.

상기에서 설명한 것과 같이 현재 알려진 최장 증가 부분수열의 가장 효율적인 알고리즘은 O(nlog(n))이고, 여기서 n은 입력순열의 개수일 수 있다. 본 발명에서는 아이템들을 그룹핑했기 때문에 O(nlog(n)) 알고리즘을 사용할 수 없을 수 있다. 따라서, 동적 프로그래밍으로 최장 증가 부분수열을 푸는 방법을 이용할 수 있으며, 실제 연산은 각 그룹의 크기와 시작 순서만으로 계산되기 때문에 연산을 획기적으로 줄이는 것이 가능할 수 있다. 예를 들어, 아이템 그룹들의 최장 증가 부분수열을 찾아 업데이트 그룹들을 선별하는 방법은 각 그룹들이 업데이트 그룹들에 속하거나 제외 그룹들에 속하는 경우로 분류되기 때문에 계산 복잡도는 O(그룹수의 제곱)이 될 수 있다. 실제로 순 증가하는 그룹들로만 구성되지 않는 해, 즉 업데이트 그룹들은 최장 증가 부분수열에 대한 해집합에 포함되지 않고 제외되어 실제 계산은 O(그룹수의 제곱)보다 현저히 적은 연산만으로 가능할 수 있다.As described above, the most efficient algorithm of the currently known longest incremental partial sequence is O (nlog (n)), where n may be the number of input permutations. In the present invention, the O (nlog (n)) algorithm may not be available because the items are grouped. Therefore, it is possible to use a method of solving the longest incremental partial sequence by dynamic programming. Since the actual operation is calculated by only the size of each group and the start order, it is possible to drastically reduce the operation. For example, the method of selecting update groups by finding the longest partial sequence of item groups is classified as when each group belongs to update groups or exclusion groups, so the calculation complexity is O (the square of the number of groups) . In fact, solutions that do not consist solely of net incrementing groups, that is update groups, are excluded from the set of solutions for the longest incremental partial sequence and the actual computation may be possible only with significantly fewer operations than O (the square of the number of groups).

또한, 본 발명의 일실시예에 따른 아이템 정렬 방법은 아이템 그룹들에서 제외 그룹들을 제외하여 업데이트 그룹들을 선별할 수 있다(S130). 아이템 목록에 포함된 아이템들의 노출 순위 변경으로 인한 업데이트 시, 업데이트로 인한 시스템의 작업량을 최소한으로 감소시키면 보다 원활하게 시스템을 가동할 수 있다. 따라서, 아이템 목록에 포함된 아이템들을 이용하여 생성한 아이템 그룹들 중에서 최장 증가 부분수열을 이용하여 선별된 제외 그룹들을 제외한 나머지 아이템 그룹들만을 업데이트하기 위한 업데이트 그룹들로 선별할 수 있다. 예를 들어, 아이템 그룹들의 시작 순서를 이용한 갱신 순서가 1-5-2-3-4 라고 한다면, 시작 순서를 이용한 갱신 순서의 최장 증가 부분수열에 의해 갱신 순서 1-2-3-4에 상응하는 시작 순서를 갖는 아이템 그룹들은 제외 그룹들로 선별될 수 있다. 따라서, 나머지 갱신 순서 5에 상응하는 시작 순서를 갖는 아이템 그룹만을 업데이트 그룹으로 선별할 수 있다.In addition, the item sorting method according to an embodiment of the present invention may select update groups by excluding excluded groups from item groups (S130). In case of updating due to the change of the exposure ranking of the items included in the item list, it is possible to smoothly operate the system by minimizing the workload of the system due to the update. Therefore, it is possible to select only the update groups for updating only the remaining item groups excluding the exclusion groups selected using the longest incremental partial sequence among the item groups generated by using the items included in the item list. For example, if the update order using the start order of the group of items is 1-5-2-3-4, then the longest incremental partial sequence of the update order using the start order corresponds to the update order 1-2-3-4 May be sorted into exclusion groups. Therefore, only the item group having the start order corresponding to the remaining update order 5 can be selected as the update group.

또한, 본 발명의 일실시예에 따른 아이템 정렬 방법은 업데이트 그룹들에 대하여 업데이트를 수행하여, 아이템들에 대한 아이템 정렬을 수행할 수 있다(S140). 아이템 그룹들 중 업데이트 그룹들을 업데이트 할 수 있다. 또한, 업데이트와 상응하게 아이템들에 대한 아이템 정렬을 수행하여 서버에서 아이템 목록을 업데이트하여 사용자들에게 제공할 수 있다.In addition, the item alignment method according to an exemplary embodiment of the present invention may update the update groups to perform item alignment for the items (S140). Update groups of item groups can be updated. In addition, it is possible to update the list of items in the server and provide them to the users by performing item sorting on the items in accordance with the update.

이 때, 업데이트는 아이템들 중 업데이트 그룹들에 상응하는 업데이트 아이템들에 대해서만 수행될 수 있다. 예를 들어, 1위부터 5위까지의 노출 순위를 갖는 5개의 아이템이 있다고 가정하였을 때, 노출 순위 변동에 따라 5위의 아이템 순위를 1위로 변경할 수 있다. 만약 기존의 업데이트 방법을 이용한다면 5위의 아이템 순위를 1위로 업데이트하고 1위부터 4위에 해당하는 아이템들의 순위는 하나씩 더해지도록 업데이트함으로써 총 5번의 업데이트 작업이 필요할 수 있다. 그러나 이러한 업데이트 방법은 아이템의 개수가 많을 경우에 시스템에 부하를 줄 수 있기 때문에, 많은 개수의 컨텐츠를 제공하는 스토어 등에서 사용하기에 적절한 방법이 아닐 수 있다. 따라서, 최장 증가 부분수열을 통해 1위부터 4위에 해당하는 아이템들은 업데이트 작업에서 제외될 제외 아이템들로 선별할 수 있다. 또한, 아이템들 중 제외 아이템들을 제외한 5위의 아이템만을 업데이트 아이템으로 선별하여 업데이트를 수행함으로써 시스템의 작업량을 현저하게 감소시킬 수 있다.At this time, the update may be performed only for the update items corresponding to the update groups among the items. For example, assuming that there are five items with the exposure rankings from the first to the fifth rank, the item rank of the fifth item can be changed to the rank one according to the change of the exposure ranking. If you use the existing update method, you may need to update 5 items in the first place and update the items in the first to fourth items so that they are added one by one. However, this update method may not be a suitable method for use in a store providing a large number of contents and the like because it can load the system when the number of items is large. Therefore, the items from the first to the fourth through the longest incremental sequence can be selected as excluded items to be excluded from the update operation. In addition, only the fifth item excluding the excluded items among the items can be selected as an update item, and the updating can be performed to significantly reduce the workload of the system.

이 때, 다중 정렬 색인들을 이용하여 아이템 정렬을 수행할 수 있다. 본 발명에서와 같은 아이템 목록이나 다양한 컨텐츠를 제공하는 스토어 등에서 사용자들에게 제공하는 컨텐츠의 아이템 목록을 정렬을 위해서는 일반적으로 단일 정렬 색인을 이용할 수 있다. 하지만, 단일 정렬 색인을 이용하여 노출 순위가 수시로 변경되는 아이템들 및 컨텐츠들을 업데이트하고 아이템 목록을 정렬하기에는 매우 복잡한 연산과정이 필요할 수 있다. 따라서, 본 발명에서는 두 개 이상의 색인을 통한 다중 정렬 색인을 이용하여 노출 순위가 수시로 변경되는 환경에서 아이템이나 컨텐츠를 보다 효과적으로 업데이트하고 아이템들의 아이템 정렬을 수행할 수 있다. 예를 들어, C1부터 Cn까지의 n개의 정렬 색인을 이용하여 SQL select에서 "order by C1, C2, ... , Cn"으로 정렬할 수 있다. 첫 번째 정렬 색인 C1을 이용하여 정렬을 수행하고 단계적으로 C2, C3, ... , Cn까지의 정렬 색인들을 이용하여 아이템 정렬을 수행할 수 있다. 또한, 두 번째 정렬 색인인 C2는 첫 번째 정렬 색인인 C1들의 값을 업데이트하지 않고 C2의 값을 통해서만 아이템 정렬을 수행할 수 있다.At this time, item alignment can be performed using multiple alignment indexes. In order to arrange the item list of contents to be provided to users in a list of items such as the present invention or a store providing various contents, a single sorting index can be generally used. However, a very complicated operation procedure may be required to update the items and contents in which the exposure order is changed frequently using a single sorting index, and sort the item list. Accordingly, in the present invention, it is possible to more effectively update an item or content and perform item alignment of items in an environment in which an exposure order is frequently changed by using multiple sort indexes through two or more indexes. For example, you can sort by "order by C1, C2, ..., Cn" in SQL select using n sort indices from C1 to Cn. It is possible to perform sorting using the first sorting index C1 and arrange the items using the sorted indexes C2, C3, ..., Cn step by step. In addition, C2, the second sorting index, can perform item sorting only through the value of C2 without updating the value of C1, the first sorting index.

이 때, 아이템들 중 다중 정렬 색인들 중 주요 색인(primary index)이 동일한 아이템들에 대하여 다중 정렬 색인들 중 보조 색인(auxiliary index)을 이용하여 아이템 정렬을 수행할 수 있다. 주요 색인은 다중 정렬 색인들 중 첫 번째 정렬 색인일 수 있고, 보조 색인은 두 번째 정렬 색인일 수 있다. 예를 들어, 각 아이템의 주요 색인과 보조 색인을 순서대로 (x, y)의 형태로 나타내었을 때, A(1,0), B(2,0), C(3,0), D(4,0), E(5,0)의 5개의 아이템이 있다고 가정할 수 있다. 만약 아이템 E가 갱신 순서 상 아이템 A의 다음 단계에 위치한다면, 아이템 E는 아이템 A의 주요 색인을 고려하여 E(2,0)의 형태로 다중 정렬 색인들을 업데이트 할 수 있다. 그러나, 이와 같이 업데이트할 경우 업데이트된 아이템 E의 정렬 색인이 아이템 B(2,0)와 동일하기 때문에 시스템에서 아이템 정렬 시 오류가 발생할 수 있다. 따라서, E(2,-1)의 형태와 같이 보조 색인을 사용함으로써 시스템에서 원활하게 아이템 정렬을 수행할 수 있다.At this time, item alignment can be performed using an auxiliary index among multiple ordered indexes for items having the same primary index among multiple ordered indexes among the items. The primary index may be the first sorting index among the multiple sorting indices, and the secondary index may be the second sorting index. For example, A (1,0), B (2,0), C (3,0), D (0,0), and A 4,0), and E (5,0). If item E is located in the next step of item A in the update order, item E can update multiple ordered indexes in the form of E (2,0), taking into account the primary index of item A. However, if the updating is performed in this way, the sorting index of the updated item E is the same as that of the item B (2,0). Therefore, it is possible to perform item alignment smoothly in the system by using the auxiliary index as in the form of E (2, -1).

이 때, 업데이트는 아이템들 중 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 다중 정렬 색인들을 고려하여 수행할 수 있다. 예를 들어, 5개의 아이템 A(1,0), B(2,0), C(3,0), D(4,0), E(5,0)가 있다고 가정하였을 때, 아이템 E가 갱신 순서 상 아이템 A의 다음 순서에 위치하도록 변경되는 경우에는 E(2,-1) 및 E(1,1) 중 어느 하나의 형태로 아이템 E의 다중 정렬 색인들을 업데이트 할 수 있다. E(2,-1)는 갱신 순서 상 아이템 E의 다음 단계에 위치하는 아이템 B를 고려한 경우에 상응하는 다중 정렬 색인들의 업데이트 형태일 수 있다. 또한, E(1,1)은 갱신 순서 상 아이템 E의 전 단계에 위치하는 아이템 A를 고려한 경우에 상응하는 다중 정렬 색인들의 업데이트 형태일 수 있다.In this case, the update can be performed in consideration of the update items among the items and the multiple sort indexes of the items whose update order differs by one step. For example, suppose that there are five items A (1,0), B (2,0), C (3,0), D (4,0), E (5,0) (2, -1) and E (1, 1) when it is changed to be located in the next order of the item A in the update order. E (2, -1) may be an update form of multiple ordered indexes corresponding to item B located in the next step of item E in the update order. In addition, E (1,1) may be an update form of multiple ordered indexes corresponding to item A in the previous step of item E in the update order.

이 때, 업데이트는 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 주요 색인이 동일한 경우에, 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들 중 어느 하나의 보조 색인을 변경하여 수행할 수 있다. 예를 들어, 3개의 아이템 A(1,0), B(1,1), C(2,0)이 있다고 가정하였을 때, 아이템 C가 갱신 순서 상 아이템 A의 다음 순서에 위치하도록 변경되는 경우에는 아이템 C의 다중 정렬 색인만을 업데이트하여 아이템들을 정렬하기 어려울 수 있다. 왜냐하면, 아이템 A와 아이템 B의 주요 색인이 동일하면서, 보조 색인이 각각 '0'과 '1'이기 때문에 아이템 C의 보조 색인을 '0'과 '1'사이의 정수 값으로 설정할 수 없다. 따라서, A(1,0), C(1,1), B(1,2)의 형태와 같이 아이템 B의 보조 색인을 함께 업데이트할 수 있다. 또는 A(1,-1), C(1,0), B(1,1)의 형태와 같이 아이템 A의 보조 색인을 함께 업데이트함으로써 아이템 정렬을 수행할 수 있다.At this time, the update is performed by changing any one of the update items and the items whose update order is one step difference, when the update items and the main indexes of the items whose update orders are different one by one are the same can do. For example, when it is assumed that there are three items A (1,0), B (1,1), C (2,0), and the item C is changed to be positioned in the next order of the item A in the update order It may be difficult to update only the multiple sorting indices of item C to arrange the items. Because the main indexes of items A and B are the same and the auxiliary indexes are '0' and '1', the auxiliary index of item C can not be set to an integer value between '0' and '1'. Therefore, the auxiliary index of item B can be updated together with the form of A (1,0), C (1,1), B (1,2). Item A can be sorted by updating the auxiliary index of Item A such that A (1, -1), C (1,0), B (1,1)

이 때, 업데이트는 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들과 주요 색인이 동일한 아이템들의 개수를 고려하여 수행할 수 있다. 예를 들어, 5개의 아이템 A(1,-1), B(1,0), C(1,1), D(2,0), E(3,0)가 있다고 가정하였을 때, 아이템 E가 갱신 순서 상 아이템 C의 다음 순서에 위치하도록 변경되는 경우에는 E(1,2) 및 D(2,-1) 중 어느 하나의 형태로 다중 정렬 색인들을 업데이트 할 수 있다. 만약 E(1,2)의 형태로 다중 정렬 색인이 업데이트 된다면, 아이템을 정렬할 때 주요 색인이 동일한 4개의 아이템 A, B, C 및 E의 보조 색인을 이용하여 아이템 정렬을 수행할 수 있다. 그러나 E(2, -1)의 형태로 다중 정렬 색인이 업데이트 된다면 아이템을 정렬할 때 주요 색인이 동일한 2개의 아이템 E와 D의 보조 색인을 이용하여 아이템 정렬을 수행하게 되므로 업데이트를 위한 시스템의 작업량이 보다 감소할 수 있다. 따라서, 주요 색인이 동일한 아이템들의 개수를 고려하였을 때, 상대적으로 주요 색인이 동일한 아이템 개수가 적은 쪽으로 다중 정렬 색인들을 업데이트하여 시스템의 작업량을 감소시킬 수 있다.At this time, the update can be performed in consideration of the number of items having the same index as the items whose update order is one step difference from the update items. For example, suppose there are five items A (1, -1), B (1,0), C (1,1), D (2,0), E (3,0) (1, 2) and D (2, -1) in the case where the update order is changed to be located in the next order of the item C in the update order. If multiple ordered indexes are updated in the form of E (1,2), item alignment can be performed using the auxiliary indexes of the four items A, B, C, and E that have the same primary index when sorting the items. However, if multiple sort indexes are updated in the form of E (2, -1), item alignment is performed using the secondary indexes of the two items E and D having the same main index at the time of sorting the items. Can be reduced. Therefore, when considering the number of items having the same index as the main index, it is possible to reduce the workload of the system by updating the multi-sorting indexes with a relatively small number of items having the same main index.

이와 같은 아이템 정렬 방법을 이용하여 아이템 그룹들 중에서 업데이트할 업데이트 그룹만을 선별하여 업데이트를 수행함으로써, 시스템이 아이템 업데이트를 위해 효율적인 연산을 수행할 수 있도록 도울 수 있다.By using such an item sorting method, only the update group to be updated among the item groups is selected and updated, so that the system can help efficient operation for item update.

도 2는 본 발명의 일실시예에 따른 아이템 그룹들을 생성하는 과정을 나타낸 도면이다.2 is a diagram illustrating a process of generating groups of items according to an embodiment of the present invention.

도 2를 참조하면, 스토어의 아이템 목록에서 아이템들의 노출 순위가 변경되기 전의 상태를 나타낸 아이템들의 배열(210)을 확인할 수 있다.Referring to FIG. 2, an array 210 of items indicating the state before the exposure order of the items is changed in the item list of the store can be confirmed.

아이템들의 배열(210)에서 4번에 상응하는 아이템의 노출 순위가 변경되어 갱신 순서(220)와 같이 배열이 변경될 수 있다. The order of exposures of the items corresponding to the fourth item in the item arrangement 210 may be changed and the arrangement may be changed as in the update order 220. [

이 때, 갱신 순서(220)에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑함으로써 아이템 그룹들을 생성할 수 있다. 예를 들어, 갱신 순서(220)의 맨 처음 순서인 1에 상응하는 아이템부터 갱신 순서가 1씩 증가하는 3에 상응하는 아이템까지 그룹핑할 수 있다. 이후, 다음 갱신 순서인 5에 상응하는 아이템부터 다시 갱신 순서가 1씩 증가하는 6에 상응하는 아이템까지 그룹핑할 수 있다. 이와 같은 방법으로 그룹핑하여 아이템 그룹 G1(231), G2(232), G3(233) 및 G4(234)를 생성할 수 있다. At this time, item groups can be created by grouping the items whose update order is incremented by 1 among the items included in the update order 220. [ For example, an item corresponding to 1, which is the first order of the update order 220, and an item corresponding to 3, in which the update order is incremented by 1, can be grouped. Then, an item corresponding to 5, which is the next update order, can be further grouped to an item corresponding to 6 whose update order is incremented by 1. In this way, item groups G1 231, G2 232, G3 233 and G4 234 can be created by grouping.

이 때, 각 아이템 그룹의 시작 순서인 '1', '5', '4', '7'을 이용하여 최장 증가 부분수열인 (1,5,7)을 찾을 수 있고, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별할 수 있다. 또한, 부분수열 (1,4,7)도 최장 증가 부분수열이지만, 아이템 그룹의 크기를 고려하였을 때 더 많은 아이템들을 업데이트 대상에서 제외시킬 수 있는 (1,5,7)을 최장 증가 부분수열로 이용하여 제외 그룹들을 선별할 수 있다. In this case, the longest incremental partial sequence (1,5,7) can be found by using the start order of the item groups '1', '5', '4', and '7' Item groups corresponding to the included start order can be selected as exclusion groups. In addition, although the partial sequence (1, 4, 7) is also the longest incremental sequence, when the size of the item group is taken into account, Can be used to select exclusion groups.

이 때, 갱신 순서(220)에 포함된 아이템들을 그룹핑 하지 않고 최장 증가 부분수열을 이용하여 제외 아이템들을 선별한다면, 계산 복잡도는 O(nlog(n)) 알고리즘을 통해 O(10000) 정도일 수 있다. 그러나, 갱신 순서(220)의 아이템들을 그룹핑하고 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)의 값인 0(16)일 수 있다. 이와 같이 실제로 계산했을 때 현저히 적은 연산만으로 업데이트 아이템들을 선별할 수 있기 때문에, 아이템들을 그룹핑하여 아이템 정렬을 수행하여 시스템의 작업량을 감소시킬 수 있다.At this time, if the excluded items are selected using the longest incremental partial sequence without grouping the items included in the update order 220, the computational complexity may be O (10,000) through the O (nlog (n)) algorithm. However, if the items of the update order 220 are grouped and the calculation complexity of the longest incremental partial sequence is calculated through the item groups, it may be 0 (16), which is the value of O (the square of the number of groups). In this way, since the update items can be selected only by a very small number of calculations in actual calculation, it is possible to reduce the workload of the system by grouping items to perform item alignment.

도 3은 최장 증가 부분수열의 일 예를 나타낸 도면이다.3 is a diagram showing an example of the longest incremental partial sequence.

도 3을 참조하면, 일반 수열(310)에 포함된 숫자들을 각각 하나의 아이템으로 가정할 수 있다. 만약, 일반 수열(310)에 포함된 숫자들의 배열을 아이템 목록에서의 노출 순위라고 가정한다면, 노출 순위의 변동으로 인하여 변동 수열(320)과 같은 배열로 아이템들의 노출 순위가 변경될 수 있다. Referring to FIG. 3, it is assumed that the numbers included in the general sequence 310 are each an item. If the arrangement of the numbers included in the general sequence 310 is assumed to be the exposure order in the item list, the exposure order of the items can be changed in the same arrangement as the variation sequence 320 due to the variation in the exposure order.

이 때, 아이템들의 노출 순위 변동과 같은 변화에 따라 아이템 목록에 포함된 아이템들을 배열한 순서를 갱신 순서라 할 수 있다. 도 3에서는 변동 수열(320)에 상응하는 배열을 갱신 순서라 할 수 있다.In this case, the order in which the items included in the item list are arranged according to the change such as the change in the exposure order of the items may be referred to as an update order. In FIG. 3, the arrangement corresponding to the variation sequence 320 can be referred to as an update sequence.

이 때, 갱신 순서의 최장 증가 부분수열을 통해 아이템 목록에 포함된 아이템들 중 업데이트에서 제외할 제외 아이템들을 선별할 수 있다. 최장 증가 부분수열은 값이 증가하는 부분수열 중 가장 긴 수열로, 앞에서부터 뒤로 증가하는 숫자를 선택해 나갈 때 최대 길이를 갖는 수열이다. 예를 들어, 변동 수열(320)에서 최장 증가 부분수열을 찾으면 1-2-3-5-6 일 수 있다. 따라서, 갱신 순서가 최장 증가 부분수열에 해당하는 아이템들을 제외 아이템(330)으로 선별할 수 있다.At this time, the excluded items to be excluded from the update among the items included in the item list through the longest partial sequence of the update order can be selected. The longest incremental partial sequence is the longest of the partial sequences for which the value is incremented. It is the sequence that has the maximum length when selecting a number that increases from the beginning to the end. For example, if the longest incremental partial sequence is found in the fluctuation sequence 320, it may be 1-2-3-5-6. Accordingly, the items whose update order corresponds to the longest incremental partial sequence can be selected by the excluded item 330. [

이 때, 변동 수열(320)의 갱신 순서에 상응하는 아이템들 중 제외 아이템(330)을 제외한 아이템을 업데이트 아이템으로 선별할 수 있다. 따라서, 아이템 목록에 포함된 아이템들 중에서 업데이트 아이템들만 업데이트를 수행할 수 있다. 예를 들어, 도 3에서는 변동 수열(320)의 갱신 순서가 4와 7에 상응하는 아이템을 업데이트할 수 있다. 이와 같이 최장 증가 부분수열을 이용하여 아이템 목록에 포함된 아이템들 중 업데이트할 업데이트 아이템들만 선별하여 업데이트함으로써, 시스템이 처리할 업데이트 작업량을 최소한으로 감소시킬 수 있다.At this time, the items excluding the excluded items 330 among the items corresponding to the update sequence of the fluctuation sequence 320 can be selected as update items. Accordingly, only the update items among the items included in the item list can be updated. For example, in FIG. 3, the items of update order of the variation sequence 320 corresponding to 4 and 7 can be updated. As described above, by updating only the update items to be updated among the items included in the item list using the longest incremental partial sequence, the update workload to be processed by the system can be minimized.

도 4는 아이템 정렬 과정을 나타낸 도면이다.4 is a view showing an item sorting process.

도 4를 참조하면, 아이템 정렬 과정은 아이템 목록의 10위에 위치하던 '퍼스트 어벤져' 아이템이 1위로 업데이트됨으로써, 기존의 1위에서 9위까지의 9개의 아이템들도 하나의 순위씩 밀려나도록 업데이트 된 것을 알 수 있다. 이 과정에서 시스템은 아이템 목록을 정렬하기 위해 총 10번의 업데이트 작업을 수행할 수 있다.Referring to FIG. 4, in the item aligning process, the 'First Avenger' item, which is located at the tenth place in the item list, is updated to the top, so that the nine items from the first to ninth places are updated Able to know. During this process, the system can perform a total of 10 updates to sort the list of items.

이 때, 도 4에서는 10개의 아이템만을 포함한 아이템 목록을 아이템 정렬 과정을 통해 업데이트 및 정렬했지만, 실제로 다양한 카테고리에 해당하는 컨텐츠들이나 아이템들을 제공하는 스토어에서는 컨텐츠나 아이템의 개수가 많은 아이템 목록에 대해서 도 4와 같은 아이템 정렬을 수행할 수 있다. 또한, 카테고리에 따라 다양한 종류의 아이템 목록이 존재할 수 있기 때문에 각각의 아이템 목록에 대해서도 아이템 정렬을 수시로 수행할 수 있다. 예를 들어, 10000개의 아이템으로 구성된 아이템 목록에서 도 4의 경우와 같이 최하위에 위치하던 아이템이 최상위로 업데이트 된다면, 시스템에서는 총 10000번의 업데이트 작업을 수행하여야 하며, 이는 시스템에 커다란 부하를 제공하는 원인이 될 수 있다. 또한, 예를 들어, 10종류의 카테고리에 상응하는 아이템들이 혼재되어 있는 아이템 목록이 있다면, 각각의 카테고리에 따른 아이템 목록까지 총 11개의 아이템 목록에 대해서 이와 같은 아이템 정렬을 수행해야 할 수 있다. 이러한 업데이트 및 아이템 정렬의 과정 또한 시스템에게 대량의 연산을 요구하므로, 사용자들에게 최신 정보를 반영한 서비스를 제공해야 하는 시스템의 아이템 정렬 방법으로는 적절하지 않을 수 있다.In this case, although an item list including only 10 items is updated and arranged through an item sorting process in FIG. 4, in a store that actually provides contents or items corresponding to various categories, a list of items having a large number of contents or items 4 < / RTI > In addition, since a list of various kinds of items may exist depending on the category, item alignment can be performed from time to time for each item list. For example, if the lowest ranked item is updated to the top in the list of items consisting of 10000 items, as shown in FIG. 4, the system needs to perform a total of 10,000 update tasks, which is a cause of providing a large load to the system . Also, for example, if there is an item list in which items corresponding to 10 kinds of categories are mixed, it may be necessary to perform such item alignment for a total of 11 item lists from the item list according to each category. Such updating and item sorting process also requires a large amount of computation to the system, so it may not be appropriate as an item sorting method of a system that needs to provide a service reflecting latest information to users.

도 5는 카테고리에 따른 아이템 목록을 나타낸 도면이다.5 is a view showing a list of items according to categories.

도 5를 참조하면, 카테고리에 따른 아이템 목록은 다양한 카테고리에 상응하는 아이템들이 혼재되어 있는 전체 아이템 목록(510)과 특정 카테고리에 상응하는 아이템들로만 구성된 카테고리 아이템 목록(520)을 확인할 수 있다.Referring to FIG. 5, a list of items according to categories may include an entire item list 510 in which items corresponding to various categories are mixed, and a category item list 520 composed of only items corresponding to a specific category.

전체 아이템 목록(510)은 모든 카테고리에 대한 아이템들을 이용하여 구성한 아이템 목록일 수 있다. 전체 아이템 목록(510)에 포함된 아이템들은 각각의 카테고리에 상관없이 해당 아이템의 인기도나 최신성에 따라 전체 아이템 목록(510)에서의 노출 순위가 변경될 수 있다. The full item list 510 may be a list of items organized using items for all categories. Items included in the full item list 510 can be changed in the exposure order in the entire item list 510 according to the popularity or the latestness of the items irrespective of each category.

이 때, 전체 아이템 목록(510)에서 특정 아이템의 노출 순위가 변경됨에 따라, 해당 아이템의 카테고리에 상응하는 아이템들로만 구성된 카테고리 아이템 목록(520)에서도 노출 순위가 변경될 수 있다. 이와 같이 전체 아이템 목록(510)에서 노출 순위가 변경됨에 따라 업데이트된 아이템을, 해당 카테고리 아이템 목록(520)에서도 동일하게 적용시키기 위해서 본 발명에서는 갱신 순서에 대한 최장 증가 부분수열을 이용할 수 있다. At this time, as the exposure order of a specific item is changed in the full item list 510, the exposure order may be changed in the category item list 520 composed of only items corresponding to the category of the item. In order to apply the updated items to the category item list 520 in the same manner as the exposure order is changed in the entire item list 510, the longest incremental partial sequence for the update order can be used in the present invention.

갱신 순서는 아이템 노출 순위 변동과 같은 변화에 따라 아이템 목록에 포함된 아이템들을 배열한 순서일 수 있다. 예를 들어, 전체 아이템 목록(510)에서 16위에 위치하는 게임 카테고리에 상응하는 아이템을 아이템 A라고 가정하였을 때, 아이템 A가 노출 순위 변동으로 인하여 10위가 된다고 가정할 수 있다. 이 때, 갱신 순서는 1-2-3-4-5-6-7-8-9-16-10-11-12-13-14-15 일 수 있다. 따라서 이와 같은 갱신 순서에 대한 최장 증가 부분수열을 찾고, 최장 증가 부분수열에 해당하지 않는 16에 상응하는 아이템 A만 업데이트 할 수 있다. The update order may be an order in which the items included in the item list are arranged according to a change such as an item exposure ranking change. For example, when it is assumed that item A corresponds to a game category located at 16th in the entire item list 510, it can be assumed that item A is ranked 10th because of exposure rank variation. In this case, the update order may be 1-2-3-4-5-6-7-8-9-16-10-11-12-13-14-15. Therefore, we can find the longest incremental sequence for such an update sequence and update only the item A corresponding to 16 that does not correspond to the longest incremental sequence.

또한, 게임 카테고리에 대한 카테고리 아이템 목록(520)에서도 아이템 A의 노출 순위 변동으로 인해서 1-2-6-8-16-11-12-13 과 같은 갱신 순서가 생성될 수 있다. 이 경우에도 마찬가지로 최장 증가 부분수열을 찾고, 최장 증가 부분수열에 해당하지 않는 16에 상응하는 아이템 A만 업데이트 할 수 있다. Also in the category item list 520 for the game category, an update order such as 1-2-6-8-16-11-12-13 may be created due to the change in the exposure order of item A. In this case as well, we can find the longest incremental partial sequence and update only the item A corresponding to 16 that does not correspond to the longest incremental partial sequence.

이와 같이 아이템들의 노출 순위 변동에 대해서 갱신 순서에 대한 최장 증가 부분수열을 이용하여 아이템들의 업데이트 및 아이템 정렬을 수행함으로써, 다양한 아이템 목록들에 대해서도 효과적으로 업데이트가 가능할 수 있다.By updating the items and arranging the items using the longest incremental partial sequence for the update sequence in the change of the exposure order of the items, the various item lists can be updated effectively as well.

도 6은 아이템 노출 순위 변경을 나타낸 도면이다.FIG. 6 is a view showing an item exposure ranking change.

도 6을 참조하면, 노출 순위 변경 전 아이템 목록(610)과 많은 아이템들의 노출 순위가 변경된 노출 순위 변경 후 아이템 목록(620)을 확인할 수 있다.Referring to FIG. 6, the item list 610 before changing the exposure ranking and the item list 620 after changing the exposure ranking in which the exposure rank of many items are changed can be checked.

노출 순위 변경 전 아이템 목록(610)에 포함된 아이템들의 인기도나 최신성에 따라 아이템들의 노출 순위가 변경될 수 있다. 이 때, 소수의 아이템들에 대해서만 노출 순위가 변경될 수 있지만, 노출 순위 변경 후 아이템 목록(620)과 같이 많은 수의 아이템에 대해서 노출 순위가 변경되는 경우가 많을 수 있다. 이처럼 아이템들의 노출 순위가 복잡하게 변경되는 경우에 전체 아이템들에 대해서 모두 업데이트를 수행하여 아이템 정렬을 수행할 수 있다. The exposure order of the items may be changed according to the popularity or freshness of the items included in the item list 610 before the exposure ranking change. In this case, the exposure order may be changed only for a small number of items, but the exposure order may be changed for a large number of items such as the item list 620 after the exposure order change. When the exposure order of the items is changed in a complicated manner, all the items can be updated to perform item alignment.

하지만 복잡하게 변경된 경우에도 갱신 순서에 대한 최장 증가 부분수열을 이용하면 모든 아이템들을 업데이트하지 않고 업데이트할 아이템만 찾아서 업데이트할 수 있다. 예를 들어, 노출 순위 변경 후 아이템 목록(620)에 나열된 숫자들을 갱신 순서로 하여 최장 증가 부분수열을 찾을 수 있다. 예를 들어, 3-4-5-6-7-8, 2-4-5-6-7-8 및 1-4-5-6-7-8 등의 최장 증가 부분수열들을 찾을 수 있다. 따라서, 최장 증가 부분수열들 중 어느 하나를 선택하고, 선택한 최장 증가 부분수열에 해당하는 아이템을 제외 아이템으로 선별함으로써 업데이트할 업데이트 아이템은 10개로 선별될 수 있다. 이와 같이 복잡한 노출 순위에 변경의 경우에도 최장 증가 부분수열을 이용하여 아이템 목록에 포함된 모든 아이템을 업데이트하지 않고 업데이트할 최소한의 아이템을 결정하여 업데이트함으로써, 시스템의 업데이트 작업량을 감소시킬 수 있다.However, even with complicated changes, the longest incremental sequence for the update order can be used to find and update only the items to be updated without updating all the items. For example, it is possible to find the longest incremental partial sequence by updating the order of the numbers listed in the item list 620 after changing the exposure rank. For example, longest incremental sequences such as 3-4-5-6-7-8, 2-4-5-6-7-8, and 1-4-5-6-7-8 can be found. Accordingly, the update item to be updated can be selected by selecting one of the longest incremental partial sequences and selecting an item corresponding to the selected longest incremental partial sequence as an excluded item. In the case of such a change in the complex exposure ranking, the update workload of the system can be reduced by determining and updating the minimum items to be updated without updating all the items included in the item list using the longest incremental partial sequence.

도 7은 본 발명의 일실시예에 따른 다중 정렬 색인을 이용한 아이템 정렬 과정을 나타낸 도면이다.FIG. 7 is a diagram illustrating an item alignment process using multiple alignment indexes according to an exemplary embodiment of the present invention. Referring to FIG.

도 7을 참조하면, 본 발명의 일실시예에 따른 다중 정렬 색인을 이용한 아이템 정렬 과정은 순위 변경 전 아이템 목록(710)에 포함된 아이템 E가 갱신 순서 상 아이템 A의 다음에 위치하도록 노출 순위가 변경된 것을 알 수 있다.Referring to FIG. 7, an item alignment process using multiple alignment indexes according to an exemplary embodiment of the present invention includes an item ordering process It can be seen that the change has been made.

순위 변경 후 아이템 목록(720)을 확인하면 아이템 E는 갱신 순서 상 아이템 A의 다음으로 이동하면서 주요 색인과 보조 색인이 각각 (2, -1)로 업데이트 된 것을 확인할 수 있다. 이와 같이 다중 정렬 색인들을 이용하여 업데이트함으로써 아이템 정렬 시, 순위 변경 후 아이템 목록(720)의 아이템 E와 주요 색인이 동일한 아이템 B는 보조 색인을 이용하여 정렬될 수 있다. 예를 들어, 도 7과 같이 보조 색인이 '-1'인 아이템 E가 아이템 B보다 아이템 목록에서 이전 순서에 위치할 수 있다.After confirming the item list 720 after the rank change, item E moves to the next item A in the update order, and the main index and the auxiliary index are updated to (2, -1), respectively. When the items are sorted using the multiple sort indexes, the item B having the same main index as the item E of the item list 720 after the ranking change can be sorted using the auxiliary index. For example, as shown in FIG. 7, an item E having an auxiliary index of '-1' may be positioned in the previous order in the item list rather than the item B.

또한, 아이템 E의 주요 색인과 보조 색인을 각각 (1,1)로 업데이트함으로써 아이템 정렬을 수행할 수 있다. 이와 같은 경우, 순위 변경 후 아이템 목록(720)의 아이템 E와 주요 색인이 동일한 아이템 A는 보조 색인을 이용하여 정렬될 수 있다. 예를 들어, 보조 색인이 '1'인 아이템 E가 아이템 목록에서 아이템 A의 다음 순서에 위치할 수 있다.Item alignment can also be performed by updating the main index and the auxiliary index of item E to (1,1), respectively. In such a case, the item A having the same main index as the item E of the item list 720 after the rank change can be sorted using the auxiliary index. For example, item E with an auxiliary index of '1' may be placed in the next order of item A in the item list.

이 때, 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 주요 색인이 동일한 경우에, 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들 중 어느 하나의 보조 색인을 변경하여 업데이트 아이템들을 업데이트할 수 있다. 예를 들어, 순위 변경 후 아이템 목록(720)의 아이템 D가 갱신 순서 상 아이템 E의 다음으로 이동한다고 가정한다면, 아이템 E와 아이템 B 중 어느 하나의 보조 색인을 함께 업데이트하면서 아이템 D를 업데이트할 수 있다. 만약 아이템 E의 보조 색인을 함께 업데이트한다면, E(2,-2), D(2,-1), B(2,0)의 형태로 다중 정렬 색인들을 업데이트할 수 있다. 또한, 아이템 B의 보조 색인을 함께 업데이트 한다면, E(2,-1), D(2,0), B(2,1)의 형태로 다중 정렬 색인들을 업데이트할 수 있다.At this time, when the main indexes of the items whose update order is different by one step are identical, the auxiliary indexes of the update items and the items whose update order are different one by one are changed to update items You can update it. For example, if it is assumed that item D in the item list 720 after the ranking change moves to the next item E in the update order, item D can be updated while updating the auxiliary index of either item E or item B together have. If you update the auxiliary index of item E together, you can update multiple sort indices in the form E (2, -2), D (2, -1), B (2,0) Also, if you update the auxiliary index of item B together, you can update multiple ordered indexes in the form E (2, -1), D (2,0), B (2,1)

도 8은 본 발명의 다른 실시예에 따른 다중 정렬 색인을 이용한 아이템 정렬 과정을 나타낸 도면이다.8 is a view illustrating an item alignment process using multiple alignment indexes according to another embodiment of the present invention.

도 8을 참조하면, 본 발명의 다른 실시예에 따른 다중 정렬 색인을 이용한 아이템 정렬 과정은 2개의 정렬 색인을 이용한 아이템 목록(810)에 포함된 아이템 C를 갱신 순서 상 아이템 E의 다음 순서에 위치하도록 업데이트를 수행하는 것을 알 수 있다. Referring to FIG. 8, an item alignment process using multiple alignment indexes according to another exemplary embodiment of the present invention includes a process of arranging items C included in an item list 810 using two sorted indexes You can see that the update is done.

3개의 정렬 색인을 이용한 아이템 목록(820)을 확인하면 아이템 C는 갱신 순서 상 아이템 E의 다음 순서로 이동하면서 제2 보조 색인을 이용하여 (2,-1,-1)로 업데이트 된 것을 확인할 수 있다. 이와 같이 주요 색인과 제1 보조 색인이 동일하더라도 제2 보조 색인을 이용하여 간단하게 업데이트를 수행할 수 있다. If item list 820 using three sort indexes is checked, item C is updated in (2, -1, -1) by using second auxiliary index while moving in the next order of item E in the update order have. Thus, even if the main index and the first auxiliary index are the same, the update can be simply performed using the second auxiliary index.

이 때, 제2 보조 색인을 사용하지 않고, C(2,-1), D(2,-2)의 형태로 업데이트할 수도 있다. 하지만 만약 주요 색인이 '2'로 동일한 아이템의 개수가 많은 경우에는 경우에 따라 많은 아이템들의 제1 보조 색인을 업데이트하는 경우가 발생할 수 있기 때문에, 도 8과 같이 제2 보조 색인을 이용하여 아이템을 업데이트할 수 있다.At this time, it is also possible to update in the form of C (2, -1), D (2, -2) without using the second auxiliary index. However, if the number of items having the same main index of '2' is large, the first auxiliary index of many items may be updated in some cases. Therefore, as shown in FIG. 8, You can update it.

도 9는 본 발명의 일실시예에 따른 아이템 정렬 장치를 나타낸 블록도이다.9 is a block diagram showing an item alignment apparatus according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일실시예에 따른 아이템 정렬 장치(900)는 아이템 목록 수신부(910), 아이템 그룹 생성부(920), 아이템 업데이트부(930), 아이템 정렬부(940) 및 아이템 데이터베이스(950)를 포함할 수 있다.9, an item sorting apparatus 900 according to an embodiment of the present invention includes an item list receiving unit 910, an item group creating unit 920, an item updating unit 930, an item arranging unit 940, And an item database 950.

아이템 목록 수신부(910)는 서버로부터 아이템 목록을 수신할 수 있다. 예를 들어, 모바일 어플리케이션을 제공하는 앱스토어나 스마트폰, 태블릿PC 등을 이용하여 실행할 수 있는 컨텐츠 및 아이템 등을 제공하는 스토어 등을 관리하는 서버 시스템으로부터 아이템 목록을 수신할 수 있다. 이와 같은 아이템 목록은 전체 카테고리에 대한 아이템들이 혼재되어 있는 아이템 목록부터 카테고리별 아이템의 아이템 목록까지 다양한 아이템 목록일 수 있다.The item list receiving unit 910 can receive the item list from the server. For example, an item list can be received from a server system that manages a store that provides contents and items that can be executed by using an app store providing a mobile application, a smart phone, a tablet PC, or the like. Such a list of items may be a list of various items ranging from a list of items in which items for all categories are mixed to a list of items for categories.

아이템 그룹 생성부(920)는 아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성할 수 있다. The item group generation unit 920 may group items adjacent to the items included in the item list to generate item groups.

이 때, 아이템들은 각각 상품, 컨텐츠 또는 서비스 등에 상응하는 것일 수 있다. 스마트 폰이나 태블릿 PC를 통해서 이용할 수 있는 상품, 컨텐츠 및 서비스는 그 종류에 따라 어플리케이션 스토어, 북 스토어 및 뮤직 스토어 등 다양한 종류의 스토어를 통해 제공될 수 있다. 이러한 아이템들은 아이템 목록을 통해 사용자들에게 노출시킬 수 있다. 또한, 아이템 목록을 전시할 때 아이템 목록에 포함된 아이템들 각각의 인기도나 최신성 등을 반영하여 아이템 목록에서의 노출 순위를 결정할 수 있다. 이와 같은 노출 순위는 인기도나 최신성을 반영하기 때문에 시간이 지남에 따라 수시로 변동될 수 있다. 따라서, 아이템을 제공하는 서버 시스템에서는 사용자들에게 업데이트 된 최신 정보를 제공하기 위해서 아이템들의 노출 순위 변동에 따라 시스템에 저장된 정보들을 실시간으로 업데이트하여 제공할 수 있다.At this time, the items may correspond to goods, contents or services, respectively. Products, contents, and services that can be used through a smartphone or a tablet PC can be provided through various types of stores such as an application store, a book store, and a music store, depending on their types. These items can be exposed to users through the item list. In addition, when displaying the item list, the exposure order in the item list can be determined by reflecting the popularity or the latestness of each item included in the item list. Such exposure rankings may change over time as they reflect popularity or up-to-date. Accordingly, in the server system providing the item, the information stored in the system can be updated in real time according to the change of the exposure order of the items in order to provide updated updated information to the users.

그러나, 이와 같이 시스템에 저장된 아이템 정보들을 업데이트하기 위해 매번 수많은 아이템들을 모두 업데이트하는 행위는 시스템에 커다란 부하를 가져올 수 있다. 따라서, 아이템들을 업데이트할 때 시스템이 처리할 업데이트 작업량을 최소한으로 감소시킬 수 있는 값들을 찾아 업데이트를 수행할 수 있다.However, updating the numerous items every time in order to update the item information stored in the system as described above can put a heavy load on the system. Therefore, when updating the items, the system can perform updates by finding values that can minimize the amount of update work to be processed.

실제 서비스에서는 아이템 목록에 포함된 아이템들에 비교해서 비교적 적은 수의 아이템들만 노출 순위가 변경되는 경우가 많을 수 있다. 따라서, 이러한 경우에 적합한 아이템 정렬을 위해 인접하는 아이템들 중 갱신 순서가 증가하는 아이템들을 그룹핑하여 아이템 정렬을 위한 단계를 수행할 수 있다. In an actual service, only a relatively small number of items may change the exposure rank compared to the items included in the item list. Therefore, in order to arrange items suitable for this case, it is possible to perform a step for item alignment by grouping items whose update order is increased among adjacent items.

이 때, 아이템 목록에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑할 수 있다. 예를 들어, 1-2-3-5-6-4-7-8-9-10-11-12-13-14-15의 갱신 순서로 아이템들이 배열되어 있을 때, 갱신 순서 1에 상응하는 아이템부터 갱신 순서가 1씩 증가하는 갱신 순서 3에 상응하는 아이템까지 그룹핑하여 아이템 그룹 G1(1,2,3)을 생성할 수 있다. At this time, the items in the list of items can be grouped by 1 in order of increasing the update order. For example, when items are arranged in the update order of 1-2-3-5-6-4-7-8-9-10-11-12-13-14-15, Item group G1 (1, 2, 3) can be generated by grouping items corresponding to the update order 3 in which the update order is incremented by 1 from the item.

이 때, 갱신 순서는 노출 순위 변동과 같은 변화에 따라 아이템 목록에 포함된 아이템들을 배열한 순서일 수 있다. 예를 들어, 아이템 목록의 1위부터 5위까지의 아이템들 중 5위의 아이템 순위가 1위로 변경되었다면 갱신 순서는 5-1-2-3-4 일 수 있다. 즉, 갱신 순서는 단위 갱신이 이루어지기 전과 이루어진 후의 순위 변동 관계에 상응하는 것일 수 있다.At this time, the update order may be an order in which the items included in the item list are arranged in accordance with the change such as the exposure order change. For example, if the item ranking of the 5th item from the first to fifth items in the item list is changed to 1, the update order may be 5-1-2-3-4. That is, the update order may correspond to a rank change relationship before and after the unit update is performed.

따라서, 아이템 그룹 G1(1,2,3)을 생성한 것과 같은 방법으로 G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)와 같이 3개의 아이템 그룹을 더 생성할 수 있다. 이러한 아이템 그룹들은 각각 시작 순서와 그룹의 크기를 가질 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3)의 경우에 시작 순서는 '1'이고 그룹의 크기는 그룹에 포함된 아이템의 개수인 '3'일 수 있다. 이와 같은 시작 순서와 그룹의 크기는 아이템 그룹들 중 업데이트될 업데이트 그룹들을 선별할 때 이용될 수 있다.Therefore, G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) are generated in the same way as item group G1 ) Can be further created. These item groups may have start order and group size respectively. For example, in the case of the item group G1 (1,2,3), the start order is '1' and the size of the group may be '3', which is the number of items included in the group. The start order and the size of the group may be used to select update groups to be updated among the group of items.

아이템 업데이트부(930)는 최장 증가 부분수열(longest increasing subsequence) 을 이용하여 아이템 그룹들 중 업데이트 그룹들을 업데이트할 수 있다. The item update unit 930 may update the update groups among the item groups using the longest increasing subsequence.

이 때, 아이템 그룹들 중 최장 증가 부분수열에 해당하는 제외 그룹들을 선별할 수 있다. 시스템에서 처리할 업데이트 작업량을 최소한으로 감소시킬 수 있는 경우의 값들을 찾기 위해 최장 증가 부분수열을 이용할 수 있다. 최장 증가 부분수열은 값이 증가하는 부분수열 중 가장 긴 수열로, 앞에서부터 뒤로 증가하는 숫자를 선택해 나갈 때 최대 길이를 갖는 수열이다. 따라서 순차적으로 증가하는 숫자들에 해당하는 최장 증가 부분수열에 해당하는 아이템들은 업데이트 대상에서 제외함으로써 시스템 작업량을 최소화시킬 수 있는 아이템들을 선별할 수 있다. 예를 들어, 5개의 아이템들이 1-4-2-3-5 의 갱신 순서를 갖는다면, 갱신 순서에서 최장 증가 부분수열은 4개의 갱신 순서를 수열로 갖는 1-2-3-5 일 수 있다. 또한, 최장 증가 부분수열인 1-2-3-5 에 해당하는 갱신 순서에 상응하는 아이템들은 제외 아이템들로 선별할 수 있다.At this time, the excluded groups corresponding to the longest incremental partial sequence among the item groups can be selected. You can use the longest incremental partial sequence to find the values when the system can reduce the update workload to a minimum. The longest incremental partial sequence is the longest of the partial sequences for which the value is incremented. It is the sequence that has the maximum length when selecting a number that increases from the beginning to the end. Accordingly, items corresponding to the longest incremental sequence corresponding to sequentially increasing numbers can be excluded from the update target, thereby selecting items that can minimize the system load. For example, if five items have an update order of 1-4-2-3-5, then the longest incremental partial sequence in the update sequence may be 1-2-3-5 having four update sequences as a sequence . Items corresponding to the update sequence corresponding to the longest incremental partial sequence 1-2-3-5 can be selected as excluded items.

이와 같은 최장 증가 부분수열을 이용함으로써, 다양한 카테고리에 대한 아이템이 혼재된 아이템 목록에서의 노출 순위 변동에 상응하게 특정 카테고리의 아이템들로만 구성된 아이템 목록을 업데이트하는 것이 가능하다. 예를 들어, 게임, 생활, 어학 등의 카테고리에 대한 아이템이 혼재된 아이템 목록 A가 있다고 가정할 수 있다. 만약 아이템 목록 A에 포함된 게임 아이템 a의 노출 순위가 변경되었다면, 게임 카테고리에 상응하는 아이템들만으로 구성된 아이템 목록 B에서도 게임 아이템 a의 노출 순위를 업데이트할 수 있다.By using such a longest incremental partial sequence, it is possible to update the item list composed only of items of a certain category corresponding to the change of the exposure order in the list of items in which items for various categories are mixed. For example, it can be assumed that there is an item list A in which items for categories such as game, life, and language are mixed. If the exposure order of the game item a included in the item list A has been changed, the exposure order of the game item a can also be updated in the item list B including only the items corresponding to the game category.

또한, 현재 알려진 최장 증가 부분수열의 계산 복잡도를 구하는 가장 효율적인 알고리즘은 O(nlog(n))이고, 여기서 n은 입력수열의 개수, 즉 아이템의 개수일 수 있다. 예를 들어, 아이템 목록에 1024개의 아이템들이 포함되어 있다면 해당 아이템 목록에서 최장 증가 부분수열을 통해 업데이트할 아이템을 선별하기 위한 계산 복잡도는 O(10000) 정도일 수 있다. Also, the most efficient algorithm for finding the computational complexity of the currently known longest incremental partial sequence is O (nlog (n)), where n may be the number of input sequences, i. For example, if the item list contains 1024 items, the computational complexity for selecting items to update through the longest incremental sequence in the item list may be O (10,000).

그러나, 아이템들을 그룹핑하여 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)의 값일 수 있다. 예를 들어, 1024개의 아이템 목록에 포함된 아이템들을 그룹핑하여 4개의 아이템 그룹을 생성하였을 때, 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)인 O(16)일 수 있다. 이와 같이 실제로 계산했을 때 현저히 적은 연산만으로 업데이트 아이템들을 선별할 수 있기 때문에, 아이템들을 그룹핑하여 아이템 정렬을 수행함으로써 시스템의 작업량을 감소시킬 수 있다.However, if the items are grouped to calculate the computational complexity of the longest incremental partial sequence through the group of items, it may be a value of O (the square of the number of groups). For example, if you create four item groups by grouping items contained in a list of 1024 items, if you calculate the calculation complexity of the longest incremental partial sequence through the group of items, then O (16, the square of the number of groups) ). In this way, since the update items can be selected only by a very small number of calculations in actual calculation, the workload of the system can be reduced by grouping the items and performing item alignment.

이 때, 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 최장 증가 부분수열을 찾고, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별할 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3), G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)가 생성되었다고 가정한다면, 각 아이템 그룹들의 시작 순서인 '1', '5', '4', '7'을 이용하여 최장 증가 부분수열인 (1,5,7)을 찾을 수 있다. 이렇게 찾은 최장 증가 부분수열(1,5,7)에 포함된 시작 순서에 상응하는 아이템 그룹들인 G1(1,2,3), G2(5,6) 및 G4(7,8,9,10,11,12,13,14,15)를 제외 그룹들로 선별할 수 있다.At this time, the longest incremental partial sequence may be searched using the start order corresponding to each of the item groups, and the item groups corresponding to the start sequence included in the longest incremental partial sequence may be selected as the excluded groups. For example, it is assumed that item groups G1 (1,2,3), G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) , We can find the longest incremental sequence (1, 5, 7) using '1', '5', '4', and '7' G1 (1,2,3), G2 (5,6), and G4 (7,8,9,10,10) corresponding to the start order included in the longest incremental partial sequence (1,5,7) 11, 12, 13, 14, 15) can be selected as exclusion groups.

이 때, 최장 증가 부분수열이 둘 이상인 경우에, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 제외 그룹들을 선별할 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3), G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)가 생성되었다고 가정한다면, 각 아이템 그룹들의 시작 순서인 '1', '5', '4', '7'을 이용하여 (1,5,7) 및 (1,4,7)과 같은 두 개의 최장 증가 부분수열을 찾을 수 있다. 이 때, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별하기 때문에, 최장 증가 부분수열 (1,5,7)과 (1,4,7)을 각각 이용하여 선별된 제외 그룹들은 상이할 수 있다. 그러나, 본 발명은 아이템의 업데이트 시 시스템에서 보다 적은 작업을 수행하기 위한 업데이트 값을 제공하기 위한 것으로, 보다 많은 아이템이 업데이트에서 제외 대상이 되는 값을 선택할 수 있다. 따라서, 두 개의 최장 증가 부분수열 중 보다 많은 아이템을 제외할 수 있는 (1,5,7)을 이용하여 제외 그룹들을 선별할 수 있다.In this case, when the longest incremental partial sequence is two or more, the excluded groups can be selected in consideration of the size of the group of item groups corresponding to the start order included in the longest incremental partial sequence. For example, it is assumed that item groups G1 (1,2,3), G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) Assuming that the two longest incremental parts (1, 5, 7) and (1, 4, 7) such as (1, 5, 7) and You can find the sequence. In this case, since the group of items corresponding to the start order included in the longest incremental partial sequence is selected as the exclusion groups, selection using the longest incremental partial sequences (1,5,7) and (1,4,7) The excluded groups may be different. However, the present invention is intended to provide an update value for performing less work in the system when updating an item, and more items can be selected from values to be excluded from the update. Therefore, exclusion groups can be selected using (1,5,7) which can exclude more items from the two longest incremental partial sequences.

상기에서 설명한 것과 같이 현재 알려진 최장 증가 부분수열의 가장 효율적인 알고리즘은 O(nlog(n))이고, 여기서 n은 입력순열의 개수일 수 있다. 본 발명에서는 아이템들을 그룹핑했기 때문에 O(nlog(n)) 알고리즘을 사용할 수 없을 수 있다. 따라서, 동적 프로그래밍으로 최장 증가 부분수열을 푸는 방법을 이용할 수 있으며, 실제 연산은 각 그룹의 크기와 시작 순서만으로 계산되기 때문에 연산을 획기적으로 줄이는 것이 가능할 수 있다. 예를 들어, 아이템 그룹들의 최장 증가 부분수열을 찾아 업데이트 그룹들을 선별하는 방법은 각 그룹들이 업데이트 그룹들에 속하거나 제외 그룹들에 속하는 경우로 분류되기 때문에 계산 복잡도는 O(그룹수의 제곱)이 될 수 있다. 실제로 순 증가하는 그룹들로만 구성되지 않는 해, 즉 업데이트 그룹들은 최장 증가 부분수열에 대한 해집합에 포함되지 않고 제외되어 실제 계산은 O(그룹수의 제곱)보다 현저히 적은 연산만으로 가능할 수 있다.As described above, the most efficient algorithm of the currently known longest incremental partial sequence is O (nlog (n)), where n may be the number of input permutations. In the present invention, the O (nlog (n)) algorithm may not be available because the items are grouped. Therefore, it is possible to use a method of solving the longest incremental partial sequence by dynamic programming. Since the actual operation is calculated by only the size of each group and the start order, it is possible to drastically reduce the operation. For example, the method of selecting update groups by finding the longest partial sequence of item groups is classified as when each group belongs to update groups or exclusion groups, so the calculation complexity is O (the square of the number of groups) . In fact, solutions that do not consist solely of net incrementing groups, that is update groups, are excluded from the set of solutions for the longest incremental partial sequence and the actual computation may be possible only with significantly fewer operations than O (the square of the number of groups).

이 때, 아이템 그룹들에서 제외 그룹들을 제외하여 업데이트 그룹들을 선별할 수 있다. 아이템 목록에 포함된 아이템들의 노출 순위 변경으로 인한 업데이트 시, 업데이트로 인한 시스템의 작업량을 최소한으로 감소시키면 보다 원활하게 시스템을 가동할 수 있다. 따라서, 아이템 목록에 포함된 아이템들을 이용하여 생성한 아이템 그룹들 중에서 최장 증가 부분수열을 이용하여 선별된 제외 그룹들을 제외한 나머지 아이템 그룹들만을 업데이트하기 위한 업데이트 그룹들로 선별할 수 있다. 예를 들어, 아이템 그룹들의 시작 순서를 이용한 갱신 순서가 1-5-2-3-4 라고 한다면, 시작 순서를 이용한 갱신 순서의 최장 증가 부분수열에 의해 갱신 순서 1-2-3-4에 상응하는 시작 순서를 갖는 아이템 그룹들은 제외 그룹들로 선별될 수 있다. 따라서, 나머지 갱신 순서 5에 상응하는 시작 순서를 갖는 아이템 그룹만을 업데이트 그룹으로 선별할 수 있다.At this time, the update groups can be selected by excluding the exclusion groups from the item groups. In case of updating due to the change of the exposure ranking of the items included in the item list, it is possible to smoothly operate the system by minimizing the workload of the system due to the update. Therefore, it is possible to select only the update groups for updating only the remaining item groups excluding the exclusion groups selected using the longest incremental partial sequence among the item groups generated by using the items included in the item list. For example, if the update order using the start order of the group of items is 1-5-2-3-4, then the longest incremental partial sequence of the update order using the start order corresponds to the update order 1-2-3-4 May be sorted into exclusion groups. Therefore, only the item group having the start order corresponding to the remaining update order 5 can be selected as the update group.

이 때, 아이템들 중 업데이트 그룹들에 상응하는 업데이트 아이템들만 업데이트할 수 있다. 예를 들어, 1위부터 5위까지의 노출 순위를 갖는 5개의 아이템이 있다고 가정하였을 때, 노출 순위 변동에 따라 5위의 아이템 순위를 1위로 변경할 수 있다. 만약 기존의 업데이트 방법을 이용한다면 5위의 아이템 순위를 1위로 업데이트하고 1위부터 4위에 해당하는 아이템들의 순위는 하나씩 더해지도록 업데이트함으로써 총 5번의 업데이트 작업이 필요할 수 있다. 그러나 이러한 업데이트 방법은 아이템의 개수가 많을 경우에 시스템에 부하를 줄 수 있기 때문에, 많은 개수의 컨텐츠를 제공하는 스토어 등에서 사용하기에 적절한 방법이 아닐 수 있다. 따라서, 최장 증가 부분수열을 통해 1위부터 4위에 해당하는 아이템들은 업데이트 작업에서 제외될 제외 아이템들로 선별할 수 있다. 또한, 아이템들 중 제외 아이템들을 제외한 5위의 아이템만을 업데이트 아이템으로 선별하여 업데이트를 수행함으로써 시스템의 작업량을 현저하게 감소시킬 수 있다.At this time, only the update items corresponding to the update groups among the items can be updated. For example, assuming that there are five items with the exposure rankings from the first to the fifth rank, the item rank of the fifth item can be changed to the rank one according to the change of the exposure ranking. If you use the existing update method, you may need to update 5 items in the first place and update the items in the first to fourth items so that they are added one by one. However, this update method may not be a suitable method for use in a store providing a large number of contents and the like because it can load the system when the number of items is large. Therefore, the items from the first to the fourth through the longest incremental sequence can be selected as excluded items to be excluded from the update operation. In addition, only the fifth item excluding the excluded items among the items can be selected as an update item, and the updating can be performed to significantly reduce the workload of the system.

이 때, 아이템들 중 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 다중 정렬 색인들을 고려하여 업데이트 아이템들을 업데이트할 수 있다. 다중 정렬 색인들 중 주요 색인(primary index)은 다중 중렬 색인들 중 첫 번째 정렬 색인일 수 있고, 다중 정렬 색인들 중 보조 색인(auxiliary index)은 두 번째 정렬 색인일 수 있다. 예를 들어, 각 아이템의 주요 색인과 보조 색인을 순서대로 (x, y)의 형태로 나타내었을 때, 5개의 아이템 A(1,0), B(2,0), C(3,0), D(4,0), E(5,0)가 있다고 가정할 수 있다. 이 때, 아이템 E가 갱신 순서 상 아이템 A의 다음 순서에 위치하도록 변경되는 경우에는 E(2,-1) 및 E(1,1) 중 어느 하나의 형태로 아이템 E의 다중 정렬 색인들을 업데이트 할 수 있다. E(2,-1)는 갱신 순서 상 아이템 E의 다음 단계에 위치하는 아이템 B를 고려한 경우에 상응하는 다중 정렬 색인들의 업데이트 형태일 수 있다. 또한, E(1,1)은 갱신 순서 상 아이템 E의 전 단계에 위치하는 아이템 A를 고려한 경우에 상응하는 다중 정렬 색인들의 업데이트 형태일 수 있다.At this time, the update items can be updated in consideration of multiple update indexes among the items and multiple sort indexes of items whose update order is one step difference. The primary index among the multiple sorted indexes may be the first ordered index among the multiple-indexed indexes, and the auxiliary index among the multiple ordered indexes may be the second sorted index. For example, when the main index and auxiliary index of each item are expressed in the form of (x, y) in order, five items A (1,0), B (2,0), C (3,0) , D (4,0), and E (5,0). At this time, if the item E is changed to be positioned in the next order of the item A in the update order, the multi-sort indexes of the item E are updated in the form of E (2, -1) and E . E (2, -1) may be an update form of multiple ordered indexes corresponding to item B located in the next step of item E in the update order. In addition, E (1,1) may be an update form of multiple ordered indexes corresponding to item A in the previous step of item E in the update order.

이 때, 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 주요 색인이 동일한 경우에, 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들 중 어느 하나의 보조 색인을 변경하여 업데이트 아이템들을 업데이트할 수 있다. 예를 들어, 3개의 아이템 A(1,0), B(1,1), C(2,0)이 있다고 가정하였을 때, 아이템 C가 갱신 순서 상 아이템 A의 다음 순서에 위치하도록 변경되는 경우에는 아이템 C의 다중 정렬 색인만을 업데이트하여 아이템들을 정렬하기 어려울 수 있다. 왜냐하면, 아이템 A와 아이템 B의 주요 색인이 동일하면서, 보조 색인이 각각 '0'과 '1'이기 때문에 아이템 C의 보조 색인을 '0'과 '1'사이의 정수 값으로 설정할 수 없다. 따라서, A(1,0), C(1,1), B(1,2)의 형태와 같이 아이템 B의 보조 색인을 함께 업데이트할 수 있다. 또는 A(1,-1), C(1,0), B(1,1)의 형태와 같이 아이템 A의 보조 색인을 함께 업데이트함으로써 아이템 정렬을 수행할 수 있다.At this time, when the main indexes of the items whose update order is different by one step are identical, the auxiliary indexes of the update items and the items whose update order are different one by one are changed to update items You can update it. For example, when it is assumed that there are three items A (1,0), B (1,1), C (2,0), and the item C is changed to be positioned in the next order of the item A in the update order It may be difficult to update only the multiple sorting indices of item C to arrange the items. Because the main indexes of items A and B are the same and the auxiliary indexes are '0' and '1', the auxiliary index of item C can not be set to an integer value between '0' and '1'. Therefore, the auxiliary index of item B can be updated together with the form of A (1,0), C (1,1), B (1,2). Item A can be sorted by updating the auxiliary index of Item A such that A (1, -1), C (1,0), B (1,1)

이 때, 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들과 주요 색인이 동일한 아이템들의 개수를 고려하여 업데이트 아이템들을 업데이트할 수 있다. 예를 들어, 5개의 아이템 A(1,-1), B(1,0), C(1,1), D(2,0), E(3,0)가 있다고 가정하였을 때, 아이템 E가 갱신 순서 상 아이템 C의 다음 순서에 위치하도록 변경되는 경우에는 E(1,2) 및 D(2,-1) 중 어느 하나의 형태로 다중 정렬 색인들을 업데이트 할 수 있다. 만약 E(1,2)의 형태로 다중 정렬 색인이 업데이트 된다면, 아이템을 정렬할 때 주요 색인이 동일한 4개의 아이템 A, B, C 및 E의 보조 색인을 이용하여 아이템 정렬을 수행할 수 있다. 그러나 E(2, -1)의 형태로 다중 정렬 색인이 업데이트 된다면 아이템을 정렬할 때 주요 색인이 동일한 2개의 아이템 E와 D의 보조 색인을 이용하여 아이템 정렬을 수행하게 되므로 업데이트를 위한 시스템의 작업량이 보다 감소할 수 있다. 따라서, 주요 색인이 동일한 아이템들의 개수를 고려하였을 때, 상대적으로 주요 색인이 동일한 아이템 개수가 적은 쪽으로 다중 정렬 색인들을 업데이트하여 시스템의 작업량을 감소시킬 수 있다.At this time, the update items can be updated in consideration of the number of items having the same index as the items whose update order is one step difference from the update items. For example, suppose there are five items A (1, -1), B (1,0), C (1,1), D (2,0), E (3,0) (1, 2) and D (2, -1) in the case where the update order is changed to be located in the next order of the item C in the update order. If multiple ordered indexes are updated in the form of E (1,2), item alignment can be performed using the auxiliary indexes of the four items A, B, C, and E that have the same primary index when sorting the items. However, if multiple sort indexes are updated in the form of E (2, -1), item alignment is performed using the secondary indexes of the two items E and D having the same main index at the time of sorting the items. Can be reduced. Therefore, when considering the number of items having the same index as the main index, it is possible to reduce the workload of the system by updating the multi-sorting indexes with a relatively small number of items having the same main index.

아이템 정렬부(940)는 업데이트에 기반하여 아이템들에 대한 아이템 정렬을 수행할 수 있다. 아이템들 중에서 업데이트 아이템들이 업데이트 됨에 따라서 서버에서 사용자들에게 노출시킬 아이템 목록 또한 업데이트하기 위해서 아이템 정렬을 수행할 수 있다.The item arrangement unit 940 can perform item alignment on the items based on the update. As the update items among the items are updated, the server can also perform item sorting to update the list of items to be exposed to users.

이 때, 다중 정렬 색인들을 이용하여 아이템 정렬을 수행할 수 있다. 본 발명에서와 같은 아이템 목록이나 다양한 컨텐츠를 제공하는 스토어 등에서 사용자들에게 제공하는 컨텐츠의 아이템 목록을 정렬을 위해서는 일반적으로 단일 정렬 색인을 이용할 수 있다. 하지만, 단일 정렬 색인을 이용하여 노출 순위가 수시로 변경되는 아이템들 및 컨텐츠들을 업데이트하고 아이템 목록을 정렬하기에는 매우 복잡한 연산과정이 필요할 수 있다. 따라서, 본 발명에서는 두 개 이상의 색인을 통한 다중 정렬 색인을 이용하여 노출 순위가 수시로 변경되는 환경에서 아이템이나 컨텐츠를 보다 효과적으로 업데이트하고 아이템들의 아이템 정렬을 수행할 수 있다. 예를 들어, C1부터 Cn까지의 n개의 정렬 색인을 이용하여 SQL select에서 "order by C1, C2, ... , Cn"으로 정렬할 수 있다. 첫 번째 정렬 색인 C1을 이용하여 정렬을 수행하고 단계적으로 C2, C3, ... , Cn까지의 정렬 색인들을 이용하여 아이템 정렬을 수행할 수 있다. 또한, 두 번째 정렬 색인인 C2는 첫 번째 정렬 색인인 C1들의 값을 업데이트하지 않고 C2의 값을 통해서만 아이템 정렬을 수행할 수 있다.At this time, item alignment can be performed using multiple alignment indexes. In order to arrange the item list of contents to be provided to users in a list of items such as the present invention or a store providing various contents, a single sorting index can be generally used. However, a very complicated operation procedure may be required to update the items and contents in which the exposure order is changed frequently using a single sorting index, and sort the item list. Accordingly, in the present invention, it is possible to more effectively update an item or content and perform item alignment of items in an environment in which an exposure order is frequently changed by using multiple sort indexes through two or more indexes. For example, you can sort by "order by C1, C2, ..., Cn" in SQL select using n sort indices from C1 to Cn. It is possible to perform sorting using the first sorting index C1 and arrange the items using the sorted indexes C2, C3, ..., Cn step by step. In addition, C2, the second sorting index, can perform item sorting only through the value of C2 without updating the value of C1, the first sorting index.

이 때, 아이템들 중 다중 정렬 색인들 중 주요 색인(primary index)이 동일한 아이템들에 대하여 다중 정렬 색인들 중 보조 색인(auxiliary index)을 이용하여 아이템 정렬을 수행할 수 있다. 주요 색인은 다중 정렬 색인들 중 첫 번째 정렬 색인일 수 있고, 보조 색인은 두 번째 정렬 색인일 수 있다. 예를 들어, 각 아이템의 주요 색인과 보조 색인을 순서대로 (x, y)의 형태로 나타내었을 때, A(1,0), B(2,0), C(3,0), D(4,0), E(5,0)의 5개의 아이템이 있다고 가정할 수 있다. 만약 아이템 E가 갱신 순서 상 아이템 A의 다음 단계에 위치한다면, 아이템 E는 아이템 A의 주요 색인을 고려하여 E(2,0)의 형태로 다중 정렬 색인들을 업데이트 할 수 있다. 그러나, 이와 같이 업데이트할 경우 업데이트된 아이템 E의 정렬 색인이 아이템 B(2,0)와 동일하기 때문에 시스템에서 아이템 정렬 시 오류가 발생할 수 있다. 따라서, E(2,-1)의 형태와 같이 보조 색인을 사용함으로써 시스템에서 원활하게 아이템 정렬을 수행할 수 있다.At this time, item alignment can be performed using an auxiliary index among multiple ordered indexes for items having the same primary index among multiple ordered indexes among the items. The primary index may be the first sorting index among the multiple sorting indices, and the secondary index may be the second sorting index. For example, A (1,0), B (2,0), C (3,0), D (0,0), and A 4,0), and E (5,0). If item E is located in the next step of item A in the update order, item E can update multiple ordered indexes in the form of E (2,0), taking into account the primary index of item A. However, if the updating is performed in this way, the sorting index of the updated item E is the same as that of the item B (2,0). Therefore, it is possible to perform item alignment smoothly in the system by using the auxiliary index as in the form of E (2, -1).

아이템 데이터베이스(950)는 아이템 목록에 포함된 아이템들의 정보를 저장할 수 있다. 또한, 아이템 업데이트부(930)에 의해서 업데이트된 아이템들의 정보 및 아이템 정렬부(940)에 의해서 아이템 정렬된 아이템 목록의 정보를 저장할 수 있다.The item database 950 may store information of items included in the item list. In addition, information of the items updated by the item updating unit 930 and information of the item list sorted by the item aligning unit 940 can be stored.

이와 같은 아이템 정렬 장치(900)를 이용하여 한번에 여러 개의 아이템들에 대해서 업데이트를 수행하는 경우에 업데이트 수행량을 최소한으로 줄일 수 있는 경우의 값을 찾아 제공함으로써 아이템 업데이트에 따른 시스템 작업량을 감소시킬 수 있다.In the case where the plurality of items are updated at a time using the item sorting apparatus 900, the amount of the update operation can be minimized and the value of the system operation amount due to the item update can be reduced have.

도 10은 도 9에 도시된 아이템 업데이트부의 일 예를 나타낸 블록도이다.10 is a block diagram showing an example of the item update unit shown in FIG.

도 10을 참조하면, 도 9에 도시된 아이템 업데이트부(930)는 제외 그룹 선별부(1010) 및 업데이트 그룹 선별부(1020)를 포함할 수 있다.Referring to FIG. 10, the item update unit 930 shown in FIG. 9 may include an excluded group selector 1010 and an update group selector 1020.

제외 그룹 선별부(1010)는 아이템 그룹들 중 최장 증가 부분수열에 해당하는 제외 그룹들을 선별할 수 있다. 시스템에서 처리할 업데이트 작업량을 최소한으로 감소시킬 수 있는 경우의 값들을 찾기 위해 최장 증가 부분수열을 이용할 수 있다. 최장 증가 부분수열은 값이 증가하는 부분수열 중 가장 긴 수열로, 앞에서부터 뒤로 증가하는 숫자를 선택해 나갈 때 최대 길이를 갖는 수열이다. 따라서 순차적으로 증가하는 숫자들에 해당하는 최장 증가 부분수열에 해당하는 아이템들은 업데이트 대상에서 제외함으로써 시스템 작업량을 최소화시킬 수 있는 아이템들을 선별할 수 있다. 예를 들어, 5개의 아이템들이 1-4-2-3-5 의 갱신 순서를 갖는다면, 갱신 순서에서 최장 증가 부분수열은 4개의 갱신 순서를 수열로 갖는 1-2-3-5 일 수 있다. 또한, 최장 증가 부분수열인 1-2-3-5 에 해당하는 갱신 순서에 상응하는 아이템들은 제외 아이템들로 선별할 수 있다.The excluded group selection unit 1010 can select excluded groups corresponding to the longest incremental partial sequence among the item groups. You can use the longest incremental partial sequence to find the values when the system can reduce the update workload to a minimum. The longest incremental partial sequence is the longest of the partial sequences for which the value is incremented. It is the sequence that has the maximum length when selecting a number that increases from the beginning to the end. Accordingly, items corresponding to the longest incremental sequence corresponding to sequentially increasing numbers can be excluded from the update target, thereby selecting items that can minimize the system load. For example, if five items have an update order of 1-4-2-3-5, then the longest incremental partial sequence in the update sequence may be 1-2-3-5 having four update sequences as a sequence . Items corresponding to the update sequence corresponding to the longest incremental partial sequence 1-2-3-5 can be selected as excluded items.

이와 같은 최장 증가 부분수열을 이용함으로써, 다양한 카테고리에 대한 아이템이 혼재된 아이템 목록에서의 노출 순위 변동에 상응하게 특정 카테고리의 아이템들로만 구성된 아이템 목록을 업데이트하는 것이 가능하다. 예를 들어, 게임, 생활, 어학 등의 카테고리에 대한 아이템이 혼재된 아이템 목록 A가 있다고 가정할 수 있다. 만약 아이템 목록 A에 포함된 게임 아이템 a의 노출 순위가 변경되었다면, 게임 카테고리에 상응하는 아이템들만으로 구성된 아이템 목록 B에서도 게임 아이템 a의 노출 순위를 업데이트할 수 있다.By using such a longest incremental partial sequence, it is possible to update the item list composed only of items of a certain category corresponding to the change of the exposure order in the list of items in which items for various categories are mixed. For example, it can be assumed that there is an item list A in which items for categories such as game, life, and language are mixed. If the exposure order of the game item a included in the item list A has been changed, the exposure order of the game item a can also be updated in the item list B including only the items corresponding to the game category.

또한, 현재 알려진 최장 증가 부분수열의 계산 복잡도를 구하는 가장 효율적인 알고리즘은 O(nlog(n))이고, 여기서 n은 입력수열의 개수, 즉 아이템의 개수일 수 있다. 예를 들어, 아이템 목록에 1024개의 아이템들이 포함되어 있다면 해당 아이템 목록에서 최장 증가 부분수열을 통해 업데이트할 아이템을 선별하기 위한 계산 복잡도는 O(10000) 정도일 수 있다. Also, the most efficient algorithm for finding the computational complexity of the currently known longest incremental partial sequence is O (nlog (n)), where n may be the number of input sequences, i. For example, if the item list contains 1024 items, the computational complexity for selecting items to update through the longest incremental sequence in the item list may be O (10,000).

그러나, 아이템들을 그룹핑하여 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)의 값일 수 있다. 예를 들어, 1024개의 아이템 목록에 포함된 아이템들을 그룹핑하여 4개의 아이템 그룹을 생성하였을 때, 아이템 그룹들을 통해 최장 증가 부분수열의 계산 복잡도를 계산한다면, O(그룹수의 제곱)인 O(16)일 수 있다. 이와 같이 실제로 계산했을 때 현저히 적은 연산만으로 업데이트 아이템들을 선별할 수 있기 때문에, 아이템들을 그룹핑하여 아이템 정렬을 수행함으로써 시스템의 작업량을 감소시킬 수 있다.However, if the items are grouped to calculate the computational complexity of the longest incremental partial sequence through the group of items, it may be a value of O (the square of the number of groups). For example, if you create four item groups by grouping items contained in a list of 1024 items, if you calculate the calculation complexity of the longest incremental partial sequence through the group of items, then O (16, the square of the number of groups) ). In this way, since the update items can be selected only by a very small number of calculations in actual calculation, the workload of the system can be reduced by grouping the items and performing item alignment.

이 때, 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 최장 증가 부분수열을 찾고, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별할 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3), G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)가 생성되었다고 가정한다면, 각 아이템 그룹들의 시작 순서인 '1', '5', '4', '7'을 이용하여 최장 증가 부분수열인 (1,5,7)을 찾을 수 있다. 이렇게 찾은 최장 증가 부분수열(1,5,7)에 포함된 시작 순서에 상응하는 아이템 그룹들인 G1(1,2,3), G2(5,6) 및 G4(7,8,9,10,11,12,13,14,15)를 제외 그룹들로 선별할 수 있다.At this time, the longest incremental partial sequence may be searched using the start order corresponding to each of the item groups, and the item groups corresponding to the start sequence included in the longest incremental partial sequence may be selected as the excluded groups. For example, it is assumed that item groups G1 (1,2,3), G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) , We can find the longest incremental sequence (1, 5, 7) using '1', '5', '4', and '7' G1 (1,2,3), G2 (5,6), and G4 (7,8,9,10,10) corresponding to the start order included in the longest incremental partial sequence (1,5,7) 11, 12, 13, 14, 15) can be selected as exclusion groups.

이 때, 최장 증가 부분수열이 둘 이상인 경우에, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 제외 그룹들을 선별할 수 있다. 예를 들어, 아이템 그룹 G1(1,2,3), G2(5,6), G3(4), G4(7,8,9,10,11,12,13,14,15)가 생성되었다고 가정한다면, 각 아이템 그룹들의 시작 순서인 '1', '5', '4', '7'을 이용하여 (1,5,7) 및 (1,4,7)과 같은 두 개의 최장 증가 부분수열을 찾을 수 있다. 이 때, 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들을 제외 그룹들로 선별하기 때문에, 최장 증가 부분수열 (1,5,7)과 (1,4,7)을 각각 이용하여 선별된 제외 그룹들은 상이할 수 있다. 그러나, 본 발명은 아이템의 업데이트 시 시스템에서 보다 적은 작업을 수행하기 위한 업데이트 값을 제공하기 위한 것으로, 보다 많은 아이템이 업데이트에서 제외 대상이 되는 값을 선택할 수 있다. 따라서, 두 개의 최장 증가 부분수열 중 보다 많은 아이템을 제외할 수 있는 (1,5,7)을 이용하여 제외 그룹들을 선별할 수 있다.In this case, when the longest incremental partial sequence is two or more, the excluded groups can be selected in consideration of the size of the group of item groups corresponding to the start order included in the longest incremental partial sequence. For example, it is assumed that item groups G1 (1,2,3), G2 (5,6), G3 (4), G4 (7,8,9,10,11,12,13,14,15) Assuming that the two longest incremental parts (1, 5, 7) and (1, 4, 7) such as (1, 5, 7) and You can find the sequence. In this case, since the group of items corresponding to the start order included in the longest incremental partial sequence is selected as the exclusion groups, selection using the longest incremental partial sequences (1,5,7) and (1,4,7) The excluded groups may be different. However, the present invention is intended to provide an update value for performing less work in the system when updating an item, and more items can be selected from values to be excluded from the update. Therefore, exclusion groups can be selected using (1,5,7) which can exclude more items from the two longest incremental partial sequences.

상기에서 설명한 것과 같이 현재 알려진 최장 증가 부분수열의 가장 효율적인 알고리즘은 O(nlog(n))이고, 여기서 n은 입력순열의 개수일 수 있다. 본 발명에서는 아이템들을 그룹핑했기 때문에 O(nlog(n)) 알고리즘을 사용할 수 없을 수 있다. 따라서, 동적 프로그래밍으로 최장 증가 부분수열을 푸는 방법을 이용할 수 있으며, 실제 연산은 각 그룹의 크기와 시작 순서만으로 계산되기 때문에 연산을 획기적으로 줄이는 것이 가능할 수 있다. 예를 들어, 아이템 그룹들의 최장 증가 부분수열을 찾아 업데이트 그룹들을 선별하는 방법은 각 그룹들이 업데이트 그룹들에 속하거나 제외 그룹들에 속하는 경우로 분류되기 때문에 계산 복잡도는 O(그룹수의 제곱)이 될 수 있다. 실제로 순 증가하는 그룹들로만 구성되지 않는 해, 즉 업데이트 그룹들은 최장 증가 부분수열에 대한 해집합에 포함되지 않고 제외되어 실제 계산은 O(그룹수의 제곱)보다 현저히 적은 연산만으로 가능할 수 있다.As described above, the most efficient algorithm of the currently known longest incremental partial sequence is O (nlog (n)), where n may be the number of input permutations. In the present invention, the O (nlog (n)) algorithm may not be available because the items are grouped. Therefore, it is possible to use a method of solving the longest incremental partial sequence by dynamic programming. Since the actual operation is calculated by only the size of each group and the start order, it is possible to drastically reduce the operation. For example, the method of selecting update groups by finding the longest partial sequence of item groups is classified as when each group belongs to update groups or exclusion groups, so the calculation complexity is O (the square of the number of groups) . In fact, solutions that do not consist solely of net incrementing groups, that is update groups, are excluded from the set of solutions for the longest incremental partial sequence and the actual computation may be possible only with significantly fewer operations than O (the square of the number of groups).

업데이트 그룹 선별부(1020)는 아이템 그룹들에서 제외 그룹들을 제외하여 업데이트 그룹들을 선별할 수 있다. 아이템 목록에 포함된 아이템들의 노출 순위 변경으로 인한 업데이트 시, 업데이트로 인한 시스템의 작업량을 최소한으로 감소시키면 보다 원활하게 시스템을 가동할 수 있다. 따라서, 아이템 목록에 포함된 아이템들을 이용하여 생성한 아이템 그룹들 중에서 최장 증가 부분수열을 이용하여 선별된 제외 그룹들을 제외한 나머지 아이템 그룹들만을 업데이트하기 위한 업데이트 그룹들로 선별할 수 있다. 예를 들어, 아이템 그룹들의 시작 순서를 이용한 갱신 순서가 1-5-2-3-4 라고 한다면, 시작 순서를 이용한 갱신 순서의 최장 증가 부분수열에 의해 갱신 순서 1-2-3-4에 상응하는 시작 순서를 갖는 아이템 그룹들은 제외 그룹들로 선별될 수 있다. 따라서, 나머지 갱신 순서 5에 상응하는 시작 순서를 갖는 아이템 그룹만을 업데이트 그룹으로 선별할 수 있다.The update group selection unit 1020 may select update groups by excluding excluded groups from the item groups. In case of updating due to the change of the exposure ranking of the items included in the item list, it is possible to smoothly operate the system by minimizing the workload of the system due to the update. Therefore, it is possible to select only the update groups for updating only the remaining item groups excluding the exclusion groups selected using the longest incremental partial sequence among the item groups generated by using the items included in the item list. For example, if the update order using the start order of the group of items is 1-5-2-3-4, then the longest incremental partial sequence of the update order using the start order corresponds to the update order 1-2-3-4 May be sorted into exclusion groups. Therefore, only the item group having the start order corresponding to the remaining update order 5 can be selected as the update group.

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

이상에서와 같이 본 발명에 따른 아이템 그룹의 최장 증가 부분수열을 이용한 아이템 정렬 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the arrangement and method of arranging items using the longest incremental partial sequence of an item group according to the present invention are not limited to the configurations and methods of the embodiments described above, All or some of the embodiments may be selectively combined.

본 발명에 의하면 아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성하고, 아이템 그룹들 중 최장 증가 부분수열에 해당하는 제외 그룹들을 선별하고, 아이템 그룹들에서 제외 그룹들을 제외하여 업데이트 그룹들을 선별하고, 업데이트 그룹들에 대하여 업데이트를 수행하여 아이템들에 대한 아이템 정렬을 수행할 수 있다. 나아가, 하드웨어적인 업그레이드 없이 시스템의 작업량 감소를 통해 시스템 부하를 감소시킬 수 있어 시스템 관리를 위한 비용을 절감할 수 있을 뿐만 아니라 별도의 시스템 작업을 수행할 때 보다 원활한 환경에서 작업을 처리할 수 있다.According to the present invention, item groups are created by grouping adjacent items among the items included in the item list, and exclusion groups corresponding to the longest incremental partial sequence of the item groups are selected and exclusion groups are excluded from the item groups It is possible to sort the update groups and perform an update on the update groups to perform item sorting on the items. Furthermore, the system load can be reduced by reducing the workload of the system without a hardware upgrade, which can reduce the cost of managing the system. In addition, when the system operation is performed separately, the work can be processed more smoothly.

210: 아이템들의 배열 220: 갱신 순서
231, 232, 233, 234: 아이템 그룹 310: 일반 수열
320: 변동 수열 330: 제외 아이템
510: 전체 아이템 목록 520: 카테고리 아이템 목록
610: 노출 순위 변경 전 아이템 목록
620: 노출 순위 변경 후 아이템 목록
710: 순위 변경 전 아이템 목록 720: 순위 변경 후 아이템 목록
810: 2개의 정렬 색인을 이용한 아이템 목록
820: 3개의 정렬 색인을 이용한 아이템 목록
900: 아이템 정렬 장치 910: 아이템 목록 수신부
920: 아이템 그룹 생성부 930: 아이템 업데이트부
940: 아이템 정렬부 950: 아이템 데이터베이스
1010: 제외 그룹 선별부 1020: 업데이트 그룹 선별부
210: Arrangement of Items 220: Update Order
231, 232, 233, 234: Item group 310: General sequence
320: Variable sequence 330: Excluded items
510: All Item List 520: Category Item List
610: List of items before change of exposure ranking
620: Item list after changing exposure rank
710: Item list before ranking change 720: Item list after ranking change
810: List of items using two sorting indexes
820: List of items using 3 sorting indexes
900: Item aligning device 910: Item list receiving unit
920: Item group generating unit 930:
940: Item arranging unit 950: Item database
1010: Exclusion group selection unit 1020: Update group selection unit

Claims (20)

아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성하는 단계;
상기 아이템 그룹들 중 최장 증가 부분수열(longest increasing subsequence)에 해당하는 제외 그룹들을 선별하는 단계;
상기 아이템 그룹들에서 상기 제외 그룹들을 제외하여 업데이트 그룹들을 선별하는 단계; 및
상기 업데이트 그룹들에 대하여 업데이트를 수행하여, 상기 아이템들에 대한 아이템 정렬을 수행하는 단계
를 포함하는 것을 특징으로 하는 아이템 정렬 방법.
Grouping adjacent items among the items included in the item list to generate item groups;
Selecting exclusion groups corresponding to a longest increasing subsequence among the item groups;
Selecting update groups by excluding the exclusion groups from the item groups; And
Performing an update on the update groups to perform item alignment on the items
≪ / RTI >
청구항 1에 있어서,
상기 아이템 그룹들을 생성하는 단계는
상기 아이템 목록에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑하는 것을 특징으로 하는 아이템 정렬 방법.
The method according to claim 1,
The step of generating the group of items
Wherein items in the list of items that are incremented by 1 in the update order are grouped.
청구항 2에 있어서,
상기 제외 그룹들을 선별하는 단계는
상기 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 상기 최장 증가 부분수열을 찾고, 상기 최장 증가 부분수열에 포함된 상기 시작 순서에 상응하는 아이템 그룹들을 상기 제외 그룹들로 선별하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 2,
The step of selecting the exclusion groups
And the item group corresponding to the start order included in the longest incremental partial sequence is selected as the exclusion groups. How to sort.
청구항 3에 있어서,
상기 제외 그룹들을 선별하는 단계는
상기 최장 증가 부분수열이 둘 이상인 경우에, 상기 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 상기 제외 그룹들을 선별하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 3,
The step of selecting the exclusion groups
Wherein when the longest incremental partial sequence is two or more, the excluded groups are selected in consideration of the size of the group of item groups corresponding to the start order included in the longest incremental partial sequence.
청구항 2에 있어서,
상기 업데이트는
상기 아이템들 중 상기 업데이트 그룹들에 상응하는 업데이트 아이템들에 대해서만 수행되는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 2,
The update
Wherein the updating is performed only for update items corresponding to the update groups of the items.
청구항 5에 있어서,
상기 아이템 정렬을 수행하는 단계는
다중 정렬 색인들을 이용하여 상기 아이템 정렬을 수행하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 5,
The step of performing the item alignment
Wherein the item alignment is performed using multiple alignment indices.
청구항 6에 있어서,
상기 아이템 정렬을 수행하는 단계는
상기 아이템들 중 상기 다중 정렬 색인들 중 주요 색인(primary index)이 동일한 아이템들에 대하여 상기 다중 정렬 색인들 중 보조 색인(auxiliary index)을 이용하여 상기 아이템 정렬을 수행하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 6,
The step of performing the item alignment
Wherein the item alignment is performed using an auxiliary index among the multiple alignment indexes for items having the same primary index among the multiple sorting indexes among the items. .
청구항 7에 있어서,
상기 업데이트는
상기 아이템들 중 상기 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 상기 다중 정렬 색인들을 고려하여 수행하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 7,
The update
Wherein the updating is performed in consideration of the multiple sorting indexes of the items in which the updating order of the updating items is one step out of the items.
청구항 8에 있어서,
상기 업데이트는
상기 업데이트 아이템들과 상기 갱신 순서가 한 단계씩 차이 나는 아이템들의 상기 주요 색인이 동일한 경우에, 상기 업데이트 아이템들과 상기 갱신 순서가 한 단계씩 차이 나는 아이템들 중 어느 하나의 상기 보조 색인을 변경하여 수행하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 8,
The update
If the main indexes of the items differing by one step are different from each other, the auxiliary indexes of any one of the update items and the items whose update order differ by one step are changed The method comprising the steps of:
청구항 9에 있어서,
상기 업데이트는
상기 업데이트 아이템들과 상기 갱신 순서가 한 단계씩 차이 나는 아이템들과 상기 주요 색인이 동일한 아이템들의 개수를 고려하여 수행하는 것을 특징으로 하는 아이템 정렬 방법.
The method of claim 9,
The update
Wherein the updating step is performed in consideration of the number of items having the same index and the items whose difference is one step difference between the update items and the update order.
서버로부터 아이템 목록을 수신하는 아이템 목록 수신부;
상기 아이템 목록에 포함된 아이템들 중 인접하는 아이템들을 그룹핑하여 아이템 그룹들을 생성하는 아이템 그룹 생성부;
최장 증가 부분수열(longest increasing subsequence) 을 이용하여 상기 아이템 그룹들 중 업데이트 그룹들을 업데이트하는 아이템 업데이트부; 및
상기 업데이트에 기반하여 상기 아이템들에 대한 아이템 정렬을 수행하는 아이템 정렬부
를 포함하는 것을 특징으로 하는 아이템 정렬 장치.
An item list receiving unit for receiving an item list from a server;
An item group generating unit for grouping adjacent items among the items included in the item list to generate item groups;
An item update unit updating the update groups among the item groups using a longest increasing subsequence; And
An item sorting unit for sorting the items based on the update;
And an item sorting device for sorting the items.
청구항 11에 있어서,
상기 아이템 그룹 생성부는
상기 아이템 목록에 포함된 아이템들 중 갱신 순서가 1 증가하는 아이템들을 그룹핑하는 것을 특징으로 하는 아이템 정렬 장치.
The method of claim 11,
The item group generating unit
Wherein the grouping of items in which the update order of the items included in the item list is incremented by 1 is performed.
청구항 12에 있어서,
상기 아이템 업데이트부는
상기 아이템 그룹들 중 최장 증가 부분수열에 해당하는 제외 그룹들을 선별하는 제외 그룹 선별부; 및
상기 아이템 그룹들에서 상기 제외 그룹들을 제외하여 상기 업데이트 그룹들을 선별하는 업데이트 그룹 선별부를 포함하는 것을 특징으로 하는 아이템 정렬 장치.
The method of claim 12,
The item update unit
An excluded group selection unit for selecting excluded groups corresponding to the longest incremental partial sequence among the item groups; And
And an update group selector for selecting the update groups by excluding the exclusion groups from the item groups.
청구항 13에 있어서,
상기 제외 그룹 선별부는
상기 아이템 그룹들 각각에 상응하는 시작 순서를 이용하여 상기 최장 증가 부분수열을 찾고, 상기 최장 증가 부분수열에 포함된 상기 시작 순서에 상응하는 아이템 그룹들을 상기 제외 그룹들로 선별하는 것을 특징으로 하는 아이템 정렬 장치.
14. The method of claim 13,
The exclusion group selector
And the item group corresponding to the start order included in the longest incremental partial sequence is selected as the exclusion groups. Alignment device.
청구항 14에 있어서,
상기 제외 그룹 선별부는
상기 최장 증가 부분수열이 둘 이상인 경우에, 상기 최장 증가 부분수열에 포함된 시작 순서에 상응하는 아이템 그룹들의 그룹의 크기를 고려하여 상기 제외 그룹들을 선별하는 것을 특징으로 하는 아이템 정렬 장치.
15. The method of claim 14,
The exclusion group selector
And selects the exclusion groups considering the size of the group of the item groups corresponding to the start order included in the longest incremental partial sequence, when the longest incremental partial sequence is two or more.
청구항 12에 있어서,
상기 아이템 업데이트부는
상기 아이템들 중 상기 업데이트 그룹들에 상응하는 업데이트 아이템들만 업데이트하는 것을 특징으로 하는 아이템 정렬 장치.
The method of claim 12,
The item update unit
And updates only the update items corresponding to the update groups among the items.
청구항 16에 있어서,
상기 아이템 정렬부는
다중 정렬 색인들을 이용하여 상기 아이템 정렬을 수행하는 것을 특징으로 하는 아이템 정렬 장치.
18. The method of claim 16,
The item arranging unit
And the item alignment is performed using multiple alignment indices.
청구항 17에 있어서,
상기 아이템 정렬부는
상기 아이템들 중 상기 다중 정렬 색인들 중 주요 색인(primary index)이 동일한 아이템들에 대하여 상기 다중 정렬 색인들 중 보조 색인(auxiliary index)을 이용하여 상기 아이템 정렬을 수행하는 것을 특징으로 하는 아이템 정렬 장치.
18. The method of claim 17,
The item arranging unit
Wherein the item alignment is performed using an auxiliary index among the multiple sorting indexes for items having the same primary index among the multiple sorting indexes among the items. .
청구항 18에 있어서,
상기 아이템 업데이트부는
상기 아이템들 중 상기 업데이트 아이템들과 갱신 순서가 한 단계씩 차이 나는 아이템들의 상기 다중 정렬 색인들을 고려하여 상기 업데이트 아이템들을 업데이트하는 것을 특징으로 하는 아이템 정렬 장치.
19. The method of claim 18,
The item update unit
And updates the update items in consideration of the multiple sorting indexes of the items whose update order is different one by one from the update items among the items.
청구항 1 내지 10 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터에서 판독 가능한 기록매체.A computer-readable recording medium on which a program for executing the method according to any one of claims 1 to 10 is recorded.
KR1020140063587A 2014-05-27 2014-05-27 Apparatus and method for sorting item using longest increasing subsequence of item group KR102247032B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140063587A KR102247032B1 (en) 2014-05-27 2014-05-27 Apparatus and method for sorting item using longest increasing subsequence of item group
PCT/KR2014/010406 WO2015182833A1 (en) 2014-05-27 2014-11-03 Apparatus and method for sorting items using longest increasing subsequence
US14/898,441 US10664235B2 (en) 2014-05-27 2014-11-03 Apparatus and method for sorting items using longest increasing subsequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140063587A KR102247032B1 (en) 2014-05-27 2014-05-27 Apparatus and method for sorting item using longest increasing subsequence of item group

Publications (2)

Publication Number Publication Date
KR20150136300A true KR20150136300A (en) 2015-12-07
KR102247032B1 KR102247032B1 (en) 2021-04-30

Family

ID=54872291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140063587A KR102247032B1 (en) 2014-05-27 2014-05-27 Apparatus and method for sorting item using longest increasing subsequence of item group

Country Status (1)

Country Link
KR (1) KR102247032B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179699A (en) * 1989-01-13 1993-01-12 International Business Machines Corporation Partitioning of sorted lists for multiprocessors sort and merge
KR20010025387A (en) 2000-12-21 2001-04-06 이홍기 Method and system for measuring grade by using the internet
US20050021572A1 (en) * 2003-07-21 2005-01-27 Liwei Ren Algorithms for block-level code alignment of software binary files
US20090099891A1 (en) * 2006-11-27 2009-04-16 David Cohen Measurement of content placement effectiveness over web pages and like media
US7725004B2 (en) * 2003-12-26 2010-05-25 Ricoh Company, Ltd. Information recorder, information recording medium, and information recording method
KR20140023644A (en) * 2012-08-16 2014-02-27 (주)네오위즈게임즈 Method of providing item, server performing the same and storage media storing the same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179699A (en) * 1989-01-13 1993-01-12 International Business Machines Corporation Partitioning of sorted lists for multiprocessors sort and merge
KR20010025387A (en) 2000-12-21 2001-04-06 이홍기 Method and system for measuring grade by using the internet
US20050021572A1 (en) * 2003-07-21 2005-01-27 Liwei Ren Algorithms for block-level code alignment of software binary files
US7725004B2 (en) * 2003-12-26 2010-05-25 Ricoh Company, Ltd. Information recorder, information recording medium, and information recording method
US20090099891A1 (en) * 2006-11-27 2009-04-16 David Cohen Measurement of content placement effectiveness over web pages and like media
KR20140023644A (en) * 2012-08-16 2014-02-27 (주)네오위즈게임즈 Method of providing item, server performing the same and storage media storing the same

Also Published As

Publication number Publication date
KR102247032B1 (en) 2021-04-30

Similar Documents

Publication Publication Date Title
JP6802870B2 (en) Real-time search adjustment
CN101681377B (en) User-defined relevance ranking for search
CN103314377B (en) sparse index table organization
US9652498B2 (en) Processing queries using hybrid access paths
US8898186B2 (en) Methods and systems for latency-free contacts search
CN106030579A (en) A method, system and computer program for scanning a plurality of storage regions within memory for a specified quantity of results
CN110019647A (en) A kind of keyword search methodology, device and search engine
EP2631815A1 (en) Method and device for ordering search results, method and device for providing information
US10303685B2 (en) Data table performance optimization
CN105159987B (en) A kind of storage of data, lookup method and device
WO2018033789A1 (en) Systems, methods, and computer-readable products for track selection
CN106547870A (en) Point table method and device of data base
CN105760504A (en) Resource retrieval method based on browser
US20170091244A1 (en) Searching a Data Structure
US20130007023A1 (en) System and Method for Consolidating Search Engine Results
CN107632752A (en) Display methods, device and the computer-readable recording medium of multi-medium data
CN106202412A (en) Data retrieval method and device
KR20150136300A (en) Apparatus and method for sorting item using longest increasing subsequence of item group
CN112948357B (en) Multimode database OrientDB-oriented tuning system and construction method thereof
KR102247890B1 (en) Apparatus and method for sorting item using longest increasing subsequence
KR102247885B1 (en) Apparatus and method for sorting item using multiple sorting index
CN110647517B (en) Processing method and device for table data structure
US10664235B2 (en) Apparatus and method for sorting items using longest increasing subsequence
CN105183913B (en) A kind of inquiry processing method, device and equipment
CN105468614A (en) Cataloguing method and apparatus

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant