KR102681240B1 - 카탈로그 정보를 관리하는 전자 장치 및 그 방법 - Google Patents

카탈로그 정보를 관리하는 전자 장치 및 그 방법 Download PDF

Info

Publication number
KR102681240B1
KR102681240B1 KR1020220039446A KR20220039446A KR102681240B1 KR 102681240 B1 KR102681240 B1 KR 102681240B1 KR 1020220039446 A KR1020220039446 A KR 1020220039446A KR 20220039446 A KR20220039446 A KR 20220039446A KR 102681240 B1 KR102681240 B1 KR 102681240B1
Authority
KR
South Korea
Prior art keywords
request
store
brand
information
identification information
Prior art date
Application number
KR1020220039446A
Other languages
English (en)
Other versions
KR20230140779A (ko
Inventor
전예환
Original Assignee
쿠팡 주식회사
Filing date
Publication date
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Priority to KR1020220039446A priority Critical patent/KR102681240B1/ko
Priority to PCT/KR2022/004764 priority patent/WO2023191160A1/ko
Priority to TW112112157A priority patent/TW202338685A/zh
Publication of KR20230140779A publication Critical patent/KR20230140779A/ko
Application granted granted Critical
Publication of KR102681240B1 publication Critical patent/KR102681240B1/ko

Links

Images

Classifications

    • 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]
    • G06Q30/0603Catalogue ordering
    • 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
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

전자 장치에서 카탈로그 정보 관리 방법에 있어서, 브랜드 식별 정보를 포함하는 제1요청을 획득하는 단계; 상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드(main thread)에, 상기 제1요청을 기반으로 스토어 카탈로그를 업데이트 하기 위하여 상기 제1요청을 할당하는 단계; 상기 제1메인 쓰레드를 통해 상기 제1요청을 기반으로 스토어 리스트 정보 및 브랜드 카탈로그 정보를 획득하는 단계; 상기 스토어 리스트 정보를 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 브랜드 카탈로그 정보에 기반하여 업데이트하는 단계; 및 상기 제1요청에 따른 업데이트의 완료에 대응하여 제1완료 메시지를 생성하는 단계를 포함하는 방법이 개시된다.

Description

카탈로그 정보를 관리하는 전자 장치 및 그 방법{ELECTRONIC DEVICE MANAGING CATALOG INFORMATION AND METHOD THEREOF}
본 발명은 카탈로그 정보를 관리하는 전자 장치 및 그 방법에 관한 것으로서, 구체적으로는 업데이트 요청을 분류하여 병렬적으로 카탈로그 업데이트를 수행하는 전자 장치 및 그 방법에 관한 것이다.
전자기술의 발달에 따라 전자상거래는 쇼핑의 한 분야로 자리잡았다. 고객은 직접 쇼핑몰이나 시장 또는 매장에 가지 않고도 온라인 상에서 물품을 구매할 수 있으며, 온라인 상에서 구매한 물품은 고객이 요청한 배송지로 배송된다.
전자상거래의 경우 상품에 대한 자세하고 정확한 정보의 제공이 서비스 만족도에 상당한 영향을 미치기 때문에 보다 자세하고 정확한 정보를 제공하기 위한 다양한 방안에 대한 논의가 이루어지고 있다.
요식업의 경우 오프라인 매장과 소비자 사이의 전자상거래를 중개하는 서비스가 제공되고 있다.
한편, 전자상거래를 통한 쇼핑이 보편화됨에 따라 전자상거래 서비스를 제공하는 서버에서 처리해야 하는 데이터량이 점점 방대해지고 있으며, 예컨대, 전자상거래를 중개하는 서비스를 제공함에 따라 오프라인 매장의 정보(예컨대, 상품 또는 브랜드에 대한 카탈로그 정보)를 온라인 상에 제공할 수 있고, 소비자는 온라인 상에서 이를 확인할 수 있다. 이에 따라 다양한 전자상거래 서비스 관련 정보를 관리하기 위한 효율적인 방법을 제안할 필요성이 커지고 있다.
관련하여, KR101756594B1 건 또는 KR101500849B1 건 등의 선행문헌들을 참조할 수 있다.
본 발명의 방법에 따르면, 전자 장치는 획득한 업데이트 요청을 분류하여 분류된 업데이트 요청에 대하여 동일한 모듈을 이용하여 병렬적으로 처리하고, 동일한 분류에 속하는 업데이트 요청에 대하여 순차 처리할 수 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예들은, 전자 장치에서 카탈로그 정보를 관리하는 방법 및 이를 지원하는 전자 장치를 제공할 수 있다.
다양한 실시예들에 따른 전자 장치에서 카탈로그 정보 관리 방법은, 브랜드 식별 정보를 포함하는 제1요청을 획득하는 단계, 상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드(main thread)에, 상기 제1요청을 기반으로 스토어 카탈로그를 업데이트 하기 위하여 상기 제1요청을 할당하는 단계, 상기 제1메인 쓰레드를 통해 상기 제1요청을 기반으로 스토어 리스트 정보 및 브랜드 카탈로그 정보를 획득하는 단계, 상기 스토어 리스트 정보를 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 브랜드 카탈로그 정보에 기반하여 업데이트하는 단계, 및 상기 제1요청에 따른 업데이트의 완료에 대응하여 제1완료 메시지를 생성하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 제1메인 쓰레드에 대응하는 브랜드 식별 정보를 포함하고, 상기 제1요청 이후에 획득된 제2요청을 확인하는 단계, 및 상기 제1요청에 따른 업데이트의 완료에 대응하여 상기 제2요청에 따른 스토어 카탈로그 업데이트를 위하여 상기 제2요청을 상기 제1메인 쓰레드에 할당하는 단계를 더 포함할 수 있다.
예시적 실시예에서, 상기 제1메인 쓰레드와 상이한 제2메인 쓰레드에 대응하는 브랜드 식별 정보를 포함하는 제3요청을 획득하는 단계, 상기 제2메인 쓰레드에 상기 제3요청을 기반으로 상기 제3요청을 할당하는 단계, 및 상기 제3요청을 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 제3요청을 기반으로 획득된 브랜드 카탈로그 정보에 기반하여 업데이트 하는 단계를 더 포함할 수 있다.
예시적 실시예에서, 상기 제1요청을 할당하는 단계는, 복수개의 메인 쓰레드 중 상기 브랜드 식별 정보를 기반으로 생성된 해싱(hashing)값에 대응하는 상기 제1메인 쓰레드를 결정하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 할당하는 단계는, 메시지 분류 모듈을 통해, 상기 브랜드 식별 정보에 기초하여 상기 제1요청을 적어도 하나의 토픽 가운데 하나로 분류하고, 상기 분류된 토픽에 포함되는 적어도 하나의 파티션(partition) 가운데 상기 제1요청의 브랜드 식별 정보에 대응하는 제1파티션에 상기 제1요청을 할당하는 단계, 상기 제1파티션에 대응하는 제1서버로 상기 제1요청을 전달하는 단계, 상기 제1서버를 통해, 상기 제1파티션에 대응하는 구독자 쓰레드(subscriber thread)로 상기 제1요청을 할당하는 단계, 및 상기 구독자 쓰레드를 통해, 상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드에 상기 제1요청을 할당하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 메시지 분류 모델에서 제1요청을 할당하는 단계는, 상기 브랜드 식별 정보를 해싱하고, 상기 브랜드 식별 정보를 기반으로 생성된 해싱값에 대응하는 상기 제1파티션에 상기 제1요청을 할당하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 구독자 쓰레드에서 제1요청을 할당하는 단계는, 상기 구독자 쓰레드에 할당된 상기 제1요청에 기반하여 상기 브랜드 식별 정보를 기반으로 생성된 해싱값에 대응하는 상기 제1메인 쓰레드에 상기 제1요청을 할당하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 업데이트하는 단계는, 상기 제1메인 쓰레드를 통해, 상기 확인된 적어도 하나의 스토어 각각에 대응하는 적어도 하나의 서브 쓰레드(sub thread)로 상기 제1요청을 할당하는 단계, 및 상기 서브 쓰레드 각각을 통해, 상기 브랜드 카탈로그 정보에 기반하여 상기 서브 쓰레드 각각에 대응하는 스토어의 스토어 카탈로그 정보를 업데이트하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 제1메인 쓰레드에 대응하는 브랜드 식별 정보를 포함하고, 상기 제1요청 이후에 획득된 제2요청을 확인하는 단계, 상기 제1메인 쓰레드를 통해, 상기 제1요청에 대응하여 생성된 모든 서브 쓰레드의 업데이트가 모두 완료되었는지 여부를 확인하는 단계, 및 상기 제1메인 쓰레드를 통해, 상기 모든 서브 쓰레드의 업데이트 완료에 대응하여 상기 제2요청에 따른 업데이트를 처리하는 단계를 더 포함할 수 있다.
예시적 실시예에서, 상기 업데이트하는 단계는, 상기 확인된 적어도 하나의 스토어 가운데 추가 식별 정보가 지정된 스토어가 존재하는지 여부를 확인하는 단계, 상기 추가 식별 정보에 기반하여, 상기 적어도 하나의 스토어 가운데 업데이트 대상 스토어를 확인하는 단계, 및 상기 업데이트 대상 스토어의 스토어 카탈로그 정보를 업데이트하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 제1요청은, 브랜드 식별 정보 및 업데이트 동작을 정의하는 동작 정보를 포함하고, 상기 동작 정보는: 상기 브랜드 카탈로그 정보에 기반하여, 상기 스토어 카탈로그 정보의 적어도 일부를 변경하는 동작, 상기 스토어 카탈로그 정보에 데이터를 추가하는 동작, 상기 스토어 카탈로그 정보의 적어도 일부를 삭제하는 동작, 및 상기 브랜드 카탈로그 정보를 상기 스토어 카탈로그 정보로 복제하는 동작 가운데 적어도 하나를 포함할 수 있다.
예시적 실시예에서, 상기 제1요청은, 브랜드 식별 정보에 대응하는 적어도 하나의 브랜드 상품에 대한 브랜드 상품 식별 정보를 더 포함하고, 상기 브랜드 카탈로그 정보는, 적어도 하나의 브랜드 상품에 대한 브랜드 상품 정보를 포함하고, 상기 업데이트하는 단계는, 상기 적어도 하나의 브랜드 상품 식별 정보에 대응하는 브랜드 상품에 대한 브랜드 상품 정보에 기반하여 상기 스토어 카탈로그 정보를 업데이트하는 단계를 포함할 수 있다.
예시적 실시예에서, 상기 브랜드 상품 정보는 상품명 항목 및 상품 가격 항목이 적어도 포함된 복수의 항목에 관한 데이터를 포함하고, 상기 업데이트하는 단계는, 상기 확인된 적어도 하나의 스토어 가운데 추가 식별 정보가 지정된 스토어를 확인하는 단계, 및 상기 복수의 항목 중 일부 항목에 대응하는 데이터에 기반하여 상기 추가 식별 정보가 지정된 스토어의 스토어 카탈로그 정보를 업데이트하는 단계를 포함할 수 있다.
다양한 실시예들에 따른 카탈로그 정보를 관리하는 전자 장치는, 스토리지, 및 프로세서를 포함하고, 상기 프로세서는, 브랜드 식별 정보를 포함하는 제1요청을 획득하고, 상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드(main thread)에, 상기 제1요청을 기반으로 스토어 카탈로그를 업데이트 하기 위하여 상기 제1요청을 할당하고, 상기 제1메인 쓰레드를 통해 상기 제1요청을 기반으로 스토어 리스트 정보 및 브랜드 카탈로그 정보를 획득하고, 상기 스토어 리스트 정보를 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 브랜드 카탈로그 정보에 기반하여 업데이트하고, 상기 제1요청에 따른 업데이트의 완료에 대응하여 제1완료 메시지를 생성하도록 설정될 수 있다.
본 발명은 전자 장치가 획득한 업데이트 요청을 분류하여 분류된 업데이트 요청에 대하여 동일한 모듈을 이용하여 병렬적으로 처리하고, 동일한 분류에 속하는 업데이트 요청에 대하여 순차 처리하는 방법을 제시하여, 업데이트 요청의 처리 순서가 변경되지 않도록 하여 데이터의 무결성을 보장하는 기술적 효과 갖는다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 다양한 실시예들에 따른 전자 장치가 카탈로그 정보를 관리하는 방법이 구현될 수 있는 카탈로그 정보 관리 시스템을 설명하기 위한 도면이다.
도 2는 다양한 실시예들에 따른 전자 장치 및 전자 장치에 연동된 디바이스의 구성을 도시한 도면이다.
도 3은 다양한 실시예들에 따른 카탈로그 정보를 관리하는 전자 장치의 동작흐름도이다.
도 4는 다양한 실시예에 따른 전자 장치가 업데이트 요청을 처리하는 동작 방법을 예시적으로 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 카탈로그 정보를 관리하는 전자 장치의 동작흐름도이다.
도 6은 일 실시예에 따른 전자 장치가 업데이트 요청을 처리하는 동작 방법을 예시적으로 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 카탈로그 정보를 관리하는 전자 장치의 동작흐름도이다.
이하의 실시예들은 다양한 실시예들의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및 특징들을 결합하여 다양한 실시예들을 구성할 수도 있다. 다양한 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
도면에 대한 설명에서, 다양한 실시예들의 요지를 흐릴 수 있는 절차 또는 단계 등은 기술하지 않았으며, 당해 기술분야에서 통상의 지식을 가진 자의 수준에서 이해할 수 있을 정도의 절차 또는 단계는 또한 기술하지 아니하였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함(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은 다양한 실시예들에 따른 카탈로그 정보를 관리하는 전자 장치의 동작흐름도이다.
도 3을 참조하면, 전자 장치(100)는 카탈로그 정보 관리 시스템을 제공할 수 있다. 카탈로그 정보 관리 시스템을 제공하기 위한 전자 장치(100)는 제1요청을 획득하고(S301), 제1요청을 기반으로 메인 쓰레드에 제1요청을 할당하고(S303), 제1요청을 기반으로 스토어 리스트 및 브랜드 카탈로그 정보를 획득하고(S305), 브랜드 카탈로그 정보에 기반하여 적어도 하나의 스토어의 스토어 카탈로그 정보를 업데이트 할 수 있다(S309).
다양한 실시예에 따르면, 카탈로그 정보는, 하나 이상의 상품에 관한 정보를 포함할 수 있다. 일 실시예에 따르면, 카탈로그 정보는 하나 이상의 상품 각각에 대한 식별 정보(예: 상품 ID(identification))에 대한 리스트를 포함할 수 있다. 일 실시예에 따르면, 카탈로그 정보는 각각의 상품 식별 정보 별로 대응되는 상품에 관한 정보, 예컨대 상품명, 가격, 타입, 상품 이미지, 상품의 설명 및/또는 상품의 옵션에 관한 정보를 포함할 수 있다.
다양한 실시예에 따르면, 브랜드 카탈로그 정보는, 지정된 브랜드에서 관리하는 상품(예: 브랜드 상품)의 카탈로그 정보를 포함할 수 있다. 예컨대, 동일한 브랜드에 대응하는 카탈로그 정보가 브랜드 카탈로그 정보에 포함될 수 있다. 일 실시예에 따르면, 브랜드 카탈로그 정보는 대응되는 브랜드에 대한 브랜드 식별 정보(예: 브랜드 ID)를 포함할 수 있다. 일 실시예에 따르면, 브랜드 카탈로그 정보는 브랜드 식별 정보에 대응하는 모든 브랜드 상품에 대한 브랜드 상품 식별 정보(예: 브랜드 상품 ID)를 포함할 수 있고, 각각의 브랜드 상품 식별 정보에 대응되는 브랜드 상품에 관한 정보(예: 브랜드 상품 정보), 예컨대 상품명, 가격, 타입, 상품 이미지, 상품의 설명 및/또는 상품의 옵션에 관한 정보를 포함할 수 있다.
다양한 실시예에 따르면, 스토어 카탈로그 정보는, 오프라인 매장(스토어)에서 취급하는 상품(예: 스토어 상품)의 카탈로그 정보를 포함할 수 있다. 스토어는 지정된 스토어의 관리를 받는 직영점, 가맹점, 프랜차이즈점을 포함할 수 있다. 예컨대, 동일한 스토어에 대한 카탈로그 정보는 당해 스토어의 스토어 카탈로그 정보에 포함될 수 있다. 일 실시예에 따르면, 스토어 카탈로그 정보는 대응되는 스토어에 대한 스토어 식별 정보(예: 스토어 ID)를 포함할 수 있다. 일 실시예에 따르면, 스토어 카탈로그 정보는 스토어 식별 정보에 대응하는 모든 스토어 상품에 대한 스토어 상품 식별 정보(예: 스토어 상품 ID)를 포함할 수 있고, 각각의 스토어 상품 식별 정보에 대응되는 스토어 상품에 관한 정보(예: 스토어 상품 정보), 예컨대 상품명, 가격, 타입, 상품 이미지, 상품의 설명 및/또는 상품의 옵션에 관한 정보를 포함할 수 있다.
다양한 실시예에 따르면, 동작 S301에서, 전자 장치(100)는 카탈로그 업데이트를 위한 제1요청을 획득할 수 있다. 일 실시예에 따르면, 제1요청은, 카탈로그 업데이트를 위한 업데이트 요청의 일 예로서, 업데이트 요청은 전자 장치(100)가 전자 장치(100)와 연동된 디바이스(200)로부터 수신한 요청, 명령 및/또는 메시지를 포함할 수 있다. 일 실시예에 따르면, 업데이트 요청은 브랜드 식별 정보, 브랜드 상품 정보 및 업데이트 동작을 정의하는 동작 정보를 포함할 수 있다. 일 실시예에 따르면, 업데이트 요청은 전자 장치(100)가 입/출력부(210)를 통하여 사용자로부터 수신한 입력에 따라 생성된 메시지를 포함할 수 있다.
다양한 실시예에 따르면, 동작 S303에서, 전자 장치(100)는 제1요청을 기반으로 결정된 메인 쓰레드(main thread)에 제1요청을 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1요청을 기반으로, 제1요청을 처리할 메인 쓰레드를 결정할 수 있다. 메인 쓰레드는 업데이트 요청(예: 제1요청)에 따른 동작의 처리 단위로 이해될 수 있다. 일 실시예에 따르면, 메인 쓰레드는 전자 장치(100)의 프로세서(240)에 의하여 실행되는 일련의 인스트럭션 가운데 일부를 포함할 수 있다. 일 실시예에 따르면, 메인 쓰레드(예: 제1메인 쓰레드)는 제1요청을 기반으로 결정될 수 있다. 예를 들어, 메인 쓰레드는 브랜드 식별 정보를 기초로 결정될 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1요청에 포함된 브랜드 식별 정보를 해싱(hashing)할 수 있다. 전자 장치(100)는 지정된 해시 함수를 저장할 수 있고, 해시 함수에 기반하여 해싱된 브랜드 식별 정보의 해싱값에 기반하여 스토어 카탈로그 업데이트를 하기 위한 메인 쓰레드를 결정할 수 있다.
다양한 실시예에 따르면, 동작 S305에서, 전자 장치(100)는 제1요청을 기반으로 스토어 리스트 및 브랜드 카탈로그 정보를 획득할 수 있다. 스토어 리스트는, 업데이트 요청(예: 제1요청)에 포함된 브랜드 식별 정보에 대응되는 스토어들의 리스트를 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1요청에 대응되는 브랜드 식별 정보를 기반으로, 브랜드에 대응되는 스토어 식별 정보의 목록을 읽어 들일 수 있다. 일 실시예에 따르면, 전자 장치(100)는 스토리지(230)에 브랜드 식별 정보에 대응되는 스토어 식별 정보의 목록을 저장할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 브랜드 식별 정보를 기반으로 브랜드 식별 정보에 대응되는 브랜드의 브랜드 카탈로그 정보를 읽어 들일 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1요청에 대응되는 메인 쓰레드(예: 제1메인 쓰레드)를 통해 제1요청을 기반으로 스토어 리스트 정보 및 브랜드 카탈로그 정보를 획득할 수 있다.
다양한 실시예에 따르면, 동작 S307에서, 전자 장치(100)는 브랜드 카탈로그 정보에 기반하여 적어도 하나의 스토어의 스토어 카탈로그 정보를 업데이트 할 수 있다. 일 실시예에 따르면, 업데이트 요청은 브랜드 카탈로그 정보에 기반하여, 스토어 카탈로그 정보를 업데이트하기 위한 요청일 수 있다. 일 실시예에 따르면, 업데이트 요청은 브랜드 카탈로그 정보를 업데이트(예: 변경) 할 경우 획득될 수 있다. 브랜드 카탈로그 정보가 업데이트된 경우, 스토어 카탈로그 정보에 브랜드 카탈로그 정보를 일괄적으로 반영할 필요성이 생길 수 있고, 브랜드 카탈로그 정보를 복제(duplicate)하거나, 브랜드 카탈로그 정보에 기반하여 스토어 카탈로그 정보의 적어도 일부를 변경(update), 삭제(delete)하거나, 스토어 카탈로그 정보에 지정된 데이터를 추가(insert)할 수 있다. 예컨대, 업데이트 요청에 포함되는 동작 정보는 브랜드 카탈로그 정보에 기반하여, 스토어 카탈로그 정보의 적어도 일부를 변경하는 동작, 스토어 카탈로그 정보에 데이터를 추가하는 동작, 스토어 카탈로그 정보의 적어도 일부를 삭제하는 동작 및/또는 브랜드 카탈로그 정보를 스토어 카탈로그 정보로 복제하는 동작 가운데 적어도 하나를 포함할 수 있다. 일 실시예에 따르면, 업데이트 요청은 브랜드 식별 정보를 포함할 수 있다. 브랜드 식별 정보는, 업데이트 요청이 어떤 브랜드에 대응되는 브랜드 카탈로그 정보를 업데이트 하기 위한 요청인지 식별하기 위한 정보를 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 포함된 브랜드 상품 식별 정보에 기반하여 변경, 추가 또는 삭제된 브랜드 상품에 관한 정보를 읽어 들일 수 있다. 전자 장치(100)는 적어도 하나의 브랜드 상품 식별 정보에 대응하는 브랜드 상품에 대한 브랜드 상품 정보에 기반하여 스토어 카탈로그 정보를 업데이트할 수 있다. 예를 들어, 전자 장치(100)는 스토어 카탈로그 정보에서 브랜드 상품 식별 정보와 대응되는 스토어 상품 식별 정보를 확인하고, 업데이트된 브랜드 상품 정보에 기반하여 스토어 상품 식별 정보에 대응되는 스토어 상품 정보를 업데이트할 수 있다.
다양한 실시예에 따르면, 동작 S409에서, 전자 장치(100)는 제1요청에 따른 업데이트 완료에 대응하여 제1완료 메시지를 생성할 수 있다. 일 실시예에 따르면, 업데이트 완료란 제1요청에 대응되는 모든 스토어의 스토어 카탈로그 정보가 제1요청에 기반하여 업데이트된 상태로 이해될 수 있다. 전자 장치(100)는 모든 스토어에 대한 업데이트가 완료되었는지 여부를 확인할 수 있다. 업데이트 완료 메시지는 업데이트의 완료를 표시하거나 알리는 메시지일 수 있다. 일 실시예에 따르면, 업데이트 완료 메시지는 업데이트 요청 완료에 대응하여 생성되는 추가적인 인스트럭션을 포함할 수 있다. 예컨대, 업데이트 완료 메시지는 업데이트 완료에 따라 전자 장치(100)가 통신부(220)를 통해 업데이트가 완료되었음을 표시하는 신호 또는 데이터를 전자 장치(100)에 연동되는 디바이스(200) 및/또는 외부 전자 장치(미도시)로 전송하는 인스트럭션을 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 완료 메시지를 입/출력부(210)를 통해 표시할 수 있다.
도 4는 다양한 실시예에 따른 전자 장치가 업데이트 요청을 처리하는 동작 방법을 예시적으로 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치(100)는, 하나 이상의 업데이트 요청(400)을 획득할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 하나 이상의 업데이트 요청(400)을 각각의 업데이트 요청 별로 순차적으로 획득할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 하나 이상의 업데이트 요청(400)을 업데이트 요청 각각에 기반하여 결정되는 메인 쓰레드에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청 각각을 기반으로, 업데이트 요청을 처리할 메인 쓰레드를 결정할 수 있다. 일 실시예에 따르면, 메인 쓰레드는 브랜드 식별 정보를 기초로 결정될 수 있다. 도 4를 참조하면, 제1요청(401)에 기반하여 제1메인 쓰레드(410)가 결정될 수 있다. 제1메인 쓰레드(410)는 제1요청(401)에 포함된 브랜드 식별 정보(brand 1)에 기반하여 결정될 수 있다. 도 4를 참조하면, 전자 장치(100)는 제3요청(403)에 포함된 브랜드 식별 정보(brand 2)에 기초하여 제3요청(403)을 제2메인 쓰레드(420)에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 서로 다른 메인 쓰레드에서 수행되는 업데이트 동작을 병렬적으로 처리할 수 있다. 도 4를 참조하면, 서로 다른 브랜드 식별 정보를 포함하는 제1요청(401) 및 제3요청(403)은 각각 제1메인 쓰레드(410) 및 제2메인 쓰레드(420)에서 병렬적 및/또는 비동기적으로 처리될 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 메인 쓰레드를 통해, 업데이트 요청에 기반하여 스토어 리스트 및 브랜드 카탈로그 정보를 획득할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 대응되는 브랜드 식별 정보를 기반으로, 브랜드에 대응되는 스토어 식별 정보의 목록을 읽어 들일 수 있다(S401). 도 4를 참조하면, 전자 장치(100)는 제1메인 쓰레드(410)를 통하여, 제1요청(401)에 포함된 브랜드 식별 정보(brand 1)에 대응되는 스토어 리스트 정보를 불러 들일 수 있고, 스토어 리스트 정보에 대응되는 각각의 스토어에 대하여 브랜드 카탈로그 정보에 기반하여 스토어 카탈로그 정보를 업데이트하는 동작(S401)을 실행할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 메인 쓰레드를 통하여 하나 이상의 서브 쓰레드(sub thread)를 생성할 수 있다. 서브 쓰레드는 업데이트 요청에 따른 동작의 처리 단위로 이해될 수 있다. 일 실시예에 따르면, 서브 쓰레드는 전자 장치(100)의 프로세서(240)에 의하여 실행되는 일련의 인스트럭션 가운데 일부를 포함할 수 있다. 예컨대, 서브 쓰레드는 대응되는 메인 쓰레드로부터 생성되거나, 하나의 메인 쓰레드에 대응하는 하나 이상의 쓰레드를 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 스토어 리스트 정보에 대응되는 각각의 스토어 별로 서브 쓰레드를 생성할 수 있다. 각각의 서브 쓰레드는 서로 독립적, 병렬적, 비동기적으로 카탈로그 업데이트 요청에 따른 동작을 수행할 수 있다. 도 4를 참조하면, 전자 장치(100)는 제1서브 쓰레드(411)를 통해, 제1스토어(store 1)의 스토어 카탈로그를 브랜드 카탈로그에 기반하여 업데이트할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 어느 지정된 시점에 존재하는 서브 쓰레드의 개수를 지정된 개수 이하로 조절할 수 있고, 전자 장치(100)는 서브 쓰레드 의 개수를 가변적으로 조절할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 하나의 서브 쓰레드에 대하여 하나 이상의 스토어에 대한 스토어 카탈로그 업데이트를 수행할 수 있다. 예컨대, 전자 장치(100)는 제1서브 쓰레드(411)를 통해 제1스토어(store 1)에 대한 업데이트가 종료될 경우 제7스토어(store 7)에 대한 업데이트를 수행할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 따른 업데이트 완료에 대응하여 업데이트 완료 메시지를 생성할 수 있다. 전자 장치(100)는 모든 스토어에 대한 업데이트가 완료되었는지 여부를 확인할 수 있다(S403). 예컨대, 전자 장치(100)는 동일한 요청에 기반하여 생성된 모든 서브 쓰레드의 동작이 완료되는지 확인할 수 있다. 도 4를 참조하면, 전자 장치(100)는 제1요청(401)에 따른 업데이트가, 모든 서브 쓰레드에서 완료되는 경우, 업데이트 메시지를 생성할 수 있다(예: 도 3의 동작 S309). 업데이트 완료 메시지는 업데이트의 완료를 표시하거나 알리는 메시지일 수 있다. 일 실시예에 따르면, 업데이트 완료 메시지는 업데이트 요청 완료에 대응하여 생성되는 추가적인 인스트럭션을 포함할 수 있다. 예컨대, 업데이트 완료 메시지는 업데이트 완료에 따라 전자 장치(100)가 통신부(220)를 통해 업데이트가 완료되었음을 표시하는 신호 또는 데이터를 전자 장치(100)에 연동되는 디바이스(200) 및/또는 외부 전자 장치(미도시)로 전송하는 인스트럭션을 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 완료 메시지를 입/출력부(210)를 통해 표시할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 제1요청(401)에 따른 업데이트의 완료에 대응하여 제2요청(402)을 제1메인 쓰레드(410)에 할당할 수 있다. 도 4를 참조하면, 제2요청(402)은 제1요청(401)과 동일한, 제1메인 쓰레드(410)에 할당될 수 있다. 메인 쓰레드는 브랜드 식별 정보와 대응관계를 가질 수 있고, 전자 장치(100)는 메인 쓰레드와 브랜드 식별 정보 사이의 매핑 정보를 저장 및/또는 확인할 수 있다. 도 4를 참조하면, 제1요청(401)에 대응되는 제1브랜드(brand 1) 및 제2요청(402)에 대응되는 제5브랜드(brand 5)와 같이 하나 이상의 브랜드 식별 정보가 하나의 메인 쓰레드에 대응될 수 있다. 또 다른 예에서, 하나의 메인 쓰레드에 하나의 브랜드 식별 정보만이 대응될 수도 있다. 전자 장치(100)는 전자 장치(100)는 동일한 메인 쓰레드(예: 제1메인 쓰레드(410))에 대응되는 업데이트 요청을 순차적으로 처리할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청의 획득 순서에 따라 동일한 브랜드 식별 정보를 포함하는 하나 이상의 요청을 지정된 메시지 큐(queue)(404)에 적재할 수 있다. 전자 장치(100)는 제1요청(401)에 따른 업데이트의 완료 여부를 확인하고(S403)에 대응하여 큐(404)에 적재된 업데이트 요청 가운데 가장 선순위인 제2요청(402)을 제1메인 쓰레드(410)에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1메인 쓰레드(410)를 통해 제1요청(401)에 대응하여 생성된 모든 서브 쓰레드의 업데이트가 모두 완료되었는지 여부를 확인할 수 있다. 전자 장치(100)는 제1요청(401)에 대응하여 생성된 모든 서브 쓰레드의 업데이트가 모두 완료됨에 대응하여 제1요청(401)에 따른 업데이트가 완료됨을 확인할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1메인 쓰레드(410)를 통해 모든 서브 쓰레드의 완료에 대응하여 제2요청(402)을 풀링(pooling)할 수 있다. 예컨대, 제1메인 쓰레드(410)는 메시지 큐(404)에 대기 중인 제2요청(402)를 풀링하여 읽어 들일 수 있다.
일 실시예에 따르면, 스토어 카탈로그 정보에 데이터를 추가하는 동작의 경우는 브랜드 카탈로그 정보 상에 새로운 브랜드 상품 정보가 생성된 경우를 포함할 수 있다. 전자 장치(100)는 데이터를 추가하는 동작 정보 및 브랜드 상품 정보에 기반하여 스토어 카탈로그 정보에 브랜드 상품 정보를 추가할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 기반한 스토어 상품 정보 생성(추가)에 대응하여 해당하는 새로운 상품에 대한 스토어 상품 식별 정보를 생성할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 생성된 새로운 상품 식별 정보에 대한 데이터를 저장할 수 있고, 업데이트 과정 가운데 전자 장치(100)가 예기치 못하게 업데이트 세션을 종료하게 되는 경우(예: 전원 차단 등) 생성된, 새로운 상품 식별 정보에 기초하여 업데이트가 아직 수행되지 않은 스토어 리스트 및/또는 업데이트 요청을 확인할 수 있다.
일 실시예에 따르면, 스토어 카탈로그 정보에 브랜드 카탈로그 정보를 복제하는 동작의 경우, 전자 장치(100)는 데이터를 복제하는 동작 정보 및 브랜드 상품 정보에 기반하여 스토어 카탈로그 정보에 브랜드 상품 정보를 생성할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 기반한 스토어 상품 정보 생성에 대응하여 해당하는 새로운 상품에 대한 스토어 상품 식별 정보를 생성할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 생성된 새로운 상품 식별 정보에 대한 데이터를 저장할 수 있고, 업데이트 과정 가운데 전자 장치(100)가 예기치 못하게 업데이트 세션을 종료하게 되는 경우(예: 전원 차단 등) 생성된, 새로운 상품 식별 정보에 기초하여 업데이트가 아직 수행되지 않은 스토어 리스트 및/또는 업데이트 요청을 확인할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 기초하여 업데이트 완료 메시지를 저장할 수 있다. 일 실시예에 따르면, 업데이트 완료 메시지는, 예컨대, 제1요청에 따른 업데이트가 완료된 경우, 완료 시점에 대응하는 업데이트 현황 정보를 저장할 수 있다. 업데이트 현황 정보는, 일정 시점에 어떤 업데이트 요청이 어떤 모듈(예: 메인 쓰레드)에 할당되었는지에 관한 정보를 포함할 수 있고, 지정된 업데이트 요청에 대한 업데이트 완료 사실에 관한 정보를 포함할 수 있다. 전자 장치(100)는 업데이트 과정 가운데 전자 장치(100)가 예기치 못하게 업데이트 세션을 종료하게 되는 경우(예: 전원 차단 등) 업데이트 완료 메시지에 기초하여 업데이트 요청을 복구하고, 업데이트를 재개할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 완료 메시지에 기초하여 아직 수행되지 않은 업데이트 요청을 확인할 수 있다.
도 5는 일 실시예에 따른 카탈로그 정보를 관리하는 전자 장치의 동작흐름도이다.
도 5를 참조하면, 전자 장치(100)가 하나 이상의 업데이트 요청을 획득하는 경우 카탈로그 정보를 관리하는 방법을 수행하는 동작은, 제1요청을 획득하고(S501), 제1요청과 동일하게 분류되는 브랜드 식별 정보를 포함하는 제2요청을 획득하고(S503), 제1요청에 따른 업데이트 완료에 대응하여 제2요청을 제1메인 쓰레드에 할당하고(S505), 제2요청에 기반하여 스토어 카탈로그 정보를 업데이트하고(S507), 제2요청에 따른 업데이트 완료에 대응하여 제2완료 메시지를 생성(S509)할 수 있다.
일 실시예에 따르면, 제2요청은 제1요청과 동일하게 분류되는 업데이트 요청으로 이해될 수 있다. 예를 들어, 전자 장치(100)는 제2요청에 포함된 브랜드 식별 정보에 기반하여 제2요청을 제1메인 쓰레드에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제2요청의 브랜드 식별 정보에 기반하여 제2요청을 할당할 메인 쓰레드를 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 하나의 메인 쓰레드에 대응하여 한 번에 하나의 요청만을 처리할 수 있다. 예컨대, 제1요청 및 제2요청은 동일한 제1메인 쓰레드에 할당될 수 있고, 이 경우 전자 장치(100)는 제1요청에 따른 업데이트 완료를 확인하고, 업데이트 완료 확인에 기반하여 제2요청을 제1메인 쓰레드에 할당할 수 있다. 전자 장치(100)는 제2요청을 메인 쓰레드에 할당하기 전, 메시지 큐에 제2요청을 적재할 수 있고, 메시지 큐는 대응되는 메인 쓰레드에 할당될 업데이트 요청(또는 업데이트 요청들)을 적재할 수 있다. 전자 장치(100)는 제1요청에 따른 업데이트 완료에 따라 메시지 큐에 적재된 제2요청을 제1메인 쓰레드에 할당할 수 있다.
도 6은 일 실시예에 따른 전자 장치가 업데이트 요청을 처리하는 동작 방법을 예시적으로 설명하기 위한 도면이다.
도 6을 참조하면, 전자 장치(100)는 하나 이상의 업데이트 요청(400)을 획득할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 하나 이상의 업데이트 요청(400)을 각각의 업데이트 요청 별로 순차적으로 획득할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 메시지 분류 모듈(610)을 통해 하나 이상의 업데이트 요청(400)을 적어도 하나의 토픽(topic) 가운데 하나로 분류하고, 분류된 토픽 가운데 적어도 하나의 파티션(partition) 가운데 지정된 파티션에 각각의 업데이트 요청을 할당할 수 있다. 메시지 분류 모듈(610)은 분산 메시지 구조를 포함할 수 있다. 예를 들어, 메시지 분류 모듈(610)은 복수의 메시지(예: 하나 이상의 업데이트 요청(400))를 집중하여 할당 받고, 지정된 조건에 기반하여 분류함으로써, 하나 이상의 모듈에 분산하여 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 메시지 분류 모듈(610)을 이용하여 복수의 업데이트 요청을 비동기적으로 병렬 처리할 수 있다. 메시지 분류 모듈(610)은 전자 장치(100)의 스토리지(230)에 저장되며, 프로세서(240)를 통하여 실행되는 인스트럭션의 조합으로 구현될 수 있다. 일 실시예에 따르면, 메시지 분류 모듈(610)은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있으며, 하나 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다. 예를 들어, 메시지 분류 모듈(610)은 Kafka, RabbitMQ와 같은 메시지 브로커 소프트웨어로 구현될 수 있다.
일 실시예에 따르면, 전자 장치(100)는 획득된 업데이트 요청을 적어도 하나의 토픽 가운데 하나로 분류할 수 있다. 토픽은, 이벤트 및/또는 메시지(예: 업데이트 요청)을 구별하는 메시지 스트림으로 이해될 수 있다. 예를 들어, 업데이트 요청은 메시지 분류 모듈(610)의 지정된 토픽으로 할당될 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 지정된 토픽에 포함된, 하나 이상의 파티션 가운데 하나에 업데이트 요청을 할당할 수 있다. 일 실시예에 따르면, 하나의 토픽은 하나 이상의 파티션으로 분류될 수 있다. 전자 장치(100)는 업데이트 요청을 하나 이상의 파티션 가운데 하나에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청(예: 제1요청(401))에 포함된 브랜드 식별 정보에 기반하여 업데이트 요청이 분류될 파티션을 결정할 수 있다. 예를 들어, 전자 장치(100)는 제1요청(401)의 경우 브랜드 식별 정보(Brand 1)에 기반하여 제1요청(401)을 제1파티션(Partition 1)에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 브랜드 식별 정보를 해싱한 해싱값에 기반하여 업데이트 요청의 파티션을 결정할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1요청에 포함된 브랜드 식별 정보를 해싱(hashing)할 수 있다. 전자 장치(100)는 지정된 해시 함수를 저장할 수 있고, 해시 함수에 기반하여 해싱된 브랜드 식별 정보의 해싱값에 기반하여 업데이트 요청이 할당될 파티션을 결정할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 파티션에 할당된 업데이트 요청을, 업데이트 요청이 할당된 파티션에 대응되는 서버로 전달할 수 있다. 서버(예: Server 1)는 전자 장치(100) 프로세서(240) 및/또는 스토리지(230) 상에 기능적으로 구현된 가상 서버(virtual server), 모듈 및/또는 데이터 스트림을 포함할 수 있다. 일 실시예에 따르면, 서버는 하나 이상의 파티션과 대응될 수 있다. 예를 들어, 하나 이상의 서버는 하나 이상의 파티션과 일대일, 다대다, 일대다, 다대일의 관계로 대응될 수 있다. 도 6을 참조하면, 제1서버(Server 1)은 제1구독자 쓰레드(Subscriber Thread 1)(620), 제2구독자 쓰레드(Subscriber Thread 2)(622)와 같은 하나 이상의 구독자 쓰레드를 생성 및/또는 발행할 수 있다. 일 실시예에 따르면, 구독자 쓰레드는 파티션과 대응관계를 형성할 수 있다. 예를 들면, 하나의 구독자 쓰레드는 하나의 파티션과 일대일로 대응될 수 있다. 도 6을 참조하면, 전자 장치(100)는 제1파티션(Partition 1)에 대응되는 제1서버(610)로 제1요청(401)을 전달하고, 제1서버(610)를 통해 제1파티션과 대응되는 제1구독자 쓰레드로 제1요청(401)을 할당할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 구독자 쓰레드를 통해 하나 이상의 업데이트 요청(400)을 하나 이상의 메인 쓰레드에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청 각각을 기반으로, 업데이트 요청을 처리할 메인 쓰레드를 결정할 수 있다. 일 실시예에 따르면, 메인 쓰레드는 브랜드 식별 정보를 기초로 결정될 수 있다. 일 실시예에 따르면, 전자 장치(100)는 구독자 쓰레드를 통해, 업데이트 요청에 포함된 브랜드 식별 정보를 해싱(hashing)할 수 있다. 전자 장치(100)는 해싱된 브랜드 식별 정보의 해싱값에 기반하여 업데이트 요청의 메인 쓰레드를 결정할 수 있다. 도 6을 참조하면, 제1요청(401)의 경우 브랜드 식별 정보(Brand 1)에 기초하여 제1메인 쓰레드(630)에 할당될 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 하나의 업데이트 요청에 따른 업데이트의 완료에 대응하여 후속 업데이트 요청(예: 제1요청(401))을 메인 쓰레드(예: 제1메인 쓰레드(630))에 할당할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 구독자 쓰레드를 통하여 동일한 메인 쓰레드로 할당된 하나 이상의 요청을 하나의 메시지 큐(queue)(예: 제1큐(631))에 적재할 수 있다. 메시지 큐(예: 제1큐(631))에 적재된 하나 이상의 요청은 메인 쓰레드에서 이전 요청에 따른 업데이트가 완료됨에 대응하여 메인 쓰레드로부터 풀링될 수 있다. 메시지 큐(예: 제1큐(631))는 선입선출(first-in first-out, FIFO) 방식으로 업데이트 요청을 적재할 수 있다. 도 6을 참조하면, 제1요청(401)은 제1구독자 쓰레드(620)를 통해 제1메인 쓰레드(630)로 분류될 수 있고, 제1큐(631)에 적재되며, 제1메인 쓰레드(630)에서 제1요청(401) 이전에 제1큐(631)에 적재된 모든 업데이트 요청에 따른 업데이트가 완료되면 제1요청(401)은 제1메인 쓰레드(630)로부터 풀링될 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 메인 쓰레드를 통해, 업데이트 요청에 기반하여 스토어 리스트 및 브랜드 카탈로그 정보를 획득할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 대응되는 브랜드 식별 정보를 기반으로 브랜드 상품 정보를 획득할 수 있다(S601). 일 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 대응되는 브랜드 식별 정보를 기반으로, 브랜드에 대응되는 스토어 식별 정보의 목록을 읽어 들일 수 있다(S603). 도 4를 참조하면, 전자 장치(100)는 제1메인 쓰레드(630)를 통하여, 제1요청(401)에 포함된 브랜드 식별 정보(brand 1)에 대응되는 스토어 리스트 정보를 불러 들일 수 있고, 스토어 리스트 정보에 대응되는 각각의 스토어에 대하여 브랜드 카탈로그 정보에 기반하여 스토어 카탈로그 정보를 업데이트하는 동작을 실행할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 메인 쓰레드를 통하여 하나 이상의 서브 쓰레드(sub thread)(640)를 생성할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 스토어 리스트 정보에 대응되는 각각의 스토어 별로 서브 쓰레드를 생성할 수 있다. 또 다른 실시예에 따르면, 서브 쓰레드(640)는 기 생성되어 있을 수 있다. 즉, 메인 쓰레드가 업데이트 요청에 대응하여 생성하는 경우 이외에, 기 존재하는 서브 쓰레드(640) 각각에 메인 쓰레드가 제1요청을 할당할 수 있다. 각각의 서브 쓰레드는 서로 독립적, 병렬적, 비동기적으로 카탈로그 업데이트 요청에 따른 동작을 수행할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 하나의 서브 쓰레드에 대하여 하나 이상의 스토어에 대한 스토어 카탈로그 업데이트를 수행할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 메인 쓰레드를 통해 각 스토어에 대응되는 서브 쓰레드를 생성하고, 각 서브 쓰레드 별로 대응되는 스토어에 대한 업데이트 동작을 지시하는 요청, 메시지 및/또는 인스트럭션을 할당할 수 있다. 메인 쓰레드를 통해 할당된 요청, 메시지 및/또는 인스트럭션은 메시지 큐(예: 제2큐(641))에 적재될 수 있으며, 제2큐(641)에 적재된 각각의 요청, 메시지 및/또는 인스트럭션은 적재 순서대로 서브 쓰레드의 동작 완료에 대응하여 서브 쓰레드로 풀링될 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 업데이트 요청에 따른 업데이트 완료에 대응하여 업데이트 완료 메시지를 생성할 수 있다. 전자 장치(100)는 모든 스토어에 대한 업데이트가 완료되었는지 여부를 확인할 수 있다. 예컨대, 전자 장치(100)는 동일한 요청에 기반하여 생성된 모든 서브 쓰레드의 동작이 완료되는지 확인할 수 있다. 도 6을 참조하면, 전자 장치(100)는 업데이트 요청에 따른 업데이트가, 모든 서브 쓰레드에서 완료되는 경우, 업데이트 메시지를 생성할 수 있다(S605). 업데이트 완료 메시지는 업데이트의 완료를 표시하거나 알리는 메시지일 수 있다. 일 실시예에 따르면, 업데이트 완료 메시지는 업데이트 요청 완료에 대응하여 생성되는 추가적인 인스트럭션을 포함할 수 있다. 예컨대, 업데이트 완료 메시지는 업데이트 완료에 따라 전자 장치(100)가 통신부(220)를 통해 업데이트가 완료되었음을 표시하는 신호 또는 데이터를 전자 장치(100)에 연동되는 디바이스(200) 및/또는 외부 전자 장치(미도시)로 전송하는 인스트럭션을 포함할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 지정된 조건에 기초하여 별도의 메인 쓰레드 및 서브 쓰레드를 확보할 수 있다. 예를 들면, 전자 장치(100)는 지정된 브랜드에 대하여 별도의 독립된 메인 쓰레드를 구성할 수 있다. 예컨대, 하나의 요청에 대하여 과다한 서브 쓰레드의 생성이 예정된 브랜드의 경우, 즉, 스토어 및/또는 브랜드 상품의 종류가 과다한 브랜드의 경우 별도의 독립된 메인 쓰레드를 구성할 수 있다. 전자 장치(100)는 이 경우 브랜드 식별 정보에 기초하여 지정된 브랜드에 대응되는 요청의 영우 특정 메인 쓰레드에만 할당되도록 설정될 수 있다.
도 7은 일 실시예에 따른 카탈로그 정보를 관리하는 전자 장치의 동작흐름도이다.
다양한 실시예에 따르면, 동작 S701에서, 전자 장치(100)는 제1요청을 기반으로 스토어 리스트 및 브랜드 카탈로그 정보를 획득할 수 있다. 스토어 리스트는, 업데이트 요청(예: 제1요청)에 포함된 브랜드 식별 정보에 대응되는 스토어들의 리스트를 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1요청에 대응되는 브랜드 식별 정보를 기반으로, 브랜드에 대응되는 스토어 식별 정보의 목록을 읽어 들일 수 있다. 일 실시예에 따르면, 전자 장치(100)는 스토리지(230)에 브랜드 식별 정보에 대응되는 스토어 식별 정보의 목록을 저장할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 브랜드 식별 정보를 기반으로 브랜드 식별 정보에 대응되는 브랜드의 브랜드 카탈로그 정보를 읽어 들일 수 있다.
다양한 실시예에 따르면, 동작 S702에서, 전자 장치(100)는 추가 식별 정보(예: 플래그(flag))가 지정된 스토어를 확인할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 스토어 리스트를 확인하고, 추가 식별 정보가 지정된 스토어를 확인할 수 있다. 추가 식별 정보, 예컨대 플래그는 스토어 리스트에 포함된 하나 이상의 스토어 가운데 일부 또는 전부를 식별하기 위한 정보를 포함할 수 있다. 일 실시예에 따르면, 추가 식별 정보는 하나 이상의 종류로 구별될 수 있다. 예를 들면, 점주 관리 매장의 경우 지정된 브랜드에 소속되어 있더라도 브랜드의 관리를 일체 받지 않는 경우와 같이, 브랜드 카탈로그 정보와 독립적으로 스토어 카탈로그 정보를 관리하는 매장일 수 있고, 제1플래그가 설정될 수 있다. 또 다른 예를 들면, 가격 관리 매장의 경우 상품들의 가격만을 브랜드 카탈로그 정보와 독립적으로 관리하는 매장일 수 있다. 가격관리 매장의 경우 제2플래그가 설정될 수 있다. 점주 관리 매장 및 가격 관리 매장의 경우에 대하여만 서술하였으나, 플래그의 설정 방법, 양태, 성격 및/또는 기준은 다양하게 설정될 수 있을 것이다. 전자 장치(100)는 플래그가 지정되지 않은 스토어의 경우 S703으로 진행하여 동작하고, 플래그가 설정된 스토어의 경우 S704로 진행하여 동작할 수 있다. 한편 실시 예에서 플래그는 설명의 편의를 위해 예시적으로 사용되는 용어이며, 해당 스토어의 카테고리를 식별할 수 있는 정보를 포함할 수 있다. 특정 브랜드에 포함되는 스토어 중 이와 같은 식별 정보를 기반으로 스토어의 정보를 업데이트 하는 방식을 결정할 수 있다.
일 실시예에 따르면, 동작 S703에서, 전자 장치(100)는 제1요청에 기반하여 스토어 카탈로그 정보를 업데이트 할 수 있다. 동작 S703의 경우 플래그가 설정되지 않은 스토어의 경우이므로 이는 도 3 및 도 5에서 서술한 카탈로그 정보 관리 동작과 같이 설명될 수 있다.
다양한 실시예에 따르면, 동작 704에서, 전자 장치(100)는 제1요청 및 플래그 정보에 기반하여 스토어 카탈로그 정보를 업데이트 할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 플래그 정보에 기반하여 스토어 리스트 상의 적어도 하나의 스토어 가운데 업데이트 대상 스토어를 확인할 수 있다. 예컨대, 전자 장치(100)는 플래그가 설정된 스토어의 경우 업데이트를 수행하지 않을 수 있다. 전자 장치(100)는 스토어 카탈로그 정보를 업데이트 할, 업데이트 대상 스토어에서 플래그가 설정된 스토어를 무시, 제거 및/또는 삭제할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 플래그 정보에 기반하여 업데이트 동작을 변경할 수 있다. 카탈로그 정보는, 하나 이상의 상품 에 관한 정보를 포함할 수 있다. 일 실시예에 따르면, 카탈로그 정보는 각각의 상품 식별 정보 별로 대응되는 상품에 관한 정보, 예컨대 상품명, 가격, 타입, 상품 이미지, 상품의 설명 및/또는 상품의 옵션에 관한 하나 이상의 항목에 관한 정보를 포함할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 플래그가 설정된 스토어를 확인하고, 플래그가 설정된 스토어의 경우 브랜드 카탈로그 정보가 포함하는, 하나 이상의 항목 가운데 일부 항목에 대응하는 데이터에 기반하여 스토어 카탈로그 정보를 업데이트 할 수 있다. 예를 들면, 전자 장치(100)는 가격 관리 매장의 경우, 브랜드 카탈로그 정보를 기반으로 하되, 가격 항목을 제외한 나머지 일부 항목에 대응하는 데이터에 기반하여 스토어 카탈로그 정보를 업데이트 할 수 있다.
일 실시예에 따르면, 전자 장치(100)는 동작 S703 및 동작 S704에서 수행될 수 있는, 모든 스토어에 대한 업데이트 동작의 완료 여부를 확인하고(S705), 완료가 확인된 경우 제1완료 메시지를 생성할 수 있다(S706).
한편 실시 예에서 특정 업데이트 지시에 대응하여 업데이트 될 스토어의 개수가 기 설정된 값 이상일 경우, 해당 업데이트를 수행하는 메인 쓰레드를 별도로 설정할 수 있으며, 해당 메인 쓰레드와 연관된 서브 쓰레드도 가변적으로 할당할 수 있다. 또한 스토어 업데이트 과정에서 업데이트를 수행하는 서브 쓰레드의 개수를 가변적으로 조정할 수 있으며, 이를 통해 카달로그 업데이트를 보다 효과적으로 수행할 수 있다.
전술한 실시 예들에 따른 장치는 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서 상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.

Claims (15)

  1. 전자 장치에서 카탈로그 정보 관리 방법에 있어서,
    브랜드 식별 정보를 포함하는 제1요청을 획득하는 단계;
    상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드(main thread)에, 상기 제1요청을 기반으로 스토어 카탈로그를 업데이트 하기 위하여 상기 제1요청을 할당하는 단계;
    상기 제1메인 쓰레드를 통해 상기 제1요청을 기반으로 스토어 리스트 정보 및 브랜드 카탈로그 정보를 획득하는 단계;
    상기 스토어 리스트 정보를 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 브랜드 카탈로그 정보에 기반하여 업데이트하는 단계; 및
    상기 제1요청에 따른 업데이트의 완료에 대응하여 제1완료 메시지를 생성하는 단계를 포함하되,
    상기 제1요청은 상기 브랜드 카탈로그 정보를 업데이트할 경우 획득되고,
    상기 브랜드 식별 정보에 대응되는 브랜드가 지정된 조건을 만족하는 경우, 상기 제1 메인 쓰레드는 상기 브랜드 식별 정보에 대응되는 요청만을 처리하는 독립 메인 쓰레드이고,
    상기 스토어 리스트 정보는 상기 제1요청에 포함된 상기 브랜드 식별 정보에 대응되는 스토어들의 리스트를 포함하고,
    상기 업데이트하는 단계는,
    상기 확인된 적어도 하나의 스토어 가운데 추가 식별 정보가 지정된 스토어가 존재하는지 여부를 확인하는 단계;
    상기 추가 식별 정보에 기반하여, 상기 적어도 하나의 스토어 가운데 업데이트 대상 스토어를 확인하는 단계; 및
    상기 업데이트 대상 스토어의 스토어 카탈로그 정보를 업데이트하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1메인 쓰레드에 대응하는 브랜드 식별 정보를 포함하고, 상기 제1요청 이후에 획득된 제2요청을 확인하는 단계; 및
    상기 제1요청에 따른 업데이트의 완료에 대응하여 상기 제2요청에 따른 스토어 카탈로그 업데이트를 위하여 상기 제2요청을 상기 제1메인 쓰레드에 할당하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제1메인 쓰레드와 상이한 제2메인 쓰레드에 대응하는 브랜드 식별 정보를 포함하는 제3요청을 획득하는 단계;
    상기 제2메인 쓰레드에 상기 제3요청을 기반으로 상기 제3요청을 할당하는 단계; 및
    상기 제3요청을 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 제3요청을 기반으로 획득된 브랜드 카탈로그 정보에 기반하여 업데이트 하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 제1요청을 할당하는 단계는,
    복수개의 메인 쓰레드 중 상기 브랜드 식별 정보를 기반으로 생성된 해싱(hashing)값에 대응하는 상기 제1메인 쓰레드를 결정하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    상기 할당하는 단계는,
    메시지 분류 모듈을 통해, 상기 브랜드 식별 정보에 기초하여 상기 제1요청을 적어도 하나의 토픽 가운데 하나로 분류하고, 상기 분류된 토픽에 포함되는 적어도 하나의 파티션(partition) 가운데 상기 제1요청의 브랜드 식별 정보에 대응하는 제1파티션에 상기 제1요청을 할당하는 단계;
    상기 제1파티션에 대응하는 제1서버로 상기 제1요청을 전달하는 단계;
    상기 제1서버를 통해, 상기 제1파티션에 대응하는 구독자 쓰레드(subscriber thread)로 상기 제1요청을 할당하는 단계; 및
    상기 구독자 쓰레드를 통해, 상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드에 상기 제1요청을 할당하는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 메시지 분류 모듈에서 제1요청을 할당하는 단계는,
    상기 브랜드 식별 정보를 해싱하고, 상기 브랜드 식별 정보를 기반으로 생성된 해싱값에 대응하는 상기 제1파티션에 상기 제1요청을 할당하는 단계를 포함하는 방법.
  7. 제5항에 있어서,
    상기 구독자 쓰레드에서 제1요청을 할당하는 단계는,
    상기 구독자 쓰레드에 할당된 상기 제1요청에 기반하여 상기 브랜드 식별 정보를 기반으로 생성된 해싱값에 대응하는 상기 제1메인 쓰레드에 상기 제1요청을 할당하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 업데이트하는 단계는,
    상기 제1메인 쓰레드를 통해, 상기 확인된 적어도 하나의 스토어 각각에 대응하는 적어도 하나의 서브 쓰레드(sub thread)로 상기 제1요청을 할당하는 단계; 및
    상기 서브 쓰레드 각각을 통해, 상기 브랜드 카탈로그 정보에 기반하여 상기 서브 쓰레드 각각에 대응하는 스토어의 스토어 카탈로그 정보를 업데이트하는 단계를 포함하는 방법.
  9. 제8항에 있어서,
    상기 제1메인 쓰레드에 대응하는 브랜드 식별 정보를 포함하고, 상기 제1요청 이후에 획득된 제2요청을 확인하는 단계;
    상기 제1메인 쓰레드를 통해, 상기 제1요청에 대응하여 생성된 모든 서브 쓰레드의 업데이트가 모두 완료되었는지 여부를 확인하는 단계; 및
    상기 제1메인 쓰레드를 통해, 상기 모든 서브 쓰레드의 업데이트 완료에 대응하여 상기 제2요청에 따른 업데이트를 처리하는 단계를 더 포함하는 방법.
  10. 삭제
  11. 제1항에 있어서,
    상기 제1요청은, 브랜드 식별 정보 및 업데이트 동작을 정의하는 동작 정보를 포함하고,
    상기 동작 정보는:
    상기 브랜드 카탈로그 정보에 기반하여,
    상기 스토어 카탈로그 정보의 적어도 일부를 변경하는 동작;
    상기 스토어 카탈로그 정보에 데이터를 추가하는 동작;
    상기 스토어 카탈로그 정보의 적어도 일부를 삭제하는 동작; 및
    상기 브랜드 카탈로그 정보를 상기 스토어 카탈로그 정보로 복제하는 동작 가운데 적어도 하나를 포함하는 방법.
  12. 제1항에 있어서,
    상기 제1요청은, 브랜드 식별 정보에 대응하는 적어도 하나의 브랜드 상품에 대한 브랜드 상품 식별 정보를 더 포함하고,
    상기 브랜드 카탈로그 정보는, 적어도 하나의 브랜드 상품에 대한 브랜드 상품 정보를 포함하고,
    상기 업데이트하는 단계는,
    상기 적어도 하나의 브랜드 상품 식별 정보에 대응하는 브랜드 상품에 대한 브랜드 상품 정보에 기반하여 상기 스토어 카탈로그 정보를 업데이트하는 단계를 포함하는 방법.
  13. 제12항에 있어서,
    상기 브랜드 상품 정보는 상품명 항목 및 상품 가격 항목이 적어도 포함된 복수의 항목에 관한 데이터를 포함하고,
    상기 업데이트하는 단계는,
    상기 확인된 적어도 하나의 스토어 가운데 추가 식별 정보가 지정된 스토어를 확인하는 단계; 및
    상기 복수의 항목 중 일부 항목에 대응하는 데이터에 기반하여 상기 추가 식별 정보가 지정된 스토어의 스토어 카탈로그 정보를 업데이트하는 단계를 포함하는 방법.
  14. 카탈로그 정보를 관리하는 전자 장치에 있어서,
    스토리지; 및
    프로세서를 포함하고,
    상기 프로세서는,
    브랜드 식별 정보를 포함하는 제1요청을 획득하고,
    상기 브랜드 식별 정보를 기반으로 결정된 제1메인 쓰레드(main thread)에, 상기 제1요청을 기반으로 스토어 카탈로그를 업데이트 하기 위하여 상기 제1요청을 할당하고,
    상기 제1메인 쓰레드를 통해 상기 제1요청을 기반으로 스토어 리스트 정보 및 브랜드 카탈로그 정보를 획득하고,
    상기 스토어 리스트 정보를 기반으로 확인된 적어도 하나의 스토어의 스토어 카탈로그 정보를, 상기 브랜드 카탈로그 정보에 기반하여 업데이트하고,
    상기 제1요청에 따른 업데이트의 완료에 대응하여 제1완료 메시지를 생성하고,
    상기 제1요청은 상기 브랜드 카탈로그 정보를 업데이트할 경우 획득되고,
    상기 브랜드 식별 정보에 대응되는 브랜드가 지정된 조건을 만족하는 경우, 상기 제1 메인 쓰레드는 상기 브랜드 식별 정보에 대응되는 요청만을 처리하는 독립 메인 쓰레드이고,
    상기 스토어 리스트 정보는 상기 제1요청에 포함된 상기 브랜드 식별 정보에 대응되는 스토어들의 리스트를 포함하고,
    상기 업데이트하는 것은, 상기 확인된 적어도 하나의 스토어 가운데 추가 식별 정보가 지정된 스토어가 존재하는지 여부를 확인하고, 상기 추가 식별 정보에 기반하여, 상기 적어도 하나의 스토어 가운데 업데이트 대상 스토어를 확인하고, 상기 업데이트 대상 스토어의 스토어 카탈로그 정보를 업데이트하는 것을 포함하도록 설정된, 전자 장치.
  15. 제1항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록 매체.
KR1020220039446A 2022-03-30 2022-03-30 카탈로그 정보를 관리하는 전자 장치 및 그 방법 KR102681240B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220039446A KR102681240B1 (ko) 2022-03-30 카탈로그 정보를 관리하는 전자 장치 및 그 방법
PCT/KR2022/004764 WO2023191160A1 (ko) 2022-03-30 2022-04-04 카탈로그 정보를 관리하는 전자 장치 및 그 방법
TW112112157A TW202338685A (zh) 2022-03-30 2023-03-30 管理目錄資訊之電子裝置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220039446A KR102681240B1 (ko) 2022-03-30 카탈로그 정보를 관리하는 전자 장치 및 그 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020240085762A Division KR20240110920A (ko) 2024-06-28 카탈로그 정보를 관리하는 전자 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20230140779A KR20230140779A (ko) 2023-10-10
KR102681240B1 true KR102681240B1 (ko) 2024-07-04

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100525072B1 (ko) * 2005-03-31 2005-10-28 대한민국 온톨로지 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100525072B1 (ko) * 2005-03-31 2005-10-28 대한민국 온톨로지 시스템

Similar Documents

Publication Publication Date Title
JP7202369B2 (ja) マルチテナントapiゲートウェイにおいてテナント分離を提供するためのマイクロサービスコンテナの活用
JP6691533B2 (ja) コンピューティングリソースの配置ポリシーベースの割当て
US10223024B2 (en) Storage controller for provisioning storage services for an application based upon application-specific requirements
US10503714B2 (en) Data placement and sharding
US11169846B2 (en) System and method for managing tasks and task workload items between address spaces and logical partitions
KR102077580B1 (ko) 복사된 메시지 리스트를 제공하는 방법과 시스템 및 비-일시적인 컴퓨터 판독가능한 기록 매체
US10380081B2 (en) Pre-building containers
US11663143B2 (en) Multi-state midtier dynamic cache replacement
KR102681240B1 (ko) 카탈로그 정보를 관리하는 전자 장치 및 그 방법
US11681666B2 (en) “Bouncing” IO pattern for replication protocols
KR20170031131A (ko) 가상 스트림 및 처리 에이전트를 이용한 스트림 기반 이벤트 처리 기법
KR20230140779A (ko) 카탈로그 정보를 관리하는 전자 장치 및 그 방법
KR20240110920A (ko) 카탈로그 정보를 관리하는 전자 장치 및 그 방법
KR102403609B1 (ko) 데이터 서빙 구조 설정을 위한 동작 방법 및 이를 지원하는 전자 장치
US11367249B2 (en) Tool for viewing 3D objects in 3D models
CN113163257B (zh) 投屏方法、装置、设备及存储介质
KR102630187B1 (ko) 서비스 정보를 관리하는 방법 및 이를 지원하는 전자 장치
KR102620192B1 (ko) 정보를 제공하는 방법 및 이를 위한 전자 장치
JP7310510B2 (ja) 照明システム、照明装置および照明制御装置
TW202411903A (zh) 管理庫存資訊之方法及支援該方法之電子裝置
US9330079B1 (en) Systems and methods for blocking data management for distributed content delivery for interactive documents
KR20230157051A (ko) 아이템 배송을 위한 정보를 제공하는 전자 장치 및 그 방법
TW202407595A (zh) 提供資訊之電子裝置之動作方法及支持其之電子裝置
KR20240024573A (ko) 코드 정보를 제공하는 방법 및 이를 지원하는 전자 장치
KR20240105325A (ko) 서비스 정보를 관리하는 방법 및 이를 지원하는 전자 장치