KR20240003313A - 데이터 제공 방법 및 그 장치 - Google Patents

데이터 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR20240003313A
KR20240003313A KR1020220080614A KR20220080614A KR20240003313A KR 20240003313 A KR20240003313 A KR 20240003313A KR 1020220080614 A KR1020220080614 A KR 1020220080614A KR 20220080614 A KR20220080614 A KR 20220080614A KR 20240003313 A KR20240003313 A KR 20240003313A
Authority
KR
South Korea
Prior art keywords
data
file
database
information
request
Prior art date
Application number
KR1020220080614A
Other languages
English (en)
Inventor
프라카쉬 카델
박정준
강구
박종훈
이진운
황수현
권장혁
김두형
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Priority to KR1020220080614A priority Critical patent/KR20240003313A/ko
Priority to PCT/KR2022/010024 priority patent/WO2024005252A1/ko
Publication of KR20240003313A publication Critical patent/KR20240003313A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

프론트 노드에서 제1 데이터 요청을 수신하고, 제1 데이터 요청을 기반으로 메인 데이터베이스 에서 제1 데이터를 획득하고, 제1 데이터 요청을 기반으로 임시 데이터베이스 에서 제2 데이터를 획득하고, 제1 데이터 및 제2 데이터를 프론트 노드로 전송하는 전자 장치 및 그의 동작 방법을 제공한다.

Description

데이터 제공 방법 및 그 장치{DATA PROVIDING METHOD AND APPARATUS FOR THE SAME}
본 개시는 데이터 제공 방법 및 그 장치에 관한 것이다.
정보통신기술의 발전에 따라 전자상거래 시장은 빠르게 발전하여 쇼핑의 한 분야로 자리잡았다. 고객은 전자 기기 등을 사용하여 온라인 상에서 물품을 구매하고, 원하는 장소로 물품을 배달시킬 수 있다. 이에 따라 판매자와 구매자 간의 매매를 중개하고 배송 서비스를 배송하는 매매 중개 서비스가 활성화되고 있다.
이와 같은 매매 중개 서비스에서는 판매하는 물품의 변화나 사용자에게 제공해야 하는 정보가 변경됨에 따라 데이터의 변경이 필요한 경우가 발생한다. 그러나 제공되는 서비스의 데이터 양이 증가함에 따라 일부 데이터를 수정하거나 추가하는데에 많은 시간이 소요되고, 데이터 사이에 무결성이나 일관성을 가지지 못하는 경우 데이터 수정 이후 서비스에 오류가 나타날 수 있게 되었다. 이에 따라, 서비스 운영을 위해 사용되는 메인 데이터베이스 이외에 데이터 수정이나 추가와 관련된 별도의 데이터 베이스를 운영할 필요성이 생겼으며, 데이터 관리를 하는 작업자는 데이터 베이스의 수정이나 추가에 익숙하지 않을 수 있으므로, 프로그래머의 도움 없이 임시 데이터 베이스에 데이터 추가를 용이하게 하고, 이를 적절한 형테로 프론트엔드에 제공할 수 있는 방안이 요구된다.
본 발명과 관련하여, KR 10-1589213 B1 건, KR 0-2003-0057528 A 등의 선행문헌들을 참조할 수 있다.
본 발명의 과제는 서비스 운영 방향에 따라 프론트 엔드에 제공될 수 있는 데이터를 제공하기 위해 임시 데이터베이스와 메인 데이터 베이스를 관리하고, 이들로부터 수신한 정보를 조합하여 프론트 엔드에 제공할 수 있는 방법 및 그 장치를 제공하는데 있다.
본 발명이 이루고자 하는 기술적 과제는 상기된 바와 같은 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 실시예에 따라, 전자 장치의 데이터 제공 방법은, 프론트 노드에서 제1 데이터 요청을 수신하는 단계; 제1 데이터 요청을 기반으로 메인 데이터베이스 에서 제1 데이터를 획득하는 단계; 제1 데이터 요청을 기반으로 임시 데이터베이스 에서 제2 데이터를 획득하는 단계; 및 제1 데이터 및 제2 데이터를 프론트 노드로 전송하는 단계를 포함할 수 있다.
또한, 데이터 제공 방법은, 특정 식별 정보를 포함하는 제2 데이터 요청을 임시 데이터 베이스에 전송하는 단계; 및 제2 데이터 요청에 따라 임시 데이터베이스로부터 제2 데이터를 획득하는 단계를 포함할 수 있다.
또한, 특정 식별 정보는 제1 데이터를 기반으로 확인될 수 있다.
또한, 제2 데이터는 임시 데이터베이스에서 특정 식별 정보에 따라 동적 설정 데이터 베이스 로부터 획득된 설정 정보를 기반으로 확인된 테이블로부터 획득될 수 있다.
또한, 제2 데이터는 제1 데이터 요청에 대응하는 적어도 하나의 키-값 쌍을 포함할 수 있다.
또한, 키-값 쌍의 키는 키에 대응하는 값을 생성한 주체를 식별하는 정보일 수 있다.
또한, 임시 데이터베이스는 적어도 하나의 데이터 파일을 기초로 갱신되고, 적어도 하나의 데이터 파일 각각은 적어도 하나의 키-값 쌍 및 각각의 키-값 쌍을 생성한 주체를 식별하는 정보를 포함할 수 있다.
또한, 적어도 하나의 데이터 파일 각각은 데이터 파일에 포함되는 정보의 형식 및 데이터 파일의 크기를 기초로 검증될 수 있다.
또한, 임시 데이터베이스는 적어도 하나의 테이블을 포함하고, 적어도 하나의 테이블 각각은 특정 식별 정보의 타입 에 따라 서로 구별될 수 있다.
또한, 적어도 하나의 테이블 각각은, 적어도 하나의 테이블 각각에 대응하는 작업 구성 파일 을 기초로 구성되는 테이블로 교체됨으로써 갱신될 수 있다.
또한, 적어도 하나의 데이터 파일이 업로드될 때, 각 데이터 파일에 포함되는 특정 식별 정보의 타입, 값의 타입, 그룹핑 여부 및 데이터 만료일 정보가 함께 업로드될 수 있다.
또한, 제1 임시 데이터 파일은, 구분자를 이용하여 제1 임시 데이터에 포함된 하나 이상의 정보를 서로 구분할 수 있도록 구성될 수 있고, 데이터 제공 방법은, 구분자를 이용하여 하나 이상의 임시 데이터에 대응하는 하나 이상의 임시 데이터 파일을 파싱(parsing)하여 하나 이상의 임시 데이터를 확인하는 단계를 포함할 수 있다.
또한, 데이터 제공 방법은, 제2 데이터에 대한 데이터 만료일이 경과하지 않은 경우, 제1 데이터 및 제2 데이터를 프론트 노드로 전송하는 단계를 포함할 수 있다.
또한, 데이터 제공 방법은, 데이터 만료일로부터 기 설정된 기간 이전에 알림을 제공하는 단계를 더 포함할 수있다.
또한, 데이터 제공 방법은, 캐시(cache)로부터 제2 데이터를 획득하는 단계를 포함하고, 캐시는 임시 데이터베이스를 기초로 갱신될 수 있다.
또한, 하나 이상의 특정 식별 정보가 확인되면 특정 식별 정보에 대응하는 데이터가 캐시에서 삭제될 수 있다.
또한, 임시 데이터베이스는 기 설정된 주기로 갱신될 수 있다.
또한, 데이터 제공 방법은, 임시 데이터베이스의 갱신 작업의 요청을 확인한 경우, 갱신 작업의 시작을 확인한 경우 및 갱신 작업의 완료를 확인한 경우 각각에 대해 알림을 제공할 수 있다.
또한, 데이터 제공 방법은, 임시 데이터베이스에 포함된 데이터의 활성화 여부 정보를 표시하는 단계를 포함할 수 있다.
또한, 전자 장치는, 적어도 하나의 프로그램이 저장된 메모리; 및 적어도 하나의 프로그램을 실행함으로써, 프론트 노드에서 제1 데이터 요청을 수신하고, 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득하고, 제1 데이터 요청을 기반으로 임시 데이터베이스에서 제2 데이터를 획득하고, 제1 데이터 및 제2 데이터를 프론트 노드로 전송하는 프로세서를 포함할 수 있다.
또한, 컴퓨터로 읽을 수 있는 비일시적 기록매체는, 상술한 동작 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록할 수 있다.
기타 실시예들의 구체적인 사항은 상세한 설명 및 도면들에 포함된다.
본 발명에 따르면, 사용자는 별도의 코딩 없이도 임시 데이터를 메인 데이터와 함께 프론트엔드에 제공하여, 서비스 이용자가 임시 데이터를 메인 데이터와 함께 제공받을 수 있다. 따라서 프로그래머 또는 개발자 자원이 절약되는 효과가 있다.
또한 본 발명에 따르면, 사용자는 유저 인터페이스를 통해 임시 데이터베이스의 테이블을 생성, 삭제, 관리할 수 있다.
또한 본 발명에 따르면, 임시 데이터베이스를 활용하여 백엔드에서 제공한 데이터에 포함된 데이터 중에 임시 데이터베이스에서 전달한 데이터를 구별하고, 이를 기반으로 프론트 엔드에서 데이터를 활용하여 새로운 서비스를 제공할 수 있다
또한 본 발명에 따르면, 임시 데이터는 임시 데이터베이스의 테이블 형태에 저장되어, 특정 식별 정보를 기반으로 복수개의 테이블에서 어떤 임시 데이터를 전달해야 하는지 구별할 수 있다
또한 본 발명에 따르면, 메인 데이터를 보관하는 메인 데이터베이스를 별도로 수정하거나 메인 테이터베이스에 대한 데이터 요청 양식을 수정하지 않아도 메인 데이터베이스에 대한 특정 식별 정보를 포함하는 데이터 요청을 활용하여 임시 데이터베이스에서 임시 데이터를 획득할 수 있는 이점이 있다.
또한 본 발명에 따르면, 프론트 서비스의 변경이 있고, 그에 따른 일부 데이터의 변경이 필요한 경우, 본 발명을 활용하여 해당 서비스에 관련된 테이블을 추가하고, 데이터 요청 시 식별자를 통해 해당 table의 데이터를 획득하고 프론트 노드에서 제공할 수 있다.
발명의 효과는 이상에서 언급한 효과만으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있다.
도 1은 본 개시에 따른 전자 장치의 일 실시예를 나타낸다.
도 2는 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 3a 는 본 개시에 따른 데이터 파일의 일 실시예를 나타낸다.
도 3b 는 본 개시에 따른 데이터 파일에 관한 정보의 일 실시예를 나타낸다.
도 4는 본 개시에 따른 데이터 파일에 관한 정보에 포함될 수 있는 정보의 종류를 나타낸다.
도 5는 본 개시에 따른 데이터의 테이블을 나타낸다.
도 6 은 본 개시에 따른 데이터 제공 방법에 관한 임시 데이터의 요청 및 응답을 나타낸다.
도 7 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 8 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 9 는 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 10 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 11 은 본 개시에 따른 데이터 제공 방법에 관한 사용자 인터페이스를 나타낸다.
도 12 는 본 개시에 따른 데이터 제공 방법에 관한 사용자 인터페이스를 나타낸다.
도 13 은 본 개시에 따른 데이터 제공 방법에 관한 사용자 인터페이스를 나타낸다.
도 14 는 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 15 는 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 16 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 17 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 18 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
도 19 는 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다.
본 개시에 기술된 실시예는 본 개시를 제한하는 것이 아니라 예시하는 것이고, 통상의 기술자는 첨부된 청구범위에 의해 정의된 본 개시의 범주를 벗어나지 않으면서, 다수의 대안적인 실시예를 설계할 수 있다. 실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 반대되는 기재가 존재하지 않는 한, 단수는 물론 복수를 모두 포함한다.
본 명세서 전체에서 어떤 부분이 어떤 구성요소들 또는 어떤 단계들을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 어떤 부분이 구성요소들 또는 단계들을 반드시 모두 포함해야 하는 것은 아니고, 청구범위 또는 명세서 전체에 열거된 것 이외의 구성요소 또는 단계가 포함되는 것을 배제하는 것도 아니며, 단지 이들을 더 포함할 수 있음을 의미한다.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 서수를 포함하는 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 문맥상 명세서의 일 부분에서 일 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 명세서의 다른 부분에서 제2 구성요소로 명명될 수 있고, 반대로 제2 구성요소도 명세서의 다른 부분에서 제1 구성요소로 명명될 수 있다.
본 명세서에서 "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 명세서(특히 청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 재배열되어 행해질 수 있고, 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 통상의 기술자는 본 명세서에 개시된 실시예에 설계 조건 및 팩터에 따라 다양한 수정, 조합 및 변경을 부가하여 특허청구범위 또는 그 균등물의 범주에 속하는 새로운 실시예를 구성할 수 있다.
이하에서는 도면을 참조하여 본 개시의 실시예를 설명한다.
도 1 은 본 개시의 적어도 하나의 실시예를 실행하는데 사용될 수 있는 전자 장치(100)의 예시적이고 단순화된 블록도를 나타낸다. 다양한 실시예에서, 전자 장치(100)는 본 개시에서 서술된 임의의 시스템 또는 방법을 구현하는데 사용될 수 있다. 예를 들어, 전자 장치(100)는 데이터 서버, 웹 서버, 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터, 태블릿 컴퓨터, 워크스테이션, 휴대폰, 스마트 폰(smart phone) 또는 아래에서 서술되는 임의의 다른 디바이스를 포함하는 임의의 전자 장치로서 사용되도록 구성될 수 있다.
전자 장치(100)는 메모리(120) 및 메모리(120)와 통신하도록 구성될 수 있는 하나 이상의 캐시 메모리 및 메모리 제어기를 갖는 하나 이상의 프로세서(110)를 포함할 수 있다. 추가적으로, 전자 장치(100)는 하나 이상의 포트(예컨대, USB(Universal Serial Bus), 헤드폰 잭, 라이트닝(Lightning) 커넥터, 썬더볼트(Thunderbolt) 커넥터 등)를 통해 전자 장치(100)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 전자 장치(100)에 연결될 수 있는 디바이스는 광섬유 커넥터를 수용하도록 구성되는 복수의 포트를 포함할 수 있다. 도시된 전자 장치(100)의 구성은 디바이스의 바람직한 실시예를 예시할 목적으로 특정 예시로서만 의도된다. 도시된 전자 장치(100)에는 본 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 전자 장치(100)에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
프로세서(110)는 전자 장치(100)가 본 개시에서 서술된 임의의 실시예의 단계 또는 기능을 제공하도록 하기 위해 이용될 수 있다. 예를 들어, 프로세서(110)는 전자 장치(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 전자 장치(100)를 전반적으로 제어한다. 프로세서(110)는 전자 장치(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.
메모리(120)는 전자 장치(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 전자 장치(100)에서 프로세서(110)를 통해 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 본 개시의 적어도 하나의 실시예의 기능을 제공할 수 있는 기본 프로그래밍 및 데이터 구조를 저장하는 것은 물론, 본 개시의 실시예의 기능을 제공할 수 있는 애플리케이션들(프로그램, 코드 모듈, 명령어), 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.
본 개시에 따른 방법 및 각 단계는 전자 장치(100) 또는 프로세서(110)가 수행할 수 있다. 전자 장치(100)는 프로세서(110)의 제어에 의해 동작한다. 설명을 간단히 하기 위하여 아래부터는 전자 장치(100)가 본 개시에 따른 방법 및 각 단계의 수행 주체임을 전제하여 설명한다.
도 2 는 본 개시에 따른 결제 서비스 제공 방법의 일 실시예를 나타낸다. 일 실시예에서, 전자 장치(100)는 프론트 노드에서 제1 데이터 요청을 수신하고, 제1 데이터 요청을 기반으로 메인 데이터베이스 에서 제1 데이터를 획득하고, 제1 데이터 요청을 기반으로 임시 데이터베이스 에서 제2 데이터를 획득하고 제1 데이터 및 제2 데이터를 프론트 노드(미도시)로 전송할 수 있다.
"프론트 노드(미도시)"는 백엔드 노드로부터 데이터를 수신하고, 사용자에게 제공할 페이지를 생성할 수 있다. 프론트 노드는 사용자의 단말로 페이지를 생성하여 서비스 이용자에게 서비스를 제공할 수 있다.
서빙 레이어(214)는 프론트 노드로 데이터를 제공할 수 있다. 서빙 레이어(214)는 전자 장치(100)에 포함될 수 있다. 서빙 레이어(214)는 복수의 API들을 포함하고, 프론트 노드의 요청에 따라 특정 API에 대응하는 백엔드 노드 또는 서버로부터 데이터를 수신하여 프론트 노드에 전달할 수 있다. 구체적으로, 서빙 레이어(214)는 리스팅 API(215), 검색 API(216) 및 프로모션 API(217) 중 적어도 하나를 포함할 수 있다. 리스팅 API(215)는 프론트 노드로 데이터의 리스트를 제공할 수 있다. 검색 API(216)은 프론트 노드로 데이터의 검색 결과를 제공할 수 있다. 프로모션 API(217)는 프론트 노드로 프로모션에 관한 데이터를 제공할 수 있다.
프론트 노드는 서빙 레이어(214)로 특정한 객체의 특정 식별 정보를 포함하는 요청을 송신할 수 있다. 서빙 레이어(214)는 객체 데이터 제공 API(213)로 제1 데이터 요청을 송신할 수 있다. 객체 데이터 제공 API(213)는 전자 장치(100)에 포함될 수 있다. 구체적으로, 제1 데이터 요청은 특정한 객체에 관한 데이터의 요청일 수 있다. 다시 말해, 제1 데이터 요청은 프론트 노드로부터의 요청에 대응하는 특정한 객체의 특정 식별 정보를 포함할 수 있다. 객체 데이터 제공 API(213)는 서빙 레이어(214)의 제1 데이터 요청에 대응하여 제1 데이터를 획득하고, 제 1 데이터를 서빙 레이어(214)로 제공할 수 있다.
객체 데이터 제공 API(213)는 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득 할 수 있다. 메인 데이터베이스는 특정한 객체에 관한 데이터를 저장할 수 있다. 제1 데이터 요청은 특정한 객체에 관한 식별 정보를 포함할 수 있고, 객체 데이터 제공 API(213)는 식별 정보를 이용하여 메인 데이터베이스로부터 식별 정보에 대응하는 객체에 관한 제1 데이터를 획득할 수 있다.
메인 데이터베이스는 방대한 양의 데이터를 저장할 수 있으며, 그에 따라 메인 데이터베이스로의 데이터 요청 및 데이터 제공 작업도 빈번하게 이루어질 수 있다. 따라서 메인 데이터베이스의 데이터 제공 작업에 대한 방해가 최소화되도록, 메인 데이터베이스에 대한 데이터 변경, 수정, 삭제, 갱신 작업 역시 최소화될 필요가 있다. 따라서 임시 데이터를 메인 데이터베이스에 반영하는 대신, 별도의 임시 데이터베이스를 사용하고, 임시 데이터베이스로부터 임시 데이터를 로드하여 제공할 수 있다.
객체 데이터 제공 API(213)는 제1 데이터 요청을 셔틀(212)에 전달할 수 있다. 셔틀(212)는 전자 장치(100)의 일부일 수 있다. 셔틀(212)은 제1 데이터 요청을 기반으로 임시 데이터베이스(210)에서 제2 데이터를 획득할 수 있다. 임시 데이터베이스(210)는 특정한 객체에 관한 데이터를 저장할 수 있다. 또한, 임시 데이터베이스(210)는 예를 들어, Spark Cassandra 등의 분산형 데이터베이스이거나, 그를 포함할 수 있다. 셔틀(212)은 제1 데이터 요청 또는 제1 데이터를 기반으로 확인되는 특정 식별 정보를 이용하여 임시 데이터베이스(210)로부터 특정 식별 정보에 대응하는 객체에 관한 제2 데이터를 획득할 수 있고, 제2 데이터를 객체 데이터 제공 API(213)에 전달할 수 있다. 제2 데이터는 특정한 객체에 관한 임시 데이터를 포함할 수 있다. 객체 데이터 제공 API(213) 또는 프로세서는 제1 데이터 및 제2 데이터를 서빙 레이어(214)로 전달하여, 제1 데이터 및 제2 데이터가 프론트 노드로 전송될 수 있다.
일 실시예에서, 셔틀(212)은 특정 식별 정보를 포함하는 제2 데이터 요청을 임시 데이터베이스(210)에 전송하고, 제2 데이터 요청에 따라 임시 데이터베이스(210)로부터 제2 데이터를 획득할 수 있다. 제2 데이터 요청은 제1 데이터 또는 제1 데이터 요청을 기반으로 생성될 수 있다. 제2 데이터 요청 및 제2 데이터에 관하여는 이후 도 6을 참조하여 자세히 설명한다.
일 실시예에서, 셔틀(212)은 캐시(211)로부터 제2 데이터를 획득할 수 있고, 캐시(211)는 임시 데이터베이스(210)를 기초로 갱신될 수 있다. 캐시(211)는 제2 데이터와 같이 임시 데이터베이스(210)에 저장된 데이터 중 일부를 포함할 수 있다. 이는 임시 데이터베이스(210)로부터 직접 데이터를 획득하는 것보다 더 신속하게 데이터를 획득할 수 있는 이점이 있다.
일 실시예에서, 제2 데이터는 임시 데이터베이스(210)에서 특정 식별 정보에 따라 동적 설정 데이터베이스(209)로부터 획득된 설정 정보를 기반으로 확인된 테이블로부터 획득될 수 있다. 이러한 테이블 및 동적 설정 데이터베이스(209)의 자세한 내용에 관하여는 이후 도 5 를 참조하여 자세히 설명한다.
일 실시예에서, 임시 데이터베이스(210)에 데이터를 추가, 수정 또는 갱신하기 위하여 사용자(201)는 애드혹 서비스(203)를 통해 적어도 하나의 데이터 파일을 업로드(202)할 수 있다. 애드혹 서비스(203)은 애드혹 UI(User Interface)(204)를 포함할 수 있고, 사용자(201)는 애드혹 UI(204)를 이용하여 적더오 하나의 데이터 파일을 업로드(202)할 수 있다.
적어도 하나의 데이터 파일은 텍스트 파일 또는 csv(comma separated values) 파일일 수 있다. 적어도 하나의 데이터 파일의 실시예는 도 3a 에 나타나 있다. 적어도 하나의 데이터 파일은 파일 데이터베이스(205)에 저장될 수 있고, 데이터 추출기(208)는 적어도 하나의 데이터 파일로부터 임시 데이터베이스(210)를 갱신할 수 있다. 즉, 임시 데이터베이스(210)는 적어도 하나의 데이터 파일을 기초로 갱신될 수 있다. 파일 데이터베이스(205)는 Amazon S3 등의 클라우드 스토리지를 포함할 수 있다.
일 실시예에서, 적어도 하나의 데이터 파일 각각은 적어도 하나의 키-값 쌍을 포함할 수 있다. 적어도 하나의 키-값 쌍의 키는 특정 식별 정보일 수 있고, 값은 특정 식별 정보에 대응되는 값일 수 있다. 여기서 각각의 키에 대응하는 값은 단일 값일 수도 있지만, json(JavaScript Object Notation) 형태 등의 데이터 포맷으로 표현된 하나 이상의 값을 포함할 수도 있다. 일 실시예에서, 적어도 하나의 데이터 파일 각각은 구분자를 이용하여 적어도 하나의 데이터 파일 각각에 포함된 하나 이상의 정보를 서로 구분할 수 있도록 구성될 수 있다. 구분자는 탭(tab) 또는 콤마(,)등일 수 있다. 구분자는 도 2 의 애드혹 UI(204)를 통해 설정될 수 있다. 사용자(201)는 애드혹 UI(204)를 통해 사용할 구분자를 결정할 수 있다.
도 3a 를 참조하여 설명하면, A1.txt 파일(301)은 키 10001, 키 10002에 각각 대응하는 값으로 2 및 3을 각각 포함할 수 있다. 각각의 키 및 값은 콤마로 구분된다. A2.txt 파일(302)은 키 10001에 대응하는 값으로 3000을 가질 수 있다. A3.txt 파일(303)은 키 19101053에 대응하는 값으로 true를 가질 수 있다. A4.txt 파일(304)은 키 10001에 대응하는 값으로 retail/image01.png를 가질 수 있다.
B1.txt 파일(305)은 키 10001에 대응하는 값으로 {"bsr_rank": "1", "bsr_limit": false}를 가질 수 있다. 이는 json 포맷에 대응될 수 있다.
적어도 하나의 데이터 파일 각각은 적어도 하나의 키-값 쌍을 생성한 주체(또는 사용자)를 식별하는 정보(다시 말해, 생성 주체 식별자)에 대응될 수 있다. 생성 주체 식별자는 제2 데이터의 사용처를 식별하는 정보일 수 있다. 생성 주체 식별자를 통해, 프론트 노드에서는 적어도 하나의 데이터 파일에 포함되는 키-값 쌍 또는 제2 데이터의 사용처를 결정할 수 있다. 즉, 생성 주체 식별자는 사용자와 프론트 노드 사이에서 약속된 식별자일 수 있으며, 이는 생성 주체뿐만 아니라 임시 데이터베이스에 필요한 데이터를 요청하고, 이를 수신한 프론트 엔드 노드에서 임시 데이터베이스에서 획득한 정보를 구별할 수 있도록 하는 식별 정보를 포함할 수 있다.
일 실시예에서, 적어도 하나의 데이터 파일 각각은 데이터 파일에 포함되는 정보(키 및 값)의 형식 또는 데이터 파일의 크기를 기초로 검증될 수 있다. 예를 들어, 적어도 하나의 데이터 파일에 포함되는 키가 integer 타입인지 혹은 값이 string 타입인지 검증될 수 있고, 데이터 파일인 1메가바이트 이하인지 등이 검증될 수 있다. 이는 프로그래밍에 익숙하지 않은 사용자(201)가 잠재적 프로그램 오류를 야기할 수 있는 데이터를 업로드하는 문제를 방지할 수 있는 효과가 있다.
일 실시예에서, 적어도 하나의 데이터 파일에 관한 정보는 파일 정보 데이터베이스(206)에 보관될 수 있다. 파일 정보 데이터베이스(206)는 Amazon RDS 등의 관계형 데이터베이스를 포함할 수 있다. 적어도 하나의 데이터 파일에 관한 정보는 이후 도 3b 와 관련하여 자세히 설명한다.
일 실시예에서, 파일 데이터베이스(205)에 저장된 적어도 하나의 데이터 파일을 기초로 임시 데이터베이스(210)를 갱신하기 위하여, 작업 구성 파일이 작업 구성 파일 데이터베이스(207)에 업로드될 수 있다. 작업 구성 파일 데이터베이스는 Amazon S3 등의 데이터베이스를 포함할 수 있다. 데이터 추출기(208)는 작업 구성 파일 데이터베이스(207)에 저장된 작업 구성 파일을 참조하여 파일 데이터베이스(205)에 저장된 하나 이상의 데이터 파일을 확인하고, 임시 데이터베이스(210)를 갱신할 수 있으며, 이에 따라 임시 데이터베이스(210)의 테이블이 갱신되고, 프론트 노드로 전달할 데이터에 대응하는 테이블이나 로우(row)를 설정하기 위해 동적 설정 데이터베이스(209)에 설정 값을 업데이트 할 수 있다. 데이터 추출기(208)는 Spark Streaming 등의 데이터 스트리밍 도구를 포함할 수 있다. 작업 구성 파일은 하나 이상의 데이터 파일을 일괄 작업하기 위한 정보를 포함할 수 있다. 이는 임시 데이터베이스(210)를 적절한 빈도로 갱신하여, 임시 데이터베이스(210)에 가해지는 부하를 조절할 수 있는 이점이 있다.
일 실시예에서, 데이터 추출기(208)는 임시 데이터베이스(210)를 갱신한 다음, 임시 데이터베이스(210)의 갱신에 관한 설정 정보를 동적 설정 데이터베이스(209)에 업로드할 수 있다. 셔틀(212)은 동적 설정 데이터베이스(209)로부터 이러한 설정 정보를 임시 데이터베이스(210)로부터 제2 데이터를 획득하는데 활용할 수 있다. 동적 설정 데이터베이스(209)의 설정 정보는 셔틀(212)이 임시 데이터베이스(210)로부터 어떤 데이터를 참조해야 하는지에 관한 정보를 포함할 수 있다. 예를 들어, 셔틀(212)은 동적 설정 데이터베이스(209)의 설정 정보를 기초로 어떤 테이블 및 행/열 정보를 참조해야 하는지 확인하고, 이를 기초로 임시 데이터베이스(210)로부터 제2 데이터를 획득할 수 있다. 이와 같이 동적 설정 데이터베이스(209)에서 설정 정보를 관리함으로써 임시 데이터베이스(210)의 데이터를 적응적으로 업데이트 할 수 있으며, 사용되는 데이터의 버전이 변경되는 경우에도 동적 설정 데이터베이스(209)를 업데이트함으로써 프론트 노드로 전달될 데이터를 용이하게 설정할 수 있다.
동적 설정 데이터베이스(209)에는 임시 데이터베이스(210)의 갱신된 테이블 이름 및 해당 테이블의 갱신된 열 정보가 포함될 수 있다.
도 3b 는 본 개시에 따른 적어도 하나의 데이터 파일에 관한 정보의 일 실시예를 나타낸다. 사용자가 업로드한 적어도 하나의 데이터 파일은 도 3b 에 도시된 테이블 형태로 파일 정보 데이터베이스에 저장될 수 있다. 적어도 하나의 데이터 파일에 관한 정보는 각 데이터 파일의 식별자(310), 생성 주체 식별자(320), 식별자 타입(330) 및 저장 경로(340) 등의 정보를 포함할 수 있다.
식별자(310)는 적어도 하나의 데이터 파일의 순번에 대응될 수 있다.
생성 주체 식별자(320)는 적어도 하나의 데이터 파일을 생성한 주체를 식별하는 정보일 수 있으며, 상술한 바와 같이, 적어도 하나의 데이터 파일에 포함되는 키-값 쌍이 사용되는 사용처를 정하는 정보일 수 있다.
식별자 타입(330)은 적어도 하나의 데이터 파일에 포함되는 키-값 쌍의 키의 타입을 의미할 수 있다. 구체적으로, 적어도 하나의 데이터 파일에 포함되는 키-값 쌍의 키는 특정 식별 정보에 대응할 수 있고, 특정 식별 정보는 일정한 기준으로 분류될 수 있다. 예를 들어, 특정 식별 정보는 벤더 아이템(VENDOR_ITEM) 타입의 식별 정보일 수 있고, 카테고리(CATEGORY) 타입의 식별 정보일 수 있고, 멤버(MEMBER) 타입의 식별 정보일 수 있다.
저장 경로(340)는 적어도 하나의 데이터 파일 각각이 파일 데이터베이스에 저장된 경로를 나타낼 수 있다.
예를 들어, 식별자(310)가 2인 행은 도 3a의 A2.txt파일(302)에 대응될 수 있다. 즉, 식별자(310)가 2인 행의 저장 경로(340) 셀은 도A2.txt 파일(302)가 파일 데이터베이스 내에 저장된 경로를 포함할 수 있다. 식별자(310)가 2인 행을 참조하면, 생성 주체 식별자(320)는 CATEGORY_IMAGE로, 특정한 카테고리에 대응하는 이미지를 추가 / 변경 / 삭제 하는 작업을 의미할 수 있다. 이 경우, 식별자 타입(330)은 CATEGORY로 설정될 수 있다. 즉, 이 작업과 관련된 데이터 파일인 A2.txt파일(302)에 포함되는 키는 특정한 카테고리에 대응될 수 있다. 예를 들어, A2.txt파일(302) 에는 "티셔츠" 카테고리에 대응되는 키인 10001이 포함될 수 있고, "티셔츠" 카테고리에 대응하는 이미지를 변경하기 위하여 10001 키에 대응되는 값은 새로운 이미지의 URL(Uniform Resource Locator), 예를 들어 "retail/image01.png" 등일 수 있다.
또한 예를 들어, 식별자(310)가 1인 행은 도 3a의 A1.txt 파일(301)에 대응될 수 있고, 식별자(310)가 3인 행은 도 3a의 A3.txt 파일(303)에 대응될 수 있고, 식별자(310)가 4인 행은 도 3a의 A4.txt 파일(304)에 대응될 수 있다.
일 실시예에서, 적어도 하나의 데이터 파일이 업로드될 때, 각 데이터 파일에 포함되는 특정 식별 정보의 타입, 값의 타입, 그룹핑 여부 및 데이터 만료일 정보가 함께 업로드될 수 있다.
특정 식별 정보의 타입에는 예를 들어 PRODUCT, ITEM, VENDOR_ITEM, CATEGORY, VENDOR, MEMBER, UNKNOWN 등의 특정 식별 정보의 타입이 있을 수 있다.
값의 타입에는 예를 들어 TEXT, BOOLEAN, DOUBLE, LONG, UNKNOWN 등의 데이터 기술 타입이 포함될 수 있다.
그룹핑 여부에는 값이 복수의 값의 세트일 수 있는지 여부가 포함될 수 있다. 예를 들어 그룹핑 여부가 "SINGLE"인 경우, 특정 식별 정보에 대응하는 값은 단일 값임을 의미할 수 있다. 다른 예를 들어, 그룹핑 여부가 "MULTI"인 경우, 특정 식별 정보에 대응하는 값은 복수 개이거나, 다른 키-값 쌍이 될 수 있음을 의미할 수 있다.
데이터 만료일 정보는 적어도 하나의 데이터 파일 각각이 유효한 기간을 의미할 수 있다. 즉, 데이터 만료일이 2022년 5월 16일로 지정된 경우, 데이터 파일은 2022년 5월 16일까지만 유효하며, 데이터 파일에 포함되는 정보 역시 2022년 5월 16일까지만 유효할 수 있다. 따라서, 데이터 파일에 포함되는 정보가 임시 데이터베이스에 이미 저장되어 있다고 해도, 이는 데이터 만료일인 2022년 5월 16일까지만 프론트 노드에 제공될 수 있다. 즉, 전자 장치(100)는 제2 데이터에 대한 데이터 만료일이 경과하지 않은 경우, 제2 데이터를 프론트 노드로 전송할 수 있다. 또한, 전자 장치(100)는 데이터 만료일로부터 기 설정된 기간 이전에 알림을 제공할 수 있다. 이는 사용자가 임시 데이터가 만료되기 전에 임시 데이터를 적절히 갱신할 수 있도록 하는 이점이 있다.
도 4 는 본 개시에 따른 데이터 파일에 관한 정보에 포함될 수 있는 정보의 종류를 나타낸다. 애드혹 데이터 전달 오브젝트(AdHocDto, 410) 정보는 본 개시에 따른 임시 데이터에 관한 정보를 포함할 수 있다. 즉, 애드혹 데이터 전달 오브젝트(410)에 나타난 각 행은 도 3b 에 나타난 데이터 파일에 관한 정보, 즉 테이블의 열 정보일 수 있다. 따라서, 데이터 파일에 관한 정보에는 식별자(id) 정보, 제목(title) 정보, 설명(Description) 정보, 내용(Content) 정보, 식별자 타입(idType) 정보, 애드혹 생성일(또는 파일 생성일, createdAt) 정보, 애드혹 생성 주체(또는 파일 생성 주체, createdBy) 정보, 애드혹 수정일(또는 파일 수정일, modifiedAt) 정보, 애드혹 수정 주체(또는 파일 수정 주체, modifiedBy) 정보, 애드혹 데이터 또는 데이터 파일의 임시 데이터베이스 업로드 상태(status) 정보 및 데이터 파일의 저장 경로(s3Path) 정보 등이 포함될 수 있다.
애드혹 데이터 전달 오브젝트(410)의 일부는 애드혹 데이터 히스토리 정보(AdHocDtoHistory, 430)일 수 있다. 애드혹 데이터 히스토리 정보(430)에는 식별자(id) 정보, 애드혹 식별자(adHocID)정보, 설명(Description) 정보, 애드혹 생성일(또는 파일 생성일, createdAt) 정보, 애드혹 생성 주체(또는 파일 생성 주체, createdBy) 정보 등이 포함될 수 있다.
식별자 타입(idType) 정보(420)에는 식별자 타입의 식별자(id) 정보 및 타입 정보가 포함될 수 있다.
각 정보(410, 420, 430)는 관리자에 의해 생성, 변경, 삭제될 수 있으며, 사용자에 의해 생성, 변경, 삭제될 수 있다. 각 정보의 관리를 위하여, 사용자의 권한은 관리자에 비해 축소될 수 있다.
도 5 는 본 개시에 따라 임시 데이터베이스에 저장될 수 있는 데이터의 테이블을 나타낸다. 일 실시예에서, 임시 데이터베이스는 적어도 하나의 테이블을 포함하고, 적어도 하나의 테이블 각각은 특정 식별 정보의 타입에 따라 서로 구별될 수 있다. 특정 식별 정보의 타입은 도 3b 에 나타난 식별자 타입(330)에 해당하는 것일 수 있다. 예를 들어, 벤더 아이템 테이블(510)은 도 3b 에 나타난 VENDOR_ITEM 타입의 특정 식별 정보 및 해당 특정 식별 정보에 대응하는 값들을 테이블 형태로 포함할 수 있다.
예를 들어, 도 3b의 식별자(310)가 1인 행의 특정 식별 정보의 타입, 즉, 식별자 타입(310)은 VENDOR_ITEM이다. 도 3b의 식별자(310)가 1인 행은 도 3a의 A1.txt 파일(301)에 대응된다. 도 3b의 식별자(310)가 1인 행은 생성 주체 식별자(320)가 VI_BEST_SELLER_RANKING 이므로, 벤더 아이템 테이블(510)의 두 번째 열의 제목은 VI_BEST_SELLER_RANKING으로 설정될 수 있다. 그리고, A1.txt 파일(301)은 특정 식별 정보 10001에 대응하는 값 2 및 특정 식별 정보 10002에 대응하는 값 3을 포함하므로, 벤더 아이템 테이블(510)의 두 번째 열에서 특정 식별 정보가 10001인 행 및 10002인 행에 대응하는 셀에 값 2 및 3을 각각 기록할 수 있다.
다음으로, 도 3b의 식별자(310)가 3인 행의 특정 식별 정보의 타입 역시 VENDOR_ITEM이다. 도 3b의 식별자(310)가 3인 행은 도 3a의 A3.txt 파일(303)에 대응된다. 도 3b의 식별자(310)가 3인 행은 생성 주체 식별자(320)가 VI_FRESH_PROMOTION 이므로, 벤더 아이템 테이블(510)의 세 번째 열의 제목은 VI_FRESH_PROMOTION 으로 설정될 수 있다. 그리고, A3.txt 파일(303)은 특정 식별 정보 10001에 대응하는 값 3000을 포함하므로, 이를 벤더 아이템 테이블(510)의 세 번째 열에서 특정 식별 정보가 10001인 행에 대응하는 셀에 3000을 기록할 수 있다.
다음으로, 도 3b의 식별자(310)가 4인 행의 특정 식별 정보의 타입은 MEMBER 이다. 도 3b의 식별자(310)가 4인 행은 도 3a의 A4.txt 파일(304)에 대응된다. 도 3b의 식별자(310)가 4인 행은 생성 주체 식별자(320)가 MEMBER_FREE_SHIPPING 이므로, 멤버 테이블(520)의 두 번째 열의 제목은 MEMBER_FREE_SHIPPING 으로 설정될 수 있다. 그리고, A4.txt 파일(304)은 특정 식별 정보 19101053에 대응하는 값 true를 포함하므로, 이를 멤버 테이블(520)의 두 번째 열에서 특정 식별 정보가 19101053인 행에 대응하는 셀에 true를 기록할 수 있다.
마지막으로, 도 3b의 식별자(310)가 2인 행의 특정 식별 정보의 타입은 CATEGORY이다. 도 3b의 식별자(310)가 2인 행은 도 3a의 A2.txt 파일(302)에 대응된다. 도 3b의 식별자(310)가 2인 행은 생성 주체 식별자(320)가 CATEGORY_IMAGE 이므로, 카테고리 테이블(530)의 두 번째 열의 제목은 CATEGORY_IMAGE 으로 설정될 수 있다. 그리고, A2.txt 파일(302)은 특정 식별 정보 10001에 대응하는 값 retail/image01.png를 포함하므로, 카테고리 테이블(530)의 두 번째 열에서 특정 식별 정보가 10001인 행에 대응하는 셀에 retail/image01.png를 기록할 수 있다.
상술한 것과 같이 임시 데이터베이스의 적어도 하나의 테이블을 특정 식별 정보의 타입에 따라 구별하는 것은, 프론트 노드, 서빙 레이어, 객체 데이터 제공 API또는 셔틀로부터의 제1 데이터 요청 또는 제2 데이터 요청이 특정 식별 정보의 타입 및 특정 식별 정보에 관한 것인 경우 임시 데이터베이스로부터 신속하게 제2 데이터를 획득할 수 있는 이점을 가진다.
도 6 은 본 개시에 따른 제2 데이터 요청 및 제2 데이터 요청에 대응하는 응답을 나타낸다. 일 실시예에서, 제2 데이터 요청은 특정 식별 정보를 포함할 수 있다. 도 6 에 나타난 제2 데이터 요청은 "vi": 10001 에 해당한다. vi는 특정 식별 정보의 타입 중 VENDOR_ITEM타입을 의미하고, 10001은 특정 식별 정보의 값에 해당한다. 즉, 도 6 의 제2 데이터 요청은 VENDOR_ITEM 타입의 특정 식별 정보가 10001인 제2 데이터를 요청하는 것을 의미한다.
제2 데이터 요청은 제1 데이터 요청 또는 제1 데이터를 기초로 생성된 것일 수 있다. 예를 들어, 제1 데이터 요청 자체가 VENDOR_ITEM 타입의 특정 식별 정보가 10001인 제2 데이터를 요청하는 것을 포함할 수도 있고, 제1 데이터 요청에 따라 획득된 제1 데이터가 VENDOR_ITEM 타입의 특정 식별 정보가 10001인 객체에 대한 정보를 포함하기 때문에, 제2 데이터 요청이 제1 데이터에 의해 생성된 것일 수 있다.
셔틀 또는 객체 데이터 제공 API는 도 6 에 나타난 제2 데이터 요청을 임시 데이터베이스에 전송할 수 있고, 도 6 에 나타난 응답을 생성할 수 있다. 도 5 에 따르면, VENDOR_ITEM 타입의 특정 식별 정보 및 그에 대응하는 데이터를 저장하는 벤더 아이템 테이블(510)에는 특정 식별 정보가 10001인 행이 존재한다. 따라서, 셔틀 도는 객체 데이터 제공 API는 벤더 아이템 테이블(510)의 특정 식별 정보가 10001인 두 번째 행의 값들인 2 및 3, 그리고 각각의 열 이름인 VI_BEST_SELLER_RANKING 및 VI_FRESH_PROMOTION을 획득할 수 있다. 셔틀 또는 객체 데이터 제공 API는 이를 이용하여 제2 데이터를 포함하는 응답을 도 6 과 같이 생성할 수 있다.
일 실시예에서, 제2 데이터는 제1 데이터 요청 또는 제2 데이터 요청에 대응하는 적어도 하나의 키-값 쌍을 포함할 수 있다. 도 6 에 나타난 것과 같이, 제2 데이터는 키-값 쌍의 형태로 기술될 수 있다. 구체적으로, 제2 데이터는 JSON 포맷으로 기술될 수 있다. 제2 데이터에 포함되는 키-값 쌍의 키는 키에 대응하는 값을 생성한 주체를 식별하는 정보일 수 있다. 즉, 제2 데이터에 포함되는 키-값 쌍의 키는 생성 주체 식별자일 수 있다.
예를 들어, 도 6 에 나타난 것과 같이 제2 데이터는 키 VI_BEST_SELLER_RANKING에 대응하는 값 2의 제1 키-값 쌍 및 키 VI_FRESH_PROMOTION에 대응하는 값 3의 제2 키-값 쌍이 될 수 있다. 제1 키-값 쌍 및 제2 키-값 쌍은 도 6과 같이 제2 데이터 응답에 포함될 수 있고, 제2 데이터 응답에는 제2 데이터가 VENDOR_ITEM 타입의 특정 식별 정보에 대응하는 것임을 의미하는 "vendorItem" 키가 포함될 수 있다. 또한, 제2 데이터 응답에는 제2 데이터가 임시 데이터임을 의미하는 "adhocProperties" 키가 포함될 수 있다.
도 7 은 본 개시에 따른 데이터 제공 방법의 일 실시예를 나타낸다. 구체적으로, 도 7 은 사용자가 업로드한 데이터 파일의 정보를 기초로 임시 데이터베이스의 적어도 하나의 테이블을 갱신하는 과정을 나타낸다. 애드혹 백엔드(710)는 전자 장치(100)에 포함되는 모듈일 수 있다. Amazon RDS(720)는 파일 정보 데이터베이스에 대응될 수 있다. Amazon S3(730)는 작업 구성 파일 데이터베이스에 대응될 수 있다. Apache Airflow(740)는 전자 장치(100)에 포함되는 모듈일 수 있다.
일 실시예에서, 단계 S701에 따라, 애드혹 백엔드(710)는 Amazon S3(730)에서 adhoc_base.yaml 파일로부터 airflow 작업 기초 구성 파일을 가져올 수 있다. adhoc_base.yaml 파일 또는 airflow 작업 기초 구성 파일은 임시 데이터베이스의 적어도 하나의 테이블을 갱신하기 위한 공통적인 설정, 명령 또는 시퀀스를 포함할 수 있다.
일 실시예에서, 단계 S702에 따라, 애드혹 백엔드(710)는 각 airflow 작업을 트리거하는 것에 대한 기초 구성의 캐시를 만들 수 있다. 즉, 애드혹 백엔드(710)는 작업 기초 구성 파일을 기초로 기초 구성 정보를 캐싱할 수 있다.
일 실시예에서, 단계 S703에 따라, 사용자는 Adhoc.id에 대한 발행 버튼을 클릭할 수 있다. 즉, 사용자는 파일 데이터베이스에 이미 업로드된 적어도 하나의 데이터 파일을 발행하여 임시 데이터베이스를 갱신하도록 명령할 수 있다.
일 실시예에서, 단계 S704에 따라, 애드혹 백엔드(710)는 사용자의 발행 버튼 클릭에 대응하여 애드혹 상태를 '활성화됨'으로 설정할 수 있다. 애드혹 상태는 임시 데이터베이스를 갱신할 때 임시 데이터베이스에 새롭게 업데이트되는 데이터 파일에 포함된 정보의 활성화 여부를 의미할 수 있다. 애드혹 상태가 활성화된 경우, 대응되는 임시 데이터베이스의 정보가 셔틀에 의해 프론트 노드로 전달될 수 있다. 애드혹 상태 정보는 Amazon RDS(720)에 기록될 수 있다.
일 실시예에서, 단계 S705에 따라, 애드혹 백엔드(710)는 활성화된 상태의 모든 애드혹 리스트를 Amazon RDS(720)로부터 쿼리할 수 있다. 애드혹 리스트는 파일 정보 데이터베이스, 즉, Amazon RDS(720)에 저장된 데이터 파일의 정보를 의미할 수 있다. 즉, 애드혹 리스트는 도 3b의 테이블에 대응되는 것일 수 있다.
일 실시예에서, 단계 S706에 따라, 애드혹 백엔드(710)는 Airflow 작업을 위한 설정을 만들 수 있다. 이 설정은 단계 S702에서 캐시된 기초 구성에 기초할 수 있다. 또한, 애드혹 백엔드(710)는 애드혹 리스트로 yaml 파일의 입력 세션을 만들 수 있다. 이를 통해 애드혹 백엔드(710)는 임시 데이터베이스의 갱신 작업에 대한 작업 구성 파일을 구성할 수 있다.
일 실시예에서, 단계 S707에 따라, 애드혹 백엔드(710)는 adhoc_{ID_TYPE}.yaml 파일을 Amazon S3(730)에 업로드할 수 있다. adhoc_{ID_TYPE}.yaml 파일은 적어도 하나의 데이터 파일에서 특정 식별 정보의 타입이 ID_TYPE인 키-값 쌍에 해당하는 정보를 기초로 임시 데이터베이스에서 특정 식별 정보의 타입이 ID_TYPE인 테이블을 갱신하기 위한 작업의 설정을 포함하는 작업 구성 파일일 수 있다. 예를 들어, 도 5의 벤더 아이템 테이블(510)은 adhoc_vendorItem.yaml 파일을 참조하여 갱신될 수 있다.
일 실시예에서, 단계 S708에 따라, Apache Airflow(740)는 작업을 위해 yaml 파일을 Amazon S3(730)로부터 가져올 수 있다. Apache Airflow(740)는 yaml 파일을 참조하여 단계 S709에 따라 파싱할 각 csv, text 파일을 Amazon S3(730)로부터 가져올 수 있다. csv, text 파일은 적어도 하나의 데이터 파일에 대응될 수 있다.
일 실시예에서, 단계 S710에 따라, Apache Airflow(740)는 카산드라의 신규 테이블을 생성할 수 있다. 카산드라는 임시 데이터베이스에 대응되는 것일 수 있다. 이 과정에서, 카산드라의 기존 테이블은 드랍할 수 있다. 즉, Apache Airflow(740)는 카산드라 또는 임시 데이터베이스에 저장된 테이블에 대응되는 테이블을 새로 생성하고, 임시 데이터베이스에 저장된 테이블을 새로 생성된 테이블로 교체 또는 치환할 수 있다. 이러한 방법은 카산드라 또는 임시 데이터베이스의 테이블에 적어도 하나의 파일의 정보를 모두 덮어쓰기하는 것보다 더 빠르게 임시 데이터베이스를 갱신할 수 있는 이점이 있다. 즉, 일 실시예에서 적어도 하나의 테이블 각각은 적어도 하나의 테이블 각각에 대응하는 작업 구성 파일을 기초로 구성되는 테이블로 교체됨으로써 갱신될 수 있다.
도 8 은 본 개시에 따른 방법의 일 실시예를 나타낸다. 구체적으로, 도 8 은 새로운 데이터를 프론트 노드로 전달하기 위한 방법을 나타낸다. Apache Airflow(810)는 조인-라이터(Join-Writer, 811)를 포함할 수 있다. 일 실시예에서, 조인-라이터(811)는 테이블을 서로 조인(join)하는 작업을 하는 모듈일 수 있다. 조인-라이터(811)는 조인 테이블을 생성하고, 새로운 데이터를 조인 테이블에 쓴 다음, CDS(Cassandra Data Server, 812)를 갱신할 수 있다. CDS(812)는 메인 데이터베이스에 대응하는 것일 수 있다. 셔틀(813)은 CDS(812)로부터 새로운 데이터를 획득할 수 있고, 객체 데이터 제공 api(814)는 각 id를 기초로 데이터를 가져올 수 있다. 여기서 id는 특정 식별 정보일 수 있다. 객체 데이터 제공 api(814)는 새로운 데이터를 서빙 레이어(815)로 전달하여, 새로운 데이터가 프론트 노드로 전달되도록 할 수 있다.
다른 실시예에서, Apache Airflow(820)는 조인-라이터(821) 및 애드혹 라이터(822)를 포함할 수 있다. 애드혹 라이터(822)는 새로운 데이터를 임시 데이터베이스에 저장하는 작업을 하는 모듈일 수 있다. 조인-라이터(823)는 조인 테이블을 생성하고, 새로운 데이터를 조인 테이블에 쓴 다음, CDS(823)를 갱신할 수 있다. CDS(823)는 메인 데이터베이스에 대응하는 것일 수 있다. 셔틀(824)은 CDS(823)로부터 새로운 데이터를 획득할 수 있고, 객체 데이터 제공 api(827)는 각 id를 기초로 데이터를 가져올 수 있다. 여기서 id는 특정 식별 정보일 수 있다. 객체 데이터 제공 api(827)는 새로운 데이터를 서빙 레이어(828)로 전달하여, 새로운 데이터가 프론트 노드로 전달되도록 할 수 있다.
또는, 조인-라이터(823) 및 애드혹 라이터(822)는 새로운 데이터를 포함하는 조인 데이터 및 애드혹 데이터를 같은 테이블에 쓴 다음, CDS(825)를 갱신할 수 있다. CDS(825)는 메인 데이터베이스 또는 임시 데이터베이스에 대응하는 것일 수 있다. 셔틀(826)은 CDS(825)로부터 새로운 데이터를 획득할 수 있고, 객체 데이터 제공 api(827)는 각 id를 기초로 데이터를 가져올 수 있다. 여기서 id는 특정 식별 정보일 수 있다. 객체 데이터 제공 api(827)는 새로운 데이터를 서빙 레이어(828)로 전달하여, 새로운 데이터가 프론트 노드로 전달되도록 할 수 있다.
도 9 는 본 개시에 따른 방법의 일 실시예를 나타낸다. 도 9 에 나타난 각 구성요소는 도 1 내지 도 8에서 설명된 동일한 명칭의 구성요소에 각각 대응되는 것일 수 있다. 사용자(901)는 적어도 하나의 데이터 파일을 애드혹 서비스(903)의 애드혹 UI를 통해 업로드할 수 있다. 적어도 하나의 데이터 파일은 파일 데이터베이스 또는 S3(905)에 업로드될 수 있다. 업로드된 적어도 하나의 데이터 파일에 대한 정보는 파일 정보 데이터베이스 또는 RDS(904)에 업로드될 수 있다.
사용자(901)는 활성 테스트 리스트를 트리거하여, 데이터 추출기(906)의 작업을 트리거할 수 있다. 활성 테스트 리스트는 파일 정보 데이터베이스 또는 S3(905)에서 애드혹 상태가 활성화된 파일의 리스트를 의미하는 것일 수 있다. 데이터 추출기(906)는 제공하는 테이블 및 열(column)의 이름을 동적 설정 데이터베이스(907)에 업로드할 수 있다. 제공하는 테이블 및 열은 임시 데이터베이스 또는 CDS(909)에서 갱신된(갱신될) 테이블 및 갱신된(갱신될) 열을 의미할 수 있다. 동적 설정 데이터베이스(907)은 갱신된 테이블 및 열의 이름을 셔틀(908)에 알릴 수 있다.
서빙 레이어(912)는 리스팅 API(913), 검색 API(914), 프로모션 API(915)를 포함할 수 있다. 서빙 레이어(913)는 제1 데이터 요청을 객체 데이터 제공 API(911)로 전송할 수 있다. 객체 데이터 제공 API(911)는 제1 데이터 요청을 기초로 메인 데이터베이스에서 제1 데이터를 획득할 수 있다. 객체 데이터 제공 API(911)는 제1 데이터 요청 또는 제1 데이터를 기초로 제2 데이터 요청을 생성할 수 있다. 객체 데이터 제공 API(911)는 제2 데이터 요청을 셔틀(908)에 전송할 수 있다. 셔틀(908)은 제2 데이터 요청에 대응하여 임시 데이터베이스(919) 또는 캐시(910)로부터 제2 데이터를 객체 데이터 제공 API(911)로 제공할 수 있고, 객체 데이터 제공 API(911)는 제1 데이터 및 제2 데이터를 서빙 레이어(912)로 전달하여 제1 데이터 및 제2 데이터가 프론트 노드로 전달되도록 할 수 있다.
도 10 은 본 개시에 따른 방법의 일 실시예를 나타낸다. 도 10 에 나타난 각 구성요소는 도 1 내지 도 9에서 설명된 동일한 명칭의 구성요소에 각각 대응되는 것일 수 있다.
일 실시예에서, 단계 S1001에 따라, 사용자는 애드혹 UI(1010)를 통해 새로운 데이터 파일을 생성하거나, 기존의 데이터 파일을 갱신할 수 있다. 단계 S1002에 따라, 애드혹 UI(1010)는 애드혹 서버(1020)의 /api/file/upload를 호출할 수 있다. /api/file/upload 는 데이터 파일의 업로드를 수행하는 명령어를 의미할 수 있다. 애드혹 서버(1020)는 전자 장치(100)에 포함되는 모듈일 수 있다.
단계 S1003에 따라, 파일 데이터베이스 또는 S3(1030)는 특정 식별 정보의 타입 및 제목을 먼저 파일 정보 데이터베이스(1040)에 저장할 수 있다. 여기서 제목은 파일을 생성한 주체의 식별자, 즉, 도 3b의 생성 주체 식별자(320)에 대응하는 것일 수 있다.
단계 S1004에 따라, 파일 정보 데이터베이스(1040)는 저장 결과 및 식별자를 리턴할 수 있다. 여기서 식별자는 도 3b의 식별자(310)에 대응하는 것일 수 있다.
단계 S1005에 따라, 애드혹 서버(1020)는 파일 데이터베이스 또는 S3(1030)에 적어도 하나의 파일을 업로드할 수 있다. 파일 데이터베이스 또는 S3(1030)는 단계 S1006에 따라, 업로드 결과를 애드혹 서버(1020)로 리턴할 수 있다.
애드혹 서버(1020)는 단계 S1007에 따라 이전 id와 함께 s3 경로를 파일 정보 데이터베이스(1040)에 저장할 수 있다. 이전 id는 도 3b의 식별자(310)에 대응하는 것일 수 있고, 파일이 업로드되거나 갱신되기 이전의 식별자(310)를 의미할 수 있다.
단계 S1008에 따라, 파일 정보 데이터베이스(1040)는 업로드 성공을 애드혹 서버(1020)로 알리고, 애드혹 서버(1020)는 단계 S1009에 따라 애드혹 UI(1010)에 업로드 성공 UI(S1010)를 표시하도록 할 수 있다.
도 11 은 본 개시에 따른 애드혹 UI(1110)의 일 실시예를 나타낸다. 애드혹 UI(1110)는 파일 정보 데이터베이스에 기초하여 애드혹 서비스(임시 서비스)의 리스트(1114)를 표시할 수 있다. 애드혹 서비스 또는 임시 서비스는 파일 정보 데이터베이스에 업로드된 적어도 하나의 데이터 파일 각각에 대응되는 것일 수 있다.
애드혹 UI(1110)는 검색 창(1111) 및 검색 버튼(1112)을 포함하여, 사용자는 리스트(1114)의 열 이름을 기초로 정보를 검색할 수 있다.
애드혹 UI(1110)는 신규 버튼(1113)을 포함할 수 있고, 사용자는 신규 버튼(1113)을 클릭하여, 데이터베이스(1120)에 적어도 하나의 파일을 업로드할 수 있다.
애드혹 UI(1110)는 갱신 버튼(1115)을 포함할 수 있고, 사용자는 갱신 버튼(1115)을 클릭하여 데이터베이스(1120)에 업로드된 적어도 하나의 파일을 갱신할 수 있다.
애드혹 UI(1110)는 다운로드 버튼(1116)을 포함할 수 있고, 사용자는 다운로드 버튼(1116)을 클릭하여 데이터베이스(1120)에 업로드된 적어도 하나의 파일을 다운로드할 수 있다.
애드혹 UI(1110)는 삭제 버튼(1117)을 포함할 수 있고, 사용자는 삭제 버튼(1117)을 클릭하여 데이터베이스(1120)에 업로드된 적어도 하나의 파일을 삭제할 수 있다. 이 때, 애드혹 UI(1110)는 확인 창(1130)을 포함하여, 삭제 여부를 사용자에게 다시 한번 확인할 수 있다.
도 12 는 본 개시에 따른 애드혹 UI(1200)의 일 실시예를 나타낸다. 구체적으로, 애드혹 UI(1200)는 애드혹 서비스, 즉 임시 서비스를 신규 생성 또는 편집하기 위한 인터페이스를 나타낸다. 애드혹 UI(1200)는 비즈니스 ID 입력 필드를 포함할 수 있다. 비즈니스 ID는 도 3b의 생성 주체 식별자(320)에 대응되는 것일 수 있다. 즉, 설정된 비즈니스 ID를 기초로 임시 데이터 또는 제2 데이터의 사용처가 결정될 수 있다. 제2 데이터가 적절하게 제공되기 위하여, 비즈니스 ID 또는 생성 주체 식별자는 프론트 노드와 약속된 값일 수 있다.
애드혹 UI(1200)는 특정 식별 정보의 타입을 설정할 수 있는 버튼을 포함할 수 있다.
애드혹 UI(1200)는 관련 링크를 삽입할 수 있는 필드를 포함할 수 있고, 애드혹 서비스의 설명을 기록할 수 있는 필드를 포함할 수 있다.
애드혹 UI(1200)는 적어도 하나의 데이터 파일을 입력할 수 있는 필드를 포함할 수 있다. 이를 통해 적어도 하나의 데이터 파일이 파일 데이터베이스에 업로드될 수 있다.
도 13 은 본 개시에 따른 애드혹 UI(1300)의 일 실시예를 나타낸다. 구체적으로, 애드혹 UI(1300)는 애드혹 서비스, 즉 임시 데이터를 편집하기 위한 인터페이스를 나타낸다.
애드혹 UI(1300)는 상태 활성 UI를 포함할 수 있다. 상태 활성 UI는 임시 데이터가 활성화 상태인지 여부를 표시할 수 있다.
애드혹 UI(1300)는 특정 식별 정보의 타입을 설정할 수 있는 버튼을 포함할 수 있다.
애드혹 UI(1300)는 관련 링크를 삽입할 수 있는 필드를 포함할 수 있고, 애드혹 서비스의 설명을 기록할 수 있는 필드를 포함할 수 있다.
애드혹 UI(1300)는 적어도 하나의 데이터 파일을 입력할 수 있는 필드를 포함할 수 있다. 이를 통해 적어도 하나의 데이터 파일이 파일 데이터베이스에 업로드될 수 있다.
도 14 는 본 개시에 따른 방법의 일 실시예를 나타낸다. 도 14 에 나타난 각 구성요소는 도 1 내지 도 13에서 설명된 동일한 명칭의 구성요소에 각각 대응되는 것일 수 있다.
일 실시예에서, Spark airflow(1410)는 데이터 추출기(1420)를 트리거할 수 있다. 데이터 추출기(1420)는 조인 라이터(1421)를 포함할 수 있다. 데이터 추출기(1420)는 Spark airflow의 트리거에 대응하여, 임시 데이터베이스 또는 CDS(1430)의 테이블을 갱신할 수 있다.
CDS(1430)는 테이블의 갱신된 정보를 캐시(cache, 1440)에 캐싱(caching)할 수 있다. 셔틀(1450)은 캐시(1440)로부터 제2 데이터를 획득할 수 있다. 제2 데이터는 테이블의 갱신된 정보를 포함할 수 있다.
즉, 일 실시예에서 전자 장치(100)는, 캐시(cache)로부터 제2 데이터를 획득할 수 있고, 캐시는 임시 데이터베이스를 기초로 갱신될 수 있다.
제2 데이터는 메이트-api(1460)에 전달될 수 있다. 메이트-api(1460)는 객체 데이터 제공 API에 대응되는 것일 수 있다.
도 15 는 본 개시에 따른 방법의 일 실시예를 나타낸다. 도 15 에 나타난 각 구성요소는 도 1 내지 도 14에서 설명된 동일한 명칭의 구성요소에 각각 대응되는 것일 수 있다.
일 실시예에서, 사용자(1500)는 목(mock) 생성 인터페이스(1502)의 목 생성 UI(1503)를 통해 데이터 파일을 CUD(Create, Update, Delete)할 수 있다. 목 생성 인터페이스(1502)는 도 2 의 애드혹 서비스(203)에 대응되고, 목 생성 UI(1503)는 도 2 의 애드혹 UI(204)에 대응되는 것일 수 있다. 또한 목(mock)은 애드혹 서비스 또는 적어도 하나의 데이터 파일에 대응되는 것일 수 있다.
목 생성 UI(1503)는 벌크 카프카(kafka)(1507)를 통해 목을 생성(1505) 및 업데이트(1506)할 수 있다. 목의 생성 또는 업데이트 결과는 개별 카프카(1508)를 통해 목 생성 UI(1503)로 전달될 수 있다. 벌크 카프카(1507) 및 개별 카프카(1508)는 Apache kafka 등의 데이터 또는 메시지 스트리밍 솔루션을 의미할 수 있다.
목 생성 UI(1503)는 셔틀(1511)을 트리거하여 CDS(1512)를 갱신할 수 있다. 이 때, 업데이터(1510)가 생성 또는 업데이트된 목을 기초로 CDS(1512)의 테이블(1533, 1534) 및 RDS(1504)의 테이블(1531, 1532)을 갱신할 수 있다. RDS(1504)의 테이블을 트랜잭션 카프카(1509)를 통해 갱신될 수 있다. 트랜잭션 카프카(1509) 역시 Apache kafka 등의 데이터 또는 메시지 스트리밍 솔루션을 의미할 수 있다.
CDS(1512)의 테이블(1533, 1534) 및 RDS(1504)의 테이블(1531, 1532)에서 SIGNAL은 도 3b의 생성 주체 식별자(320)에 대응될 수 있고, LEVEL은 도 3b의 특정 식별 정보의 타입, 즉, 식별자 타입(330)에 대응될 수 있다. ID 및 String은 도 3a 에 나타난 키 및 값을 의미할 수 있다. 예를 들어, 도 3a의 B1.txt(305)의 키인 10001이 ID에, 값인 {"bsr_rank": "1", "bsr_limit": false}가 String에 대응될 수 있다. String은 JSON 포맷의 문자열을 의미할 수 있다.
셔틀(1511)은 객체 데이터 제공 API(1514)의 요청(1535)에 따라, 캐시(1513) 또는 CDS(1512)로부터 제2 데이터를 획득하고, 객체 데이터 제공 API(1514)로 전달할 수 있다. 객체 데이터 제공 API(1514)는 제2 데이터를 응답(1536)에 포함시켜서 서빙 레이어(1516)로 전달할 수 있다. 제2 데이터는 제1 데이터와 함께 응답(1536)에 포함될 수 있다. 이 때, 모킹 핸들러(1515)가 개입하여 신호가 MOCK 타입인 경우 응답을 대체할 수 있다. MOCK 타입의 신호는 본 개시에 따른 방법의 작동을 시험(test)하는데 사용되는 특정 식별 정보의 타입일 수 있다. 각각의 모킹 핸들러(1520)는 서빙 레이어(1516)의 리스팅 API(1517), 검색 API(1518) 및 프로모선 API(1519)에 개입하여 MOCK 타입의 신호에 대한 응답을 처리할 수 있다.
도 16 은 본 개시에 따른 방법의 일 실시예를 나타낸다. 도 16 에 나타난 각 구성요소는 도 1 내지 도 15에서 설명된 동일한 명칭의 구성요소에 각각 대응되는 것일 수 있다.
일 실시예에서, 사용자(1600)는 목(mock) 생성 인터페이스(1602)의 목 생성 UI(1603)를 통해 데이터 파일을 CUD(Create, Update, Delete)할 수 있다. 목 생성 인터페이스(1602)는 도 2 의 애드혹 서비스(203)에 대응되고, 목 생성 UI(1603)는 도 2 의 애드혹 UI(204)에 대응되는 것일 수 있다. 또한 목(mock)은 애드혹 서비스 또는 적어도 하나의 데이터 파일에 대응되는 것일 수 있다.
목 생성 UI(1603)는 목 카프카(1606)에 목을 발행(1605)할 수 있다. 이 때, 클린업 스케줄러(1604)는 일정한 주기(예를 들어, 매일)로 목 생성 UI(1603)을 트리거하여 목을 발행(1605)하도록 할 수 있다. 즉, 임시 데이터베이스 또는 CDS(1612)는 기 설정된 주기로 갱신될 수 있다.
셔틀(1611)은 목 카프카(1606)를 통해 목을 구독(1607)하여 CDS(1612)의 테이블(1631)을 갱신할 수 있다. 목 생성 인터페이스(1602)는 상태 카프카(1610)를 통해 상태를 구독(1609)하여 RDS(1610)의 테이블(1630)을 갱신할 수 있다.
테이블(1630, 1631)의 BUSINESS_SIGNAL은 도 3b에 나타난 생성 주체 식별자(320)에, ID_TYPE은 도 3b의 특정 식별 정보의 타입, 즉, 식별자 타입(330)에 대응될 수 있다. ID 및 BUSINESS_CONTENTS는 도 3a 에 나타난 키 및 값을 의미할 수 있다. 예를 들어, 도 3a의 B1.txt(305)의 키인 10001이 ID에, 값인 {"bsr_rank": "1", "bsr_limit": false}가 BUSINESS_CONTENTS에 대응될 수 있다. BUSINESS_CONTENTS은 JSON 포맷의 문자열을 포함할 수 있다.
STATUS는 목 또는 적어도 하나의 데이터 파일을 기초로 임시 데이터베이스 또는 CDS(1612)가 갱신되는 상태를 나타낼 수 있다. 예를 들어, STATUS가 CONFIRMED 라면 임시 데이터베이스 또는 CDS(1612)가 이미 갱신 완료된 상태를, STATUS가 WAITING이라면 임시 데이터베이스 또는 CDS(1612)가 갱신 대기 중인 상태를, STATUS가 FAILED라면 임시 데이터베이스 또는 CDS(1612)의 갱신이 실패한 상태일 수 있다. 이러한 갱신과 관련된 상태는 같이 상태 구독(1609)을 통해 RDS(1610)의 테이블(1630)에 반영될 수 있고, 이는 사용자(1600)에게 알려질 수 있다. 즉, 일 실시예에서, 전자 장치(100)는 임시 데이터베이스의 갱신 작업의 요청을 확인한 경우, 갱신 작업의 시작을 확인한 경우 및 갱신 작업의 완료를 확인한 경우 각각에 대해 알림(예를 들어 클린업 알림)을 제공할 수 있다.
셔틀(1611)은 객체 데이터 제공 API(1614)의 요청(1632)에 따라, 캐시(1613) 또는 CDS(1612)로부터 제2 데이터를 획득하고, 객체 데이터 제공 API(1614)로 전달할 수 있다. 객체 데이터 제공 API(1614)는 제2 데이터를 응답(1633)에 포함시켜서 서빙 레이어(1616)로 전달할 수 있다. 제2 데이터는 제1 데이터와 함께 응답(1632)에 포함될 수 있다. 이 때, 모킹 핸들러(1615)가 개입하여 신호가 MOCK 타입인 경우 응답을 대체할 수 있다. MOCK 타입의 신호는 본 개시에 따른 방법의 작동을 시험(test)하는데 사용되는 특정 식별 정보의 타입일 수 있다. 각각의 모킹 핸들러(1620)는 서빙 레이어(1616)의 리스팅 API(1617), 검색 API(1618) 및 프로모선 API(1619)에 개입하여 MOCK 타입의 신호에 대한 응답을 처리할 수 있다.
도 17 은 본 개시에 따른 방법의 일 실시예를 나타낸다. 도 17 에 나타난 각 구성요소는 도 1 내지 도 16에서 설명된 동일한 명칭의 구성요소에 각각 대응되는 것일 수 있다.
일 실시예에서, 사용자(1700)는 애드혹 서비스(1702)의 애드혹 UI(1703)을 통해 적어도 하나의 데이터 파일을 파일 데이터베이스 또는 S3(1706)에 업로드할 수 있다. 이 때, 애드혹 UI(1703)을 통해 파일 정보 데이터베이스(1705)에 저장된 파일 정보(1730)가 갱신될 수 있다.
애드혹 UI(1703)은 API를 호출하여 데이터 추출기(1707)를 트리거할 수 있다. 데이터 추출기(1707)는 파일 데이터베이스 또는 S3(1706)로부터 적어도 하나의 데이터 파일을 참조하여 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)을 갱신할 수 있다. 클린업 스케줄러(1704)는 일정한 주기(예를 들어, 매일)로 애드혹 UI(1703)을 트리거하여 데이터 추출기(1707)를 호출하도록 할 수 있다. 즉, 임시 데이터베이스 또는 CDS(1710)는 기 설정된 주기로 갱신될 수 있다.
일 실시예에서, 파일 데이터베이스 또는 S3(1706)의 파일이 추가, 삭제 또는 갱신된 경우 임시 데이터베이스 또는 CDS(1710)가 업데이트될 수 있다. 애드혹 UI(1703)는 파일 데이터베이스 또는 S3(1706)의 파일이 추가, 삭제 또는 갱신되었을 때, API를 호출하여 데이터 추출기(1707)를 트리거할 수 있다. 데이터 추출기(1707)는 파일 데이터베이스 또는 S3(1706)로부터 추가, 삭제 또는 갱신된 적어도 하나의 데이터 파일을 확인하고 추가, 삭제 또는 갱신된 적어도 하나의 데이터 파일에 대응되는 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)을 갱신(테이블(1731)의 행 또는 열을 추가, 삭제 또는 갱신)할 수 있다. 이 때, 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)의 갱신이 누락되는 것을 방지하기 위해, 클린업 스케줄러(1704), 애드혹 서비스(1702) 또는 애드혹 UI(1703)는 일정한 주기(바람직하게는, 매일 새벽 시간)로 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)의 갱신이 누락되었는지 확인하고, 데이터 추출기(1707)를 호출하여 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)이 갱신되도록 할 수 있다.
일 실시예에서, 파일 데이터베이스 또는 S3(1706)의 파일이 추가, 삭제 또는 갱신된 경우 임시 데이터베이스 또는 CDS(1710)가 업데이트될 수 있다. 애드혹 UI(1703)는 기 설정된 주기(예를 들어, 수 분 내지 수십 분에 한 번, 바람직하게는 10분에 한 번)로 파일 데이터베이스 또는 S3(1706)의 파일이 추가, 삭제 또는 갱신되었는지 확인하고, API를 호출하여 데이터 추출기(1707)를 트리거할 수 있다. 데이터 추출기(1707)는 파일 데이터베이스 또는 S3(1706)로부터 추가, 삭제 또는 갱신된 적어도 하나의 데이터 파일을 확인하고 추가, 삭제 또는 갱신된 적어도 하나의 데이터 파일에 대응되는 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)을 갱신(테이블(1731)의 행 또는 열을 추가, 삭제 또는 갱신)할 수 있다. 이 때, 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)의 갱신이 누락되는 것을 방지하기 위해, 클린업 스케줄러(1704), 애드혹 서비스(1702) 또는 애드혹 UI(1703)는 일정한 주기(바람직하게는, 매일 새벽 시간)로 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)의 갱신이 누락되었는지 확인하고, 데이터 추출기(1707)를 호출하여 임시 데이터베이스 또는 CDS(1710)의 테이블(1731)이 갱신되도록 할 수 있다.
데이터 추출기(170)는 캐시 업데이터(1708)를 통해 캐시(1711)를 함께 갱신할 수 있다. 캐시(1711)의 업데이트는 사용자(1700)에 의해 이루어질 수 있다. 사용자(1700)는 애드혹 UI(1703)를 통해 특정 식별 정보를 입력할 수 있고, 데이터 추출기(1707)는 사용자의 입력에 대응하여 캐시 업데이터(1708)를 통해 특정 식별 정보에 대응하는 데이터 (예를 들어, 적어도 하나의 데이터 파일의 키-값)을 캐시(1711)에 저장할 수 있다. 이후 특정 식별 정보에 대응하는 제2 데이터가 캐시(1711)로부터 객체 데이터 제공 API(1712)로 제공될 수 있다. 데이터가 캐시(1711)로부터 객체 데이터 제공 API(1712) 로 제공된 다음, 특정 식별 정보에 대응하는 데이터는 캐시에서 삭제될 수 있다. 즉, 일 실시예에서, 하나 이상의 특정 식별 정보가 확인되면 특정 식별 정보에 대응하는 데이터가 캐시에서 삭제될 수 있다. 이는 클린업 스케줄러(1704)의 트리거 없이도 필요에 따라 특정 식별 정보에 대응하는 임시 데이터가 프론트 노드로 빨리 전달될 수 있는 이점을 가진다.
파일 정보(1730)는 도 3b에 나타난 표에 대응될 수 있다. 테이블(1731)은 도 5에 나타난 테이블(510, 520, 530) 중 어느 하나에 대응될 수 있다.
파일 정보(1730)의 title 및 테이블(1731)의 BUSINESS_SIGNAL은 도 3b에 나타난 생성 주체 식별자(320)에, ID_TYPE은 도 3b의 특정 식별 정보의 타입, 즉, 식별자 타입(330)에 대응될 수 있다. ID 및 BUSINESS_CONTENTS는 도 3a 에 나타난 키 및 값을 의미할 수 있다. 예를 들어, 도 3a의 B1.txt(305)의 키인 10001이 ID에, 값인 {"bsr_rank": "1", "bsr_limit": false}가 BUSINESS_CONTENTS에 대응될 수 있다. BUSINESS_CONTENTS은 JSON 포맷의 문자열을 포함할 수 있다.
셔틀(1709)은 객체 데이터 제공 API(1712)의 요청(1732)에 따라, 캐시(1711) 또는 CDS(1710)로부터 제2 데이터를 획득하고, 객체 데이터 제공 API(1712)로 전달할 수 있다. 객체 데이터 제공 API(1712)는 제2 데이터를 응답(1733)에 포함시켜서 서빙 레이어(1714)로 전달할 수 있다. 제2 데이터는 제1 데이터와 함께 응답(1733)에 포함될 수 있다. 이 때, 모킹 핸들러(1713)가 개입하여 신호가 MOCK 타입인 경우 응답을 대체할 수 있다. MOCK 타입의 신호는 본 개시에 따른 방법의 작동을 시험(test)하는데 사용되는 특정 식별 정보의 타입일 수 있다. 각각의 모킹 핸들러(1718)는 서빙 레이어(1714)의 리스팅 API(1715), 검색 API(1716) 및 프로모선 API(1717)에 개입하여 MOCK 타입의 신호에 대한 응답을 처리할 수 있다.
도 18 은 일 실시예에 따른 전자 장치(100)의 동작 방법을 나타낸다. 도 18 의 동작 방법의 각 단계에 대해 도 1 내지 도 17 에서 설명한 프로세서(110)의 동작과 중복되는 내용에 대해서는 설명을 생략한다.
단계 S1810에서, 전자 장치(100)는, 프론트 노드에서 제1 데이터 요청을 수신할 수 있다. 제1 데이터 요청은 특정한 객체에 관한 데이터의 요청을 포함할 수 있다. 서빙 레이어는 제1 데이터 요청을 수신하여, 아이템 데이터 제공 API로 넘겨줄 수 있다.
단계 S1820에서, 전자 장치(100)는, 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득할 수 있다. 구체적으로, 아이템 데이터 제공 API는 제1 데이터 요청을 기초로 메인 데이터베이스에서 제1 데이터를 획득할 수 있다.
단계 S1830에서, 전자 장치(100)는, 제1 데이터 요청을 기반으로 임시 데이터베이스에서 제2 데이터를 획득할 수 있다. 구체적으로, 아이템 데이터 제공 API는 메인 데이터베이스에서 획득한 제1 데이터를 기초로 셔틀로 제2 데이터 요청을 송신할 수 있다. 제2 데이터 요청은 특정한 객체에 관한 특정 식별 정보를 포함할 수 있다. 셔틀은 제2 데이터 요청의 특정 식별 정보를 기초로 임시 데이터베이스에서 특정 식별 정보의 타입에 따른 테이블로부터 특정 식별 정보에 해당하는 행의 값 및 열 정보(생성 주체 식별자)를 획득하고, 이를 기초로 제2 데이터를 획득할 수 있다. 제2 데이터는 json 포맷의 데이터일 수 있다.
단계 S1840에서, 전자 장치(100)는, 제1 데이터 및 제2 데이터를 프론트 노드로 전송할 수 있다. 프론트 노드는 제1 데이터 및 제2 데이터를 파싱하여 제1 데이터 및 제2 데이터를 구분한 다음, 제1 데이터 및 제2 데이터를 기초로 서비스 이용자에게 제공할 페이지를 생성할 수 있다.
예를 들어, 본 개시에 따른 발명의 사용자는 특정 카테고리, 예를 들어 패션 카테고리에 대응하는 아이템에 대해 추가 정보를 표시해야 할 수 있다. 이 때, 메인 데이터베이스의 수정이 어려울 수 있으므로, 사용자는 본 개시에 따른 전자 장치(100)의 애드혹 UI를 이용할 수 있다. 사용자는 애드혹 UI를 통해 프론트 노드로 제공할 추가 정보를 파일 형태로 업로드할 수 있다. 이 때, 파일은 텍스트 파일일 수 있다. 즉, 사용자는 패션 카테고리의 식별자(본 개시에서 특정 식별 정보에 대응됨)와 이에 대응되는 정보를 파일 형태로 업로드할 수 있다.
전자 장치(100)는 업로드된 파일을 기초로 임시 데이터베이스에서 패션 카테고리에 대응되는 테이블 및 행을 추가 또는 수정할 수 있다. 이후 전자 장치(100)는 프론트 노드로부터 제1 데이터 요청을 수신하고, 제1 데이터로부터 패션 카테고리의 식별자를 확인하였다면 임시 데이터베이스로부터 패션 카테고리에 대응되는 추가 정보를 포함하는 제2 데이터를 제1 데이터와 함께 프론트 노드로 전달할 수 있다.
프론트 노드 측에서는 제2 데이터를 페이지에 표시할 수 있다. 즉, 패션 카테고리에 관한 추가 정보를 패션 카테고리가 표시된 페이지에 추가 또는 수정할 수 있다. 이렇게 수정된 페이지는 서비스 이용자에게 제공될 수 있다.
도 19 는 일 실시예에 따른 전자 장치(100)의 동작 방법을 나타낸다. 도 19 의 동작 방법의 각 단계에 대해 도 1 내지 도 17 에서 설명한 프로세서(110)의 동작과 중복되는 내용에 대해서는 설명을 생략한다.
단계 S1910에서, 전자 장치(100)는, 프론트 노드에서 제1 데이터 요청을 수신할 수 있다.
단계 S1920에서, 전자 장치(100)는, 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득할 수 있다.
단계 S1931에서, 전자 장치(100)는, 제1 데이터를 기반으로 확인되는 특정 식별 정보를 포함하는 제2 데이터 요청을 임시 데이터베이스에 전송할 수 있다.
단계 S1932에서, 전자 장치(100)는, 제2 데이터 요청에 따라 임시 데이터베이스로부터 제2 데이터를 획득할 수 있다.
단계 S1940에서, 전자 장치(100)는, 제1 데이터 및 제2 데이터를 프론트 노드로 전송할 수 있다.
이상 설명된 본 개시에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체 또는 비일시적 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치 또는 전자 장치는 본 개시에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어, 소프트웨어, 또는 이들의 조합들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 데이터 처리 또는 이들의 조합 등을 위하여 종래 기술을 채용할 수 있다.

Claims (21)

  1. 전자 장치의 데이터 제공 방법에 있어서,
    프론트 노드에서 제1 데이터 요청을 수신하는 단계;
    상기 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득하는 단계;
    상기 제1 데이터 요청을 기반으로 임시 데이터베이스에서 제2 데이터를 획득하는 단계; 및
    상기 제1 데이터 및 상기 제2 데이터를 상기 프론트 노드로 전송하는 단계를 포함하는, 데이터 제공 방법.
  2. 제1항에 있어서,
    상기 제2 데이터를 획득하는 단계는
    특정 식별 정보를 포함하는 제2 데이터 요청을 상기 임시 데이터 베이스에 전송하는 단계; 및
    상기 제2 데이터 요청에 따라 상기 임시 데이터베이스로부터 상기 제2 데이터를 획득하는 단계를 포함하는, 데이터 제공 방법.
  3. 제2항에 있어서,
    상기 특정 식별 정보는 상기 제1 데이터를 기반으로 확인되는, 데이터 제공 방법.
  4. 제2항에 있어서,
    상기 제2 데이터는 상기 임시 데이터베이스에서 상기 특정 식별 정보에 따라 동적 설정 데이터베이스로부터 획득된 설정 정보를 기반으로 확인된 테이블로부터 획득되는, 데이터 제공 방법.
  5. 제1항에 있어서,
    상기 제2 데이터는 상기 제1 데이터 요청에 대응하는 적어도 하나의 키-값 쌍을 포함하는, 데이터 제공 방법.
  6. 제5항에 있어서,
    상기 키-값 쌍의 키는 상기 키에 대응하는 값을 생성한 주체를 식별하는 정보인, 데이터 제공 방법.
  7. 제6항에 있어서,
    상기 임시 데이터베이스는 적어도 하나의 데이터 파일을 기초로 갱신되고,
    상기 적어도 하나의 데이터 파일 각각은 상기 주체를 식별하는 정보에 대응되는, 데이터 제공 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 데이터 파일 각각은 상기 데이터 파일에 포함되는 정보의 형식 및 상기 데이터 파일의 크기를 기초로 검증되는, 데이터 제공 방법.
  9. 제7항에 있어서,
    상기 임시 데이터베이스는 적어도 하나의 테이블을 포함하고,
    상기 적어도 하나의 테이블 각각은 특정 식별 정보의 타입에 따라 서로 구별되는, 데이터 제공 방법.
  10. 제9항에 있어서,
    상기 적어도 하나의 테이블 각각은,
    상기 적어도 하나의 테이블 각각에 대응하는 작업 구성 파일을 기초로 구성되는 테이블로 교체됨으로써 갱신되는, 데이터 제공 방법.
  11. 제7항에 있어서,
    상기 적어도 하나의 데이터 파일이 업로드될 때, 각 데이터 파일에 포함되는 특정 식별 정보의 타입, 값의 타입, 그룹핑 여부 및 데이터 만료일 정보가 함께 업로드되는, 데이터 제공 방법.
  12. 제7항에 있어서,
    상기 적어도 하나의 데이터 파일 각각은,
    구분자를 이용하여 상기 적어도 하나의 데이터 파일 각각에 포함된 하나 이상의 정보를 서로 구분할 수 있도록 구성되는,
    데이터 제공 방법.
  13. 제1항에 있어서,
    상기 프론트 노드로 전송하는 단계는,
    상기 제2 데이터에 대한 데이터 만료일이 경과하지 않은 경우, 상기 제2 데이터를 상기 프론트 노드로 전송하는 단계를 포함하는, 데이터 제공 방법.
  14. 제13항에 있어서,
    상기 데이터 만료일로부터 기 설정된 기간 이전에 알림을 제공하는 단계를 더 포함하는, 데이터 제공 방법.
  15. 제1항에 있어서,
    상기 임시 데이터베이스에서 제2 데이터를 획득하는 단계는,
    캐시(cache)로부터 상기 제2 데이터를 획득하는 단계를 포함하고,
    상기 캐시는 임시 데이터베이스를 기초로 갱신되는, 데이터 제공 방법.
  16. 제15항에 있어서,
    하나 이상의 특정 식별 정보가 확인되면 상기 특정 식별 정보에 대응하는 데이터가 상기 캐시에서 삭제되는, 데이터 제공 방법.
  17. 제1항에 있어서,
    상기 임시 데이터베이스는 기 설정된 주기로 갱신되는, 데이터 제공 방법.
  18. 제1항에 있어서,
    상기 임시 데이터베이스의 갱신 작업의 요청을 확인한 경우, 상기 갱신 작업의 시작을 확인한 경우 및 상기 갱신 작업의 완료를 확인한 경우 각각에 대해 알림을 제공하는 단계를 더 포함하는, 데이터 제공 방법.
  19. 제1항에 있어서,
    상기 임시 데이터베이스에 포함된 데이터의 활성화 여부 정보를 표시하는 단계를 포함하는, 데이터 제공 방법.
  20. 전자 장치로서,
    적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써,
    프론트 노드에서 제1 데이터 요청을 수신하고,
    상기 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득하고,
    상기 제1 데이터 요청을 기반으로 임시 데이터베이스에서 제2 데이터를 획득하고,
    상기 제1 데이터 및 상기 제2 데이터를 상기 프론트 노드로 전송하는 프로세서를 포함하는, 전자 장치.
  21. 전자 장치의 임시(ad-hoc) 서비스 제공 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서,
    상기 데이터 제공 방법은,
    프론트 노드에서 제1 데이터 요청을 수신하는 단계;
    상기 제1 데이터 요청을 기반으로 메인 데이터베이스에서 제1 데이터를 획득하는 단계;
    상기 제1 데이터 요청을 기반으로 임시 데이터베이스에서 제2 데이터를 획득하는 단계; 및
    상기 제1 데이터 및 상기 제2 데이터를 상기 프론트 노드로 전송하는 단계를 포함하는, 비일시적 기록 매체.
KR1020220080614A 2022-06-30 2022-06-30 데이터 제공 방법 및 그 장치 KR20240003313A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220080614A KR20240003313A (ko) 2022-06-30 2022-06-30 데이터 제공 방법 및 그 장치
PCT/KR2022/010024 WO2024005252A1 (ko) 2022-06-30 2022-07-11 데이터 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220080614A KR20240003313A (ko) 2022-06-30 2022-06-30 데이터 제공 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20240003313A true KR20240003313A (ko) 2024-01-08

Family

ID=89382565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220080614A KR20240003313A (ko) 2022-06-30 2022-06-30 데이터 제공 방법 및 그 장치

Country Status (2)

Country Link
KR (1) KR20240003313A (ko)
WO (1) WO2024005252A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785688B2 (en) * 2000-11-21 2004-08-31 America Online, Inc. Internet streaming media workflow architecture
US20140310706A1 (en) * 2012-12-17 2014-10-16 Unisys Corporation Method for managing commodity computing
CN107291756A (zh) * 2016-04-01 2017-10-24 阿里巴巴集团控股有限公司 数据缓存的方法及装置
JP6253725B1 (ja) * 2016-07-12 2017-12-27 株式会社東芝 データベースシステム、データ結合方法、統合サーバ、データ結合プログラム、データベースシステム連携方法、および、データベースシステム連携プログラム
KR102012002B1 (ko) * 2017-07-20 2019-10-21 네이버 주식회사 콘텐츠 공유 방법 및 콘텐츠 공유 서버
US11210288B2 (en) * 2020-05-12 2021-12-28 Coupang Corp. Systems and methods for reducing database query latency

Also Published As

Publication number Publication date
WO2024005252A1 (ko) 2024-01-04

Similar Documents

Publication Publication Date Title
US10437795B2 (en) Upgrading systems with changing constraints
CN102132273B (zh) 注释网页内容
EP3428811A1 (en) Database interface agent for a tenant-based upgrade system
US9223841B2 (en) System and method for providing high availability data
US9361390B2 (en) Web content management
US7702959B2 (en) Error management system and method of using the same
US11379438B2 (en) Database migration between computing platforms using virtual backups
CN107958010B (zh) 用于在线数据迁移的方法及系统
US8494888B2 (en) Offline modification of business data
US20160098253A1 (en) Delivering and deploying services in multi-server landscapes
CN104598459A (zh) 数据库处理、数据访问方法及系统
JP2014512601A (ja) テナント移行にわたるテナント・データのリカバリ
US11036590B2 (en) Reducing granularity of backup data over time
WO2021183219A1 (en) System for custom validations and scripts for mobile applications
US11816163B2 (en) Systems and methods for improved transactional mainframes
US10832309B2 (en) Inventory data model for large scale flash sales
CN107209763B (zh) 指定和应用数据的规则
US9747295B1 (en) Updating a large dataset in an enterprise computer system
CN111580733A (zh) 任务处理方法、装置、计算设备以及介质
KR20240003313A (ko) 데이터 제공 방법 및 그 장치
CN111581227A (zh) 事件推送方法、装置、计算机设备及存储介质
US20150347112A1 (en) Providing data analytics for cohorts
Reagan et al. Web applications on Azure
CN112000746B (zh) 数据管理方法、装置及服务器
TW202416151A (zh) 資料提供方法及其裝置