KR20190142108A - 리소스 캐싱 방법 및 이를 지원하는 전자 장치 - Google Patents

리소스 캐싱 방법 및 이를 지원하는 전자 장치 Download PDF

Info

Publication number
KR20190142108A
KR20190142108A KR1020180069214A KR20180069214A KR20190142108A KR 20190142108 A KR20190142108 A KR 20190142108A KR 1020180069214 A KR1020180069214 A KR 1020180069214A KR 20180069214 A KR20180069214 A KR 20180069214A KR 20190142108 A KR20190142108 A KR 20190142108A
Authority
KR
South Korea
Prior art keywords
resource
electronic device
memory
processor
external electronic
Prior art date
Application number
KR1020180069214A
Other languages
English (en)
Other versions
KR102658819B1 (ko
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 KR1020180069214A priority Critical patent/KR102658819B1/ko
Priority to PCT/KR2019/006421 priority patent/WO2019240404A1/ko
Priority to US17/252,362 priority patent/US11809313B2/en
Publication of KR20190142108A publication Critical patent/KR20190142108A/ko
Application granted granted Critical
Publication of KR102658819B1 publication Critical patent/KR102658819B1/ko

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

전자 장치에 있어서, 디스플레이, 통신 회로, 제1 리소스를 포함하는 네이티브 웹 어플리케이션을 저장하는 제1 메모리, 상기 네이티브 웹 어플리케이션에 포함된 명령어들이 로드되는 제2 메모리, 및 프로세서를 포함하고, 상기 프로세서는, 지정된 조건이 만족되면, 상기 통신 회로를 통해, 외부 전자 장치로 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하고, 상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하도록 설정되고, 상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하도록 설정된 전자 장치가 개시된다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.

Description

리소스 캐싱 방법 및 이를 지원하는 전자 장치{Resource caching method and electronic device supporting the same}
본 문서에서 게시되는 실시 예들은, 리소스 캐싱 기술과 관련된다.
최근 들어, 인터넷을 비롯한 네트워크의 통신 기술이 급속히 발달함에 따라 문자 및 영상 등의 멀티미디어 컨텐츠를 제공하는 웹(web) 서비스가 다양한 형태로 발전하고 있다. 웹 서비스를 제공받고자 하는 사용자는 웹 브라우저(web browser)를 이용하여 인터넷을 통해 웹 서버에 접속할 수 있고, 웹 서버는 HTML(hypertext markup language) 등과 같은 웹 언어를 이용하여 작성된 웹 페이지(web page)를 제공할 수 있다.
웹 브라우저는 웹 서버에서 제공하는 웹 페이지를 화면 상에 출력할 수 있지만, 웹 페이지 또는 웹 페이지와 관련된 리소스를 전자 장치의 특성 또는 사용자의 요구에 맞게 커스터마이징하는 과정에서 다양한 문제가 발생할 수 있다.
본 문서에서 게시되는 실시 예들은, 웹 페이지와 관련된 리소스를 커스터마이징하여 사용자에게 제공하는 네이티브 웹 어플리케이션(native web application)을 포함하는 전자 장치를 제공할 수 있다.
또한, 본 문서에서 게시되는 실시 예들은, 웹 페이지와 관련된 리소스를 캐싱(caching)하고, 네이티브 웹 어플리케이션이 캐시된 리소스를 이용하는 리소스 캐싱 방법 및 이를 지원하는 전자 장치를 제공할 수 있다.
본 문서에 게시되는 일 실시 예에 따른 전자 장치는, 통신 회로, 메모리, 프로세서를 포함하고, 상기 프로세서는 메모리에 저장된 특정 어플리케이션 실행 요청을 수신하고, 상기 실행 요청에 따라 어플리케이션을 우선 실행하고, 이후 백그라운드 프로세싱을 통하여 어플리케이션 운용에 필요한 리소스를 갱신하도록 설정될 수 있다.
또는, 상기 프로세서는 상기 어플리케이션 실행에 따라 캐싱되지 않은 리소스 접근이 요청되면, 상기 캐싱되지 않은 리소스를 제공하는 외부 전자 장치(또는 외부 서버 장치)에 접속하고, 상기 외부 전자 장치로부터 상기 리소스를 다운로드 받아 캐싱하고, 캐싱된 리소스를 상기 어플리케이션에 전달하도록 설정될 수 있다.
본 문서에 게시되는 일 실시 예에 따른 전자 장치는, 디스플레이, 통신 회로, 제1 리소스를 포함하는 네이티브 웹 어플리케이션을 저장하는 제1 메모리, 상기 네이티브 웹 어플리케이션에 포함된 명령어들이 로드되는 제2 메모리, 및 프로세서를 포함하고, 상기 프로세서는, 지정된 조건이 만족되면, 상기 통신 회로를 통해, 외부 전자 장치로 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하고, 상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하도록 설정되고, 상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하도록 설정될 수 있다.
또한, 본 문서에 게시되는 일 실시 예에 따른 전자 장치의 리소스 캐싱 방법은, 지정된 조건이 만족되면, 상기 전자 장치의 프로세서가 통신 회로를 통해, 외부 전자 장치로 제1 메모리에 저장된 네이티브 웹 어플리케이션에 포함된 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작, 상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하는 동작, 상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하는 동작을 포함할 수 있다.
본 문서에 게시되는 실시 예들에 따르면, 웹 서버가 제공하는 멀티미디어 컨텐츠를 전자 장치의 특성 또는 사용자의 요구에 맞게 커스터마이징하여 제공할 수 있다.
또한, 본 문서에 게시되는 실시 예들에 따르면, 네이티브 웹 어플리케이션이 캐시된 리소스를 이용함으로써, 네이티브 어플리케이션과 유사한 사용자 경험 환경을 제공할 수 있다.
또한, 본 문서에 게시되는 기술에 따라, 사용자가 자주 사용하는 기능에 관련된 리소스를 캐시하여 시스템 리소스를 효율적으로 사용할 수 있게 한다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 일 실시 예에 따른 전자 장치의 블록도이다.
도 2는 일 실시 예에 따른 리소스 캐싱과 관련된 전자 장치의 운용 방법을 나타낸 도면이다.
도 3은 일 실시 예에 따른 리소스 이용과 관련된 전자 장치의 운용 방법을 나타낸 도면이다.
도 4는 일 실시 예에 따른 리소스 업데이트와 관련된 전자 장치의 운용 방법을 나타낸 도면이다.
도 5는 일 실시 예에 따른 리소스 리스트를 나타낸 도면이다.
도 6은 일 실시 예에 따른 리소스 삭제와 관련된 전자 장치의 운용 방법을 나타낸 도면이다.
도 7은 일 실시 예에 따른 리소스 이용을 설명하기 위한 화면 예시도이다.
도 8은 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성 요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
도 1은 일 실시 예에 따른 전자 장치의 블록도이다.
일 실시 예에 따르면, 전자 장치(100)는 웹 서버(또는 외부 전자 장치)가 제공하는 멀티미디어 컨텐츠를 전자 장치(100)의 특성 또는 사용자의 요구에 맞게 커스터마이징할 수 있다. 예를 들어, 전자 장치(100)는 웹 서버가 제공하는 웹 페이지와 관련된 리소스를 수신하고, 수신된 리소스를 그대로 또는 변경하여 리소스에 대응되는 웹 페이지를 어플리케이션의 실행 화면 내에 배치시킬 수 있다. 즉, 전자 장치(100)는 웹 페이지를 어플리케이션 내에 임베디드된 형태로 제공할 수 있다. 여기서, 웹 페이지가 임베디드된 어플리케이션은 네이티브 웹 어플리케이션이라 지칭할 수 있다.
상기 네이티브 웹 어플리케이션은 웹 페이지를 포함하면서도 전자 장치(100)의 내부 구성요소(예: 전자 장치(100)의 입력 장치, 출력 장치, 카메라, 센서, 통신 회로 등)로 직접 접근이 가능하기 때문에, 사용자에게 다양한 형태의 유저 인터페이스를 제공할 수 있다. 예를 들어, 상기 네이티브 웹 어플리케이션은 웹 페이지 화면에서 발생된 터치 입력 등을 기존의 웹 페이지에서 처리하던 기능과 다르게 정의할 수도 있으며, 웹 페이지 출력 기능과 함께 별도의 기능을 제공할 수도 있다.
또한, 전자 장치(100)는 네이티브 웹 어플리케이션이 이용하려는 리소스를 지정된 조건 하에서 캐싱할 수 있다. 이 경우, 네이티브 웹 어플리케이션은 웹 서버로의 연결 과정 없이도 캐시된 리소스 이용하여 웹 페이지 화면을 구성할 수 있다. 이에 따라, 전자 장치(100)는 네이티브 웹 어플리케이션을 네이티브 어플리케이션과 유사한 UX 환경으로 제공할 수 있다. 예를 들어, 전자 장치(100)는 네이티브 웹 어플리케이션의 실행 속도를 네이티브 어플리케이션 수준으로 개선할 수 있다.
상술한 기능을 수행하기 위한 전자 장치(100)는, 도 1을 참조하면, 제1 메모리(110), 제2 메모리(130), 프로세서(150), 디스플레이(170), 및 통신 회로(190)를 포함할 수 있다. 그러나, 전자 장치(100)의 구성이 이에 한정되는 것은 아니다. 다양한 실시 예에 따르면, 전자 장치(100)는 상술한 구성요소 외에 적어도 하나의 구성요소를 더 포함할 수도 있다.
제1 메모리(110)는 전자 장치(100)의 적어도 하나의 구성요소(예: 프로세서(150))에 의해 사용되는 다양한 데이터, 예를 들어, 어플리케이션(예: 네이티브 웹 어플리케이션(111)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 일 실시 예에 따르면, 제1 메모리(110)의 적어도 일부는 비휘발성 메모리를 포함할 수 있다.
네이티브 웹 어플리케이션(111)은 전자 장치(100)에 설치되는 네이티브 어플리케이션의 일종으로, 웹 기능을 제공할 수 있다. 예를 들어, 네이티브 웹 어플리케이션(111)은 웹 서버가 제공하는 웹 페이지를 그대로 또는 가공하여 실행 화면에 구성할 수 있다. 일 실시 예에 따르면, 네이티브 웹 어플리케이션(111)은 웹 페이지와 관련된 리소스를 포함한 패키지 형태로 제1 메모리(110)에 설치될 수 있다.
제2 메모리(130)는 전자 장치(100)의 적어도 하나의 구성요소(예: 프로세서(150))로부터 수신된 명령 또는 데이터를 저장할 수 있다. 예를 들어, 제2 메모리(130)는 제1 메모리(110)에 저장된 네이티브 웹 어플리케이션(111)의 실행 과정에서, 네이티브 웹 어플리케이션(111)에 포함된 명령어 또는 데이터(또는 리소스)를 저장할 수 있다. 즉, 네이티브 웹 어플리케이션(111)에 포함된 명령어 또는 데이터(또는 리소스)가 제2 메모리(130)에 로드될 수 있다. 일 실시 예에 따르면, 제2 메모리(130)의 적어도 일부는 휘발성 메모리를 포함할 수 있다.
프로세서(150)는 전자 장치(100)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(150)는 다른 구성요소(예: 통신 회로(190))로부터 수신된 명령 또는 데이터를 제2 메모리(130)에 로드하여 처리하고, 결과 데이터를 제1 메모리(110)에 저장할 수 있다. 예를 들어, 프로세서(150)는 제1 메모리(110)에 설치된 네이티브 웹 어플리케이션(111)에 포함된 명령어 또는 데이터(또는 리소스)를 제2 메모리(130)에 로드하여 처리할 수 있다.
프로세서(150)는 어플리케이션 매니저(151), 웹 뷰(153), 캐시 매니저(155), 및 리소스 매니저(157)를 포함할 수 있다. 어플리케이션 매니저(151)는 제1 메모리(110)에 설치된 어플리케이션(예: 네이티브 웹 어플리케이션(111))의 생명 주기(life cycle)를 관리할 수 있다. 예를 들어, 어플리케이션 매니저(151)는 어플리케이션의 설치, 업데이트, 또는 삭제 등을 처리할 수 있다. 일 실시 예에 따르면, 어플리케이션 매니저(151)는 네이티브 웹 어플리케이션(111)에 포함된 리소스를 제1 메모리(110)의 지정된 영역(예: 캐시 영역)으로 복사하여 저장(또는 캐싱)할 수 있다. 예를 들어, 어플리케이션 매니저(151)는 패키지 형태로 설치된 네이티브 웹 어플리케이션(111)에 포함된 웹 페이지와 관련된 리소스를 웹 서버로부터 수신하여 제1 메모리(110)에 미리 저장해놓을 수 있다. 다양한 실시 예에 따르면, 상기 어플리케이션 매니저(151)의 적어도 일부는 적어도 하나의 소프트웨어 모듈 또는 하드웨어 모듈(예: 적어도 하나의 프로세서)로 구현될 수 있다. 상기 어플리케이션 매니저(151)가 적어도 하나의 소프트웨어 모듈로 구현되는 경우, 상기 어플리케이션 매니저(151)는 메모리(예: 제2 메모리(130)에 업로드되고, 적어도 하나의 프로세서에 의해 설정된 동작을 수행할 수 있다.
웹 뷰(153)는 네이티브 웹 어플리케이션(111)의 UI 화면을 구성할 수 있다. 일 실시 예에 따르면, 웹 뷰(153)는 제1 메모리(110)에 캐시된 리소스를 이용하여 웹 페이지 화면을 구성할 수 있다. 웹 뷰(153)는 DOM(document object model)의 구조를 정의한 html, 각 오브젝트의 표시되는 모양을 정의한 css(cascading style sheets), 동작 부분을 담당하는 javascript와 관련된 이미지 리소스 등을 이용하여 웹 페이지 화면을 구성할 수 있다. 다양한 실시 예에 따르면, 상기 웹 뷰(153)의 적어도 일부는 적어도 하나의 소프트웨어 모듈(예: 메모리에 업로드 되고 적어도 하나의 프로세서에 의해 지정된 동작을 수행하는 명령어들 포함) 또는 하드웨어 모듈(예: 적어도 하나의 프로세서)로 구현될 수 있다.
캐시 매니저(155)는 제1 메모리(110)의 지정된 영역(예: 캐시 영역)을 관리할 수 있다. 예컨대, 캐시 매니저(155)는 제1 메모리(110)의 지정된 영역에 저장된 리소스의 업데이트 또는 삭제를 처리할 수 있다. 일 실시 예에 따르면, 캐시 매니저(155)는 리소스 리스트를 이용하여 네이티브 웹 어플리케이션(110)에 포함된 리소스 및 제1 메모리(110)의 지정된 영역에 캐시된 리소스를 관리할 수 있다. 예를 들어, 캐시 매니저(155)는 리소스의 식별자(ID), URL, 종류(또는 형식), 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 등을 리소스 리스트에 기록할 수 있다. 다양한 실시 예에 따르면, 상기 캐시 매니저(155)의 적어도 일부는 적어도 하나의 소프트웨어 모듈(예: 메모리에 업로드 되고 적어도 하나의 프로세서에 의해 지정된 동작을 수행하는 명령어들 포함) 또는 하드웨어 모듈(예: 적어도 하나의 프로세서)로 구현될 수 있다.
일 실시 예에 따르면, 캐시 매니저(155)는 제1 메모리(110)에 미리 저장된 웹 페이지와 관련된 리소스를 업데이트할 수 있다. 일 예로, 캐시 매니저(155)는 지정된 조건에 따라 통신 회로(190)를 통해, 웹 서버에 접속하여 상기 리소스의 변경 여부를 확인할 수 있고, 상기 리소스가 변경된 경우, 상기 웹 서버로부터 변경된 리소스를 수신하여 제1 메모리(110)에 저장된 리소스를 업데이트할 수 있다. 즉, 캐시 매니저(155)는 제1 메모리(110)에 캐시된 리소스를 최신 버전으로 업데이트할 수 있다. 이와 관련하여, 상기 지정된 조건은 설정 정보에 기반한 웹 서버로의 연결 조건일 수 있다. 예를 들어, 웹 서버로의 접속 시간, 접속 횟수 등이 설정된 경우, 설정된 정보에 따라 캐시 매니저(155)는 웹 서버로 접속하여 캐시된 리소스를 업데이트할 수 있다. 이에 따라, 웹 서버가 전자 장치(100)로 웹 페이지와 관련된 리소스를 일방적으로 전달하는 것이 아닌 전자 장치(100)가 필요에 의해 웹 서버로부터 리소스를 수신함으로써, 웹 서버로의 연결 과정에서 발생하는 지연 등의 단점을 극복할 수 있다.
일 실시 예에 따르면, 캐시 매니저(155)는 제1 메모리(110)에 캐시된 리소스를 삭제할 수 있다. 캐시 매니저(155)는 제1 메모리(110)의 지정된 영역(예: 캐시 영역)에 대한 공간 확보를 위해, 캐시된 리소스를 삭제할 수 있다. 일 예로, 캐시 매니저(155)는 캐시된 리소스의 사용횟수 또는 마지막 사용일자 등을 기준으로 설정된 우선순위에 따라, 우선순위가 낮은 리소스의 순서대로 삭제 대상을 선정할 수 있다. 캐시 매니저(155)는 제1 메모리(110)의 지정된 영역에 대한 공간이 지정된 수준을 만족할 때까지 삭제 대상을 선정할 수 있다. 또한, 캐시 매니저(155)는 리소스 리스트에 기록되지 않은 리소스가 제1 메모리(110)의 지정된 영역에 캐시되어 있는 경우, 해당 리소스도 삭제 대상으로 선정할 수 있다. 이 후, 캐시 매니저(155)는 삭제 대상으로 선정된 리소스 정보를 리소스 리스트에서 삭제하고, 제1 메모리(110)의 지정된 영역에서도 삭제할 수 있다.
리소스 매니저(157)는 어플리케이션(예: 네이티브 웹 어플리케이션(111))에 포함된 리소스를 관리할 수 있다. 다양한 실시 예에 따르면, 상기 리소스 매니저(157)의 적어도 일부는 적어도 하나의 소프트웨어 모듈(예: 메모리에 업로드 되고 적어도 하나의 프로세서에 의해 지정된 동작을 수행하는 명령어들 포함) 또는 하드웨어 모듈(예: 적어도 하나의 프로세서)로 구현될 수 있다.
디스플레이(170)는 전자 장치(100)의 사용자에게 정보를 시각적으로 제공할 수 있다. 예를 들어, 디스플레이(170)는 사용자에게 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)를 표시할 수 있다. 디스플레이(170)는 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 디스플레이(170)는 터치 회로 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
통신 회로(190)는 전자 장치(100)와 외부 전자 장치(예: 웹 서버) 간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 예를 들면, 통신 회로(190)는 유선 또는 무선 통신을 통해 네트워크에 연결되어 상기 외부 전자 장치와 통신할 수 있다.
상술한 바와 같이, 다양한 실시 예에 따르면, 전자 장치(예: 전자 장치(100))는 디스플레이(예: 디스플레이(170)), 통신 회로(예: 통신 회로(190)), 제1 리소스를 포함하는 네이티브 웹 어플리케이션(예: 네이티브 웹 어플리케이션(111))을 저장하는 제1 메모리(예: 제1 메모리(110)), 상기 네이티브 웹 어플리케이션에 포함된 명령어들이 로드되는 제2 메모리(예: 제2 메모리(130)), 및 프로세서(예: 프로세서(150))를 포함하고, 상기 프로세서는, 지정된 조건이 만족되면, 상기 통신 회로를 통해, 외부 전자 장치로 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하고, 상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하도록 설정되고, 상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 제1 메모리는 비휘발성 메모리를 포함하고, 상기 제2 메모리는 휘발성 메모리를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 지정된 조건은, 상기 외부 전자 장치로의 접속 시간 및 접속 횟수 중 적어도 하나를 포함하는 설정 정보에 기반한 상기 외부 전자 장치로의 연결 조건을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 프로세서는, 상기 제1 리소스 또는 상기 제2 리소스에 대한 정보를 상기 제1 메모리에 저장하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 정보는 상기 제1 리소스 또는 상기 제2 리소스의 식별자, URL, 종류, 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 프로세서는, 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스의 유효 기간을 확인하고, 상기 유효 기간이 만료되었다는 판단 하에, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제2 리소스를 다운로드하고, 다운로드된 상기 제2 리소스를 상기 제1 메모리에 저장하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 프로세서는, 상기 제1 메모리의 공간이 지정된 수준 이하인 경우, 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스의 우선순위를 기반으로 상기 제1 리소스 또는 상기 제2 리소스의 삭제 여부를 판단하고, 상기 제1 리소스 또는 상기 제2 리소스가 삭제 대상인 경우, 상기 제1 리소스 또는 상기 제2 리소스를 상기 제1 메모리에서 삭제하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 프로세서는, 상기 제1 리소스 또는 상기 제2 리소스의 사용횟수 및 마지막 사용일자 중 적어도 하나를 기반으로 상기 우선순위를 부여하도록 설정될 수 있다.
다양한 실시 예에 따르면, 상기 프로세서는, 스레드를 통해 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작, 상기 제1 리소스를 상기 제1 메모리에 저장하는 동작, 및 상기 제2 리소스를 수신하고 상기 제2 리소스를 상기 제1 메모리에 저장하는 동작을 수행하도록 설정될 수 있다.
도 2는 일 실시 예에 따른 리소스 캐싱과 관련된 전자 장치의 운용 방법(200)을 나타낸 도면이다.
도 2를 참조하면, 리소스 캐싱과 관련된 전자 장치의 운용 방법(200)과 관련하여, 전자 장치(예: 전자 장치(100))의 프로세서(예: 프로세서(150))는 동작 210에서, 네이티브 웹 어플리케이션(예: 네이티브 웹 어플리케이션(111))에 포함된 제1 리소스의 변경 여부를 확인하기 위한 요청을 통신 회로(예: 통신 회로(190))를 통해, 외부 전자 장치(예: 웹 서버)로 전달할 수 있다. 예를 들어, 상기 프로세서는 상기 제1 리소스가 최신 버전인지를 확인하기 위해 상기 외부 전자 장치로 확인 요청을 전달할 수 있다. 일 실시 예에 따르면, 상기 프로세서는 지정된 조건이 만족되는 경우에 한해, 동작 210을 수행할 수도 있다. 상기 지정된 조건은 예를 들어, 설정 정보에 기반한 상기 외부 전자 장치로의 연결 조건을 포함할 수 있다.
상기 프로세서(150)는 동작 215에서, 제1 리소스 변경 여부를 확인할 수 있다. 예를 들어, 상기 외부 전자 장치로의 접속 시간, 접속 횟수 등이 설정된 경우, 설정된 정보에 따라 상기 프로세서는 상기 외부 전자 장치로 접속하여 상기 제1 리소스의 변경 여부를 확인할 수 있다.
동작 215에서 상기 외부 전자 장치로부터 상기 제1 리소스가 변경되지 않았다는 응답을 수신하면, 상기 프로세서는 동작 230에서, 상기 네이티브 웹 어플리케이션에 포함된 제1 리소스를 제1 메모리(예: 제1 메모리(110))에 저장(또는 캐싱)할 수 있다. 예를 들어, 상기 프로세서는 상기 네이티브 웹 어플리케이션 패키지에 포함된 제1 리소스를 상기 제1 메모리의 캐시 영역에 저장할 수 있다. 다양한 실시 예에 따르면, 상기 프로세서는 지정된 시간 동안 상기 외부 전자 장치로의 연결이 되지 않는 경우(예: 지정된 시간 동안 제1 리소스 변경 여부에 대한 응답을 수신하지 못하는 경우)에도, 동작 230에서와 같이, 상기 제1 리소스를 상기 제1 메모리에 저장할 수 있다. 이에 따라, 상기 프로세서는 네트워크 연결 문제로 인해 상기 외부 전자 장치와 연결되지 않는 경우에도 상기 네이티브 웹 어플리케이션의 웹 페이지 화면을 디스플레이(예: 디스플레이(170))에 출력할 수 있다.
동작 215에서, 상기 외부 전자 장치로부터 상기 제1 리소스가 변경되었다는 응답을 수신하면, 상기 프로세서는 동작 250에서, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스(예: 상기 제1 리소스가 변경되어 생성된 제2 리소스)를 수신할 수 있다. 또한, 동작 270에서, 상기 프로세서는 수신된 제2 리소스를 상기 제1 메모리에 저장(또는 캐싱)할 수 있다. 즉, 상기 프로세서는 최신 버전의 리소스(제2 리소스)를 상기 제1 메모리의 캐시 영역에 저장할 수 있다.
이 후, 상기 네이티브 웹 어플리케이션의 실행 과정에서, 제2 메모리(예: 제2 메모리(130))에 로드된 상기 네이티브 웹 어플리케이션에 포함된 명령어들 중 상기 제1 리소스를 이용하는 명령어를 처리할 시에, 상기 프로세서는 동작 290에서와 같이, 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스를 이용할 수 있다. 즉, 상기 프로세서는 상기 제1 메모리의 캐시 영역에 저장된 리소스(예: 제1 리소스 또는 제2 리소스)를 이용하여 웹 페이지 화면을 구성하고, 구성된 웹 페이지 화면을 상기 디스플레이에 출력할 수 있다.
도 3은 일 실시 예에 따른 리소스 이용과 관련된 전자 장치의 운용 방법(300)을 나타낸 도면이다.
도 3을 참조하면, 리소스 이용과 관련된 전자 장치의 운용 방법(300)과 관련하여, 네이티브 웹 어플리케이션(예: 네이티브 웹 어플리케이션(111))의 실행 과정에서, 전자 장치(예: 전자 장치(100))의 프로세서(예: 프로세서(150))는 제2 메모리(예: 제2 메모리(130))에 로드된 상기 네이티브 웹 어플리케이션에 포함된 명령어들 중 웹 페이지와 관련된 리소스를 이용하는 명령어의 처리 요청을 수신하면, 동작 310에서, 상기 리소스가 제1 메모리(예: 제1 메모리(110))에 캐시되었는지를 판단할 수 있다. 예를 들어, 상기 프로세서는 상기 제1 메모리(예: 비휘발성 메모리 영역)의 캐시 영역에 상기 리소스가 저장되어 있는지를 확인할 수 있다.
상기 리소스가 상기 제1 메모리에 캐시되어 있지 않은 경우, 동작 330에서, 상기 프로세서는 상기 네이티브 웹 어플리케이션에 포함된 리소스를 상기 제1 메모리에 캐싱할 수 있다. 예컨대, 상기 프로세서는 상기 네이티브 웹 어플리케이션 패키지에 포함된 상기 리소스를 상기 제1 메모리의 캐시 영역에 저장할 수 있다. 또한, 상기 프로세서는, 동작 350에서, 리소스 리스트를 업데이트할 수 있다. 예를 들어, 상기 프로세서는 상기 리소스의 식별자(ID), URL, 종류(또는 형식), 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 등을 상기 리소스 리스트에 기록할 수 있다.
상기 리소스가 상기 제1 메모리에 캐시되어 있는 경우, 동작 370에서, 상기 프로세서는 스레드(thread)를 통해 상기 리소스의 업데이트를 실행할 수 있다. 예를 들어, 상기 프로세서는 스레드를 이용하여 상기 네이티브 웹 어플리케이션의 실행과는 별도로(또는 백그라운드로) 상기 리소스에 대한 업데이트를 진행할 수 있다. 일 예로, 상기 프로세서는 상기 리소스의 변경 여부를 웹 서버를 통해 확인할 수 있고, 상기 리소스가 변경된 경우, 상기 웹 서버로부터 최신 버전의 리소스를 수신하여 상기 제1 메모리의 캐시 영역에 저장된 기존의 리소스를 업데이트할 수 있다.
동작 390에서, 상기 프로세서는 상기 제1 메모리에 캐시된 리소스를 이용하여 웹 페이지와 관련된 리소스를 이용하는 명령어를 처리할 수 있다. 예를 들어, 상기 프로세서는 상기 제1 메모리의 캐시 영역에 저장된 리소스를 이용하여 웹 페이지 화면을 구성할 수 있다.
일 실시 예에 따르면, 동작 370에서 실행된 리소스의 업데이트 과정은 웹 페이지와 관련된 리소스를 이용하는 명령어의 처리와는 별도로(또는 백그라운드로)로 수행되기 때문에, 기존에 캐시된 리소스가 웹 페이지 화면의 구성에 이용될 수 있다. 이는, 실시간으로 변경된 리소스가 웹 페이지 화면에 반영되지 않기 때문에, 리소스 변경으로 인한 화면 깜빡임이 발생하는 것을 방지하는 효과를 가져올 수 있다. 변경된 리소스를 이용한 웹 페이지 화면은 상기 네이티브 웹 어플리케이션의 재실행 시에 출력될 수 있다.
상술한 다양한 실시 예에 따르면, 한 실시 예에 따른 전자 장치는 디스플레이, 통신 회로, 네이티브 웹 어플리케이션을 저장하는 제1 메모리, 상기 네이티브 웹 어플리케이션에 포함된 명령어들이 로드되는 제2 메모리, 및 상기 디스플레이, 통신 회로, 제1 메모리 및 상기 제2 메모리와 동작적으로(operatively) 연결되는 프로세서를 포함하고, 상기 프로세서는, 상기 네이티브 웹 어플리케이션 실행 요청을 수신하고, 상기 제1 메모리에 캐싱된 제1 리소스를 기반으로 상기 네이티브 웹 어플리케이션 실행을 수행하고, 백그라운드 프로세싱을 통하여 상기 제1 리소스 갱신을 수행하도록 설정될 수 있다.
상기 제1 메모리는 비휘발성 메모리를 포함할 수 있다.
상기 프로세서는 상기 네이티브 웹 어플리케이션과 관련한 웹 서버 장치에 통신 채널을 형성하고, 상기 웹 서버 장치로부터 상기 네이티브 웹 어플리케이션 운용과 관련한 제2 리소스를 수신하고, 상기 제2 리소스를 상기 제1 메모리에 캐싱하도록 설정될 수 있다.
상기 프로세서는 지정된 스케줄링 시간에 상기 제1 메모리에 캐싱된 제2 리소스를 상기 네이티브 웹 어플리케이션에 적용하여 상기 디스플레이에 출력되는 화면을 갱신할 수 있다. 또는, 상기 프로세서는 상기 디스플레이의 화면 전환 또는 지정된 사용자 입력이 발생하면, 상기 제1 메모리에 캐싱된 제2 리소스를 상기 네이티브 웹 어플리케이션에 적용하여 상기 디스플레이에 출력되는 화면을 갱신할 수 있다.
상술한 다양한 실시 예에 따르면, 한 실시 예에 따른 전자 장치 운용 방법은 비휘발성 메모리에 저장된 네이티브 웹 어플리케이션의 실행 요청을 수신하는 동작, 상기 네이티브 웹 어플리케이션에 포함된 명령어들을 휘발성 메모리에 로드하고 상기 비휘발성 메모리에 저장되며 상기 네이티브 웹 어플리케이션 실행과 관련한 제1 리소스를 기반으로 상기 네이티브 웹 어플리케이션 실행하는 동작, 백그라운드 프로세싱을 통하여 웹 서버 장치와 통신 채널을 형성하고 상기 제1 리소스 갱신과 관련한 제2 리소스를 수신하여 상기 비휘발성 메모리에 저장하는 동작을 포함할 수 있다.
도 4는 일 실시 예에 따른 리소스 업데이트와 관련된 전자 장치의 운용 방법(400)을 나타낸 도면이다.
도 4를 참조하면, 리소스 업데이트와 관련된 전자 장치의 운용 방법(400)과 관련하여, 전자 장치(예: 전자 장치(100))의 프로세서(예: 프로세서(150))는 제1 메모리(예: 제1 메모리(110))에 캐시된 리소스를 업데이트할 수 있다. 상기 프로세서는, 동작 410에서, 상기 제1 메모리에 캐시된 리소스의 변경 여부를 확인할 수 있다. 일 예로, 상기 프로세서는 통신 회로(예: 통신 회로(190))를 통해, 외부 전자 장치(예: 웹 서버)로 상기 리소스의 변경 여부를 확인하기 위한 요청을 전달하고, 상기 외부 전자 장치는 상기 리소스의 변경 여부에 대한 응답을 상기 전자 장치로 전달할 수 있다.
동작 430에서, 상기 프로세서는 상기 리소스의 유효 기간이 만료되었는지를 판단할 수 있다. 예를 들어, 상기 프로세서는 HTTP 표준 스펙에 따라 HTTP 헤더(header)에 정의된 태그 정보 등을 통해 설정된 리소스의 유효 기간이 만료되었는지를 확인할 수 있다.
상기 리소스의 유효 기간이 만료된 경우, 상기 프로세서는 동작 450에서, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 리소스를 다운로드할 수 있다.
또한, 상기 프로세서는 동작 470에서, 다운로드된 리소스를 상기 제1 메모리에 캐싱하고, 상기 리소스에 대한 정보를 리소스 리스트에 업데이트할 수 있다. 예를 들어, 상기 프로세서는 다운로드된 리소스를 상기 제1 메모리의 캐시 영역에 저장하고, 상기 리소스의 식별자(ID), URL, 종류(또는 형식), 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 등을 상기 리소스 리스트에 기록할 수 있다.
도 5는 일 실시 예에 따른 리소스 리스트를 나타낸 도면이다.
도 5를 참조하면, 전자 장치(예: 전자 장치(100))의 프로세서(예: 프로세서(150))는 네이티브 웹 어플리케이션(예: 네이티브 웹 어플리케이션(111))에 포함된 리소스 또는 제1 메모리(예: 제1 메모리(110))에 캐시된 리소스를 리소스 리스트를 통해 관리할 수 있다. 예를 들어, 상기 프로세서는 리소스의 식별자(ID)(510), URL(520), 종류(또는 형식)(530), 생성일자(540), 캐시일자(550), 마지막 사용일자(560), 사용횟수(570), 우선순위(580), 또는 캐시여부(590) 등을 상기 리소스 리스트에 기록할 수 있다.
리소스의 식별자(510)는 상기 리소스를 식별하기 위한 정보를 포함할 수 있다. 일 실시 예에 따르면, 상기 프로세서는 상기 리소스의 정보가 상기 리소스 리스트에 기록된 순서대로 리소스의 식별자(510)를 부여할 수 있다. 리소스의 URL(520)은 상기 리소스의 저장 위치를 나타낸 정보를 포함할 수 있다. 리소스의 종류(530)는 예를 들어, 상기 리소스가 웹 페이지의 스타일(예: 레이아웃)을 정의한 파일(예: css)인지, 웹 페이지 내의 동적 부분 등을 정의한 파일(예: javascript)인지, 또는 이미지 등인지를 나타내는 정보를 포함할 수 있다. 리소스의 생성일자(540)는 상기 리소스가 생성된 날짜 정보를 포함할 수 있다. 리소스의 캐시일자(550)는 상기 리소스가 상기 제1 메모리의 캐시 영역에 저장된 날짜 정보를 포함할 수 있다. 리소스의 마지막 사용일자(560)는 상기 리소스가 마지막으로 사용된 날짜 정보를 포함할 수 있다. 리소스의 사용횟수(560)는 상기 리소스가 사용된 횟수 정보를 포함할 수 있다. 리소스의 우선순위(580)는 상기 리소스의 사용횟수(560) 또는 마지막 사용일자(560) 등을 기준으로 설정될 수 있다. 일 실시 예에 따르면, 리소스의 우선순위(580)에 따라 상기 제1 메모리의 캐시 영역에서 삭제되는 대상이 선정될 수 있다. 리소스의 캐시여부(590)는 상기 리소스가 상기 제1 메모리의 캐시 영역에 저장되어 있는지 여부를 나타내는 정보를 포함할 수 있다.
도 6은 일 실시 예에 따른 리소스 삭제와 관련된 전자 장치의 운용 방법(600)을 나타낸 도면이다.
도 6을 참조하면, 리소스 삭제와 관련된 전자 장치의 운용 방법(600)과 관련하여, 전자 장치(예: 전자 장치(100))의 프로세서(예: 프로세서(150))는 제1 메모리(예: 제1 메모리(110))에 캐시된 리소스를 삭제할 수 있다. 상기 프로세서는 상기 제1 메모리의 지정된 영역(예: 캐시 영역)에 대한 공간 확보를 위해, 캐시된 리소스를 삭제할 수 있다.
동작 610에서, 상기 프로세서는 네이티브 웹 어플리케이션(예: 네이티브 웹 어플리케이션(111))에 포함된 리소스 또는 상기 제1 메모리에 캐시된 리소스에 대한 정보를 기록한 리소스 리스트를 확인할 수 있다. 또한, 상기 프로세서는 상기 리소스 리스트에 기록된 상기 리소스에 대한 정보를 기반으로 삭제 대상을 선정할 수 있다. 일 예로, 상기 프로세서는 상기 리소스의 사용횟수(예: 리소스의 사용횟수(570)) 또는 마지막 사용일자(예: 리소스의 마지막 사용일자(560)) 등을 기준으로 설정된 우선순위(예: 리소스의 우선순위(580))에 따라, 상기 우선순위가 낮은 리소스의 순서대로 삭제 대상을 선정할 수 있다. 다른 예로, 상기 프로세서는 상기 리소스 리스트에 기록되지 않은 리소스가 상기 제1 메모리의 캐시 영역에 저장되어 있는 경우, 해당 리소스도 삭제 대상으로 선정할 수 있다.
동작 630에서, 상기 프로세서는 상기 리소스가 유효한지를 판단할 수 있다. 일 예로, 상기 프로세서는 상기 리소스가 삭제 대상으로 선정되었는지를 확인할 수 있다.
상기 리소스가 유효하지 않은 경우(상기 리소스가 삭제 대상인 경우), 상기 프로세서는 동작 650에서, 상기 리소스에 대한 정보를 상기 리소스 리스트에서 삭제할 수 있다. 또한, 상기 프로세서는 동작 670에서, 상기 리소스를 상기 제1 메모리의 캐시 영역에서 삭제할 수 있다.
일 실시 예에 따르면, 상기 프로세서는 상기 제1 메모리의 캐시 영역에 대한 공간이 지정된 수준을 만족할 때까지 삭제 대상의 선정, 삭제 대상으로 선정된 리소스에 대한 정보 삭제, 및 삭제 대상으로 선정된 리소스의 삭제 동작을 반복할 수 있다.
상술한 바와 같이, 다양한 실시 예에 따르면, 전자 장치(예: 전자 장치(100))의 리소스 캐싱 방법은 지정된 조건이 만족되면, 상기 전자 장치의 프로세서가 통신 회로를 통해, 외부 전자 장치로 제1 메모리에 저장된 네이티브 웹 어플리케이션에 포함된 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작, 상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하는 동작, 상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 지정된 조건은, 상기 외부 전자 장치로의 접속 시간 및 접속 횟수 중 적어도 하나를 포함하는 설정 정보에 기반한 상기 외부 전자 장치로의 연결 조건을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 리소스 캐싱 방법은 상기 제1 리소스 또는 상기 제2 리소스에 대한 정보를 상기 제1 메모리에 저장하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 상기 정보는 상기 제1 리소스 또는 상기 제2 리소스의 식별자, URL, 종류, 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 중 적어도 하나를 포함할 수 있다.
다양한 실시 예에 따르면, 상기 리소스 캐싱 방법은 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스의 유효 기간을 확인하는 동작, 상기 유효 기간이 만료되었다는 판단 하에, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제2 리소스를 다운로드하는 동작, 및 다운로드된 상기 제2 리소스를 상기 제1 메모리에 저장하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 상기 리소스 캐싱 방법은 상기 제1 메모리의 공간이 지정된 수준 이하인 경우, 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스의 우선순위를 기반으로 상기 제1 리소스 또는 상기 제2 리소스의 삭제 여부를 판단하는 동작, 및 상기 제1 리소스 또는 상기 제2 리소스가 삭제 대상인 경우, 상기 제1 리소스 또는 상기 제2 리소스를 상기 제1 메모리에서 삭제하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 상기 리소스 캐싱 방법은 상기 제1 리소스 또는 상기 제2 리소스의 사용횟수 및 마지막 사용일자 중 적어도 하나를 기반으로 상기 우선순위를 부여하는 동작을 더 포함할 수 있다.
다양한 실시 예에 따르면, 스레드를 통해 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작, 상기 제1 리소스를 상기 제1 메모리에 저장하는 동작, 및 상기 제2 리소스를 수신하고 상기 제2 리소스를 상기 제1 메모리에 저장하는 동작이 수행될 수 있다.
도 7은 일 실시 예에 따른 리소스 이용을 설명하기 위한 화면 예시도이다.
도 7을 참조하면, 전자 장치(예: 전자 장치(100))의 프로세서(예: 프로세서(150))는 제1 메모리(예: 제1 메모리(110))에 캐시된 제1 리소스(711)를 이용하여 네이티브 웹 어플리케이션(예: 네이티브 웹 어플리케이션(111))의 웹 기능을 제공할 수 있다. 예를 들어, 상기 프로세서는 제1 상태(701)에서와 같이, 디스플레이(예: 디스플레이(170))에 상기 네이티브 웹 어플리케이션의 제1 웹 페이지 화면(710)을 출력할 수 있다.
일 실시 예에 따르면, 상기 프로세서는 캐시된 제1 리소스(711)를 웹 서버를 통해 업데이트할 수 있다. 상기 제1 리소스(711)의 업데이트 과정은 웹 페이지와 관련된 리소스를 이용하는 명령어의 처리와는 별도로(또는 백그라운드로)로 수행되기 때문에, 기존에 캐시된 제1 리소스(711)가 제1 웹 페이지 화면(710)의 구성에 이용될 수 있다. 이는, 제1 리소스(711)가 실시간으로 변경된 제2 리소스(731)는 제1 웹 페이지 화면(710)에 반영되지 않기 때문에, 리소스 변경으로 인한 화면 깜빡임이 발생하는 것을 방지하는 효과를 가져올 수 있다. 또한, 변경된 제2 리소스(731)를 이용한 제2 웹 페이지 화면(730)은 제2 상태(703)에서와 같이, 상기 네이티브 웹 어플리케이션의 재실행 시에 출력될 수 있다.
도 8은 다양한 실시 예들에 따른, 네트워크 환경(800) 내의 전자 장치(801)의 블록도이다. 도 8을 참조하면, 네트워크 환경(800)에서 전자 장치(801)(예: 도 1의 전자 장치(100))는 제1 네트워크(898)(예: 근거리 무선 통신)를 통하여 전자 장치(802)와 통신하거나, 또는 제2 네트워크(899)(예: 원거리 무선 통신)를 통하여 전자 장치(804) 또는 서버(808)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(801)는 서버(808)를 통하여 전자 장치(804)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(801)는 프로세서(820)(예: 도 1의 프로세서(150)), 메모리(830)(예: 도 1의 제1 메모리(110), 제2 메모리(130)), 입력 장치(850), 음향 출력 장치(855), 표시 장치(860)(예: 도 1의 디스플레이(170)), 오디오 모듈(870), 센서 모듈(876), 인터페이스(877), 햅틱 모듈(879), 카메라 모듈(880), 전력 관리 모듈(888), 배터리(889), 통신 모듈(890)(예: 도 1의 통신 회로(190)), 가입자 식별 모듈(896), 및 안테나 모듈(897)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(801)에는, 이 구성 요소들 중 적어도 하나(예: 표시 장치(860) 또는 카메라 모듈(880))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시 예에서는, 예를 들면, 표시 장치(860)(예: 디스플레이)에 임베디드된 센서 모듈(876)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성 요소들이 통합되어 구현될 수 있다.
프로세서(820)는, 예를 들면, 소프트웨어(예: 프로그램(840))를 구동하여 프로세서(820)에 연결된 전자 장치(801)의 적어도 하나의 다른 구성 요소(예: 하드웨어 또는 소프트웨어 구성 요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(820)는 다른 구성 요소(예: 센서 모듈(876) 또는 통신 모듈(890))로부터 수신된 명령 또는 데이터를 휘발성 메모리(832)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(834)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(820)는 메인 프로세서(821)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(821)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(823)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(823)는 메인 프로세서(821)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(823)는, 예를 들면, 메인 프로세서(821)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(821)를 대신하여, 또는 메인 프로세서(821)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(821)와 함께, 전자 장치(801)의 구성 요소들 중 적어도 하나의 구성 요소(예: 표시 장치(860), 센서 모듈(876), 또는 통신 모듈(890))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(823)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(880) 또는 통신 모듈(890))의 일부 구성 요소로서 구현될 수 있다.
메모리(830)는, 전자 장치(801)의 적어도 하나의 구성 요소(예: 프로세서(820) 또는 센서 모듈(876))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(840)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(830)는 휘발성 메모리(832) 또는 비휘발성 메모리(834)를 포함할 수 있다.
프로그램(840)은 메모리(830)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(842), 미들 웨어(844) 또는 어플리케이션(846)을 포함할 수 있다.
입력 장치(850)는, 전자 장치(801)의 구성 요소(예: 프로세서(820))에 사용될 명령 또는 데이터를 전자 장치(801)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(855)는 음향 신호를 전자 장치(801)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(860)는 전자 장치(801)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 표시 장치(860)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(870)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(870)은, 입력 장치(850)를 통해 소리를 획득하거나, 음향 출력 장치(855), 또는 전자 장치(801)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(802)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(876)은 전자 장치(801)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(876)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(877)는 외부 전자 장치(예: 전자 장치(802))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(877)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(878)는 전자 장치(801)와 외부 전자 장치(예: 전자 장치(802))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(879)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(879)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(880)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(880)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(888)은 전자 장치(801)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(889)는 전자 장치(801)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(890)은 전자 장치(801)와 외부 전자 장치(예: 전자 장치(802), 전자 장치(804), 또는 서버(808))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(890)은 프로세서(820)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(890)은 무선 통신 모듈(892)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(894)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제1 네트워크(898)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(899)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(890)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일 실시 예에 따르면, 무선 통신 모듈(892)은 가입자 식별 모듈(896)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(801)를 구별 및 인증할 수 있다.
안테나 모듈(897)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(890)(예: 무선 통신 모듈(892))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성 요소들 중 일부 구성 요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제2 네트워크(899)에 연결된 서버(808)를 통해서 전자 장치(801)와 외부의 전자 장치(804)간에 송신 또는 수신될 수 있다. 전자 장치(802, 804) 각각은 전자 장치(801)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(801)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일 실시 예에 따르면, 전자 장치(801)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(801)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(801)로 전달할 수 있다. 전자 장치(801)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성 요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성 요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 어떤(예: 제1) 구성 요소가 다른(예: 제2) 구성 요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제3 구성 요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(836) 또는 외장 메모리(838))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(840))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(801))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(820))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성 요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장 매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (17)

  1. 전자 장치에 있어서,
    디스플레이;
    통신 회로;
    제1 리소스를 포함하는 네이티브 웹 어플리케이션을 저장하는 제1 메모리;
    상기 네이티브 웹 어플리케이션에 포함된 명령어들이 로드되는 제2 메모리; 및
    프로세서를 포함하고,
    상기 프로세서는,
    지정된 조건이 만족되면, 상기 통신 회로를 통해, 외부 전자 장치로 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하고,
    상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하도록 설정되고,
    상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하도록 설정된 전자 장치.
  2. 청구항 1에 있어서,
    상기 제1 메모리는 비휘발성 메모리를 포함하고,
    상기 제2 메모리는 휘발성 메모리를 포함하는 전자 장치.
  3. 청구항 1에 있어서,
    상기 지정된 조건은,
    상기 외부 전자 장치로의 접속 시간 및 접속 횟수 중 적어도 하나를 포함하는 설정 정보에 기반한 상기 외부 전자 장치로의 연결 조건을 포함하는 전자 장치.
  4. 청구항 1에 있어서,
    상기 프로세서는,
    상기 제1 리소스 또는 상기 제2 리소스에 대한 정보를 상기 제1 메모리에 저장하도록 설정된 전자 장치.
  5. 청구항 4에 있어서,
    상기 정보는 상기 제1 리소스 또는 상기 제2 리소스의 식별자, URL, 종류, 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 중 적어도 하나를 포함하는 전자 장치.
  6. 청구항 1에 있어서,
    상기 프로세서는,
    상기 제1 리소스 또는 상기 제2 리소스의 유효 기간을 확인하고,
    상기 유효 기간이 만료되었다는 판단 하에, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제2 리소스를 다운로드하고,
    다운로드된 상기 제2 리소스를 상기 제1 메모리에 저장하도록 설정된 전자 장치.
  7. 청구항 1에 있어서,
    상기 프로세서는,
    상기 제1 메모리의 공간이 지정된 수준 이하인 경우, 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스의 우선순위를 기반으로 상기 제1 리소스 또는 상기 제2 리소스의 삭제 여부를 판단하고,
    상기 제1 리소스 또는 상기 제2 리소스가 삭제 대상인 경우, 상기 제1 리소스 또는 상기 제2 리소스를 상기 제1 메모리에서 삭제하도록 설정된 전자 장치.
  8. 청구항 7에 있어서,
    상기 프로세서는,
    상기 제1 리소스 또는 상기 제2 리소스의 사용횟수 및 마지막 사용일자 중 적어도 하나를 기반으로 상기 우선순위를 부여하도록 설정된 전자 장치.
  9. 청구항 1에 있어서,
    상기 프로세서는,
    스레드를 통해 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작, 상기 제1 리소스를 상기 제1 메모리에 저장하는 동작, 및 상기 제2 리소스를 수신하고 상기 제2 리소스를 상기 제1 메모리에 저장하는 동작을 수행하도록 설정된 전자 장치.
  10. 전자 장치의 리소스 캐싱 방법에 있어서,
    지정된 조건이 만족되면, 상기 전자 장치의 프로세서가 통신 회로를 통해, 외부 전자 장치로 제1 메모리에 저장된 네이티브 웹 어플리케이션에 포함된 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작;
    상기 제1 리소스가 변경되지 않았다는 응답 또는 상기 외부 전자 장치의 연결 불응에 대응하여, 상기 제1 리소스를 이용하는 동작;
    상기 제1 리소스가 변경되었다는 응답에 대응하여, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제1 리소스를 대체하는 제2 리소스를 수신하고, 상기 제2 리소스를 이용하는 동작을 포함하는 리소스 캐싱 방법.
  11. 청구항 10에 있어서,
    상기 지정된 조건은,
    상기 외부 전자 장치로의 접속 시간 및 접속 횟수 중 적어도 하나를 포함하는 설정 정보에 기반한 상기 외부 전자 장치로의 연결 조건을 포함하는 리소스 캐싱 방법.
  12. 청구항 10에 있어서,
    상기 제1 리소스 또는 상기 제2 리소스에 대한 정보를 상기 제1 메모리에 저장하는 동작을 더 포함하는 리소스 캐싱 방법.
  13. 청구항 12에 있어서,
    상기 정보는 상기 제1 리소스 또는 상기 제2 리소스의 식별자, URL, 종류, 생성일자, 캐시일자, 마지막 사용일자, 사용횟수, 우선순위, 또는 캐시여부 중 적어도 하나를 포함하는 리소스 캐싱 방법.
  14. 청구항 10에 있어서,
    상기 제1 리소스 또는 상기 제2 리소스의 유효 기간을 확인하는 동작;
    상기 유효 기간이 만료되었다는 판단 하에, 상기 통신 회로를 통해, 상기 외부 전자 장치로부터 상기 제2 리소스를 다운로드하는 동작; 및
    다운로드된 상기 제2 리소스를 상기 제1 메모리에 저장하는 동작을 더 포함하는 리소스 캐싱 방법.
  15. 청구항 10에 있어서,
    상기 제1 메모리의 공간이 지정된 수준 이하인 경우, 상기 제1 메모리에 저장된 상기 제1 리소스 또는 상기 제2 리소스의 우선순위를 기반으로 상기 제1 리소스 또는 상기 제2 리소스의 삭제 여부를 판단하는 동작; 및
    상기 제1 리소스 또는 상기 제2 리소스가 삭제 대상인 경우, 상기 제1 리소스 또는 상기 제2 리소스를 상기 제1 메모리에서 삭제하는 동작을 더 포함하는 리소스 캐싱 방법.
  16. 청구항 15에 있어서,
    상기 제1 리소스 또는 상기 제2 리소스의 사용횟수 및 마지막 사용일자 중 적어도 하나를 기반으로 상기 우선순위를 부여하는 동작을 더 포함하는 리소스 캐싱 방법.
  17. 청구항 10에 있어서,
    스레드를 통해 상기 제1 리소스의 변경 여부를 확인하기 위한 요청을 전달하는 동작, 상기 제1 리소스를 상기 제1 메모리에 저장하는 동작, 및 상기 제2 리소스를 수신하고 상기 제2 리소스를 상기 제1 메모리에 저장하는 동작이 수행되는 리소스 캐싱 방법.
KR1020180069214A 2018-06-15 2018-06-15 리소스 캐싱 방법 및 이를 지원하는 전자 장치 KR102658819B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180069214A KR102658819B1 (ko) 2018-06-15 2018-06-15 리소스 캐싱 방법 및 이를 지원하는 전자 장치
PCT/KR2019/006421 WO2019240404A1 (ko) 2018-06-15 2019-05-29 리소스 캐싱 방법 및 이를 지원하는 전자 장치
US17/252,362 US11809313B2 (en) 2018-06-15 2019-05-29 Resource caching method and electronic device supporting the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180069214A KR102658819B1 (ko) 2018-06-15 2018-06-15 리소스 캐싱 방법 및 이를 지원하는 전자 장치

Publications (2)

Publication Number Publication Date
KR20190142108A true KR20190142108A (ko) 2019-12-26
KR102658819B1 KR102658819B1 (ko) 2024-04-19

Family

ID=68843478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180069214A KR102658819B1 (ko) 2018-06-15 2018-06-15 리소스 캐싱 방법 및 이를 지원하는 전자 장치

Country Status (3)

Country Link
US (1) US11809313B2 (ko)
KR (1) KR102658819B1 (ko)
WO (1) WO2019240404A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11461456B1 (en) * 2015-06-19 2022-10-04 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150118843A (ko) * 2014-04-15 2015-10-23 광운대학교 산학협력단 비 휘발성 메모리를 이용한 처리된 자원 캐싱 장치 및 방법
KR20150131818A (ko) * 2014-05-16 2015-11-25 광운대학교 산학협력단 비휘발성 메모리를 이용한 웹 페이지의 레이아웃 캐싱 장치 및 방법
KR101589870B1 (ko) * 2015-04-23 2016-02-01 광운대학교 산학협력단 비휘발성 메모리를 이용한 웹 페이지의 화면 이미지 캐싱 장치 및 방법
KR20160127798A (ko) * 2014-03-31 2016-11-04 구글 인코포레이티드 네이티브 웹-기반 애플리케이션

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745164B2 (en) * 2007-07-19 2014-06-03 Ebay Inc. Method and system to detect a cached web page
KR101503746B1 (ko) * 2008-09-16 2015-03-18 주식회사 엘지유플러스 이미지 리소스 관리 장치 및 방법
US8060697B1 (en) * 2008-09-18 2011-11-15 Sprint Communications Company L.P. Dynamically allocated secondary browser cache
US20100235473A1 (en) * 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
KR101453743B1 (ko) 2010-08-16 2014-10-21 에스케이플래닛 주식회사 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치
US9069876B2 (en) * 2011-05-25 2015-06-30 Nokia Corporation Memory caching for browser processes
KR101813512B1 (ko) 2011-09-16 2018-01-02 네이버 주식회사 웹 어플리케이션 설치 시스템 및 방법
US9305107B2 (en) 2011-12-08 2016-04-05 Google Inc. Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device
US9043469B2 (en) 2012-06-29 2015-05-26 International Business Machines Corporation Cache control for web application resources
US9864810B2 (en) * 2012-08-24 2018-01-09 International Business Machines Corporation User-specified user application data sharing
US9596312B2 (en) 2013-01-28 2017-03-14 Facebook, Inc. Static resource caching
KR101463333B1 (ko) * 2013-04-16 2014-11-18 광운대학교 산학협력단 자원의 타입에 기초한 웹 브라우저 정보 캐싱 장치 및 방법
CN106096030B (zh) * 2013-04-23 2019-10-15 北京奇虎科技有限公司 对浏览器运行进行优化的方法和装置
JP2015164018A (ja) * 2014-02-28 2015-09-10 株式会社東芝 コンテンツ提供装置、コンテンツ提供方法及びプログラム
US20160019210A1 (en) * 2014-07-21 2016-01-21 Dropbox, Inc. Sharing unmanaged content using a content management system
US12067357B2 (en) * 2017-07-31 2024-08-20 Qiang Wang Unified internet integration system for a positioning-oriented architecture and the method thereof
US10949343B2 (en) * 2018-02-12 2021-03-16 International Business Machines Corporation Instant storage reclamation ensuring uninterrupted media recording

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160127798A (ko) * 2014-03-31 2016-11-04 구글 인코포레이티드 네이티브 웹-기반 애플리케이션
KR20150118843A (ko) * 2014-04-15 2015-10-23 광운대학교 산학협력단 비 휘발성 메모리를 이용한 처리된 자원 캐싱 장치 및 방법
KR20150131818A (ko) * 2014-05-16 2015-11-25 광운대학교 산학협력단 비휘발성 메모리를 이용한 웹 페이지의 레이아웃 캐싱 장치 및 방법
KR101589870B1 (ko) * 2015-04-23 2016-02-01 광운대학교 산학협력단 비휘발성 메모리를 이용한 웹 페이지의 화면 이미지 캐싱 장치 및 방법

Also Published As

Publication number Publication date
WO2019240404A1 (ko) 2019-12-19
US11809313B2 (en) 2023-11-07
US20210365366A1 (en) 2021-11-25
KR102658819B1 (ko) 2024-04-19

Similar Documents

Publication Publication Date Title
KR102400580B1 (ko) 다른 전자 장치의 인증을 수행하는 전자 장치와 이의 동작 방법
US20140067879A1 (en) Application management for a terminal
CN111083042B (zh) 模板消息的推送方法、装置、设备及存储介质
AU2016202576B2 (en) Techniques for evaluating applications through use of an auxiliary application
KR20200090010A (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
CN110865837B (zh) 一种进行系统升级的方法和终端
KR102516583B1 (ko) 전자 장치 및 전자 장치의 업데이트 제어 방법
KR20200042798A (ko) 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
CN112162795A (zh) 一种插件启动方法、装置、计算机设备和存储介质
KR20190132875A (ko) 계정 그룹 기반으로 콘텐츠를 공유하는 방법 및 이를 제공하는 전자 장치
US20200201518A1 (en) Method for starting application and electronic device for implementing same
EP3500928B1 (en) Methods and systems for managing application installation
KR102658819B1 (ko) 리소스 캐싱 방법 및 이를 지원하는 전자 장치
KR20190107901A (ko) 전자 펜으로부터 수신한 신호에 기초하여 다양한 기능을 실행시키기 위한 전자 장치
KR20190021773A (ko) 전자 장치 및 그의 데이터 운용 방법
KR20210046426A (ko) 어플리케이션의 최적화 방법 및 이를 지원하는 전자 장치
KR20200079081A (ko) 콘텐트 공유 방법 및 그 전자 장치
US11875035B2 (en) Electronic device and method for managing memory using the same
CN114095533B (zh) 云游戏账号登录方法、装置、计算机设备及存储介质
KR20200068068A (ko) IoT 장치를 등록하는 전자 장치, 서버 및 그 작동 방법
KR20200012536A (ko) 전자 장치 및 그의 동작 방법
US11726647B2 (en) Content sharing method and electronic device therefor
US11341095B2 (en) Electronic device for searching for file information stored in external device and operation method thereof
CN113742716A (zh) 代码运行方法、装置、电子设备、存储介质和程序产品
KR102666045B1 (ko) 클라우드 서비스를 제공하는 전자 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant