KR20230086558A - 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치 - Google Patents

데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치 Download PDF

Info

Publication number
KR20230086558A
KR20230086558A KR1020220064079A KR20220064079A KR20230086558A KR 20230086558 A KR20230086558 A KR 20230086558A KR 1020220064079 A KR1020220064079 A KR 1020220064079A KR 20220064079 A KR20220064079 A KR 20220064079A KR 20230086558 A KR20230086558 A KR 20230086558A
Authority
KR
South Korea
Prior art keywords
data
serving
data serving
serving structure
cache
Prior art date
Application number
KR1020220064079A
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 KR1020220064079A priority Critical patent/KR20230086558A/ko
Publication of KR20230086558A publication Critical patent/KR20230086558A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

서비스를 제공하는 전자 장치가 데이터 서빙(serving) 구조를 설정하는 방법에 있어서, 상기 서비스를 위한 복수의 고객 페이지 도메인을 포함하는 프론트엔드(Frontend)에 대한 정보 및 상기 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드(Backend) 데이터 도메인을 포함하는 백엔드에 대한 정보를 확인하는 단계; 상기 프론트엔드와 상기 백엔드 사이의 데이터 서빙 구조를 설정하기 위한 설정 정보를 획득하는 단계; 및 상기 설정 정보에 기반하여, 상기 프론트엔드에서 요청된 데이터를 서빙하기 위한 메인 데이터 서빙 구조가 포함된 상기 데이터 서빙 구조를 설정하는 단계를 포함하는 방법이 개시된다.

Description

데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치{OPERATING METHOD FOR CONFIGURING DATA SERVING STRUCTURE AND ELECTRONIC APPARATUS SUPPORTING THEREOF}
본 발명은 데이터 서빙 구조를 설정하는 방법 및 장치에 관한 것으로서, 더욱 상세하게는 데이터의 서빙(serving)을 위해 선택적으로 적용 가능한 서빙 구조에 기반하여 데이터 서빙 구조를 설정하는 방법 및 이의 전자 장치에 관한 것이다.
전자기술의 발달에 따라 전자상거래는 쇼핑의 한 분야로 자리잡았다. 고객은 직접 쇼핑몰이나 시장에 가지 않고도 온라인 상에서 물품을 구매할 수 있으며, 온라인 상에서 구매한 물품은 고객이 요청한 배송지로 배송된다.
전자상거래의 경우 상품에 대한 자세하고 정확한 정보의 제공이 서비스 만족도에 상당한 영향을 미치기 때문에 보다 자세하고 정확한 정보를 제공하기 위한 다양한 방안에 대한 논의가 이루어지고 있다.
관련하여, KR101756594B1 건 또는 KR101500849B1 건 등의 선행문헌들을 참조할 수 있다.
본 발명의 방법에 따르면, 데이터 서빙 구조를 설정하는 전자 장치가 선택적으로 적용 가능한 서빙 구조에 기반하여 데이터 서빙 구조를 설정할 수 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예들은, 데이터 서빙 구조 설정을 위한 전자 장치의 동작 방법 및 이를 지원하는 전자 장치를 제공할 수 있다.
다양한 실시예들에 따른 서비스를 제공하는 전자 장치가 데이터 서빙(serving) 구조를 설정하는 방법에 있어서, 상기 서비스를 위한 복수의 고객 페이지 도메인을 포함하는 프론트엔드(Frontend)에 대한 정보 및 상기 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드(Backend) 데이터 도메인을 포함하는 백엔드에 대한 정보를 확인하는 단계; 상기 프론트엔드와 상기 백엔드 사이의 데이터 서빙 구조를 설정하기 위한 설정 정보를 획득하는 단계; 및 상기 설정 정보에 기반하여, 상기 프론트엔드에서 요청된 데이터를 서빙하기 위한 메인 데이터 서빙 구조가 포함된 상기 데이터 서빙 구조를 설정하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 설정 정보는 상기 메인 데이터 서빙 구조를 설정하기 위한 메인 설정 정보를 포함하고, 상기 메인 데이터 서빙 구조는, 상기 복수의 백엔드 데이터 도메인에 대응하는 복수의 데이터 큐(Queue); 상기 복수의 데이터 큐를 통해 전송된 데이터를 저장하는 스토리지(Storage); 및 상기 요청된 데이터를 상기 스토리지에서 호출하여 상기 프론트엔드로 전송하는 서빙 레이어(Layer)를 포함할 수 있다.
예시적 실시예에서, 상기 설정 정보는, 상기 메인 데이터 서빙 구조에 추가되는 제1 부가 데이터 서빙 구조를 설정하기 위한 제1 부가 설정 정보, 또는 상기 메인 데이터 서빙 구조에 추가되는 제2 부가 데이터 서빙 구조를 설정하기 위한 제2 부가 설정 정보를 더 포함할 수 있다.
예시적 실시예에서, 상기 제1 부가 데이터 서빙 구조는, 상기 스토리지에 저장된 데이터에 포함된 적어도 일부의 데이터를 상기 스토리지로부터 획득하여 저장하는 캐시(Cache); 상기 적어도 일부의 데이터에 포함된 제1 데이터에 대응하는 업데이트 된 제1 데이터가 상기 스토리지에서 확인되는 경우, 상기 업데이트 된 제1 데이터를 상기 캐시로 전송하기 위한 업데이트 데이터 큐; 및 상기 업데이트 된 제1 데이터를 상기 업데이트 데이터 큐를 통해 상기 캐시로 전송하도록 관리하는 캐시 업데이트 관리자를 포함하고, 상기 제2 부가 데이터 서빙 구조는, 상기 데이터 베이스에 저장된 데이터 중 실시간 업데이트가 필요한 것으로 판단된 제2 데이터에 대하여, 상기 복수의 데이터 큐 중에서 상기 제2 데이터와 관련된 특정 데이터 큐를 통해 상기 제2 데이터에 대응하는 실시간 업데이트 된 제2 데이터를 획득하여 저장하는 실시간 캐시(Real time Cache); 및 상기 실시간 업데이트 된 제2 데이터를 상기 특정 데이터 큐를 통해 상기 실시간 캐시로 전송하도록 관리하는 실시간 캐시 업데이트 관리자를 포함할 수 있다.
예시적 실시예에서, 상기 설정 정보는, 상기 제1 부가 데이터 서빙 구조 및 상기 제2 부가 데이터 서빙 구조가 상기 메인 데이터 서빙 구조와 연동되기 위한 정보를 포함할 수 있다.
예시적 실시예에서, 상기 업데이트 된 제1 데이터는, 상기 제1 데이터가 업데이트 되는 경우 상기 스토리지의 업데이트 주기에 대응하는 제1 주기에 기반하여 상기 복수의 데이터 큐 중에서 상기 제1 데이터와 관련된 데이터 큐를 통해 상기 스토리지로 전송된 것이고, 상기 제1 주기에 따라 상기 스토리지 및 상기 업데이트 데이터 큐에서 상기 업데이트 된 제1 데이터가 확인되는 경우, 상기 캐시 업데이트 관리자가 상기 업데이트 데이터 큐를 통해 상기 업데이트 된 제1 데이터를 상기 캐시로 전송하도록 지시할 수 있다.
예시적 실시예에서, 상기 데이터 서빙 구조를 설정하는 단계는, 상기 제1 부가 설정 정보에 기반하여, 상기 메인 데이터 서빙 구조 및 상기 제1 부가 데이터 서빙 구조가 포함된 상기 데이터 서빙 구조를 설정하는 단계를 포함하고, 상기 서빙 레이어는 상기 요청된 데이터를 상기 캐시에서 우선적으로 호출하여 상기 프론트엔드로 전송하며, 상기 캐시에서 상기 요청된 데이터가 확인되지 않는 경우, 상기 서빙 레이어는 상기 요청된 데이터를 상기 스토리지에서 호출하여 상기 프론트엔드로 전송할 수 있다.
예시적 실시예에서, 상기 캐시에 저장된 상기 적어도 일부의 데이터는 상기 스토리지에 저장된 데이터 중 데이터 호출 우선순위에 기반하여 상기 캐시에 저장되도록 선택되고, 상기 데이터 호출 우선순위는 상기 서빙 레이어로부터의 데이터 호출 횟수에 기반하여 결정될 수 있다.
예시적 실시예에서, 상기 스토리지에서 상기 업데이트 된 제1 데이터가 확인되고 상기 캐시에서 업데이트 되지 않은 상기 제1 데이터가 확인된 경우, 상기 제1 데이터에 대한 업데이트 요청 정보가 상기 서빙 레이어에 의해 전송될 수 있다.
예시적 실시예에서, 상기 실시간 업데이트 된 제2 데이터는, 상기 제2 데이터가 업데이트 되는 경우 실시간에 대응하는 제2 주기에 기반하여 상기 특정 데이터 큐를 통해 상기 실시간 캐시로 전송된 것일 수 있다.
예시적 실시예에서, 상기 데이터 서빙 구조를 설정하는 단계는, 상기 제2 부가 설정 정보에 기반하여, 상기 메인 데이터 서빙 구조 및 상기 제2 부가 데이터 서빙 구조가 포함된 상기 데이터 서빙 구조를 설정하는 단계를 포함하고, 상기 요청된 데이터가 실시간 업데이트가 필요한 데이터에 대응하는지 여부에 기반하여, 상기 서빙 레이어는 상기 요청된 데이터를 상기 실시간 캐시로부터 호출하여 상기 프론트엔드로 전송할 수 있다.
예시적 실시예에서, 상기 데이터 서빙 구조를 설정하는 단계는, 상기 제1 부가 설정 정보 및 상기 제2 부가 설정 정보에 기반하여, 상기 메인 데이터 서빙 구조, 상기 제1 부가 데이터 서빙 구조 및 상기 제2 부가 데이터 서빙 구조를 포함하도록 상기 데이터 서빙 구조를 설정하는 단계를 포함하고, 상기 요청된 데이터가 실시간 업데이트가 필요한 데이터에 대응하는 경우, 상기 서빙 레이어는 상기 요청된 데이터를 상기 캐시 및 상기 실시간 캐시 모두로부터 호출하며, 상기 캐시 및 상기 실시간 캐시에서 상기 서빙 레이어에 의해 호출된 데이터 중 최신의 데이터가 상기 프론트엔드로 전송될 수 있다.
예시적 실시예에서, 상기 요청된 데이터가 실시간 업데이트가 필요한 데이터에 대응하지 않는 경우, 상기 서빙 레이어는 상기 요청된 데이터를 상기 캐시에서 호출하여 상기 프론트엔드로 전송할 수 있다.
예시적 실시예에서, 상기 방법은, 상기 요청된 데이터가 실시간 업데이트가 필요한 데이터에 대응하는지 여부에 대한 정보를 획득하는 단계를 더 포함할 수 있다.
예시적 실시예에서, 상기 프론트엔드에서 복수의 데이터를 포함하는 데이터 셋을 요청하고 상기 요청된 데이터가 상기 복수의 데이터에 포함된 경우, 상기 복수의 데이터 모두가 상기 스토리지, 상기 캐시 또는 상기 실시간 캐시에서 상기 서빙 레이어에 의해 호출되는 점에 기반하여 상기 요청된 데이터가 상기 프론트엔드로 전송될 수 있다.
예시적 실시예에서, 상기 데이터 셋에 대응하는 식별 정보가 상기 복수의 데이터에 대해 설정되고, 상기 식별 정보에 기반하여 상기 복수의 데이터 모두가 상기 스토리지, 상기 캐시 또는 상기 실시간 캐시에서 호출되는 점이 확인될 수 있다.
예시적 실시예에서, 상기 설정 정보를 획득하는 단계는, 상기 서비스와 관련된 제1 서비스 도메인에 대한 정보를 확인하는 단계; 상기 복수의 백엔드 데이터 도메인 중 상기 제1 서비스 도메인과 관련된 하나 이상의 백엔드 데이터 도메인에 대한 정보를 확인하는 단계; 상기 하나 이상의 백엔드 데이터에 대한 정보에 기반하여, 상기 제1 부가 데이터 서빙 구조의 설정 필요 여부에 대한 제1 정보 및 상기 제2 부가 데이터 서빙 구조의 설정 필요 여부에 대한 제2 정보를 확인하는 단계; 및 상기 제1 정보 및 상기 제2 정보에 기반하여, 상기 제1 부가 설정 정보 또는 상기 제2 부가 설정 정보를 포함하도록 결정된 상기 설정 정보를 획득하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 요청된 데이터는 상기 복수의 고객 페이지 도메인에 포함된 제1 고객 페이지 도메인에 대응하는 제1 고객 페이지에서 요청된 것일 수 있다.
다양한 실시예들에 따른 서비스와 관련된 데이터 서빙(serving) 구조를 설정하는 전자 장치에 있어서, 프로세서 (processor); 및 하나 이상의 인스트럭션 (instruction) 을 저장하는 하나 이상의 메모리 (memory) 를 포함하고, 상기 하나 이상의 인스트럭션은, 실행 시에, 상기 프로세서가: 상기 서비스를 위한 복수의 고객 페이지 도메인을 포함하는 프론트엔드(Frontend)에 대한 정보 및 상기 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드(Backend) 데이터 도메인을 포함하는 백엔드에 대한 정보를 확인하는 단계; 상기 프론트엔드와 상기 백엔드 사이의 데이터 서빙 구조를 설정하기 위한 설정 정보를 획득하는 단계; 및 상기 설정 정보에 기반하여, 상기 프론트엔드에서 요청된 데이터를 서빙하기 위한 메인 데이터 서빙 구조가 포함된 상기 데이터 서빙 구조를 설정하는 단계를 수행하도록 상기 프로세서를 제어할 수 있다.
상술한 본 개시의 다양한 실시예들은 본 개시의 바람직한 실시예들 중 일부에 불과하며, 본 개시의 다양한 실시예들의 기술적 특징들이 반영된 여러 가지 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명은 데이터 서빙 구조를 설정하는 전자 장치가 선택적으로 적용 가능한 서빙 구조에 기반하여 데이터 서빙 구조를 설정하는 방법을 제시하여, 데이터 서빙에 대한 처리 지연을 감소시키고 데이터 서빙을 최적화하는 측면에서 기술적인 효과를 갖는다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시예들에 따른 데이터 서빙 구조 설정을 위한 전자 장치의 동작 방법이 구현될 수 있는 데이터 서빙 구조 설정 시스템을 설명하기 위한 도면이다.
도 2는 다양한 실시예들에 따른 서버 디바이스 및 서버 디바이스에 연동된 디바이스의 구성을 도시한 도면이다.
도 3은 다양한 실시예들에 따른 데이터 서빙 구조 설정을 위한 서버 디바이스(100)의 동작 방법을 도시한 도면이다.
도 4는 서비스와 관련된 프론트엔드 및 백엔드의 데이터 서빙과 관련된 데이터 흐름의 개요를 도시한 도면이다.
도 5는 프론트엔드와 백엔드 사이에 메인 데이터 서빙 구조가 설정된 모습을 도시한 도면이다.
도 6은 프론트엔드와 백엔드 사이에 제1 부가 데이터 서빙 구조가 추가되어 설정된 모습을 도시한 도면이다.
도 7은 프론트엔드와 백엔드 사이에 제2 부가 데이터 서빙 구조가 추가되어 설정된 모습을 도시한 도면이다.
도 8은 프론트엔드와 백엔드 사이에 제1 부가 데이터 서빙 구조 및 제2 부가 데이터 서빙 구조가 추가되어 설정된 모습을 도시한 도면이다.
도 9는 다양한 실시예들에 따른 데이터 서빙 구조 설정을 위한 서버 디바이스(100)가 설정 정보를 획득하는 동작 방법을 도시한 도면이다.
도 10은 서비스 도메인에 대응하는 백엔드 데이터 도메인에 따라 데이터 서빙 구조를 설정하는 예시를 나타낸 도면이다.
도 11은 프론트엔드와 백엔드 사이에 복수 개의 데이터 서빙 구조가 설정된 모습을 도시한 도면이다.
이하의 실시예들은 다양한 실시예들의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및 특징들을 결합하여 다양한 실시예들을 구성할 수도 있다. 다양한 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
도면에 대한 설명에서, 다양한 실시예들의 요지를 흐릴 수 있는 절차 또는 단계 등은 기술하지 않았으며, 당해 기술분야에서 통상의 지식을 가진 자의 수준에서 이해할 수 있을 정도의 절차 또는 단계는 또한 기술하지 아니하였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(comprising 또는 including)"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사 관련어는 다양한 실시예들을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하, 다양한 실시예들에 따른 바람직한 실시 형태를 첨부된 도면을 참조하여 상세하게 설명한다. 첨부된 도면과 함께 이하에 개시될 상세한 설명은 다양한 실시예들의 예시적인 실시형태를 설명하고자 하는 것이며, 유일한 실시형태를 나타내고자 하는 것이 아니다.
또한, 다양한 실시예들에서 사용되는 특정(特定) 용어들은 다양한 실시예들의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 다양한 실시예들의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
도 1은 다양한 실시예들에 따른 데이터 서빙 구조 설정을 위한 전자 장치의 동작 방법이 구현될 수 있는 데이터 서빙 구조 설정 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 다양한 실시예들에 따른 데이터 서빙 구조 설정 시스템은 다양한 종류의 전자 장치들에 구현될 수 있다. 예를 들어, 데이터 서빙 구조 설정 시스템은 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)에 구현될 수 있다. 달리 말해, 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)는 각각의 장치에 구현된 데이터 서빙 구조 설정 시스템을 기반으로, 본 개시의 다양한 실시예들에 따른 동작을 수행할 수 있다. 한편, 다양한 실시예들에 따른 데이터 서빙 구조 설정 시스템은, 상기 도 1에 도시된 바에 국한되지 않고, 더 다양한 전자 장치와 서버들에 구현될 수도 있을 것이다.
다양한 실시예들에 따른 서버 디바이스(100)는, 서버 디바이스(100)에 연동된 디바이스(200)와 무선 및 유선 통신을 수행하며, 대단위의 저장 용량을 갖는 스토리지를 포함하는 장치일 수 있다. 예를 들어, 서버 디바이스(100)는 서버 디바이스(100)에 연동된 디바이스(200)와 연결된 클라우드 디바이스(Cloud device)일 수 있다.
다양한 실시예들에 따른 서버 디바이스(100)에 연동된 디바이스(200)는, 데스크탑 피시, 태블릿 피시, 모바일 단말 등의 개인 사용자에 의해 이용될 수 있는 장치일 수 있다. 이외에도 유사한 기능을 수행하는 다른 전자 장치들이 서버 디바이스(100)에 연동된 디바이스(200)로 이용될 수 있다.
다양한 실시예들에 따른 데이터 서빙 구조 설정 시스템은 동작을 위한 다양한 모듈들을 포함할 수 있다. 데이터 서빙 구조 설정 시스템에 포함된 모듈들은 데이터 서빙 구조 설정 시스템이 구현되는(또는, 물리적 장치에 포함되는) 물리적 장치(예: 서버 디바이스(100))가 지정된 동작을 수행할 수 있도록 구현된 컴퓨터 코드 내지는 하나 이상의 인스트럭션 (instruction) 일 수 있다. 다시 말해, 데이터 서빙 구조 설정 시스템이 구현되는 물리적 장치는 복수 개의 모듈들을 컴퓨터 코드 형태로 메모리에 저장하고, 메모리에 저장된 복수 개의 모듈들이 실행되는 경우 복수 개의 모듈들은 물리적 장치가 복수 개의 모듈들에 대응하는 지정된 동작들을 수행하도록 할 수 있다.
도 2는 다양한 실시예들에 따른 서버 디바이스 및 서버 디바이스에 연동된 디바이스의 구성을 도시한 도면이다.
도 2를 참조하면, 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)는 입/출력부(210), 통신부(220), 스토리지(230) 및 프로세서(240)를 포함할 수 있다.
입/출력부(210)는 사용자 입력을 받거나 또는 사용자에게 정보를 출력하는 각종 인터페이스나 연결 포트 등일 수 있다. 입/출력부(210)는 입력 모듈과 출력 모듈을 포함할 수 있는데, 입력 모듈은 사용자로부터 사용자 입력을 수신한다. 사용자 입력은 키 입력, 터치 입력, 음성 입력을 비롯한 다양한 형태로 이루어질 수 있다. 이러한 사용자 입력을 받을 수 있는 입력 모듈의 예로는 전통적인 형태의 키패드나 키보드, 마우스는 물론, 사용자의 터치를 감지하는 터치 센서, 음성 신호를 입력받는 마이크, 영상 인식을 통해 제스처 등을 인식하는 카메라, 사용자 접근을 감지하는 조도 센서나 적외선 센서 중 적어도 하나를 포함하는 근접 센서, 가속도 센서나 자이로 센서 등을 통해 사용자 동작을 인식하는 모션 센서 및 그 외의 다양한 형태의 사용자 입력을 감지하거나 입력받는 다양한 형태의 입력 수단이 있으며, 본 개시의 실시예에 따른 입력 모듈은 위에 나열한 장치 중 적어도 하나를 포함할 수 있다. 여기서, 터치 센서는 디스플레이 패널에 부착되는 터치 패널이나 터치 필름을 통해 터치를 감지하는 압전식 또는 정전식 터치 센서, 광학적인 방식에 의해 터치를 감지하는 광학식 터치 센서 등으로 구현될 수 있다. 이외에도 입력 모듈은 자체적으로 사용자 입력을 감지하는 장치 대신 사용자 입력을 입력받는 외부의 입력 장치를 연결시키는 입력 인터페이스(USB 포트, PS/2 포트 등)의 형태로 구현될 수도 있다. 또 출력 모듈은 각종 정보를 출력할 수 있다. 출력 모듈은 영상을 출력하는 디스플레이, 소리를 출력하는 스피커, 진동을 발생시키는 햅틱 장치 및 그 외의 다양한 형태의 출력 수단 중 적어도 하나를 포함할 수 있다. 이외에도 출력 모듈은 상술한 개별 출력 수단을 연결시키는 포트 타입의 출력 인터페이스의 형태로 구현될 수도 있다.
일 예로, 디스플레이 형태의 출력 모듈은 텍스트, 정지 영상, 동영상을 디스플레이 할 수 있다. 디스플레이는 액정 디스플레이(LCD: Liquid Crystal Display), 발광 다이오드(LED: light emitting diode) 디스플레이, 유기 발광 다이오드(OLED: Organic Light Emitting Diode) 디스플레이, 평판 디스플레이(FPD: Flat Panel Display), 투명 디스플레이(transparent display), 곡면 디스플레이(Curved Display), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 홀로그래픽 디스플레이(holographic display), 프로젝터 및 그 외의 영상 출력 기능을 수행할 수 있는 다양한 형태의 장치 중 적어도 하나를 포함할 수 있다. 이러한 디스플레이는 입력 모듈의 터치 센서와 일체로 구성된 터치 디스플레이의 형태일 수도 있다.
통신부(220)는 다른 장치와 통신할 수 있다. 따라서, 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)는 통신부를 통해 다른 장치와 정보를 송수신할 수 있다. 예를 들어, 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)는 통신부를 이용해 상호 간 통신을 수행하거나, 기타 다른 장치와 통신을 수행할 수 있다.
여기서, 통신, 즉 데이터의 송수신은 유선 또는 무선으로 이루어질 수 있다. 이를 위해 통신부는 LAN(Local Area Network)를 통해 인터넷 등에 접속하는 유선 통신 모듈, 이동 통신 기지국을 거쳐 이동 통신 네트워크에 접속하여 데이터를 송수신하는 이동 통신 모듈, 와이파이(Wi-Fi) 같은 WLAN(Wireless Local Area Network) 계열의 통신 방식이나 블루투스(Bluetooth), 직비(Zigbee)와 같은 WPAN(Wireless Personal Area Network) 계열의 통신 방식을 이용하는 근거리 통신 모듈, GPS(Global Positioning System)과 같은 GNSS(Global Navigation Satellite System)을 이용하는 위성 통신 모듈 또는 이들의 조합으로 구성될 수 있다.
스토리지(230)는 각종 정보를 저장할 수 있다. 스토리지는 데이터를 임시적으로 또는 반영구적으로 저장할 수 있다. 예를 들어, 서버(100)의 스토리지에는 서버(100)를 구동하기 위한 운용 프로그램(OS: Operating System), 웹 사이트를 호스팅하기 위한 데이터나 점자 생성을 위한 프로그램 내지는 어플리케이션(예를 들어, 웹 어플리케이션)에 관한 데이터 등이 저장될 수 있다. 또, 스토리지는 상술한 바와 같이 모듈들을 컴퓨터 코드 형태로 저장할 수 있다.
스토리지(230)의 예로는 하드 디스크(HDD: Hard Disk Drive), SSD(Solid State Drive), 플래쉬 메모리(flash memory), 롬(ROM: Read-Only Memory), 램(RAM: Random Access Memory) 등이 있을 수 있다. 이러한 스토리지는 내장 타입 또는 탈부착 가능한 타입으로 제공될 수 있다.
프로세서(240)는 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)의 전반적인 동작을 제어한다. 이를 위해 프로세서(240)는 각종 정보의 연산 및 처리를 수행하고 서버(100)의 구성요소들의 동작을 제어할 수 있다. 예를 들어, 프로세서(240)는 데이터 서빙 구조 설정을 위한 프로그램 내지 어플리케이션을 실행시킬 수 있을 것이다. 프로세서(240)는 하드웨어, 소프트웨어 또는 이들의 조합에 따라 컴퓨터나 이와 유사한 장치로 구현될 수 있다. 하드웨어적으로 프로세서(240)는 전기적인 신호를 처리하여 제어 기능을 수행하는 전자 회로 형태로 구현될 수 있으며, 소프트웨어적으로는 하드웨어적인 프로세서(240)를 구동시키는 프로그램 형태로 구현될 수 있다. 한편, 이하의 설명에서 특별한 언급이 없는 경우에는 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)의 동작은 프로세서(240)의 제어에 의해 수행되는 것으로 해석될 수 있다. 즉, 상술한 데이터 서빙 구조 설정 시스템에 구현되는 모듈들이 실행되는 경우, 모듈들은 프로세서(240)가 서버 디바이스(100) 및 서버 디바이스(100)에 연동된 디바이스(200)를 이하의 동작들을 수행하도록 제어하는 것으로 해석될 수 있다.
요약하면, 다양한 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 다양한 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 다양한 실시예들에 따른 방법은 이하에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 예를 들어, 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 상기 프로세서 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고받을 수 있다.
이하에서는, 상기와 같은 기술적 사상에 기반하여 다양한 실시예들에 대해 보다 상세히 설명한다. 이하에서 설명되는 다양한 실시예들에 대해서는 앞서 설명한 내용들이 적용될 수 있다. 예를 들어, 이하에서 설명되는 다양한 실시예들에서 정의되지 않은 동작, 기능, 용어 등은 앞서 설명한 내용들에 기반하여 수행되고 설명될 수 있다.
이하의 설명에서는 서버 디바이스(100)가 데이터 서빙 구조 설정 동작을 수행함을 전제로 다양한 실시예들에 대하여 설명하며, 다양한 실시예들에 따르면, 서버 디바이스(100)는 데이터 서빙 구조 설정 동작과 관련된 정보를 서버 디바이스(100)에 연동된 디바이스(200)와 송수신할 수 있다.
도 3은 다양한 실시예들에 따른 데이터 서빙 구조 설정을 위한 서버 디바이스(100)의 동작 방법을 도시한 도면이다.
도 3에 따를 때 서버 디바이스(100)는 데이터 서빙(serving) 구조를 설정할 수 있으며, 데이터 서빙 구조를 설정하는 동작을 수행하기 위해, 서버 디바이스(100)가 제공하는 서비스를 위한 복수의 고객 페이지 도메인을 포함하는 프론트엔드(Frontend)에 대한 정보 및 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드(Backend) 데이터 도메인을 포함하는 백엔드에 대한 정보를 확인하고(301), 프론트엔드와 백엔드 사이의 데이터 서빙 구조를 설정하기 위한 설정 정보를 획득하며(303), 획득한 설정 정보에 기반하여, 프론트엔드에서 요청된 데이터를 서빙하기 위한 메인 데이터 서빙 구조가 포함된 데이터 서빙 구조를 설정할 수 있다(305). 도 3에서 데이터 베이스와 관련된 백엔드는 프론트에 제공하기 위한 정보를 생성하는 노드일 수 있으며, 해당 노드에서 생성된 데이터를 다양한 실시예들에 따른 데이터 서빙 구조에 따라 프론트엔드로 효과적으로 제공할 수 있다.
다양한 실시예들에 따르면, 동작 301에서, 서버 디바이스(100)는 서비스를 위한 복수의 고객 페이지 도메인을 포함하는 프론트엔드(Frontend)에 대한 정보 및 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드(Backend) 데이터 도메인을 포함하는 백엔드에 대한 정보를 확인할 수 있다.
도 4는 서비스와 관련된 프론트엔드 및 백엔드의 데이터 서빙과 관련된 데이터 흐름의 개요를 도시한 도면이다.
식별번호 401을 참고하면, 프론트엔드는 서비스를 위한 복수의 고객 페이지(Customer Page) 도메인을 포함할 수 있으며, 고객 페이지 도메인은 서버 디바이스(100)가 제공하는 서비스의 UI/UX (user interface/user experience) 상에서 사용자가 접할 수 있는 다양한 서비스 페이지에 대응하는 도메인을 의미할 수 있다. 일 예로, 사용자는 서비스의 UI/UX 상에서 아이템을 검색하기 위한 아이템 검색 페이지(Search Page), 아이템을 분류하는 카테고리 페이지(Category Page), 특정 아이템의 상세 정보를 포함하는 아이템 상세 페이지(Detail Page) 및/또는 사용자의 개인 정보를 포함하는 마이 페이지(My Page) 등에 접속할 수 있으며, 서버 디바이스(100)는 이에 대응하여 아이템 검색 페이지에 대응하는 고객 페이지 도메인, 카테고리 페이지에 대응하는 고객 페이지 도메인, 아이템 상세 페이지에 대응하는 고객 페이지 도메인 및/또는 마이 페이지에 대응하는 고객 페이지 도메인 등을 포함하는 프론트엔드를 확인할 수 있다.
식별번호 401을 참고하면, 프론트엔드는 상기와 같은 복수의 고객 페이지 도메인을 포함하여, 사용자의 UI/UX 접속 등에 따라 각 페이지 및 각 페이지에 대응하는 각 페이지 도메인에서 요청되는 데이터를 관리할 수 있도록 설정된 사용자 측 관리 단으로 이해될 수 있다.
식별번호 403을 참고하면, 백엔드는 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드 데이터 도메인을 포함할 수 있으며, 백엔드 데이터 도메인은 서버 디바이스(100)가 데이터를 저장하여 관리하는 데이터 베이스에 포함된 각 데이터에 대하여 판단된 데이터의 타입 또는 종류에 대응하여 해당 타입 또는 종류의 데이터를 관리하는 도메인을 의미할 수 있다. 일 예로, 서버 디바이스(100)가 제공하는 서비스의 특성에 따라, 물류 관리를 위한 데이터(Fulfillment), 서비스 상에서 아이템을 판매하는 판매자의 데이터(Seller), 아이템의 할인 정보와 관련된 데이터(Promotions/Benefits) 및/또는 아이템에 대해 작성된 리뷰 데이터(Product Review) 등이 생성되어 저장될 수 있으며, 서버 디바이스(100)는 이에 대응하여 물류 관리를 위한 데이터에 대응하는 백엔드 데이터 도메인, 판매자의 데이터에 대응하는 백엔드 데이터 도메인, 아이템의 할인 정보와 관련된 데이터에 대응하는 백엔드 데이터 도메인 및/또는 리뷰 데이터에 대응하는 백엔드 데이터 도메인 등을 포함하는 백엔드를 확인할 수 있다.
식별번호 403을 참고하면, 백엔드는 상기와 같은 복수의 백엔드 데이터 도메인을 포함하여, 서버 디바이스(100)가 제공하는 서비스와 관련하여 저장되거나 관리되는 데이터를 제공 또는 확인할 수 있도록 설정된 데이터 베이스 측 관리 단으로 이해될 수 있다.
이 때 벡엔드에 포함된 복수의 백엔드 데이터 도메인은, 405의 데이터 베이스에서 관리하는 다양한 데이터들을 각 데이터 도메인의 특성에 맞춰 관리하도록 설정될 수 있다.
다양한 실시예들에 따르면, 동작 303에서, 서버 디바이스(100)는 프론트엔드와 백엔드 사이의 데이터 서빙 구조를 설정하기 위한 설정 정보를 획득할 수 있다.
예를 들어, 프론트엔드와 백엔드 사이의 데이터 서빙 구조는, 사용자의 UI/UX 접속 등에 따라 사용자 측 관리 단에서 요청되는 데이터를 데이터 베이스 측 관리 단으로부터 서빙(serving)하기 위한 구조를 의미할 수 있다. 특히, 서버 디바이스(100)가 제공하는 서비스가 e-커머스(e-commverce)에 해당하는 경우에서의 서비스 상 데이터 관리는, 고객 페이지에서 필요한 다양한 데이터가 고객 페이지와 관련된 프론트엔드 측 고객 페이지 도메인에 대응하는 일정한 백엔드 측 담당 데이터 도메인을 대상으로 하여 서빙되는 MSA (Micro Service Architecture)에 기반할 수 있으며, MSA를 위해서는 높은 입출력 트래픽을 소화하는 고 처리율(high throughput) 및 저 지연(low latency)가 보장되고, 데이터의 일관성, 최신성 또는 시스템의 가용성이 확보될 수 있는 핵심 논리(logic) 구조가 제공될 필요가 있다.
그러나 핵심 논리 구조가 설계되어도, 고객 페이지 도메인 또는 데이터 도메인에서 처리되는 데이터의 특성이 상이하고 서로 다른 코드 베이스에 기반하여 동작할 시 핵심 논리 구조가 활용되어도 중복되는 코드가 증가하고 관리가 어려워지는 문제가 발생할 수 있다. 따라서 각 고객 페이지 도메인 또는 데이터 도메인에 따라 핵심 논리 구조가 파편화 되는 것을 방지하여야 할 필요가 있으며, 이를 위해, 동작 303에 따라 서버 디바이스(100)가 획득하는 설정 정보의 대상인 데이터 서빙 구조는 상이한 고객 페이지 도메인 또는 데이터 도메인에 대응하는 확장성을 가져 파편화를 방지할 수 있도록 설정된 데이터 서빙 구조에 해당할 수 있다.
즉 동작 303에 따라 서버 디바이스(100)가 획득하는 설정 정보의 대상인 데이터 서빙 구조는, 데이터 서빙을 위한 메인 데이터 서빙 구조를 기반으로, 다양한 고객 페이지 도메인 또는 데이터 도메인에 대응할 수 있는 부가 데이터 서빙 구조가 추가되는 방식으로 구현되어, 상이한 특성의 고객 페이지 도메인 또는 데이터 도메인을 위한 확장성을 가질 수 있다.
예를 들어, 동작 303에 따라 서버 디바이스(100)가 획득하는 설정 정보는, 프론트엔드와 백엔드 사이의 데이터 서빙을 수행하기 위한 기본적인 데이터 서빙 구조에 해당하는 메인 데이터 서빙 구조를 설정하기 위한 메인 설정 정보를 포함할 수 있다. 일 예로, 메인 설정 정보에 기반하여 메인 데이터 서빙 구조가 프론트엔드와 백엔드 사이에 설정될 경우, 프론트엔드 측에서 요청되는 데이터가 백엔드 측으로부터 서빙될 수 있다. 이와 같은 메인 데이터 서빙 구조는, 도 5와 같은 방식으로 구현될 수 있다.
도 5는 프론트엔드와 백엔드 사이에 메인 데이터 서빙 구조가 설정된 모습을 도시한 도면이다.
메인 데이터 서빙 구조(501)는 데이터 서빙을 위한 다양한 구성 요소를 포함할 수 있으며, 메인 데이터 서빙 구조를 위한 구성 요소로는 복수의 백엔드 데이터 도메인에 대응하는 복수의 데이터 큐(Queue)(503), 복수의 데이터 큐를 통해 전송된 데이터를 저장하는 공통의(common) 스토리지(storage)(505), 및 프론트엔드 측에서 요청된 데이터를 스토리지에서 호출하여 프론트엔드로 전송하는 공통의(common) 서빙 레이어(Serving Layer)(507)가 포함될 수 있다.
501의 메인 데이터 서빙 구조에서, 복수의 벡엔드 데이터 도메인에서 관리되는 데이터 베이스의 다양한 데이터가 각각의 백엔드 데이터 도메인에 대응하는 데이터 큐로 전송될 수 있다. 여기서, 데이터 큐는 송신단 측으로부터 제공되는 데이터를 수신하여 보관하고, 보관한 데이터를 수신단 측으로 전송하기 전까지 대기시킬 수 있으며, 이후 보관한 데이터를 수신단 측으로 전송하는 기능을 수행하는 데이터 대기열을 의미할 수 있다. 503에서 하나의 데이터 큐는 하나의 백엔드 데이터 도메인 또는 하나 이상의 백엔드 데이터 도메인에 대응하여, 대응하는 백엔드 데이터 도메인에서 제공되는 데이터를 수신하여 보관한 뒤 대기시키고, 스토리지의 데이터 업데이트 주기에 맞춰 보관한 데이터를 스토리지 측으로 전송할 수 있다. 즉 503의 데이터 큐는 백엔드 데이터 도메인 측으로부터 전달 받은 데이터를 대기시켰다가, 스토리지 측의 업데이트 주기에 맞춰 스토리지 측으로 데이터를 전달하는 역할을 수행할 수 있다.
또한 501의 메인 데이터 서빙 구조에서, 스토리지는 데이터 베이스의 다양한 데이터를 복수의 데이터 큐를 통해 수신하여 저장할 수 있다. 스토리지는, 데이터 서빙의 편의를 위해 서빙 레이어가 백엔드 데이터 도메인까지 접근하지 않고 스토리지에 대한 접근 만으로 프론트엔드에서 요청된 데이터를 호출할 수 있도록, 데이터 베이스의 데이터를 동일 또는 유사하게 저장하여 관리하는 데이터 저장 공간을 의미할 수 있다. 505에서 스토리지는 벡엔드 데이터 도메인에서 관리하는 데이터 베이스의 데이터를 전송 받아 저장할 수 있으며, 특히, 벡엔드 데이터 도메인과 스토리지 사이에 데이터 큐가 존재하여, 데이터 큐가 데이터 도메인으로부터 데이터 베이스의 데이터를 전달 받아 보관하고, 스토리지는 일정한 주기에 따라 데이터 큐에 보관된 데이터를 전달받을 수 있다. 이와 같이 전달 받은 데이터를 저장하는 스토리지에 대해 서빙 레이어가 원하는 데이터를 호출하여 원하는 데이터를 획득할 수 있다. 즉, 505의 스토리지는 백엔드 데이터 도메인에서 관리되는 데이터 베이스의 데이터를 복수의 데이터 큐를 통해 제공 받아 데이터 베이스의 데이터를 저장하며, 서빙 레이어가 원하는 데이터를 획득할 수 있도록 하는 역할을 수행할 수 있다.
501의 메인 데이터 서빙 구조에서, 서빙 레이어는 스토리지에 접근하여 원하는 데이터를 호출해 획득할 수 있다. 서빙 레이어는, 프론트엔드에 포함된 복수의 고객 페이지 도메인을 통해 요청되는 다양한 데이터를 스토리지로부터 호출하기 위한 기능을 수행할 수 있다. 507에서 서빙 레이어는 프론트엔드에 대응하는 고객 페이지로부터 일정한 데이터를 호출해 줄 것을 요청 받을 수 있으며, 스토리지에 접근하여 호출 대상으로 요청된 데이터를 호출하여 획득하고, 원하는 데이터를 획득하는 경우 이를 다시 프론트엔드 측에 전송할 수 있다.
예를 들어, 동작 303에 따라 서버 디바이스(100)가 획득하는 설정 정보는, 메인 데이터 서빙 구조에 추가되는 제1 부가 데이터 서빙 구조를 설정하기 위한 제1 부가 설정 정보, 또는 메인 데이터 서빙 구조에 추가되는 제2 부가 데이터 서빙 구조를 설정하기 위한 제2 부가 설정 정보를 포함할 수 있다. 일 예로, 1) 제1 부가 설정 정보에 기반하여 제1 부가 데이터 서빙 구조가 프론트엔드와 백엔드 사이에 설정될 경우, 메인 데이터 서빙 구조와는 달라진 방식으로 프론트엔드 측에서 요청되는 데이터가 백엔드 측으로부터 서빙될 수 있고, 2) 제2 부가 설정 정보에 기반하여 제2 부가 데이터 서빙 구조가 프론트엔드와 백엔드 사이에 설정될 경우, 메인 데이터 서빙 구조와는 달라진 방식으로 프론트엔드 측에서 요청되는 데이터가 백엔드 측으로부터 서빙될 수 있으며, 3) 이는 제1 부가 설정 정보 및 제2 부가 설정 정보에 기반하여 제1 부가 데이터 서빙 구조와 제2 부가 데이터 서빙 구조가 모두 프론트엔드와 백엔드 사이에 설정될 경우에도 마찬가지일 수 있다. 이와 같은 제1 부가 데이터 서빙 구조 및 제2 부가 데이터 서빙 구조는, 도 6 내지 8과 같은 방식으로 구현될 수 있다.
도 6은 프론트엔드와 백엔드 사이에 제1 부가 데이터 서빙 구조가 추가되어 설정된 모습을 도시한 도면이다.
제1 부가 데이터 서빙 구조(601)는 데이터 서빙을 위한 다양한 구성 요소를 포함할 수 있으며, 제1 부가 데이터 서빙 구조를 위한 구성 요소로는 스토리지에 저장된 데이터에 포함된 적어도 일부의 데이터를 스토리지로부터 획득하여 저장하는 캐시(Cache)(603), 캐시에 저장되는 적어도 일부의 데이터에 포함된 특정의 데이터에 대하여, 특정의 데이터가 업데이트 되어 업데이트 된 특정의 데이터가 스토리지에서 확인되는 경우 업데이트 된 특정의 데이터를 보관하여 캐시로 전송하기 위한 업데이트 데이터 큐(Notification Queue)(605), 및 업데이트 된 특정의 데이터를 업데이트 데이터 큐를 통해 캐시로 전송하도록 관리하는 캐시 업데이트 관리자(Cache invalidator)(607)가 포함될 수 있다.
601의 제1 부가 데이터 서빙 구조에서, 캐시는 스토리지에 저장된 데이터 중 일부의 데이터를 스토리지로부터 획득하여 저장할 수 있다. 캐시는 서빙 레이어가 스토리지에 접근하여 원하는 데이터를 호출하는 과정에서, 호출 대상인 데이터가 서빙 레이어 측에서 자주 호출하는 등의 이유로 서빙 레이어 측의 용이한 데이터 접근을 도모하거나, 다수의 데이터를 스토리지에 대해 호출하여 스토리지에서의 레이턴시가 발생할 수 있는 문제를 방지하기 위해, 스토리지에 저장된 일부의 데이터를 서빙 레이어가 용이하게 접근할 수 있도록 저장하는 별도의 데이터 저장 공간을 의미할 수 있다. 603에서 캐시는 스토리지와 서빙 레이어 사이에 위치하게 되며, 서빙 레이어는 원하는 데이터를 스토리지에서 호출하기 전에 캐시에서 우선적으로 호출하여 프론트엔드로 전송할 수 있게 된다. 만약 원하는 데이터가 캐시에 저장되어 있지 않아 원하는 데이터가 캐시에 없는 것을 서빙 레이어가 확인한 경우, 서빙 레이어는 원하는 데이터를 스토리지에서 호출하여 프론트엔드로 전송할 수 있다.
603과 같이 스토리지에 저장된 데이터 중 일부의 데이터를 획득하여 저장하도록 설정되는 캐시가 스토리지와 서빙 레이어 사이에 위치하게 될 경우, 캐시에 저장된 특정의 데이터가 백엔드 데이터 도메인 쪽에서 업데이트 되었을 때 스토리지는 데이터 큐를 통해 특정의 데이터에 대응하여 업데이트된 특정의 데이터를 획득하여 저장할 수 있으나, 캐시가 특정의 데이터의 업데이트 여부를 바로 확인하지 못한다면 스토리지는 업데이트 된 특정의 데이터를 저장하는 반면 캐시는 업데이트 되지 않은 특정의 데이터를 저장하게 되는 문제가 발생할 수 있다. 이와 같은 문제를 방지하기 위해서는 스토리지와 캐시에 공통으로 저장된 데이터의 업데이트에 대한 확인 및 관리가 필요하며, 605의 업데이트 알림 큐는 이와 같은 역할을 수행할 수 있다.
스토리지에 저장된 데이터에 대해 백엔드 데이터 도메인 쪽에서 업데이트 된 데이터가 확인 및 관리되는 경우, 업데이트 된 데이터는 복수의 데이터 큐 중에서 해당 데이터와 관련된 데이터 큐에 전달 및 보관되었다가, 스토리지의 업데이트 주기에 대응하는 특정 주기에 따라 스토리지로 전송되게 된다. 이 때 해당 데이터가 전술한 것과 같이 스토리지와 캐시 모두에 저장되어 있는 데이터라면, 스토리지가 업데이트 된 데이터를 전송 받을 때 캐시 역시 동일하게 업데이트 된 데이터를 수신하여야 하므로, 업데이트 된 데이터가 스토리지에 저장되면서 업데이트 알림 큐에도 전달될 수 있도록 설계되어야 한다. 이와 같은 설계에 기반하여 업데이트 알림 큐는 업데이트 된 데이터를 보관할 수 있으며, 스토리지의 업데이트 주기에 맞춰 업데이트 된 데이터가 스토리지 및 업데이트 데이터 큐에서 확인되는 경우, 607의 캐시 업데이트 관리자가 업데이트 데이터 큐를 통해 업데이트 된 데이터를 캐시로 전송하도록 지시할 수 있다.
캐시가 스토리지로부터 획득하여 저장하는 스토리지 내 일부의 데이터는, 서빙 레이어의 데이터 호출을 용이하게 하는데 우선적인 목적이 있으므로, 서빙 레이어에 의한 데이터 호출 우선순위를 고려하여 스토리지에 저장된 데이터 중에서 선별될 수 있다. 즉, 캐시에 저장된 일부의 데이터는 스토리지에 저장된 데이터 중 데이터 호출 우선순위에 기반하여 캐시에 저장되도록 선택된 데이터일 수 있으며, 이와 같은 데이터 호출의 우선순위는 서빙 레이어로부터의 데이터 호출 횟수로 결정될 수 있다. 일 예로, 데이터 호출 횟수가 많은 순으로 캐시에 저장될 데이터가 선택될 수 있으며, 고객 페이지로부터의 데이터 호출 횟수가 많은 아이템 이미지, 아이템 명칭, 가격 등의 데이터 등이 캐시에 저장될 수 있다.
이 때 601의 제1 부가 데이터 서빙 구조에서, 서빙 레이어는 데이터 호출 우선순위가 높은 데이터를 호출하기 위해 캐시에 접근하면서도, 백그라운드로 스토리지에 접근할 수 있다. 만약 특정의 데이터에 대해 스토리지에는 업데이트 된 데이터가 저장되어 있으나 캐시에는 업데이트 되지 않은 데이터가 저장되어 있는 것을 확인하는 경우, 해당 특정의 데이터에 대한 업데이트 요청 정보가 서빙 레이어에 의해 생성되어 전송될 수 있다.
도 7은 프론트엔드와 백엔드 사이에 제2 부가 데이터 서빙 구조가 추가되어 설정된 모습을 도시한 도면이다.
제2 부가 데이터 서빙 구조(701)는 데이터 서빙을 위한 다양한 구성 요소를 포함할 수 있으며, 특히, 실시간 업데이트의 관리 필요성이 있는 데이터들을 서빙하기 위한 구성 요소를 포함할 수 있다. 제2 부가 데이터 서빙 구조에는, 데이터 베이스에 저장된 데이터 중 실시간 업데이트가 필요한 것으로 판단되는 데이터에 대하여, 복수의 데이터 큐 중에서 해당 데이터와 관련된 특정 데이터 큐를 통해 해당 데이터에 대해 실시간 업데이트 된 데이터를 획득하여 저장하는 실시간 캐시(Real time Cache)(703), 및 실시간 업데이트 된 데이터를 상기 특정 데이터 큐를 통해 실시간 캐시로 전송하도록 관리하는 실시간 캐시 업데이트 관리자(Real time Data Updater)(705)가 포함될 수 있다.
701의 제2 부가 데이터 서빙 구조에서, 실시간 캐시는 복수의 데이터 큐에 보관 중인 데이터 중 실시간 업데이트에 대한 관리가 필요한 것으로 확인된 데이터를 실시간에 가까운 주기에 기반하여 복수의 데이터 큐로부터 획득하여 저장할 수 있다. 데이터 베이스에 저장되어 백엔드 데이터 도메인에 의해 관리되는 데이터 중, 아이템의 재고 또는 프로모션 할인 가격 등 실시간으로 업데이트가 이루어져 실시간 업데이트를 반영하는 것이 중요한 데이터가 미리 확인될 수 있으며, 백엔드 데이터 도메인에 대응하는 복수의 데이터 큐에서는 이와 같이 확인된 데이터에 대해 실시간으로 업데이트 된 데이터가 확인되는 경우 실시간 업데이트 된 데이터를 실시간 캐시로 전송할 수 있다.
즉, 어느 데이터가 실시간 업데이트에 대한 관리 필요성이 있는 것으로 확인된 데이터라면, 해당 데이터에 관련된 데이터 큐에서는 해당 데이터에 대응하여 실시간으로 업데이트 된 데이터를 확인할 수 있으며, 데이터 큐는 실시간 업데이트 된 데이터를 실시간 캐시로 전송하게 된다. 데이터 큐의 관점에서, 데이터 큐가 보관 중인 데이터는 스토리지의 업데이트 주기에 맞춰 스토리지로 전송되나, 이 중 실시간 업데이트에 대한 관리 필요성이 있는 것으로 확인된 데이터가 있는 경우, 해당 데이터와 관련해 실시간 업데이트 된 데이터가 스토리지의 업데이트 주기 보다 훨씬 빠른 실시간에 가까운 주기에 맞춰 실시간 캐시로 전송될 수 있다. 따라서 703과 같은 실시간 캐시의 설정을 통해, 스토리지 또는 캐시가 실시간 업데이트 되는 데이터를 실시간으로 저장하게 되지 못하는 문제를 방지할 수 있으며, 705와 같이 실시간 캐시 관리자가 별도로 설정되어 데이터 큐로부터 실시간 캐시로의 실시간 업데이트 데이터의 전송을 관리할 수 있게 된다.
701과 같은 제2 부가 데이터 서빙 구조가 설정되는 경우, 서빙 레이어는 원하는 데이터가 실시간 업데이트가 필요한 데이터에 대응하는지 여부를 기반으로, 만약 해당 데이터가 실시간 업데이트가 필요한 데이터에 대응한다면 해당 데이터를 실시간 캐시에서 호출하여 프론트엔트로 전송할 수 있게 된다.
이 때 도 7에서는 편의상 제2 부가 데이터 서빙 구조 외에 제1 부가 데이터 서빙 구조의 구성 요소인 캐시가 설정된 것으로 도시되었으나 이는 부차적인 일 예시에 해당하며, 경우에 따라서 서빙 레이어는 캐시가 아닌 스토리지로 바로 접근하여 원하는 데이터를 호출할 수도 있다.
도 8은 프론트엔드와 백엔드 사이에 제1 부가 데이터 서빙 구조 및 제2 부가 데이터 서빙 구조가 추가되어 설정된 모습을 도시한 도면이다.
도 8에서는 제1 부가 데이터 서빙 구조(801)와 제2 부가 데이터 서빙 구조(803)가 함께 설정되어 있으며, 이는 설정 정보에 제1 부가 설정 정보 및 제2 부가 설정 정보가 모두 포함된 점에 기반한 것일 수 있다. 도 8에 포함된 데이터 큐, 스토리지, 서빙 레이어, 캐시, 업데이트 알림 큐, 캐시 업데이트 관리자, 실시간 캐시 및 실시간 캐시 업데이트 관리자는 도 5 내지 7에서 전술한 것과 같이 동작할 수 있다.
도 8과 같은 경우, 서빙 레이어는 원하는 데이터가 실시간 업데이트가 필요한 데이터에 대응하는지 여부를 기반으로, 만약 해당 데이터가 실시간 업데이트가 필요한 데이터에 대응한다면 해당 데이터를 실시간 캐시 및 캐시 모두에서 호출하며, 실시간 캐시 및 캐시에서 호출된 데이터에 포함된 타임 스태프 등의 정보를 확인하여 호출된 데이터 중 보다 최신의 데이터를 프론트엔트로 전송하게 된다. 반면, 해당 데이터가 실시간 업데이트가 필요한 데이터에 대응하지 않는다면 서빙 레이어는 해당 데이터를 캐시에서 호출하여 프론트엔드로 전송하게 되며, 만약 해당 데이터가 캐시에서 호출되지 않는 경우 스토리지에 접근해 해당 데이터를 호출하고 프론트엔드로 전송하게 된다. 이를 위해, 서버 디바이스(100)는 프론트엔드에서 요청된 데이터, 즉 서빙 레이어가 원하는 데이터가 실시간 업데이트가 필요한 데이터에 대응하는지 여부에 대한 정보를 획득하는 동작을 수행할 수도 있다.
한편 서빙 레이어는, 상기와 같은 데이터의 특성과 무관하게 캐시 및 실시간 캐시에 모두 데이터 요청을 할 수도 있다. 마찬가지로, 캐시 및 실시간 캐시 모두로부터 데이터를 호출한 경우 서빙 레이어는 호출된 데이터의 타임 스탬프 등의 정보를 기반으로 보다 최신의 데이터를 프론트엔드로 전달할 수 있다.
예를 들어, 프론트엔드에서 요청된 특정의 데이터가, 단일 데이터 형태로 프론트엔드에서 요청된 것이 아닌, 특정의 데이터가 포함된 복수의 데이터를 포함하는 데이터 셋 형태로 프론트엔드에서 요청되는 경우가 발생할 수 있다. 만약, 프론트엔드에서 복수의 데이터를 포함하는 데이터 셋을 요청하여 복수의 데이터에 포함된 특정의 데이터가 요청된 것으로 확인된다면, 복수의 데이터 모두가 스토리지, 캐시 또는 실시간 캐시에서 서빙 레이어에 의해 호출될 수 있을 때에 한하여 상기 특정의 데이터가 서빙 레이어에 의해 프론트엔드로 전송되도록 설정할 수 있다.
즉, 프론트엔드에서 복수의 데이터를 포함하는 데이터 셋을 요청하는 것은 고객 페이지 또는 고객 페이지의 일정 영역에서 상기 복수의 데이터 모두를 활용하기 위함인 경우가 많으므로, 데이터 셋에 포함된 모든 데이터가 호출 가능할 때에 한하여 데이터 셋에 포함된 복수의 데이터가 프론트엔드로 전송되도록 함으로써 데이터 누락을 방지할 수 있다. 일 예로, 아이템에 대한 실시간 재고, 아이템 이미지, 아이템 명칭 및/또는 아이템 가격 등의 데이터를 포함하는 데이터 셋이 아이템 상세 페이지로부터 요청될 때, 실시간 업데이트가 필요한 것으로 확인되는 실시간 재고 데이터는 실시간 캐시에서 호출될 것이며 나머지 데이터는 캐시 또는 스토리지에서 호출되게 되는데, 만약 아이템 이미지 데이터가 캐시 또는 스토리지에서 확인되지 않는 경우 실시간 재고 데이터가 실시간 캐시에서 올바르게 호출되더라도 프론트엔트로 전송되지 않을 수 있다.
위와 같은 데이터 셋 형태의 요청을 관리하기 위해, 데이터 셋에 대응하는 식별 정보가 결정되어 데이터 셋에 포함된 복수의 데이터에 대해 설정될 수 있다. 데이터 셋에 포함된 복수의 데이터는 데이터 셋에 대응하는 하나의 식별 정보를 공통으로 가지게 되며, 이와 같은 식별 정보에 기반하여 데이터 셋에 포함된 복수의 데이터 모두가 스토리지, 캐시 또는 실시간 캐시에서 호출되는 점이 확인될 수 있고, 데이터의 누락이 방지될 수 있다.
예를 들어, 동작 303에 따라 서버 디바이스(100)가 획득하는 설정 정보는, 제1 부가 데이터 서빙 구조 및 제2 부가 데이터 서빙 구조가 메인 데이터 서빙 구조와 연동되기 위한 정보를 포함할 수 있다. 도 5 내지 8을 통해 전술한 것과 같이, 제1 부가 데이터 서빙 구조 및 제2 부가 데이터 서빙 구조는 메인 데이터 서빙 구조와 연동되어 데이터를 서빙하는 구조에 해당하므로, 부가 데이터 서빙 구조가 추가되더라도 원활한 데이터 서빙이 수행될 수 있도록 상호 간의 연동을 설정하는 연동 정보가 동작 303에 따라 서버 디바이스(100)가 획득하는 설정 정보에 포함될 수 있다.
예를 들어, 303과 같이 서버 디바이스(100)가 설정 정보를 획득하는 동작은, 서비스를 형성하는 다양한 타입의 서비스 도메인에 대응하는 백엔드 데이터 도메인에 맞춰 제1 부가 데이터 서빙 구조 또는 제2 부가 데이터 서빙 구조가 추가로 설정될 수 있도록, 제1 부가 설정 정보 또는 제2 부가 설정 정보가 선택적 또는 적응적으로 포함된 설정 정보를 획득하는 동작을 포함할 수 있으며, 구체적인 동작은 도 9와 같이 수행될 수 있다.
도 9는 다양한 실시예들에 따른 데이터 서빙 구조 설정을 위한 서버 디바이스(100)가 설정 정보를 획득하는 동작 방법을 도시한 도면이다. 도 9는 도3의 303에서 서버 디바이스(100)가 설정 정보를 획득하는 동작을 구체화한 동작 방법에 해당할 수 있다.
서버 디바이스(100)가 제공하는 서비스에 대하여, 서버 디바이스(100)는 상품 서비스 도메인, 주문 서비스 도메인, 또는 리뷰 서비스 도메인 등 서비스를 형성하는 다양한 타입의 서비스 도메인 중 특정의 서비스 도메인에 대한 정보를 확인할 수 있으며(901), 복수의 백엔드 데이터 도메인 중 상기 특정의 서비스 도메인에 대응하는 하나 이상의 백엔드 데이터 도메인에 대한 정보를 확인할 수 있다(903).
서버 디바이스(100)는 확인한 하나 이상의 백엔드 데이터 도메인에 대한 정보에 기반하여, 제1 부가 데이터 서빙 구조의 설정 필요 여부에 대한 제1 정보 및 제2 부가 데이터 서빙 구조의 설정 필요 여부에 대한 제2 정보를 확인하게 되며(905), 이후 제1 정보 및 제2 정보에 따라 제1 부가 데이터 서빙 구조를 추가하기 위한 제1 부가 설정 정보 또는 제2 부가 데이터 서빙 구조를 추가하기 위한 제2 부가 설정 정보를 포함하도록 결정된 설정 정보를 획득할 수 있다(907).
특정의 서비스 도메인에서 요청되는 데이터와 관련된 백엔드 데이터 도메인은 전체 백엔드 데이터 도메인 중 일부일 가능성이 높으므로, 관련된 일부의 백엔드 데이터 도메인에 대한 데이터 서빙을 위해 제1 부가 데이터 서빙 구조 또는 제2 부가 데이터 서빙 구조가 필요한지를 판단하여, 제1 부가 설정 정보 또는 제2 부가 설정 정보가 포함되도록 결정된 설정 정보가 서버 디바이스(100)에게 획득될 수 있다. 이와 같은 서버 디바이스(100)의 설정 정보 획득 동작을 통해, 특정의 서비스 도메인에 대응하는 일부의 백엔드 데이터 도메인에 대한 데이터 서빙을 최적화 할 수 있도록 데이터 서빙 구조를 설계할 수 있다.
도 10은 서비스 도메인에 대응하는 백엔드 데이터 도메인에 따라 데이터 서빙 구조를 설정하는 예시를 나타낸 도면이다.
1001은 데이터 서빙 구조를 위한 설정 정보로서, 메인 데이터 서빙 구조, 제1 부가 데이터 서빙 구조 및/또는 제2 부가 데이터 서빙 구조에 대한 설정과 관련된 선택 옵션을 나타내고 있으며, 1003은 각 서비스 도메인과 관련된 정보로서, 각 서비스 도메인에 대하여 어떠한 백엔드 데이터 도메인이 대응될 수 있는지를 확인하는 정보 또는 데이터 서빙을 위해 제1 부가 데이터 서빙 구조 또는 제2 부가 데이터 서빙 구조가 필요한지와 관련된 정보 등을 포함할 수 있다.
1003에서 나타내는 정보에 따라, 1005와 같이 각 서비스 도메인 별로 대응하는 백엔드 데이터 도메인이 상이하게 결정될 수 있으며, 이와 같이 대응하는 백엔드 데이터 도메인이 달라지는 경우 1007처럼 각 서비스 도메인을 위한 데이터 서빙 구조가 달라질 수 있다. 즉, 각 서비스 도메인은 메인 데이터 서빙 구조, 제1 부가 데이터 서빙 구조 및/또는 제2 부가 데이터 서빙 구조에 기반하여 서로 다른 데이터 서빙 구조를 가질 수 있게 된다. 일 예로, 일정한 백엔드 데이터 도메인들(Catalog, Seller, Subscribe Order)에 대응하는 상품 도메인(product domain)에서는 메인 데이터 서빙 구조에 제1 부가 데이터 서빙 구조 및 제2 부가 데이터 서빙 구조가 모두 추가되어 설정된 것을 확인할 수 있으며, 이와는 다른 백엔드 데이터 도메인(Member)에 대응하는 리뷰 도메인(review domain)에서는 메인 데이터 서빙 구조에 제1 부가 데이터 서빙 구조만이 추가되어 설정된 것을 확인할 수 있다.
도 10과 같이 각 서비스 도메인 또는 각 서비스 도메인에 대응하는 백엔드 데이터 도메인에 따라 서로 다른 데이터 서빙 구조를 적용 가능하도록 함으로써, 서버 디바이스(100)는 각 서비스 도메인 또는 각 서비스 도메인에 대응하는 백엔드 데이터 도메인을 위한 데이터 서빙에 대한 확장성을 가질 수 있으며, 각 서비스 도메인 또는 각 서비스 도메인에 대응하는 백엔드 데이터 도메인을 위한 최적의 데이터 서빙 구조를 적용함으로써 데이터 서빙의 효용성을 높일 수 있다.
다양한 실시예들에 따르면, 동작 305에서, 서버 디바이스(100)는 획득한 설정 정보에 기반하여, 프론트엔드에서 요청된 데이터를 서빙하기 위한 메인 데이터 서빙 구조가 포함된 데이터 서빙 구조를 설정할 수 있다.
예를 들어, 동작 305에 따라 서버 디바이스(100)가 설정하는 데이터 서빙 구조는 메인 데이터 서빙 구조를 기본으로 포함하며, 전술한 동작 303에서 획득되는 설정 정보에 포함된 제1 부가 설정 정보 또는 제2 부가 설정 정보에 따라 제1 부가 데이터 서빙 구조 또는 제2 부가 데이터 서빙 구조를 추가로 포함할 수 있다.
예를 들어, 동작 305에서 서빙의 대상이 되는 프론트엔드에서 요청된 데이터는, 프론트엔드에 포함된 복수의 고객 페이지 도메인에 포함된 제1 고객 페이지 도메인에 대응하는 제1 고객 페이지에서 요청된 데이터일 수 있다.
예를 들어, 동작 305에 따라 서버 디바이스(100)가 설정하는 데이터 서빙 구조는, 데이터 서빙 구조에 포함된 각 구성 요소에 장애가 발생할 경우 장애가 발생한 구성 요소로부터 올바르지 않은 데이터가 서빙되는 것을 방지하기 위한 서킷 브레이커(circuit breaker)에 대한 적용 정보를 포함할 수 있다. 일 예로, 실시간 캐시가 포함된 제2 부가 데이터 서빙 구조에서 실시간 업데이트 된 데이터를 저장하는 실시간 캐시에 장애가 발생한 경우, 서빙 레이어가 장애가 발생한 실시간 캐시로부터 오류가 포함된 데이터를 서빙하여 사용자에게 제공하는 것보다, 실시간 업데이트가 되지 않은 이전의 데이터를 사용자에게 제공하는 것이 고객 경험 상 더 적절할 수 있다. 따라서, 서버 디바이스(100)는 서킷 브레이커에 기반하여 서빙 레이어가 실시간 캐시로 접근하지 못하도록 접근 경로를 차단시켜 장애가 발생한 실시간 캐시를 고립시킬 수 있으며, 이 경우 서빙 레이어는 캐시 또는 스토리지로부터 실시간으로 업데이트 되지는 않았으나 오류가 없는 데이터를 서빙할 수 있게 된다.
또한, 위와 같은 서킷 브레이커의 적용에 더하여, 만약 실시간 캐시에 장애가 발생했음에도 데이터의 중요도 또는 필요성 상 실시간 업데이트 된 데이터를 서빙해야 하는 상황이 발생하는 경우, 서버 디바이스(100)는 서빙 레이어가 장애가 발생한 실시간 캐시를 거치지 않고 실시간 업데이트 된 올바른 데이터를 보관하고 있는 복수의 데이터 큐로 바로 접근하여, 실시간 업데이트 된 올바른 데이터를 호출하여 서빙할 수 있도록 설정할 수도 있다.
예를 들어, 동작 305에 따라 서버 디바이스(100)가 설정하는 데이터 서빙 구조는 프론트엔드와 백엔드 사이에 존재하는 복수의 데이터 서빙 구조 중 하나의 데이터 서빙 구조에 해당할 수 있다. 달리 말해, 동작 305에 따라 서버 디바이스(100)가 설정하는 데이터 서빙 구조는 프론트엔드와 백엔드 사이에 도 11과 같이 복수 개가 존재할 수 있으며, 각 데이터 서빙 구조는 서로 독립적으로 데이터를 서빙함으로써 상호 간에 영향을 주지 않을 수 있다. 서버 디바이스(100)는 이와 같이 복수 개의 독립적인 데이터 서빙 구조를 설정하고 각 데이터 서빙 구조를 서로 다른 고객 페이지 도메인에 대응시킴으로써, 특정의 고객 페이지 도메인을 위한 데이터 서빙 구조에 문제가 발생하여도 다른 고객 페이지 도메인에 대해서는 올바르게 데이터를 서빙할 수 있도록 설계할 수 있다.
도 11은 프론트엔드와 백엔드 사이에 복수 개의 데이터 서빙 구조가 설정된 모습을 도시한 도면이다.
도 11의 프론트엔드와 백엔드 사이에는 1101 및 1103에 해당하는 2개의 데이터 서빙 구조가 설정되어 있으며, 1101에 해당하는 데이터 서빙 구조는 복수의 고객 페이지 도메인 중 일부의 고객 페이지 도메인을 위해 데이터를 서빙하는데 활용되고, 1103에 해당하는 데이터 서빙 구조는 나머지 고객 페이지 도메인을 위해 데이터를 서빙하는데 활용되게 된다. 도 11과 같이 복수 개의 데이터 서빙 구조를 설정함으로써, 하나의 데이터 서빙 구조에 문제가 발생하여 어느 고객 페이지 도메인을 위한 데이터 서빙이 불가능해져도, 다른 데이터 서빙 구조에 의해 다른 고객 페이지 도메인을 위한 데이터 서빙이 가능할 수 있다.
특히 복수의 고객 페이지 도메인 중에서, 아이템 검색 페이지를 위한 고객 페이지 도메인, 아이템 상세 페이지를 위한 고객 페이지 도메인 등 사용자 경험을 위해 중요도가 높은 일부의 고객 페이지 도메인이 존재할 수 있으며, 이와 같이 중요도가 높은 일부의 고객 페이지 도메인에 대해서는 주요 서빙 경로(Critical Serving Path; CSP)로서 1101의 데이터 서빙 구조가 설정될 수 있다. 반대로 아이템 카테고리 페이지를 위한 고객 페이지 도메인, 사용자 정보와 관련된 마이 페이지를 위한 고객 페이지 도메인 등 사용자 경험과 관련해 중요도가 높지 않은 나머지 고객 페이지 도메인에 대해서는 non-CSP(N-CSP)로서 1103의 데이터 서빙 구조가 설정될 수 있다.
서버 디바이스(100)는 CSP를 위한 1101의 데이터 서빙 구조와 N-CSP를 위한 1103의 데이터 서빙 구조를 병렬적, 독립적으로 설정하여, 중요도가 높지 않은 고객 페이지 도메인을 위한 데이터 서빙 구조에 문제가 발생하여도 중요도가 높은 다른 고객 페이지 도메인을 위한 데이터 서빙 구조는 여전히 데이터 서빙을 위해 활용될 수 있도록 설계할 수 있다. 또한, 서버 디바이스(100)는 중요도가 높은 고객 페이지 도메인을 위한 1101의 데이터 서빙 구조에 문제가 발생할 경우, 중요도가 높은 고객 페이지 도메인을 위한 데이터 서빙을 보완할 수 있도록, 중요도가 높은 고객 페이지 도메인이 1103의 데이터 서빙 구조를 활용하여 데이터를 서빙할 수 있게끔 설계할 수도 있다.
전술한 실시예들에 따라 도 3 내지 도 11에 기반하여 데이터 서빙 구조의 설정 동작을 수행하는 서버 디바이스(100)가 데이터 서빙 구조의 설정과 관련하여 생성하거나 제공하는 각 정보들이 다양한 형태로 결합되어 생성되거나 제공될 수 있음은 자명하다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시 예는 필요에 따라 서로 조합되어 운용할 수 있다. 예컨대, 본 발명의 모든 실시 예는 일부분들이 서로 조합되어 시스템에 의해 구현될 수 있다.
또한, 본 발명에 따른 시스템 등에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.
이와 같이, 본 발명의 다양한 실시예들은 특정 관점에서 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의해 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 리드 가능 기록 매체의 예들은 읽기 전용 메모리(read only memory: ROM)와, 랜덤-접속 메모리(random access memory: RAM)와, 컴팩트 디스크- 리드 온니 메모리(compact disk-read only memory: CD-ROM)들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(인터넷을 통한 데이터 송신 등)을 포함할 수 있다. 컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통해 분산될 수 있고, 따라서 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 발명의 다양한 실시예들을 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 발명이 적용되는 분야에서 숙련된 프로그래머들에 의해 쉽게 해석될 수 있다.
또한 본 발명의 다양한 실시예들에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 소프트웨어는 예를 들어, 삭제 가능 또는 재 기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비 휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 콤팩트 디스크(compact disk: CD), DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 다양한 실시예들에 따른 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 이와 같은 메모리 또는 컴퓨터를 포함한 차량 등에 의해 구현될 수 있고, 이러한 메모리는 본 발명의 실시예들을 구현하는 명령들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다.
따라서, 본 발명은 본 명세서의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며 본 발명의 범위를 한정하고자 하는 것은 아니다. 또한 앞서 설명된 본 발명에 따른 실시예들은 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.

Claims (1)

  1. 서비스를 제공하는 전자 장치가 데이터 서빙(serving) 구조를 설정하는 방법에 있어서,
    상기 서비스를 위한 복수의 고객 페이지 도메인을 포함하는 프론트엔드(Frontend)에 대한 정보 및 상기 서비스를 위한 데이터 베이스와 관련된 복수의 백엔드(Backend) 데이터 도메인을 포함하는 백엔드에 대한 정보를 확인하는 단계;
    상기 프론트엔드와 상기 백엔드 사이의 데이터 서빙 구조를 설정하기 위한 설정 정보를 획득하는 단계; 및
    상기 설정 정보에 기반하여, 상기 프론트엔드에서 요청된 데이터를 서빙하기 위한 메인 데이터 서빙 구조가 포함된 상기 데이터 서빙 구조를 설정하는 단계를 포함하는,
    데이터 서빙 구조 설정 방법.
KR1020220064079A 2021-12-08 2022-05-25 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치 KR20230086558A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220064079A KR20230086558A (ko) 2021-12-08 2022-05-25 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210174746A KR102403609B1 (ko) 2021-12-08 2021-12-08 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치
KR1020220064079A KR20230086558A (ko) 2021-12-08 2022-05-25 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210174746A Division KR102403609B1 (ko) 2021-12-08 2021-12-08 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20230086558A true KR20230086558A (ko) 2023-06-15

Family

ID=81780942

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020210174746A KR102403609B1 (ko) 2021-12-08 2021-12-08 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치
KR1020220064079A KR20230086558A (ko) 2021-12-08 2022-05-25 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020210174746A KR102403609B1 (ko) 2021-12-08 2021-12-08 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치

Country Status (3)

Country Link
KR (2) KR102403609B1 (ko)
TW (1) TW202324093A (ko)
WO (1) WO2023106492A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102609583B1 (ko) * 2023-05-15 2023-12-05 쿠팡 주식회사 정보를 설정하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050003224A (ko) * 2003-06-30 2005-01-10 디지쎌 엔터테인먼트 컴파니 리미티드 커뮤니티 플랫폼의 구조 및 그 서비스 시스템
US7627829B2 (en) * 2003-09-19 2009-12-01 Yahoo! Inc. Command center and interface for web based business merchandising and service
US7797298B2 (en) * 2006-02-28 2010-09-14 Microsoft Corporation Serving cached query results based on a query portion
WO2016154965A1 (en) * 2015-04-01 2016-10-06 Xin Yingwei Structured item organizing mechanism in e-commerce

Also Published As

Publication number Publication date
WO2023106492A1 (ko) 2023-06-15
KR102403609B1 (ko) 2022-05-31
TW202324093A (zh) 2023-06-16

Similar Documents

Publication Publication Date Title
JP2020523656A (ja) 低遅延環境における高遅延デジタルコンポーネントの送信
KR20230086558A (ko) 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치
KR102646283B1 (ko) 발주 정보 관리를 위한 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR102616183B1 (ko) 테스트 정보 관리 방법 및 이를 지원하는 전자 장치
US11393010B1 (en) Operating method for electronic apparatus for offering item information and electronic apparatus supporting thereof
KR20230018983A (ko) 서비스 관련 정보 제공을 위한 동작 방법 및 이를 지원하는 전자 장치
KR20230088217A (ko) 페이지 정보 제공을 위한 동작 방법 및 이를 지원하는 전자 장치
KR102369857B1 (ko) 광고 메시지 제공을 위한 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR102618518B1 (ko) 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR102630699B1 (ko) 데이터를 전송하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20230028119A (ko) 아이템 관련 정보 제공을 위한 동작 방법 및 이를 지원하는 전자 장치
KR102618465B1 (ko) 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20240000767A (ko) 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20220166175A (ko) 키워드 광고 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR102630673B1 (ko) 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR102506225B1 (ko) 페이지 정보 제공을 위한 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20230033004A (ko) 서비스 관련 정보 제공을 위한 동작 방법 및 이를 지원하는 전자 장치
KR102583683B1 (ko) 아이템 정보 제공을 위한 동작 방법 및 이를 지원하는 전자 장치
KR102609583B1 (ko) 정보를 설정하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20230034872A (ko) 서비스 관련 정보 제공을 위한 동작 방법 및 이를 지원하는 전자 장치
KR20230139569A (ko) 아이템 정보를 제공하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
US11899656B2 (en) Systems and methods for dynamic media asset modification
KR20230154591A (ko) 정보를 설정하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20230140785A (ko) 정보를 설정하는 전자 장치의 동작 방법 및 이를 지원하는 전자 장치
KR20230110215A (ko) 아이템 카테고리 페이지 제공을 위한 동작 방법 및 이를 지원하는 전자 장치