KR102253362B1 - 전자 장치 및 이를 이용한 정보 제공 방법 - Google Patents

전자 장치 및 이를 이용한 정보 제공 방법 Download PDF

Info

Publication number
KR102253362B1
KR102253362B1 KR1020200122601A KR20200122601A KR102253362B1 KR 102253362 B1 KR102253362 B1 KR 102253362B1 KR 1020200122601 A KR1020200122601 A KR 1020200122601A KR 20200122601 A KR20200122601 A KR 20200122601A KR 102253362 B1 KR102253362 B1 KR 102253362B1
Authority
KR
South Korea
Prior art keywords
counter
information
cache
value
time
Prior art date
Application number
KR1020200122601A
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 KR1020200122601A priority Critical patent/KR102253362B1/ko
Priority to PCT/KR2020/013470 priority patent/WO2022065564A1/ko
Priority to JP2020175860A priority patent/JP7043116B1/ja
Priority to TW109142848A priority patent/TW202213120A/zh
Priority to US17/136,555 priority patent/US11182297B1/en
Priority to KR1020210060709A priority patent/KR102366011B1/ko
Application granted granted Critical
Publication of KR102253362B1 publication Critical patent/KR102253362B1/ko
Priority to US17/448,504 priority patent/US11544195B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Abstract

전자 장치의 정보 제공 방법이 개시된다. 정보 제공 방법은, 카운터 정보 요청을 수신하는 단계; 카운터와 관련된 캐시 데이터베이스로부터 상기 카운터 정보 요청에 대응하는 캐시 카운터 정보를 확인하는 단계; 및 상기 확인된 캐시 카운터 정보에 기초하여, 상기 카운터 정보 요청에 대응하는 응답 정보를 전송하는 단계를 포함할 수 있다.

Description

전자 장치 및 이를 이용한 정보 제공 방법{ELECTRONIC APPARATUS AND INFORMATION PROVIDING METHOD USING THE SAME}
본 개시는 전자 장치 및 이를 이용한 정보 제공 방법에 관한 것이다.
통상적으로 온라인에서 사용자에게 서비스를 제공하는 시스템은 프론트 엔드 서버와 백 엔드 서버로 구성될 수 있고, 백 엔드 서버에서 사용자에게 제공하는 정보를 관리하고, 프론트 엔드 서비는 백 엔드 서버로부터 수신한 정보를 사용자에게 적응적으로 제공할 수 있다.
이와 같은 서비스를 이용하는 사용자가 늘어나게 될 경우, 사용자에게 정보를 제공하기 위해서 프론트 엔드 서버의 데이터베이스에 접근이 늘어나게 되고, 정보를 제공하는 동안에 데이터베이스의 업데이트가 제한될 수 있으므로 사용자 증가에 따라 백 엔드 측의 데이터베이스의 부하가 늘어나게 될 수 있다.
이와 같은 환경에서 사용자에게 효과적으로 정보를 제공하면서, 데이터베이스의 부하를 줄일 수 있는 기술이 필요하다.
일본 공개특허공보 특개2008-146631호(2008.06.26.)
개시된 실시 예들은 전자 장치 및 이를 이용한 정보 제공 방법을 제공하고자 한다. 보다 구체적으로 메인 데이터베이스에 대한 액세스를 줄이고 상대적으로 빠른 시간 내에 프론트 엔드 서버로 관련 정보를 전송할 수 있는 정보 제공 방법 및 이를 이용한 전자 장치를 제공하는 것을 목적으로 한다.
또한 개시된 실시 예는 사용자에게 실제 데이터베이스에 저장된 정보에 근사하는 정보를 데이터베이스의 부하를 줄이면서 제공하고, 데이터베이스에 저장된 실제 정보의 변화를 기반으로 정보 제공을 위한 별도의 데이터베이스의 정보를 업데이트 하는 방식을 다르게 하여 사용자에게 필요한 정보를 제공할 수 있는 방법 및 이를 이용한 전자 장치를 제공하는 것을 목적으로 한다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
제1 실시 예에 따라, 전자 장치의 정보 제공 방법은 카운터 정보 요청을 수신하는 단계; 카운터와 관련된 캐시 데이터베이스로부터 상기 카운터 정보 요청에 대응하는 캐시 카운터 정보를 확인하는 단계; 및 상기 확인된 캐시 카운터 정보에 기초하여, 상기 카운터 정보 요청에 대응하는 응답 정보를 전송하는 단계를 포함할 수 있다.
실시 예에 따르면, 카운터 업데이트 요청을 수신하는 단계; 상기 카운터 업데이트 요청에 대응하여 상기 카운터와 관련된 메인 데이터베이스에 상기 카운터 업데이트 요청에 대응하는 카운터 정보를 업데이트 하는 단계; 및 상기 메인 데이터베이스에 저장된 카운터 정보를 기초로 상기 캐시 카운터 정보를 업데이트 하는 단계를 포함할 수 있다.
실시 예에 따르면, 상기 캐시 카운터 정보를 업데이트 하는 단계는, 상기 캐시 카운터 정보에 대응하는 업데이트 시간에 기초하여 상기 캐시 카운터 정보를 업데이트하는 단계를 포함할 수 있다.
실시 예에 따르면, 상기 메인 데이터베이스로부터 상기 캐시 카운터 정보에 대응하는 카운터 값 및 상기 카운터 값의 변화 속도 및 상기 카운터 값의 잔여값에 대한 정보 중 적어도 하나를 확인하는 단계를 포함할 수 있다.
실시 예에 따르면, 상기 카운터 값의 상기 잔여값이 기준값 이하인 경우, 상기 메인 데이터베이스에서 확인된 상기 카운터 정보에 기초하여 상기 카운터 정보 요청에 대응하는 상기 응답 정보를 전송하는 단계를 포함할 수 있다.
실시 예에 따르면, 상기 캐시 카운터 정보를 업데이트 하는 단계는 제1 시간에 기초하여 상기 캐시 카운터 정보를 업데이트한 이후, 제2 시간에 기초하여 상기 캐시 카운터 정보를 업데이트하는 단계를 포함하고, 상기 제1 시간과 상기 제2 시간 사이의 간격은, 상기 제1 시간에 상기 메인 데이터베이스로부터 확인된 상기 캐시 카운터 정보에 대응하는 카운터 값 및 상기 카운터 값의 변화 속도 및 상기 카운터 값의 잔여값에 대한 정보 중 적어도 하나에 기초하여 결정되는 것을 특징으로 할 수 있다.
실시 예에 따르면, 상기 제1 시간과 상기 제2 시간 사이의 간격은, 상기 카운터 값의 변화 속도가 기 설정된 속도 이상에 대응하는 경우, 이전 보다 줄어드는 것을 특징으로 할 수 있다.
실시 예에 따르면, 상기 제1 시간과 상기 제2 시간 사이의 간격은, 상기 카운터 값의 변화 속도와 기 설정된 속도 간의 비율이 특정 비율 이상에 대응하는 경우, 이전 보다 줄어드는 것을 특징으로 할 수 있다.
실시 예에 따르면, 상기 제1 시간과 상기 제2 시간 사이의 간격은, 상기 제1 시간 동안 확인된 상기 카운터 값의 잔여 값이 기준값 이하에 대응하는 경우, 이전 보다 줄어드는 것을 특징으로 할 수 있다.
실시 예에 따르면, 상기 업데이트 시간은, 상기 카운터 값의 변화 속도에 기초하여 결정되는 것을 특징으로 할 수 있다.
실시 예에 따르면, 상기 업데이트 시간은, 상기 카운터 값의 잔여값과 기준값의 비교에 기초하여 결정되는 것을 특징으로 할 수 있다.
제2 실시 예에 따르는 전자 장치는, 카운터 정보 요청을 수신하고, 상기 카운터 정보 요청에 대응하는 응답 정보를 전송하는 통신 디바이스; 제1 데이터베이스; 제2 데이터베이스; 및 카운터와 관련된 상기 제1 데이터베이스로부터 상기 카운터 정보 요청에 대응하는 캐시 카운터 정보를 확인하여, 상기 카운터 정보 요청에 대응하는 상기 응답 정보를 확인하는 제어부를 포함할 수 있다.
제3 실시 예에 따라, 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 비일시적 기록매체를 포함한다.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
제안되는 실시 예에 따를 경우 다음과 같은 효과를 하나 혹은 그 이상 기대할 수 있다.
본 명세서의 실시 예에 의할 경우, 프론트 엔드 서버의 카운터 정보 요청에 대응하여 캐시 데이터베이스를 이용하여 확인된 캐시 카운터 정보에 기초하여 응답 정보를 프론트 엔드 서버로 전송함으로써 메인 데이터베이스에 대한 액세스를 줄이고 상대적으로 대기시간이 감소될 수 있다. 이때, 메인 데이터베이스와 달리 캐시 데이터베이스는 특정 조건에 대응하는 경우 업데이트 시간 간격이 줄어들 수 있어, 캐시 데이터베이스에 저장된 캐시 카운터 정보가 보다 빈번하게 업데이트될 수 있다. 이로 인해, 메인 데이터베이스 보다 속도가 빠르고 더 많은 정보를 처리할 수 있는 캐시 데이터베이스를 이용하여 근사값을 제공함으로써, 메인 데이터베이스에 대한 액세스를 줄이고 요청에 대응하여 상대적으로 빠르게 처리할 수 있다.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 실시 예에 따른 서비스 제공을 위한 시스템을 나타낸다.
도 2는 전자 장치에서 수행하는 정보 제공 방법의 일 실시 예를 나타낸다.
도 3은 실시 예에 따른 캐시 카운터 정보에 대응하는 업데이트 시간을 결정하는 과정을 나타낸다.
도 4는 일 실시 예에 따른 전자 장치의 블록도를 나타낸다.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "~부", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서 기재된 "a, b, 및 c 중 적어도 하나"의 표현은, 'a 단독', 'b 단독', 'c 단독', 'a 및 b', 'a 및 c', 'b 및 c', 또는 'a,b,c 모두'를 포괄할 수 있다.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 개시의 실시 예들을 상세히 설명한다.
도 1은 일 실시 예에 따른 서비스 제공을 위한 시스템을 나타낸다.
도 1을 참조하면, 서비스 제공을 위한 시스템은 프론트 엔드 서버(front end server)(110) 및 백 엔드 서버(back end server)(120) 중에서 적어도 하나를 포함할 수 있다. 도 1에 도시된 시스템은 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
프론트 엔드 서버(110)와 백 엔드 서버(120)는 네트워크 내에서 서로 통신할 수 있다. 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
프론트 엔드 서버(110)는 사용자의 요청 및 서버 자체의 요청 중 적어도 하나를 기반으로 백 엔드 서버(120)로 카운터 정보 요청(130)을 전송할 수 있다. 백 엔드 서버(120)는 카운터 정보 요청(130)에 대응하는 응답 정보(140)를 프론트 엔드 서버(110)로 전송할 수 있다. 프론트 엔드 서버(110)는 수신한 응답 정보(140)를 출력부(111)를 통해 출력할 수 있다. 일 예에 따르면 사용자가 특정 페이지에 대한 정보 요청을 프론트 엔드 서버(110)에 할 경우, 프론트 엔드 서버(110)는 해당 페이지와 관련된 정보 요청을 백 엔드 서버(120)에 전송하고, 백 엔드 서버(120)는 정보 요청에 대응하여 복수의 데이터베이스 중 적어도 하나의 데이터베이스에 저장된 값을 프론트 엔드 서버(110)로 전송할 수 있다.
백 엔드 서버(120)는 제1 데이터베이스(121) 및 제2 데이터베이스(123) 중에서 적어도 하나를 포함할 수 있다. 여기서, 제1 데이터베이스(121)는 요청된 정보에 대응하는 캐싱된 정보가 저장되는 데이터베이스 일 수 있으며, 제2 데이터베이스(123)는 실제 정보에 대응하는 값이 저장되는 데이터베이스 일수 있다. 제1 데이터베이스(121)에 저장된 정보는 특정 시간 간격에 따라 제2 데이터베이스(123)를 기반으로 업데이트 될 수 있다. 일 예에 따르면 사용자 접근이 빈번한 정보에 대해서 백 엔드 서버(120)는 제1 데이터베이스(121)에 저장된 값을 기반으로 프론트 엔드 서버(110)에 정보를 제공하고, 특정 정보의 변경을 기록할 필요가 있을 경우 제2 데이터베이스(123)에서 상기 특정 정보의 변경에 대응하는 업데이트를 수행할 수 있다.
일 예에 따르면 제1 데이터베이스(121)는 캐시 카운터 정보를 저장하는 캐시 데이터베이스일 수 있고, 제2 데이터베이스(123)는 카운터 정보를 저장하는 메인 데이터베이스일 수 있다. 메인 데이터베이스와 구별되는 캐시 데이터베이스는 캐시 카운터 정보를 저장 및 로딩할 수 있으며, 메인 데이터베이스보다 속도가 빠르고 보다 많은 정보를 처리할 수 있다. 메인 데이터베이스가 카운터 정보에 접근하는 속도 보다 캐시 데이터베이스가 캐시 카운터 정보에 접근하는 속도가 상대적으로 더 빠를 수 있다. 이로 인해, 캐시 데이터베이스는 단위 시간당 더 많은 연산을 처리할 수 있다. 또한 실시 예에서 캐시 데이터베이스는 메인 데이터베이스와 관련된 서버의 로컬 메모리 또는 다른 서버의 메모리를 사용하여 구현될 수 있다. 실시 예에서 메인 데이터베이스와 대비되는 개념으로 캐시 데이터베이스를 언급하였으나 두 데이터 베이스는 다른 방식으로 구현될 수 있다.
이때 제1 데이터베이스(121)는 제2 데이터베이스(123)의 카운터 정보를 기반으로 캐시 카운터 정보를 생성할 수 있으며, 특정 시간 간격에 따라 제1 데이터베이스(121)는 캐시 카운터 정보를 제2 데이터베이스(123)의 카운터 정보를 기반으로 업데이트 할 수 있다. 카운터 정보 요청에 대응하여 전송되는 응답 정보는 캐시 데이터베이스에 저장된 캐시 카운터 정보에 기반하여 결정되는 것으로, 응답 정보는 메인 데이터베이스에 저장된 카운터 정보의 근사값일 수 있다. 구체적으로, 시간 T1과 시간 T2일 때 메인 데이터베이스에 저장된 카운터 정보에 기초하여 캐시 카운터베이스에 저장된 캐시 카운터 정보가 업데이트된 경우, 시간 T1과 T2 사이 프론트 엔드 서버로부터 카운터 정보 요청을 수신한 경우, 백 엔드 서버는 시간 T1에 업데이트된 캐시 데이터베이스에 저장된 캐시 카운터 정보에 기초하여 응답 정보를 전송할 수 있다. 이때, 응답 정보는 메인 데이터베이스에 저장된 카운터 정보에 대한 근사값일 수 있다.
제1 데이터베이스(121)는 캐시 카운터 정보를 저장할 수 있고, 제2 데이터베이스(123)는 카운터 정보를 저장할 수 있다. 카운터 정보는 카운터 값, 카운터 값의 변화 속도 및 카운터 값의 잔여값 중에서 적어도 하나를 포함할 수 있다. 캐시 카운터 정보는 캐시 카운터 값 및 캐시 카운터 값의 잔여값 중에서 적어도 하나를 포함할 수 있고, 캐시 카운터 정보는 카운터 정보를 기초로 결정될 수 있다.
이때, 카운터는 백 엔드 서버(120)에서 모니터링 또는 관리하는 수치 정보로서 증가하거나 감소하는 수치 정보일 수 있다. 이때, 카운터 값이 증가하는 수치 정보인 경우 카운터 값의 잔여값은 카운터 값에 대응하여 감소하는 수치 정보일 수 있고, 또는 카운터 값이 감소하는 수치 정보인 경우 카운터 값의 잔여값은 카운터 값에 대응하여 증가하는 수치 정보일 수 있다. 예를 들면, 백 엔드 서버(120)는 카운터를 이용하여 재고 관리나, 특정 이벤트와 관련된 예산 관리를 수행할 수 있다.
구체적으로, 시간 T0에서 제품 A에 대한 재고 10000개가 있는 경우, 시간 T1에서 제품 A에 대한 카운터 값은 500개, 카운터 값의 잔여값은 9500개, 카운터 값의 변화 속도는 VA이고, 시간 T2에서 제품 A에 대한 카운터 값은 2000개, 카운터 값의 잔여값은 8000개, 카운터 값의 변화 속도는 VB이고, 시간 T3에서 제품 A에 대한 카운터 값은 7000개, 카운터 값의 잔여값은 3000개, 카운터 값의 변화 속도는 VC일 수 있다. 다른 예를 들면, 백 엔드 서버(120)는 카운터를 이용하여 예산 관리를 수행할 수 있다. 또는, 시간 T0에서 예산 1억원이 있는 경우, 시간 T1에서 카운터 값은 1000만원, 카운터 값의 잔여값은 9000만원, 카운터 값의 변화 속도는 V1이고, 시간 T2에서 카운터 값은 3000만원, 카운터 값의 잔여값은 7000만원, 카운터 값의 변화 속도는 V2이고, 시간 T3에서 카운터 값은 6000만원, 카운터 값의 잔여값은 4000만원, 카운터 값의 변화 속도는 V3일 수 있다. 카운터는 재고 관리, 예산 관리에 한정되지 않으며, 수치 정보의 관리가 필요한 경우에도 적용될 수 있다.
백 엔드 서버(120)는 카운터를 이용하여 수치 정보를 모니터링 또는 관리할 수 있고, 프론트 엔드 서버(110)는 백 엔드 서버(120)에서 수신한 정보를 표시할 수 있다. 이때, 백 엔드 서버(120)는 제1 데이터베이스(121)를 통해 획득한 정보에 기초하여 응답 정보를 프론트 엔드 서버(110)로 전송할 수 있다. 이때, 제2 데이터베이스(123)에 저장된 카운터 정보에 기초하여 제1 데이터베이스(121)은 저장된 캐시 카운터 정보를 업데이트할 수 있다.
이때, 메인 데이터베이스인 제2 데이터베이스(123)는 카운터 정보가 변화할 때마다 관련 정보를 업데이트할 수 있다. 또는, 메인 데이터베이스인 제2 데이터베이스(123)는 실시간으로 관련 정보를 업데이트할 수 있다. 예를 들면, 재고 관리에서 카운터 정보가 변화한 경우 제2 데이터베이스(123)는 관련 정보를 업데이트할 수 있다.
또한, 캐시 데이터베이스인 제1 데이터베이스(121)는 제2 데이터베이스(123)로부터 획득한 정보에 기초하여 업데이트할 수 있다. 제1 데이터베이스(121)의 업데이트를 위해 제2 데이터베이스(123)에 빈번하게 액세스할 경우, 대기시간의 증가 및 처리량이 증가할 수 있다. 일정한 조건에서 재고 관리 또는 예산 관리의 경우 사용자에게 출력되는 정보는 실제 값이 아니라 실제 값의 근사 값이어도 충분하므로, 제1 데이터베이스(121)의 업데이트를 위해 제2 데이터베이스(123)에 빈번하게 액세스할 필요가 없고, 이에 대기시간의 감소 및 처리량이 감소할 수 있다. 다만 캐시 카운터 정보를 사용할 때 카운터 정보가 임계 값에 임박한 경우, 사용자에게 표시된 정보와 실제 정보가 상이하게 되면, 사용자에게 표시되는 정보와 사용자가 대응할 수 있는 정보가 달라질 수 있는바, 이 경우 실제 값에 대응하는 카운터 정보를 출력할 필요성이 발생한다. 사용자나 프론트 엔드 서버의 경우 동일 방식으로 카운터 정보를 요청할 수 있고, 백엔드 서버는 카운터 정보의 변화 상태나 현재 상태를 기반으로 어떤 데이터베이스에 저장된 정보를 리턴할지를 결정할 수 있으며, 위의 상태 정보를 기반으로 캐시 데이터베이스를 업데이트 하는 주기를 조절할 수도 있다.
이하, 제1 데이터베이스(121) 및 제2 데이터베이스(123)를 포함하는 백 엔드 서버(120)에서 수행하는 구체적인 동작을 기재한다.
도 2는 전자 장치에서 수행하는 정보 제공 방법의 일 실시 예를 나타낸다.
도 2를 참조하면, 단계 S210에서 전자 장치는 카운터 정보 요청을 수신할 수 있다. 이때, 전자 장치는 백 엔드 서버에 대응하는 기기로서, 프론트 엔드 서버로부터 카운터 정보 요청을 수신할 수 있다. 프론트 엔드 서버는 카운터 정보에 기초하여 수치 정보의 모니터링이 필요한 대상을 관리할 수 있다. 예를 들면, 수량이 제한된 제품을 판매할 경우, 백 엔드 서버는 제품의 수량 정보를 관리할 수 있고, 프론트 엔드 서버는 백 엔드 서버로부터 관련 정보를 수신하여 출력할 수 있다.
단계 S220에서, 전자 장치는 카운터와 관련된 캐시 데이터베이스로부터 카운터 정보 요청에 대응하는 캐시 카운터 정보를 확인할 수 있다. 백 엔드 서버에 대응하는 전자 장치는 캐시 카운터 정보를 저장하는 캐시 데이터베이스와 카운터 정보를 저장하는 메인 데이터베이스를 포함할 수 있다.
이때, 캐시 카운터 정보는 메인 데이터베이스에 저장된 카운터 정보를 기초로 업데이트될 수 있다. 구체적으로, 메인 데이터베이스는 카운터 정보가 변화할 때마다 또는 실시간으로 관련 정보를 업데이트할 수 있다. 메인 데이터베이스와 달리, 캐시 카운터베이스는 메인 데이터베이스에 저장된 카운터 정보를 기초로 캐시 카운터 정보를 업데이트할 수 있다. 보다 구체적으로, 전자 장치는 카운터 업데이트 요청을 수신할 수 있고, 전자 장치는 카운터 업데이트 요청에 대응하여 카운터와 관련된 메인 데이터베이스에 저장된 카운터 정보를 업데이트할 수 있다. 이때, 카운터 업데이트 요청은 카운터 정보가 변화할 때마다 또는 실시간으로 수신하는 요청일 수 있다.
또한, 전자 장치는 메인 데이터베이스에 저장된 카운터 정보를 기초로 캐시 카운터 정보를 업데이트할 수 있다. 이때, 캐시 카운터 정보는 캐시 카운터 값 및 캐시 카운터 값의 잔여값 중 적어도 하나를 포함할 수 있다. 여기서, 캐시 카운터 값은 메인 데이터베이스의 카운터 값에 대응할 수 있고, 캐시 카운터 값의 잔여값은 메인 데이터베이스의 잔여값에 대응할 수 있다. 이때, 카운터 정보와 달리, 전자 장치는 캐시 카운터 정보에 대응하는 업데이트 시간에 기초하여 캐시 카운터 정보를 업데이트할 수 있다. 즉, 캐시 데이터베이스에 저장된 캐시 카운터 정보는 업데이트 순간 메인 데이터베이스에 저장된 카운터 정보에 기초하여 결정될 수 있다. 예를 들면, 수량이 10000개로 제한된 제품을 판매할 경우, 시간 T1에서 메인 데이터베이스에 저장된 카운터 값 1000개, 카운터 잔여값 9000개인 경우, 시간 T1에 업데이트하는 캐시 데이터베이스에 저장된 캐시 카운터 값도 1000개, 캐시 카운터 값의 잔여값도 9000개일 수 있다. 또한, 시간 T2에서 메인 데이터베이스에 저장된 카운터 값 1020개, 카운터 잔여값 8980개인 경우, 시간 T2에 업데이트하는 캐시 데이터베이스에 저장된 캐시 카운터 값도 1020개, 캐시 카운터 값의 잔여값도 8980개일 수 있다.
여기서, 캐시 데이터베이스의 업데이트 시간은 카운터 정보에 기초하여 변할 수 있다. 구체적으로, 캐시 데이터베이스는 제1 시간에 기초하여 캐시 카운터 정보를 업데이트한 이후, 제2 시간에 기초하여 캐시 카운터 정보를 업데이트할 수 있다. 이때, 제1 시간과 제2 시간 사이의 간격은 제1 시간에 메인 데이터베이스로부터 확인된 캐시 카운터 정보에 대응하는 카운터 값 및 카운터 값의 변화 속도 및 카운터 값의 잔여값에 대한 정보 중 적어도 하나에 기초하여 결정될 수 있다. 보다 구체적으로, 시간 T1에 캐시 카운터 정보를 업데이트한 이후, 시간 T2에 캐시 카운터 정보를 업데이트한 이후, 시간 T3에 캐시 카운터 정보를 업데이트할 수 있다. 이때, T2와 T1 사이의 간격은 T1에 메인 데이터베이스로부터 확인된 카운터 정보에 기초하여 결정될 수 있고, T3와 T2 사이의 간격은 T2에 메인 데이터베이스로부터 확인된 카운터 정보에 기초하여 결정될 수 있다.
실시 예에 따르면, 현재 시간에 메인 데이터베이스로부터 확인된 카운터 값의 변화 속도가 기 설정된 속도 이상에 대응하는 경우, 업데이트하는 시간 간격은 줄어들 수 있다. 이때, 카운터 값의 변화 속도는 이전 시간(e.g. T0)일 때 카운터 값과 현재 시간(e.g. T1)일 때 카운터 값을 이용하여 결정될 수 있고, 기 설정된 속도는 통계에 기초하여 사전에 결정될 수 있다. 구체적으로, T1에 메인 데이터베이스로부터 확인된 카운터 값의 변화 속도가 기 설정된 속도 보다 작고, T2에 메인 데이터베이스로부터 확인된 카운터 값의 변화 속도가 기 설정된 속도 이상인 경우, T2와 T1 사이의 시간 간격 보다 T3와 T2 사이의 시간 간격은 줄어들 수 있다. 이는, 카운터 값의 변화 속도가 상대적으로 빠르다고 판단된 경우, 카운터 값을 보다 빈번하게 모니터링하기 위함이다.
실시 예에 따르면, 현재 시간에 메인 데이터베이스로부터 확인된 카운터 값의 변화 속도와 기 설정된 속도 간의 비율이 특정 비율 이상에 대응하는 경우, 업데이트하는 시간 간격은 줄어들 수 있다. 이때, 카운터 값의 변화 속도는 이전 시간(e.g. T0)일 때 카운터 값과 현재 시간(e.g. T1)일 때 카운터 값을 이용하여 결정될 수 있고, 기 설정된 속도와 특정 비율은 통계에 기초하여 사전에 결정될 수 있다. 구체적으로, T1에 메인 데이터베이스로부터 확인된 카운터 값의 변화 속도와 기 설정된 속도 간의 비율이 특정 비율 보다 작고, T2에 메인 데이터베이스로부터 확인된 카운터 값의 변화 속도와 기 설정된 속도 간의 비율이 특정 비율 이상인 경우, T2와 T1 사이의 시간 간격 보다 T3와 T2 사이의 시간 간격은 줄어들 수 있다. 이는, 카운터 값의 변화 속도가 상대적으로 빠르다고 판단된 경우, 카운터 값을 보다 빈번하게 모니터링하기 위함이다.
실시 예에 따르면, 현재 시간에 메인 데이터베이스로부터 확인된 카운터 값의 잔여값이 기준값 이하에 대응하는 경우, 업데이트하는 시간 간격은 줄어들 수 있다. 이때, 기준값은 통계에 기초하여 사전에 결정될 수 있다. 예를 들면, 기준값이 500으로 사전에 설정된 경우, T1에 메인 데이터베이스로부터 확인된 카운터 값의 잔여값이 530인 경우 T2와 T1 사이의 시간 간격은 이전처럼 유지되지만, T2에 메인 데이터베이스로부터 확인된 카운터 값의 잔여값이 495인 경우 T3와 T2 사이의 시간 간격은 T2와 T1 사이의 시간 간격 보다 줄어들 수 있다. 이는, 카운터 정보를 보다 빈번하게 모니터링하기 위함이다. 보다 구체적으로, 기준값은 기준값 1(e.g. 500), 기준값 2(e.g. 300), 기준값 3(e.g. 100)과 같이 복수로 세분화될 수 있다. 이때, 카운터 값의 잔여값이 각각의 기준값 이하에 대응할 때 업데이트하는 시간 간격은 보다 줄어들 수 있다. 예를 들면, T1에 카운터 값의 잔여값이 530이고 T2에 카운터 값의 잔여값이 495인 경우, T2와 T1 사이의 시간 간격은 이전처럼 유지되지만 T3와 T2 사이의 시간 간격은 T2와 T1 사이의 시간 간격보다 줄어들 수 있다. 이때, 카운터 값의 잔여값이 기준값 1과 기준값 2 사이에 대응하는 경우, T3와 T2 사이의 시간 간격이 유지될 수 있다. 만약, 카운터 값의 잔여값이 기준값 2 이하에 대응하는 경우, 시간 간격은 이전 보다 줄어들 수 있다. T11에 카운터 값의 잔여값이 317이고 T12에 카운터 값의 잔여값이 303이고 T13에 카운터 값의 잔여값이 294인 경우, T11과 T12 사이의 시간 간격과 T13과 T12 사이의 시간 간격은 T3와 T2 사이의 시간 간격에 대응할 수 있다. 다만, T13과 T14 사이의 시간 간격은 T13과 T12 사이의 시간 간격 보다 줄어들 수 있다. 이는 카운터 값의 잔여값이 '0'에 가까워질수록 보다 빈번하게 모니터링하기 위함이다. 만약, 카운터 값의 잔여값이 기준값 3 이하에 대응하는 경우, 시간 간격은 이전 보다 더 줄어들 수 있다. T25에 카운터 값의 잔여값이 111이고 T26에 카운터 값의 잔여값이 102이고 T27에 카운터 값의 잔여값이 98인 경우, T25와 T26 사이의 시간 간격과 T27과 T26 사이의 시간 간격은 T13과 T14 사이의 시간 간격에 대응할 수 있다. 다만, T27과 T28 사이의 시간 간격은 T27과 T26 사이의 시간 간격 보다 줄어들 수 있다. 만약, 카운터 값의 잔여값이 기준값 3 이하에 대응하는 경우, 캐시 데이터베이스는 거의 실시간으로 관련 정보를 업데이트할 수 있다. 따라서, 캐시 데이터베이스는 메인 데이터베이스에 저장된 카운터 정보를 참조하여 거의 실시간으로 관련 정보를 업데이트할 수 있다. 또는, 카운터 값의 잔여값이 기준값 3 이하에 대응하는 경우, 전자 장치는 메인 데이터베이스에서 확인된 카운터 정보에 기초하여 응답 정보를 결정할 수 있다. 즉, 응답 정보가 캐시 데이터베이스에서 확인된 정보에 기초하여 결정되지 않고 메인 데이터베이스에서 확인된 정보에 기초하여 결정될 수 있다. 카운터의 값의 잔여값이 기준값 3 이하인 경우, 잔여값이 '0'에 임박한 경우로서 보다 빈번하게 모니터링할 필요가 있기 때문이다.
또한, 실시 예에 따르면, 카운터 값, 카운터 값의 변화 속도 및 카운터 값의 잔여값을 모두 고려하여 캐시 데이터베이스는 캐시 카운터 정보를 업데이트할 수 있다.
단계 S230에서, 전자 장치는 확인된 캐시 카운터 정보에 기초하여, 카운터 정보 요청에 대응하는 응답 정보를 전송할 수 있다. 구체적으로, 캐시 데이터베이스가 카운터 정보에 기초하여 캐시 카운터 정보를 업데이트한 경우, 전자 장치는 캐시 카운터 정보를 확인할 수 있다. 이때, 전자 장치는 프론트 엔드 서버로부터 수신한 카운터 정보 요청에 대응하는 응답 정보를 프론트 엔드 서버로 전송할 수 있다. 여기서, 응답 정보는 확인된 캐시 카운터 정보에 기초하여 결정될 수 있다. 예를 들면, 수량이 10000개로 제한된 물품 판매인 경우, 전자 장치는 시간 T1에서 캐시 카운터 값 8240개, 캐시 카운터 값의 잔여값 1760개에 기초하여 응답 정보를 결정할 수 있고, 이를 프론트 엔드 서버로 전송할 수 있다. 카운터 정보 요청에 대응하여 메인 데이터베이스에 액세스하지 않고 캐시 데이터베이스에 액세스하여 응답 정보를 결정하고 이를 프론트 엔드 서버로 전송함으로써, 대기시간이 감소할 수 있으며, 메인 데이터베이스의 부하를 줄일 수 있다.
도 3은 실시 예에 따른 캐시 카운터 정보에 대응하는 업데이트 시간을 결정하는 과정을 나타낸다.
도 3을 참조하면, 전자 장치는 단계 S301에서 프론트 엔드 서버로부터 카운터 정보 요청을 수신할 수 있다. 카운터는 전자 장치에서 모니터링하는 수치 정보로서 증가하거나 감소하는 수치 정보일 수 있다. 전자 장치는 수치 정보를 관리할 수 있고, 프론트 엔드 서버는 전자 장치로부터 관련 정보를 수신할 수 있다. 이때, 카운터 정보를 저장하는 메인 데이터베이스는 카운터 정보가 변화할 때마다 관련 정보를 업데이트하거나 또는 실시간으로 관련 정보를 업데이트할 수 있다. 캐시 카운터 정보를 저장하는 캐시 데이터베이스는 업데이트 시간에 기초하여 캐시 카운터 정보를 업데이트할 수 있다. 캐시 데이터베이스에 저장된 캐시 카운터 정보는 업데이트 순간 메인 데이터베이스에 저장된 카운터 정보를 고려하여 결정될 수 있다. 시간 T1에 캐시 카운터 정보가 업데이트하는 경우, 메인 데이터베이스에 저장된 카운터 정보에 기초하여 캐시 카운터 정보를 업데이트할 수 있다. 이때, 전자 장치는 캐시 카운터 정보에 기초하여 응답 정보를 결정하고, 이를 프론트 엔드 서버로 전송할 수 있다. 이때, 캐시 카운터 정보에 대한 업데이트 시간은 고정되지 않은 값으로서, 특정 조건을 고려하여 결정될 수 있다. 예를 들면, 업데이트 시간은 카운터 값의 변화 속도에 기초하여 결정되거나 또는 카운터 값의 잔여값과 기준값의 비교에 기초하여 결정될 수 있다.
전자 장치는 단계 S303에서 특정 조건에 대응하는지 여부를 확인할 수 있다. 구체적으로, 전자 장치는 캐시 데이터베이스를 업데이트하는 순간 관련 정보를 모니터링할 수 있고, 관련 정보가 특정 조건에 대응하는지 여부를 확인할 수 있다. 단계 S305에서 전자 장치는 특정 조건에 대응하는 경우 업데이트 시간 간격을 조절할 수 있고, 단계 S307에서 전자 장치는 특정 조건에 대응하지 않는 경우 업데이트 시간 간격을 유지할 수 있다. 예를 들면, 카운터 값의 변화 속도가 기 설정된 속도 보다 작은 경우, 카운터 값과 캐시 카운터 값의 정확성이 일정 수준으로 유지될 수 있으므로 캐시 카운터 정보의 업데이트 시간 간격은 유지될 수 있다. 다만, 카운터 값의 변화 속도가 기 설정된 속도 이상인 경우, 카운터 값과 캐시 카운터 값의 정확성이 일정 수준으로 유지하기 위해 캐시 카운터 정보의 업데이트 시간 간격이 줄어들 수 있다. 즉, 캐시 카운터 정보를 보다 빈번하게 업데이트함으로써 캐시 카운터 정보와 카운터 정보 간의 정확성이 일정 수준으로 유지될 수 있다. 다른 예를 들면, 카운터 값의 잔여값이 기준값 이상인 경우, 일정 시간 내에 카운터 값의 잔여값이 '0'이 될 확률이 상대적으로 적으므로 캐시 카운터 정보의 업데이트 시간 간격은 유지될 수 있다. 다만, 카운터 값의 잔여값이 기준값 보다 작은 경우, 일정 시간 내에 카운터 값의 잔여값이 '0'이 될 확률이 상대적으로 높으므로 캐시 카운터 정보의 업데이트 시간 간격이 줄어들 수 있다. 이때, 기준값은 복수로 세분화될 수 있으며, 카운터 값의 잔여값이 각각의 기준값에 대응할 때 서로 다른 업데이트 시간 간격이 적용될 수 있다. 실시 예에서 카운터 값의 잔여 값이'0'이 되는 카운터 값을 임계 값으로 설정할 수 있다. 카운터 값이 임계 값에 도달할 경우, 사용자에게 표시되는 정보와 해당 정보를 기반으로 취할 수 있는 동작이 달라질 수 있는 바, 실제 카운터 값에 해당하는 카운터 값을 사용자에게 표시해줄 필요성이 있다. 이 경우 카운터 값이 임계 값에 도달하는 정도를 기반으로 캐시 데이터베이스를 업데이트 하는 시간 간격을 조절하거나, 카운터 값이 임계 값에 임박한 경우, 메인 데이터베이스의 카운터 값을 프론트 엔드 서버나 사용자에게 리턴함으로써 실제 카운터 값에 대응하는 정보를 사용자에게 제공할 수 있다. 메인 데이터베이스의 카운터 값을 직접 리턴하는 기준은 위의 캐시 데이터베이스를 업데이트 하는 시간 간격을 결정하는 방법과 유사하게 수행될 수 있으나, 메인 데이터베이스의 부하와 사용자 경험을 고려하여 그 기준 값을 결정할 수 있다.
또한 실시 예에서 캐시 데이터베이스의 캐시 카운터 값을 업데이트 할 때 복수개의 카운터 값에 대응하는 값을 메인 데이터베이스로부터 업데이트 하게 되면 캐시 카운터 값 업데이트로 인한 메인 데이터베이스의 부하가 증가할 수 있다. 현재 메인 데이터베이스의 부하 정도를 판단하여, 부하 정도가 높을 경우, 카운터 잔여 값이 특정 값 이상 남은 캐시 카운터에 대한 정보 업데이트 시기를 조절할 수 있으며, 일 예로 한 주기 동안의 업데이트를 생략하고, 다음 주기에 업데이트를 수행할 수 있다. 이와 같이 메인 데이터베이스의 부하 정도에 따라 캐시 카운터 값을 업데이트 하는 주기를 변경할 수 있다.
도 4는 일 실시 예에 따른 전자 장치의 블록도를 나타낸다.
전자 장치(400)는 일 실시예에 따라, 통신 디바이스(communication device)(410), 제1 데이터베이스(420), 제2 데이터베이스(430) 및 제어부(controller)(440)를 포함할 수 있다. 도 4에 도시된 전자 장치(400)는 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 4에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 전자 장치(400)는 전술한 전자 장치에 관한 내용을 포함할 수 있는 바, 중복되는 내용에 대해서는 설명을 생략한다.
통신 디바이스(410)는 유/무선 통신을 수행하기 위한 장치로서, 프론트 엔드 서버와 통신할 수 있다. 통신 디바이스(410)가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있을 수 있다. 실시 예에서 통신 디바이스(410)는 트랜시버로 언급될 수 있으며, 트랜시버를 통해 전자 장치(400)는 외부 노드와 정보를 교환할 수 있다.
제1 데이터베이스(420)는 캐시 카운터 정보를 저장하는 캐시 데이터베이스에 대응하며, 제2 데이터베이스(430)는 카운터 정보를 저장하는 메인 데이터베이스에 대응할 수 있다. 캐시 카운터 정보는 카운터 정보에 기초하여 결정될 수 있다.
제어부(440)는 전자 장치(400)의 전반의 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 제어부(440)는 적어도 하나의 하드웨어 유닛으로 구성될 수 있다. 또한, 제어부(440)는 메모리에 저장된 프로그램 코드를 실행하여 생성되는 하나 이상의 소프트웨어 모듈에 의해 동작할 수 있다. 제어부(440)는 프로세서 및 메모리를 포함할 수 있는 바, 프로세서는 메모리에 저장된 프로그램 코드를 실행하여 전자 장치(400)의 전반의 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 또한 실시 예에서 제어부(440)는 적어도 하나의 프로세서를 포함할 수 있다.
제어부(440)는 캐시 카운터 정보를 이용하여 프론트 엔드 서버로 응답 정보를 전송하므로, 메인 데이터베이스에 대한 액세스를 줄일 수 있을 뿐만 아니라 대기시간도 감소될 수 있다.
한편 실시 예 전반에서 서비스 제공 시스템을 프론트 엔드와 백 엔드로 나누어서 설명하였으나, 이는 개념적인 사항에 해당하고, 실제 구현에서 사용자 요청에 대응하여 데이터베이스에 저장된 정보를 제공하는 서버를 구비하는 서비스에는 본 명세서의 실시 예가 적용될 수 있음은 자명하다.
전술한 실시예들에 따른 전자 장치 또는 단말은, 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(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 (14)

  1. 전자 장치의 정보 제공 방법으로서,
    카운터 업데이트 요청을 수신하는 단계;
    메인 데이터베이스에 상기 카운터 업데이트 요청에 대응하는 카운터 정보를 업데이트 하는 단계; 및
    상기 메인 데이터베이스에 업데이트된 카운터 정보를 기초로 캐시 데이터베이스의 캐시 카운터 정보를 업데이트 하는 단계;
    카운터 정보 요청을 수신하는 단계;
    상기 캐시 데이터베이스로부터 상기 카운터 정보 요청에 대응하는 상기 캐시 카운터 정보를 확인하는 단계; 및
    상기 확인된 캐시 카운터 정보에 기초하여, 상기 카운터 정보 요청에 대응하는 응답 정보를 전송하는 단계를 포함하고,
    상기 캐시 카운터 정보를 업데이트 하는 단계는,
    제1 시간에 기초하여 캐시 카운터 정보를 업데이트한 이후, 제2 시간에 기초하여 캐시 카운터 정보를 업데이트하는 단계를 포함하고,
    상기 제1 시간과 상기 제2 시간 사이의 간격은, 상기 제1 시간에 상기 메인 데이터베이스로부터 확인된 상기 캐시 카운터 정보에 대응하는 카운터 값, 상기 카운터 값의 변화 속도 및 상기 카운터 값의 잔여값에 대한 정보 중 적어도 하나에 기초하여 결정되는 것을 특징으로 하는,
    정보 제공 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 캐시 카운터 정보를 업데이트 하는 단계는,
    상기 캐시 카운터 정보에 대응하는 업데이트 시간에 기초하여 상기 캐시 카운터 정보를 업데이트하는 단계를 포함하는,
    정보 제공 방법.
  4. 제1항에 있어서,
    상기 메인 데이터베이스로부터 상기 캐시 카운터 정보에 대응하는 카운터 값 및 상기 카운터 값의 변화 속도 및 상기 카운터 값의 잔여값에 대한 정보 중 적어도 하나를 확인하는 단계를 포함하는,
    정보 제공 방법.
  5. 제4항에 있어서,
    상기 카운터 값의 상기 잔여값이 기준값 이하인 경우, 상기 메인 데이터베이스에서 확인된 상기 카운터 정보에 기초하여 상기 카운터 정보 요청에 대응하는 상기 응답 정보를 전송하는 단계를 포함하는,
    정보 제공 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 제1 시간과 상기 제2 시간 사이의 간격은,
    상기 카운터 값의 변화 속도가 기 설정된 속도 이상에 대응하는 경우, 이전 보다 줄어드는 것을 특징으로 하는,
    정보 제공 방법.
  8. 제1항에 있어서,
    상기 제1 시간과 상기 제2 시간 사이의 간격은,
    상기 카운터 값의 변화 속도와 기 설정된 속도 간의 비율이 특정 비율 이상에 대응하는 경우, 이전 보다 줄어드는 것을 특징으로 하는,
    정보 제공 방법.
  9. 제1항에 있어서,
    상기 제1 시간과 상기 제2 시간 사이의 간격은,
    상기 제1 시간 동안 확인된 상기 카운터 값의 잔여 값이 기준값 이하에 대응하는 경우, 이전 보다 줄어드는 것을 특징으로 하는,
    정보 제공 방법.
  10. 제3항에 있어서,
    상기 업데이트 시간은, 상기 카운터 값의 변화 속도에 기초하여 결정되는 것을 특징으로 하는,
    정보 제공 방법.
  11. 제3항에 있어서,
    상기 업데이트 시간은, 상기 카운터 값의 잔여값과 기준값의 비교에 기초하여 결정되는 것을 특징으로 하는,
    정보 제공 방법.
  12. 제1항에 있어서,
    상기 메인 데이터베이스에 저장된 카운터 정보를 기초로 상기 캐시 카운터 정보를 업데이트 하는 단계는
    상기 메인 데이터베이스의 부하 정도에 따라 상기 캐시 카운터 정보를 업데이트 하는 시기를 결정하는 단계를 포함하는,
    정보 제공 방법.
  13. 제1항에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체.
  14. 전자 장치로서,
    카운터 정보 요청을 수신하고, 상기 카운터 정보 요청에 대응하는 응답 정보를 전송하는 통신 디바이스;
    카운터 정보에 기초하여 업데이트된 캐시 카운터 정보를 저장하는 제1 데이터베이스;
    카운터 업데이트 요청에 기초하여 업데이트된 카운터 정보를 저장하는 제2 데이터베이스; 및
    상기 제1 데이터베이스로부터 상기 카운터 정보 요청에 대응하는 캐시 카운터 정보를 확인하여, 상기 카운터 정보 요청에 대응하는 상기 응답 정보를 확인하는 제어부를 포함하고,
    상기 제어부는,
    제1 시간에 기초하여 상기 제1 데이터베이스에 저장된 캐시 카운터 정보를 업데이트한 이후, 제2 시간에 기초하여 상기 제1 데이터베이스에 저장된 캐시 카운터 정보를 업데이트하도록 제어하고,
    상기 제1 시간과 상기 제2 시간 사이의 간격은, 상기 제1 시간에 상기 제2 데이터베이스로부터 확인된 상기 캐시 카운터 정보에 대응하는 카운터 값, 상기 카운터 값의 변화 속도 및 상기 카운터 값의 잔여값에 대한 정보 중 적어도 하나에 기초하여 결정되는 것을 특징으로 하는,
    전자 장치.
KR1020200122601A 2020-09-22 2020-09-22 전자 장치 및 이를 이용한 정보 제공 방법 KR102253362B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020200122601A KR102253362B1 (ko) 2020-09-22 2020-09-22 전자 장치 및 이를 이용한 정보 제공 방법
PCT/KR2020/013470 WO2022065564A1 (ko) 2020-09-22 2020-10-05 전자 장치 및 이를 이용한 정보 제공 방법
JP2020175860A JP7043116B1 (ja) 2020-09-22 2020-10-20 電子装置およびこれを用いた情報提供方法
TW109142848A TW202213120A (zh) 2020-09-22 2020-12-04 電子設備及使用該設備之資訊提供方法
US17/136,555 US11182297B1 (en) 2020-09-22 2020-12-29 Electronic apparatus and information providing method using the same
KR1020210060709A KR102366011B1 (ko) 2020-09-22 2021-05-11 전자 장치 및 이를 이용한 정보 제공 방법
US17/448,504 US11544195B2 (en) 2020-09-22 2021-09-22 Electronic apparatus and information providing method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200122601A KR102253362B1 (ko) 2020-09-22 2020-09-22 전자 장치 및 이를 이용한 정보 제공 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210060709A Division KR102366011B1 (ko) 2020-09-22 2021-05-11 전자 장치 및 이를 이용한 정보 제공 방법

Publications (1)

Publication Number Publication Date
KR102253362B1 true KR102253362B1 (ko) 2021-05-20

Family

ID=76142842

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200122601A KR102253362B1 (ko) 2020-09-22 2020-09-22 전자 장치 및 이를 이용한 정보 제공 방법
KR1020210060709A KR102366011B1 (ko) 2020-09-22 2021-05-11 전자 장치 및 이를 이용한 정보 제공 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210060709A KR102366011B1 (ko) 2020-09-22 2021-05-11 전자 장치 및 이를 이용한 정보 제공 방법

Country Status (5)

Country Link
US (2) US11182297B1 (ko)
JP (1) JP7043116B1 (ko)
KR (2) KR102253362B1 (ko)
TW (1) TW202213120A (ko)
WO (1) WO2022065564A1 (ko)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146631A (ja) 2006-12-08 2008-06-26 Sharp Corp カウンタ情報を有する使用量レポートを作成するためのシステムおよび方法
US20130326150A1 (en) * 2012-06-05 2013-12-05 Vmware, Inc. Process for maintaining data write ordering through a cache
US20140201458A1 (en) * 2013-01-17 2014-07-17 Spirent Communications, Inc. Reducing cache memory requirements for recording statistics from testing with a multiplicity of flows
CN103955357A (zh) * 2014-04-29 2014-07-30 北京控制工程研究所 一种动态二进制翻译指令集模拟器计时方法
CN105183663A (zh) * 2010-03-29 2015-12-23 威盛电子股份有限公司 预取单元和数据预取方法
KR20160008509A (ko) * 2013-03-18 2016-01-22 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출
US9300716B2 (en) * 2012-09-20 2016-03-29 Arm Limited Modelling dependencies in data traffic
US10044729B1 (en) * 2015-12-01 2018-08-07 Microsoft Technology Licensing, Llc Analyzing requests to an online service
US20200250086A1 (en) * 2019-01-31 2020-08-06 Salesforce.Com, Inc. Counter tracker service

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3813365B2 (ja) * 1998-11-20 2006-08-23 株式会社リコー 画像形成装置管理システム
EP1182567B1 (en) * 2000-08-21 2012-03-07 Texas Instruments France Software controlled cache configuration
US7805710B2 (en) * 2003-07-15 2010-09-28 International Business Machines Corporation Shared code caching for program code conversion
JP2005157605A (ja) 2003-11-25 2005-06-16 Hitachi Ltd 商品データ検索装置および同装置におけるデータ更新方法ならびにプログラム
JP4218511B2 (ja) 2003-11-27 2009-02-04 Jfeエンジニアリング株式会社 風力発電制御方法及び装置、風力発電装置並びに風力発電制御方法のプログラム
JP2007128371A (ja) * 2005-11-04 2007-05-24 Fujitsu Ltd コンテンツ検索システム
KR20080030213A (ko) 2006-09-29 2008-04-04 주식회사 하이닉스반도체 캐시 읽기 방법
US7340378B1 (en) 2006-11-30 2008-03-04 International Business Machines Corporation Weighted event counting system and method for processor performance measurements
JP4999008B2 (ja) 2008-07-15 2012-08-15 楽天株式会社 情報送信装置、情報送信方法、情報送信処理プログラム及び情報送信システム
KR20110005945A (ko) 2009-07-13 2011-01-20 주식회사 케이아이티지 에이전트를 사용하지 않는 퍼포먼스 카운터와 캐시를 이용한 실시간 서버 성능 모니터링 방법
US8762649B2 (en) 2010-03-29 2014-06-24 Via Technologies, Inc. Bounding box prefetcher
US9645944B2 (en) * 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
CN102929983B (zh) 2012-10-18 2016-11-16 京信通信系统(中国)有限公司 嵌入式数据库同步到flash数据库的方法和装置
US9183048B2 (en) 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters
US10261900B2 (en) 2013-03-29 2019-04-16 Rakuten, Inc. Data cache system, recording medium and method
US9673998B2 (en) 2014-05-15 2017-06-06 Futurewei Technologies, Inc. Differential cache for representational state transfer (REST) API
JP6230085B1 (ja) 2017-06-01 2017-11-15 株式会社ReTech 動画再生システム
CN109857764A (zh) 2017-08-17 2019-06-07 天津数观科技有限公司 一种更新数据库对应的缓存的方法、装置及系统
CN108134817B (zh) 2017-11-30 2019-04-05 北京白山耘科技有限公司 一种自动调整缓存时长的方法及装置
US10719248B2 (en) * 2018-04-20 2020-07-21 Micron Technology, Inc. Apparatuses and methods for counter update operations
CN111221469B (zh) 2018-11-27 2021-05-11 杭州海康威视数字技术股份有限公司 同步缓存数据的方法、装置和系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146631A (ja) 2006-12-08 2008-06-26 Sharp Corp カウンタ情報を有する使用量レポートを作成するためのシステムおよび方法
CN105183663A (zh) * 2010-03-29 2015-12-23 威盛电子股份有限公司 预取单元和数据预取方法
US20130326150A1 (en) * 2012-06-05 2013-12-05 Vmware, Inc. Process for maintaining data write ordering through a cache
US20190324922A1 (en) * 2012-06-05 2019-10-24 Vmware, Inc. Process for maintaining data write ordering through a cache
US9300716B2 (en) * 2012-09-20 2016-03-29 Arm Limited Modelling dependencies in data traffic
US20140201458A1 (en) * 2013-01-17 2014-07-17 Spirent Communications, Inc. Reducing cache memory requirements for recording statistics from testing with a multiplicity of flows
KR20160008509A (ko) * 2013-03-18 2016-01-22 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 하드웨어 특징들을 사용한 이상 프로세스들의 비감시된 검출
CN103955357A (zh) * 2014-04-29 2014-07-30 北京控制工程研究所 一种动态二进制翻译指令集模拟器计时方法
US10044729B1 (en) * 2015-12-01 2018-08-07 Microsoft Technology Licensing, Llc Analyzing requests to an online service
US20200250086A1 (en) * 2019-01-31 2020-08-06 Salesforce.Com, Inc. Counter tracker service

Also Published As

Publication number Publication date
WO2022065564A1 (ko) 2022-03-31
US20220091985A1 (en) 2022-03-24
KR102366011B1 (ko) 2022-02-23
US11544195B2 (en) 2023-01-03
JP7043116B1 (ja) 2022-03-29
JP2022054378A (ja) 2022-04-06
TW202213120A (zh) 2022-04-01
US11182297B1 (en) 2021-11-23

Similar Documents

Publication Publication Date Title
US9614925B2 (en) Intelligent file pre-fetch based on access patterns
KR20130142961A (ko) 자동 애플리케이션 업데이트
CN111464615A (zh) 请求处理方法、装置、服务器及存储介质
US20220058696A1 (en) System and method to selectively update supplemental content rendered in placement regions of a rendered page
US20180260298A1 (en) Method and Device for Reporting Mobile Terminal Behaviors
KR102231709B1 (ko) 전자 장치 및 그의 동작 방법
US11238405B2 (en) Electronic apparatus and operation method thereof
CN108509500B (zh) 无缝上下文切换
US11526337B2 (en) Systems and methods for consistent feature flag evaluation
CN107623702B (zh) 一种数据缓存方法、装置及系统
US10129362B2 (en) Caching system
US11366868B1 (en) Notification of change of value in stale content
KR102253362B1 (ko) 전자 장치 및 이를 이용한 정보 제공 방법
US11297156B1 (en) System for processing data using distributed messaging system and data processing method thereof
US9860313B2 (en) Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring perioidic synchronization
US11226810B1 (en) Method for providing information based on expected result value and computing device using the same
CN113840313B (zh) 移动终端的网络模式控制方法、装置和计算机设备
US10320805B2 (en) Visitor authorization management method and apparatus, terminal, server, and storage medium
KR102344920B1 (ko) 전자 장치 및 그의 키워드 관리 방법
US11567775B1 (en) Dynamic generation of logic for computing systems
US20240029016A1 (en) System and method for proactive management of components based on predicted component failures
KR102369147B1 (ko) 전자 장치 및 그의 데이터 관리 방법
Narayana et al. Scheduling Service Updates: A Multi-arm Bandit Approach
CN114036194A (zh) 热点数据处理方法及装置、存储介质、电子设备
CN114722294A (zh) 用于处理数据的方法、装置、设备、介质和产品

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant