KR20120016333A - 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치 - Google Patents

웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치 Download PDF

Info

Publication number
KR20120016333A
KR20120016333A KR1020100078600A KR20100078600A KR20120016333A KR 20120016333 A KR20120016333 A KR 20120016333A KR 1020100078600 A KR1020100078600 A KR 1020100078600A KR 20100078600 A KR20100078600 A KR 20100078600A KR 20120016333 A KR20120016333 A KR 20120016333A
Authority
KR
South Korea
Prior art keywords
web application
page
pages
file
execution
Prior art date
Application number
KR1020100078600A
Other languages
English (en)
Other versions
KR101453743B1 (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 KR1020100078600A priority Critical patent/KR101453743B1/ko
Publication of KR20120016333A publication Critical patent/KR20120016333A/ko
Application granted granted Critical
Publication of KR101453743B1 publication Critical patent/KR101453743B1/ko

Links

Images

Classifications

    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

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

Abstract

본 발명은 다수의 페이지로 구성되는 웹 어플리케이션의 페이지간 호출 관계를 분석하여, 호출 가능성이 큰 페이지를 미리 캐싱함으로써 웹 어플리케이션의 실행 속도를 개선한 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치에 관한 것으로서, 다수의 페이지로 구성되는 웹 어플리케이션을 저장한 단말 장치는 웹 어플리케이션의 실행 시, 웹 어플리케이션에 포함된 다수의 페이지 간의 호출 관계를 분석하여, 현재 페이지를 기준으로 호출 가능성이 큰 하나 이상의 페이지를 미리 캐싱함으로써, 추후 페이지 전환 시의 실행 속도를 개선한다.

Description

웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치{Pre-caching method for web application and device using the same}
본 발명은 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치에 관한 것으로서, 더욱 상세하게는 웹 어플리케이션을 구성하는 페이지 사이의 호출 관계를 분석하여, 호출 가능성이 큰 페이지를 미리 캐싱함으로써 웹 어플리케이션의 실행 속도를 개선한 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치에 관한 것이다.
최근 스마트폰의 성장에 따라서, 오픈 환경이 도래하면서, 서비스의 차별화를 위하여 개방형 어플리케이션 및 플랫폼 환경이 요구되고 있다.
더 구체적으로, 사용자가 자신이 원하는 모바일 어플리케이션을 자유롭게 선택하여 설치할 수 있는 스마트폰이 급성장하면서, 이러한 스마트폰에서 이용 가능한 모바일 어플리케이션의 개발 및 이러한 모바일 어플리케이션을 자유롭게 거래할 수 있는 OMP(Open Market Place)가 활성화되고 있다.
한편, 정적이고 단순한 컨텐츠를 표현하기 위해 시작된 웹은 브라우저라는 클라이언트 어플리케이션을 사용할 수 있는 환경만 갖춰지면 어디서나 동등한 수준의 사용자 인터페이스를 제공할 수 있다는 장점 때문에, 사용자 저변과 서비스 영역을 빠르게 확장해왔다. 이와 함께, 웹 컨텐츠는 특정 내용을 서술하는 단순한 컨텐츠에서, 사용자의 입력에 반응하여 사용자가 원하는 서비스를 제공할 수 있는 웹 어플리케이션으로 진화하고 있다.
따라서, 스마트폰과 같이 GPOS를 탑재한 이동 통신 단말에 대하여, 표준 웹 기술을 지원하는 서비스 플랫폼을 구현할 경우, 웹 어플리케이션을 모바일 어플리케이션으로 제공할 수 있게 되므로, 기존의 풍부한 웹 개발자 저변과 웹 개발 도구를 이용하여, 더욱 쉽게 모바일 어플리케이션을 개발할 수 있으며, 더하여, 풍부한 사용자 인터페이스를 쉽고 빠르게 개발하여 제공할 수 있을 것으로 기대된다.
그런데, 웹 어플리케이션은 다수의 페이지가 링크로 연결되어 이루어지기 때문에, 페이지 전환 시마다 단말이 각 페이지의 파일을 읽어와 표시하여야 하기 때문에, 화면 전환 속도가 다른 어플리케이션에 비하여 느리다는 단점이 있다.
본 발명은 종래의 문제점을 해결하기 위하여 제안된 것으로서, 다수의 페이지로 구성되는 웹 어플리케이션의 페이지간 호출 관계를 분석하여, 호출 가능성이 큰 페이지를 미리 캐싱함으로써 웹 어플리케이션의 실행 속도를 개선한 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치를 제공하고자 한다.
본 발명은 과제를 해결하기 위한 수단으로서, 사용자 입력에 대응하는 사용자 입력 신호를 출력하는 입력부; 상호 연결된 다수의 페이지로 구성되는 웹 어플리케이션의 파일을 저장하는 저장부; 및 입력부를 통해 웹 어플리케이션 실행이 요청되면, 저장부에서 웹 어플리케이션의 파일을 로딩하여 실행하고, 웹 어플리케이션의 실행 시, 웹 어플리케이션에 포함된 다수의 페이지 간의 호출 관계를 분석하여, 현재 페이지를 기준으로 호출 가능성이 큰 하나 이상의 페이지를 미리 캐싱하는 제어부를 포함하는 단말 장치를 제공한다.
본 발명에 의한 단말 장치에 있어서, 제어부는 상호 링크된 다수의 페이지로 구성되는 웹 어플리케이션의 각 페이지 간의 호출 관계를 분석하는 분석 모듈; 분석 모듈의 분석 결과에 기초하여, 현재 페이지에서 호출 가능성이 큰 페이지를 하나 이상 추출하여 페이지 리스트를 생성하는 예측 모듈; 및 예측 모듈에서 생성된 페이지 리스트에 포함된 하나 이상의 페이지를 미리 캐싱하는 실행 모듈을 포함한다.
본 발명에 의한 단말 장치에 있어서, 분석 모듈은 분석 결과를 이용하여 페이지간 호출 빈도를 저장할 테이블을 더 생성하는 것을 특징으로 한다.
본 발명에 의한 단말 장치에 있어서, 예측 모듈은 웹 어플리케이션의 실행 중의 페이지 전환 결과를 이용하여, 각 페이지 간의 호출 빈도를 측정하고, 호출 빈도를 기준으로 호출 가능성을 판단하는 것을 특징으로 한다.
본 발명에 의한 단말 장치에 있어서, 예측 모듈은 페이지 전환 이벤트가 발생하면, 현재 생성한 페이지 리스트를 삭제하고, 전환된 페이지를 기준으로 다시 페이지 리스트를 생성하는 것을 특징으로 한다.
본 발명에 의한 단말 장치에 있어서, 실행 모듈은 가용 메모리를 고려하여 캐싱할 페이지의 개수를 정하는 것을 특징으로 한다.
본 발명에 의한 단말 장치에 있어서, 제어부는 호출 가능성이 큰 하나 이상의 페이지를 분석 및 구조화하여 바이너리 페이지 데이터로 변경하여 저장하는 것을 특징으로 한다.
본 발명에 의한 단말 장치에 있어서, 웹 어플리케이션은 웹 어플리케이션의 콘텐츠를 기술하는 콘텐츠 파일과, 웹 어플리케이션에 대한 정보를 기술하는 정보 파일을 포함하여 이루어지는 것을 특징으로 한다.
본 발명에 의한 단말 장치에 있어서, 콘텐츠 파일은 웹 어플리케이션의 각 페이지를 표현하는 소스 파일 및 소스 파일에 링크로 연결되는 리소스 파일을 포함하여 이루어진다.
본 발명에 의한 단말 장치에 있어서, 소스 파일은 태그 및 상기 태그의 속성이 기술되는 마크업 언어, 태그 및 상기 태그의 속성이 페이지에 표시되는 스타일을 기술하는 스타일시트 및 웹 어플리케이션을 동적으로 제어하기 위한 스크립트 언어를 포함하여 이루어진다.
본 발명에 의한 단말 장치에 있어서, 리소스 파일은 장면 기술, 비디오, 오디오, 이미지, 폰트, 텍스트, 메타데이터, 및 스크립트 파일 중 적어도 하나를 포함할 수 있다.
본 발명에 의한 단말 장치에 있어서, 정보 파일은 웹 어플리케이션에 포함되는 파일의 목록, 파일 별 공개 여부와 공개 범위 및 웹 어플리케이션의 실행 환경을 설정하기 위한 설정 값을 포함하는 구성 정보가 기술되는 구성 정보 파일과, 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 접근 권한의 범위를 지정하기 위한 정책 정보를 기술하는 정책 정보 파일을 포함하는 것을 특징으로 한다.
더하여, 본 발명은 과제를 해결하기 위한 다른 수단으로서, 다수의 페이지로 구성되는 웹 어플리케이션을 실행하는 단말 장치에서의 웹 어플리케이션을 위한 사전 캐싱 방법에 있어서, 단말 장치가, 웹 어플리케이션을 실행할 때, 웹 어플리케이션을 구성하는 페이지 간의 호출 관계를 분석하는 단계; 분석 결과를 이용하여, 현재 실행 중인 페이지를 기준으로 호출 가능성이 큰 페이지 리스트를 추출하여 저장하는 단계; 및 저장된 페이지 리스트에 포함된 하나 이상의 페이지를 미리 캐싱하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의한 웹 어플리케이션을 위한 사전 캐싱 방법에 있어서, 페이지 간의 호출 관계를 분석하는 단계는, 페이지 간의 호출 관계에 대한 분석 결과에 근거하여, 웹 어플리케이션 실행 중에 나타나는 페이지간 호출 빈도를 저장할 테이블을 생성하는 단계; 웹 어플리케이션의 실행 중에 발생하는 페이지 전환 이벤트 결과에 기초하여, 테이블의 페이지 간 호출 빈도를 갱신하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 의한 웹 어플리케이션을 위한 사전 캐싱 방법은, 페이지 전환 이벤트 발생 여부를 확인하여, 페이지 전환 이벤트가 발생하면, 저장된 페이지 리스트를 삭제하는 단계를 더 포함할 수 있다.
본 발명에 의한 웹 어플리케이션을 위한 사전 캐싱 방법에 있어서, 캐싱하는 단계는, 가용 메모리를 고려하여 캐싱할 페이지의 개수를 설정하는 것을 특징으로 한다.
본 발명에 의한 웹 어플리케이션을 위한 사전 캐싱 방법은, 캐싱한 하나 이상의 페이지를 분석 및 구조화하여 바이너리 페이지 데이터로 변경하는 단계를 더 포함할 수 있다.
더하여, 본 발명은 상술한 웹 어플리케이션을 위한 사전 캐싱 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공한다.
본 발명에 따르면, 단말 장치에서 다수의 페이지로 구성되는 웹 어플리케이션을 실행하는데 있어서, 현재 페이지를 기준으로 호출 가능성이 큰 페이지를 미리 캐시 메모리에 캐싱함으로써, 이후 웹 어플리케이션의 실행 중에 링크된 다른 페이지가 호출되면 캐시 메모리에서 사전에 캐싱한 해당 페이지의 데이터를 바로 가져와 화면으로 출력할 수 있으므로, 페이지 전환 속도를 개선할 수 있다. 더하여, 다수의 페이지로 이루어진 웹 어플리케이션을 실행하는데 있어서, 페이지 간의 전환 속도를 개선함으로써, 웹 어플리케이션의 전반적인 실행 성능을 향상시킬 수 있는 우수한 효과가 있다. 더하여, 본 발명은 웹 어플리케이션의 실행 성능을 개선함으로써 기존의 네이티브 어플리케이션에 비하여 화면 전환이 느리다는 웹 어플리케이션의 단점을 해결할 수 있으며, 그 결과, 웹 어플리케이션에 대한 사용자 만족도를 향상시킬 수 있는 우수한 효과가 있다.
도 1은 본 발명에 적용되는 웹 어플리케이션의 구조를 설명하기 위한 개념도이다.
도 2는 본 발명에 적용되는 웹 어플리케이션의 파일 구조를 설명하기 위한 블럭도이다.
도 3은 본 발명에 적용되는 웹 어플리케이션의 어느 한 페이지를 실행하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 단말 장치의 구성을 나타낸 블럭도이다.
도 5는 본 발명에 따른 단말 장치에 있어서, 웹 어플리케이션을 위한 사전 캐싱을 처리하기 위한 제어부의 구성을 나타내는 블럭도이다.
도 6은 본 발명의 일 실시 예에 따른 웹 어플리케이션을 위한 사전 캐싱 방법을 나타낸 순서도이다.
도 7은 본 발명의 일 실시 예에 따른 웹 어플리케이션을 위한 사전 캐싱 방법에 있어서, 페이지간 호출 관계를 분석하는 단계에 대한 상세 처리 과정을 나타낸 순서도이다.
도 8은 본 발명의 일 실시 예에 따른 웹 어플리케이션을 위한 사전 캐싱 방법에 있어서, 페이지간 호출 빈도를 관리하기 위한 테이블의 예시한 도면이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
먼저, 본 발명에 적용되는 웹 어플리케이션에 대해서 설명하기로 한다. 도 1은 본 발명에 따른 웹 어플리케이션의 구성을 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 웹 어플리케이션은 페이지를 기본 단위로 동작하는 것으로서, 복수의 페이지(10~13)로 구성된다. 상기 복수의 페이지(10~13)은 하나 이상의 다른 페이지와 링크로 연결된다. 본 실시 예에서는, 페이지(10)는 다른 페이지(11,12)와 링크되며, 페이지(12)는 또 다른 페이지(13)와 링크된다. 이러한 웹 어플리케이션을 실행시키면, 한 페이지(10)가 시작 페이지로 실행되고, 상기 웹 어플리케이션의 실행됨에 따라서 다른 페이지(11,12)를 실행시키는 이벤트가 발생하면, 그 다른 페이지(11,12)가 실행된다.
이러한 웹 어플리케이션은 다수의 페이지(10~13)를 구성하는 파일들을 패키지로 묶어 관리한다.
도 2는 웹 어플리케이션의 파일 구조를 설명하기 위한 도면으로서, 이를 참조하면, 웹 어플리케이션은 다수 페이지의 콘텐츠를 기술하는 콘텐츠 파일(100)과, 웹 어플리케이션에 대한 정보를 기술하는 정보 파일(200)을 포함한다. 여기서, 콘텐츠 파일(100)은 소스 파일(110) 및 리소스 파일(120)을 포함한다. 또한, 정보 파일(200)은 구성 정보 파일(210) 및 정책 정보 파일(220)을 포함한다.
상기 소스 파일(110)은 마크업 언어(Markup Language), 스타일시트(Style Sheets), 및 스크립트 언어(scripting language)로 작성된 파일이며, 이중 스타일시트 및 스크립트 언어는 선택적으로 생략 가능하다. 상술한 언어들로 작성된 소스 파일(110)에 의해 웹 어플리케이션의 각 페이지(10~13)가 표현된다. 여기서, 마크업 언어로는 HTML(Hypertext Markup Language), XHTML(extensible Hypertext Markup Language), XML(Extensible Markup Language) 등을 예시할 수 있으며, 이러한 마크업 언어는 다수의 태그(tag)와 각 태그의 속성(attribute) 및 일반적인 텍스트로 이루어진다. 스타일시트는 사용자가 정의한 디자인 속성, 즉, 스타일을 기술하기 위한 언어로서, 태그, 속성, 및 텍스트에 의해 보여지는 페이지(10~13)의 글꼴, 크기, 색상, 레이아웃 등의 스타일을 기술한다. 이러한 스타일시트를 사용한 페이지는 다른 화면 해상도를 가지는 표시 장치와 다른 종류의 브라우저에서도 스타일시트에 기술한 바에 따라 동일하게 보여진다. 이 스타일시트는 대표적으로 CSS(Cascading Style Sheets)를 예시할 수 있다. 스크립트 언어는 프로그래밍 언어로서 웹 어플리케이션을 동적으로 제어하기 위한 언어이다. 대표적으로, 자바 스크립트(Java Script)를 예시할 수 있다.
리소스 파일(120)은 웹 어플리케이션의 각 페이지(10~13)에 삽입되는 소스 파일(110) 이외의 각종 파일을 말한다. 이 리소스 파일(120)은 소스 파일(110)을 기술하는 프로그래밍 언어를 통해 링크 태그를 이용하여 페이지(10~13)에 삽입될 수 있다. 또한, 이러한 리소스 파일(120)은 웹(Web) 상의 어느 일 디바이스 또는 웹 어플리케이션이 실행되는 로컬 디바이스에 저장될 수 있으며, 이 리소스 파일(120)에 접근하여 다운로드 받을 수 있는 주소(URL)는 마크업 언어를 통해 태그의 속성으로 기술된다. 이러한 리소스 파일(120)로 장면 기술(scene description), 비디오(video), 오디오(audio), 이미지(image), 폰트(font), 텍스트(text), 메타데이터(meta-data) 및 스크립트(script) 파일 등을 예시할 수 있다. 리소스 파일(120)은 앞서 나열한 것 이외에도 다양한 종류가 존재할 수 있으며, 다양한 형식(format)의 파일이 될 수 있다.
구성(Configuration) 정보는 구성 정보 파일(210)에 기술되는 내용으로, 해당 웹 어플리케이션에 포함되는 파일의 목록, 그 파일 별 공개 여부와 공개 범위, 및 웹 어플리케이션의 실행 환경을 설정하기 위한 설정 값이 저장된다. 여기서, 실행 환경은 웹 어플리케이션이 실행되기 위해 요구되는 사양과 그 설정을 기술하는 것으로, 화면 크기, CPU, 그 CPU의 클럭 속도, 운영 체제, 입력 및 출력을 위한 버퍼(buffer)의 형태 및 크기 등이 될 수 있다.
정책 정보는 정책 정보 파일(220)에 기술되는 내용으로, 해당 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 접근 권한의 범위를 지정하기 위한 정보로, 해쉬 코드 등을 예로 들 수 있다. 해쉬 코드(Hash code)는 웹 어플리케이션의 무결성(integrity)을 검증하기 위한 것으로, 이 해쉬 코드를 이용하여 해당 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 권한이 있는지 여부를 확인할 수 있다.
더불어 웹 어플리케이션의 각 페이지가 어떻게 처리되고 실행되는지에 대해서 설명하기로 한다. 일반적으로 프로그래밍 언어는 명령형 기술 언어와 선언적 기술 언어로 분류할 수 있다. 명령형 기술 언어는 '어떤 방법'으로 해를 구할 것인지에 중점을 두어 기술되는 언어로, 실행될 알고리즘을 명시하고 목표는 명시하지 않는다. 대표적으로 전통적인 포트란, C, 자바 등이 명령형 기술 언어에 해당한다. 이와 반대로, 선언적 기술 언어는 '해'가 무엇인지를 설명하는 것에 중점을 두어 기술되는 언어로, 목표를 명시하고 알고리즘은 명시하지 않는다. 본 발명의 실시 예에 따른 소스 파일(110)은 선언적 기술 언어로 작성된다. 예를 들어, 소스 파일(110)이 마크업 언어 중 HTML로 작성되었다고 했을 때, 그 HTML의 태그 및 태그의 속성은 HTML 뷰어(Viewer), 즉, 브라우저에서 무엇을 보여주어야 하는지를 선언하는 것이다. 이에 따라, 브라우저 엔진의 절차적 알고리즘이 태그 및 태그의 속성을 해석하여, 화면에 표시할 점들로 변환한다. 이를 위하여, 선언적 기술 언어로 작성된 소스 파일(110)의 구성 성분(태그 및 속성)을 의미 있는 토큰으로 분해(parsing)하여 그들 사이의 위계 관계를 분석한 후, 분석된 위계 관계에 따라 문장의 구조가 이미 결정된 파스 트리(parse tree)를 구성한다. 파스 트리의 각 노드(node)는 태그, 속성 및 일반 텍스트를 포함할 수 있으며, 이는 무엇을 보여주어야 하는지 선언한 것이다. 그리고 각 노드의 선언된 바를 트리 구조의 위계 관계에 따라 표현한다. 이에 대해서 도 3을 참조하여 좀 더 자세히 설명하기로 한다.
도 3을 참조하면, 앞서 설명한 바와 같이, 소스 파일(110)은 마크업 언어(111), 스타일시트(113)를 포함한다. 이외에 스크립트 언어를 포함할 수 있으나, 여기서 스크립트 언어를 처리하는 부분에 대한 설명은 생략하기로 한다.
S301 단계에서, 마크업 언어(111) 및 스타일시트(113)는 선언적 기술 언어의 해석 방법에 따라, 구성 성분을 의미 있는 토큰으로 분해하여 그들 사이의 위계 관계의 분석을 거쳐 문장의 구조가 이미 결정된 파스 트리를 구성한다. 여기서, 파스 트리는 DOM(Document Object Model) 트리(310) 및 스타일 트리(320)를 포함한다. 즉, 마크업 언어(111)는 태그, 그 태그의 속성 및 일반 텍스트로 이루어지며, 이 마크업 언어(111)는 분해된 후, 각각의 위계 관계에 따라 DOM 트리(310)를 구성한다. 스타일시트(113)는 마크업 언어(111)에 의해 표현되는 페이지(10)의 글자, 여백, 레이아웃 등을 지정하는 스타일을 가지며, 이 스타일시트(113)는 분해되어 복수의 스타일이 위계 관계에 따라 트리 구조로 정리된 스타일 트리(320)를 구성한다.
그런 다음, S303 단계에서 DOM 트리(310) 및 스타일 트리(320)가 결합되어 랜더러 트리(330)를 구성한다. 이어서, S305 단계에서 랜더러 트리(330)의 해석을 통해 스타일에 맞는 레이아웃을 설정하고, 각 속성의 값을 해당 레이아웃에 배치하여 페이지 데이터(340)를 생성한다. 이 페이지 데이터(340)는 랜더링되어 화면에 페이지(10)로 표시되기 전의 데이터이다.
다음으로, S307 단계에서 페이지 데이터(340)의 구조를 변경(serialization)하여 바이너리 형태로 저장한다. 이와 같이, 바이너리 형태로 저장된 페이지 데이터를 바이너리 페이지 데이터(350)라고 칭하기로 한다. 이와 같은 상태에서 사용자가 해당 페이지(10)를 실행시키는 요청이 있으면, S309 단계에서 바이너리 페이지 데이터(350)를 랜더링하여 출력한다. 필요에 따라, 데이터 구조를 변경시키는 S307 단계는 생략할 수 있다. 즉, 페이지 데이터(340)에서 바로 랜더링하여 페이지(10)로 출력할 수 있다.
이어서 상술한 웹 어플리케이션을 실행하는데 있어서, 본 발명에 따른 사전 캐싱을 수행하는 단말 장치 및 그의 웹 어플리케이션을 위한 사전 캐싱 방법에 대하여 설명한다.
도 4는 본 발명에 의한 웹 어플리케이션을 위한 사전 캐싱을 수행하는 단말 장치의 구성을 나타낸 블럭도이다.
도 4를 참조하면, 본 발명에 의한 단말 장치는 제어부(410)와, 저장부(420)와, 입력부(430)와, 표시부(440)와, 통신부(450)와, 오디오 처리부(460)를 포함한다.
제어부(410)는 단말 장치의 전반적인 동작을 제어하는 것으로서, 특히 본 발명에 있어서는 사용자의 웹 어플리케이션의 실행 요청에 따라서, 저장부(420)에 저장된 웹 어플리케이션의 파일을 로딩하여 실행하고, 상기 웹 어플리케이션을 실행하는 중에, 웹 어플리케이션에 포함된 다수의 페이지 간의 호출 관계를 분석하여, 현재 화면에 표시되고 있는 페이지를 기준으로 호출 가능성이 큰 하나 이상의 페이지를 메모리에 캐싱한다. 더 구체적으로 설명하면, 제어부(410)는 메모리 접근 시간을 줄이기 위하여 캐시 메모리(411)를 포함한다. 캐시 메모리(411)는 RAM과 같은 주 메모리에서 가장 자주 사용되는 위치의 데이터를 갖는 메인 메모리에 비하여 속도가 빠른 메모리로서, 자주 사용되는 데이터를 캐시 메모리(411)에 복사해 둠으로써 제어부(410)에서 평균 메모리접근 시간을 줄일 수 있으며, 이를 통해 실행 속도를 향상시키게 된다. 이 경우, 제어부(410)는 저장부(420)에서 데이터를 읽거나 쓰고자 할 때, 해당 데이터가 상기 캐시 메모리(411)에 존재하는 지를 확인하고, 해당 데이터가 캐시 메모리(411)에 있으면 캐시 메모리(411)에서 직접 읽어오고, 그렇지 않을 경우, 저장부(420)에 접근하여 데이터를 읽어온다. 여기에 더하여, 본 발명에서 제어부(410)는 웹 어플리케이션을 실행 중에, 웹 어플리케이션에 포함된 다수의 페이지 간의 호출 관계를 분석하여 호출 가능성이 큰 페이지를 캐시 메모리(411)에 미리 복사하여 두고, 페이지 전환 이벤트가 발생하면 먼저 캐시 메모리(411)에서 해당 페이지가 존재하는 지를 확인하여, 존재하면 해당 페이지의 데이터를 가져와 화면에 표시하며, 캐시 메모리(411)에 존재하지 않으면 저장부(420)에 접근하여 해당 페이지의 데이터를 가져와 화면에 표시하게 된다.
저장부(420)는 단말 장치에서 데이터를 일시적으로 또는 반영구적으로 저장하기 위한 수단으로서, 특히, 웹 어플리케이션의 파일, 즉, 도 2와 같은 구조의 웹 어플리케이션 패키지를 저장한다. 본 발명에서 저장부(420)는 램(RAM, Read Access Memory)과 같은 메인 메모리와, 하드디스크(HDD, Hard Disk Drive)나 플래시 메모리와 같은 스토리지를 포함한다. 여기서, RAM은 어느 위치에 저장된 데이터든지 접근하는데 동일한 시간이 소요되는 것으로서 단말 장치에서 실행 중인 프로그램이나 데이터가 로딩되며, 하드디스크나 플래시 메모리와 같은 보조 기억 장치는 저장된 위치에 따라서 접근하는데 걸리는 시간에 차이가 있으며, 속도가 메모리에 비하여 느린 반면 용량이 크기 때문에, 데이터나 프로그램 등이 보관된다. 본 발명에 있어서, 저장부(420)는 웹 어플리케이션의 파일을 저장하는데, 상기 웹 어플리케이션의 파일은 실질적으로 HDD나 플래시 메모리에 저장되고, 제어부(410)의 제어에 따라서 실행 요청 시 메모리로 로딩된다.
입력부(430)는 사용자 입력에 대응하는 사용자 입력 신호를 발생하는 수단으로서, 예를 들어, 숫자 또는 문자 정보를 입력 받고 다양한 기능을 설정하기 위한 다수의 입력키 및 기능키를 포함하고, 사용자의 조작에 따라서 해당 입력키 또는 기능키로부터 사용자 입력 신호가 발생하여 제어부(410)로 전달된다. 이러한 입력부(430)는 예를 들어, 키보드, 마우스, 터치 패드와 같은 보편적인 입력 장치 중 하나 이상을 포함하여 구현될 수 있으며, 이외에도 현재 개발 중이거나 앞으로 개발 예정인 다양한 방식의 입력 장치가 포함될 수 있다. 본 발명에서 입력부(430)는 사용자가 웹 어플리케이션의 실행 요청을 입력하는데 이용된다.
표시부(440)는 제어부(410)의 제어에 따라서 웹 어플리케이션의 실행 결과를 화면으로 표시한다. 즉, 웹 어플리케이션의 실행 결과물에 있어서, 시각적으로 표현되는 부분(예를 들어, 배경, 메뉴, 사진, 동영상, 텍스트, 아이콘 등등)을 표시한다. 이러한 표시부(440)는 LCD(Liquid Crystal Display) 또는 터치스크린으로 구현될 수 있으며, 특히 터치스크린으로 구현되는 경우, 입력부(430)의 기능 중 일부 또는 전부를 수행할 수 있다.
통신부(450)는 네트워크에 연결하여 통신을 수행하기 위한 수단이다. 일반적인 웹 페이지와 마찬가지로, 웹 어플리케이션의 경우에도 네트워크를 통해 서버와 연동하여 실행될 수 있다. 따라서, 통신부(450)는 제어부(410)의 제어에 따라서 서버와의 연동이 요청되는 경우, 네트워크에 연결하여 서버와 통신을 수행한다.
오디오 처리부(460)는 제어부(410)의 제어에 따라서 오디오 신호를 스피커(SPK)를 통해 가청음으로 출력하거나, 마이크(MIC)를 통해 가청음을 전기적인 오디오 신호로 변환하여 제어부(410)로 전달한다. 특히, 본 발명에 있어서, 오디오 처리부(460)는 웹 어플리케이션의 실행 결과물에 있어서 청각적으로 표현되는 부분(효과음, 배경음 등등)을 출력한다.
상술한 바와 같은 구성을 포함하는 단말 장치는, 사용자의 입력에 따라서 입력부(430)로부터 제어부(410)로 웹 어플리케이션의 실행을 요청하는 사용자 입력 신호가 전달되면, 제어부(410)가 저장부(420)에 저장된 웹 어플리케이션의 파일을 로딩하여 실행하여 표시부(440) 및 오디오 처리부(460)를 통해 출력한다. 더불어, 웹 어플리케이션이 실행되는 동안, 제어부(410)가 상기 웹 어플리케이션을 구성하는 각 페이지의 호출 관계를 분석하고, 현재 화면에 표시된 페이지에서 호출 가능성이 큰 하나 이상의 페이지를 캐시 메모리(411)에 미리 복사하여 둠으로써, 페이지 전환 시의 속도를 향상시킬 수 있다. 더불어, 제어부(410)는 상기 호출 가능성이 큰 하나 이상의 페이지에 대하여 해석 및 레이아웃 설정을 수행하여 도 3의 바이너리 페이지 데이터(350) 형태로 저장한다. 이 경우, 페이지 전환 이벤트 발생시, 상기 바이너리 페이지 데이터(350)를 바로 랜더링하여 화면으로 표시할 수 있게 됨으로써, 실행 속도를 더 향상시킬 수 있다.
도 5는 본 발명에 의한 단말 장치에 있어서, 제어부(410)에서 웹 어플리케이션을 위한 사전 캐싱을 실행하는 구성을 나타낸 기능 블럭도이다.
도 5를 참조하면, 제어부(410)는 분석 모듈(510)과 예측 모듈(520)과 실행 모듈(530)을 포함한다.
분석 모듈(510)은 상호 링크된 다수의 페이지로 구성되는 웹 어플리케이션의 각 페이지 간의 호출 관계를 분석한다. 더 구체적으로, 분석 모듈(510)은, 실행 요청된 또는 실행 중인 웹 어플리케이션을 구성하는 페이지간의 호출 관계를 분석하고, 이 분석 관계에 기초하여 해당 웹 어플리케이션의 실행 중에 나타나는 페이지간 호출 빈도를 저장할 테이블을 생성한다. 도 8은 분석 모듈(510)에서 생성되는 페이지 간 호출 빈도를 저장할 테이블의 예를 도시한 것으로서, 상기 테이블은, 현재 실행 중인 페이지를 나타내는 현재 페이지 필드와, 상기 현재 페이지에서 전환될 페이지를 나타내는 전환 페이지 필드와, 상기 현재 페이지에서 전환 페이지가 호출되는 빈도를 기술하는 횟수 필드를 포함한다. 본 실시 예에서, 해당 웹 어플리케이션은 페이지 1~페이지 5를 포함하며, 이때, 페이지 1은 페이지 2,3,4와 링크되어 있고, 페이지 2는 페이지 1, 5, 4와 링크되어 있다. 이러한 호출 관계를 나타내도록 8과 같은 테이블이 생성된다. 상기에서, 횟수 필드에 기록되는 호출 빈도는 웹 어플리케이션의 실행 중에 페이지 전환 이벤트가 발생될 때마다 갱신된다. 분석 모듈(510)은 웹 어플리케이션의 실행 중에, 페이지 전환 이벤트가 발생할 경우, 페이지 전환 결과를 기반으로 도 8과 같은 테이블의 호출 빈도를 갱신한다. 즉, 페이지 전환 이벤트가 발생한 현재 페이지와, 호출된 전환 페이지를 추출하고, 상기 테이블에서 대응하는 인덱스의 횟수 필드에 호출빈도를 증가시킨다. 여기서, 웹 어플리케이션의 한 번의 실행 동안에 발생하는 호출 빈도만을 측정할 수도 있고, 웹 어플리케이션의 실행 시마다 발생하는 호출 빈도를 누적할 수도 있다. 후자의 경우, 상기 분석 모듈(510)은 각 웹 어플리케이션의 최초 실행 시에 한번 만 페이지간 호출 관계를 분석하여 테이블을 생성하면 된다.
이어서, 예측 모듈(520)은 상기 분석 모듈(510)의 분석 결과에 기초하여, 현재 페이지에서 호출 가능성이 큰 페이지를 하나 이상 추출하여 페이지 리스트를 생성한다. 이와 관련하여, 본 발명의 일 실시 예에서, 예측 모듈(520)은 각 페이지 간의 호출 빈도를 기준으로 호출 가능성을 판단한다. 즉, 예측 모듈(520)은 상기 분석 모듈(510)에서 구성한 테이블에 기록된 호출 빈도에 근거하여 현재 페이지에서 호출 가능성이 큰 페이지를 추출하여 페이지 리스트를 생성한다. 상기 페이지 리스트는, 호출 가능성이 큰 순서대로 페이지를 배열하여 이루어질 수 있다. 도 8에 보인 실시 예에서, 현재 페이지가 페이지 1인 경우, 페이지 3이 호출 가능성이 가장 큰 페이지로 추출되며, 그 다음 페이지 2, 페이지 4 순서로 추출될 수 있다. 더하여, 상기 예측 모듈(520)은 웹 어플리케이션의 실행 중에, 페이지 전환 이벤트가 발생하면, 현재 생성한 페이지 리스트를 삭제하고, 전환된 페이지를 기준으로 다시 페이지 리스트를 생성한다. 즉, 페이지 리스트는 페이지 전환 시마다 현재 페이지를 기준으로 새로 생성된다.
마지막으로, 실행 모듈(530)은 상기 예측 모듈(520)에서 생성된 페이지 리스트에 포함된 하나 이상의 페이지를 캐시 메모리(411)에 캐싱한다. 상기 캐싱은 실제 페이지 호출이 이루어지기 전에 미리 이루어진다. 따라서, 제어부(410)는 실제 페이지 전환 이벤트가 발생하면, 상기 캐시 메모리(411)에 접근하여 호출된 페이지가 존재하는지 확인하고, 호출된 페이지가 존재하면 캐시 메모리(411)의 해당 페이지의 데이터를 바로 가져올 수 있으므로, 저장부(420)에 접근하는데 소용되는 시간을 단축할 수 있다. 특히, 사전 캐싱에서 해당 페이지가 바이너리 페이지 데이터로 저장되는 경우, 해당 페이지에 대한 해석 및 레이아웃 설정 처리 과정이 생략될 수 있으므로, 화면 전환 속도도 더욱 빨라질 수 있다.
더하여, 상기 실행 모듈(530)은 호출 가능성이 큰 페이지를 미리 캐싱하는데 있어서, 캐시 메모리(411)의 가용 메모리 양을 고려하여, 캐싱할 페이지의 개수를 정할 수 있다. 즉, 상기 페이지 리스트에서, 호출 가능성이 큰 순서대로 캐시 메모리(411)의 가용 메모리 범위 내에서 캐싱이 이루어진다.
이어서, 도 6 및 도 7을 참조하여, 본 발명에 의한 웹 어플리케이션을 위한 사전 캐싱 방법을 동작 순서에 따라서 설명한다.
도 6을 참조하면, 다수의 페이지로 구성되는 웹 어플리케이션을 구비한 단말 장치에서, 사용자가 웹 어플리케이션의 실행을 요청할 경우, 단말장치는 해당 웹 어플리케이션의 파일을 메모리로 로딩하여 실행하면서(S610), 상기 웹 어플리케이션을 구성하는 페이지 간의 호출 관계를 분석한다(S620). 이는 웹 어플리케이션의 소스 파일(110)을 분석함으로써 이루어질 수 있으며, 더불어, 웹 어플리케이션의 실행 중에 나타나는 페이지 호출 빈도를 측정하여 이루어질 수 있다. 도 7은 상기 S620 단계에 대한 상세 과정을 나타낸 순서도이다. 도 7를 참조하면, S620 단계에서, 단말 장치는, 실행 중엔 웹 어플리케이션의 소스 파일에서 분석된 페이지 간의 호출 관계를 이용하여 페이지 간 호출 빈도를 저장할 테이블(도 8참조)을 생성한다(S710). 즉, 웹 어플리케이션을 구성하는 각 페이지 별로 호출 가능한 전환 페이지를 추출하여, 도 8과 같이 매핑하여 테이블을 구성한다. 테이블의 초기 생성시에 호출 빈도 필드의 값은 모두 초기화된다.
그리고 나서, 단말 장치는, 해당 웹 어플리케이션이 실행되는 동안, 페이지 전환 이벤트가 발생하는 지를 확인한다(S720). 확인 결과, 페이지 전환 이벤트가 발생하면, 단말 장치는, 현재 페이지와 전환 페이지의 정보를 추출하여, 상기 테이블에 대응하는 부분의 호출 빈도를 갱신한다(S730). 상기 S730 단계는 웹 어플리케이션의 실행이 종료되기 전까지(S740), 페이지 전환 이벤트가 발생할 때마다 반복 수행되어, 해당 웹 어플리케이션의 실행 중에 나타나는 페이지 호출 빈도를 측정하게 된다.
다시 도 6을 참조하면, 단말 장치는, S620 단계를 수행한 후, 또는 S620단계를 수행하면서, 현재 실행 중인 페이지를 기준으로 호출 가능성이 큰 페이지 리스트를 추출하여 저장한다(S630).
그리고, 단말 장치는, 상기 저장한 페이지 리스트에 포함된 하나 이상의 페이지를 미리 캐싱한다(S640). 즉, 저장부(420)에 있는 해당 페이지의 데이터를 제어부(410)의 캐시 메모리(411)에 복사한다(S640). 이렇게 캐시 메모리(411)에 복사된 페이지는 사용자에 의해 호출될 경우, 단말 장치의 제어부(410)에서 바로 읽혀 표시될 수 있다. 더불어, 상기 S640 단계에서는, 캐시 메모리(411)의 사용 가능한 메모리 량을 고려하여 캐싱을 수행한다. 즉, 호출 가능성 및 가용 메모리를 고려한다. 뿐만 아니라 상기 S640 단계에서, 하나 이상의 페이지를 캐싱할 때, 상기 단말 장치는, 상기 하나 이상의 페이지에 대한 분석 및 구조화를 미리 실행하여 바이너리 페이지 데이터로 변경한 후에 캐시 메모리(411)에 저장할 수 있다. 이에 따르면, 실제 해당 페이지가 호출될 때, 해당 페이지의 분석 및 구조화 처리 없이 바로 랜더링이 가능해지므로, 화면 전환 속도가 더 향상될 수 있다.
더하여, 단말 장치는, 웹 어플리케이션의 실행 중에 페이지 전환 이벤트가 발생하는 지를 더 확인하고(S650), 확인 결과 페이지 전환 이벤트가 발생하면, 전환된 페이지에 대응하는 페이지 리스트를 생성하기 위하여, 앞서 저장한 페이지 리스트를 삭제한다(S660).
상술한 S630 단계 내지 S660 단계는 해당 웹 어플리케이션의 실행이 종료되기 전까지 반복된다(S670).
본 발명에 따른 웹 어플리케이션을 위한 사전 캐싱 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.
본 발명은 단말 장치에서의 웹 어플리케이션 실행에적용될 수 있는 것으로서, 상기 단말 장치가 다수의 페이지로 구성되는 웹 어플리케이션을 실행하는데 있어서, 현재 페이지를 기준으로 호출 가능성이 큰 페이지를 미리 캐싱하여 캐시 메모리에 저장함으로써, 웹 어플리케이션의 실행 중에 다음 페이지가 호출된 경우, 하드디스크나 플래시메모리와 같은 로컬 스토리지에 접근할 필요가 없어지므로, 실제 페이지 전환이 더 빠르게 이루어질 수 있으며, 다수의 페이지로 이루어진 웹 어플리케이션에서 페이지 간 전환 속도를 개선함으로써, 웹 어플리케이션의 전반적인 실행 성능을 향상할 수 있다. 더하여, 웨 어플리케이션의 실행 성능을 향상시킴으로써, 기존의 네이티브 어플리케이션에 비하여 화면 전환이 느리다는 웹 어플리케이션의 단점을 개선할 수 있으며, 이를 통해 사용자 만족도를 향상시킬 수 있는 우수한 효과가 있다.
410: 제어부
420: 저장부
430: 입력부
440: 표시부
450: 통신부
460: 오디오 처리부
510: 분석 모듈
520: 예측 모듈
530: 실행 모듈

Claims (18)

  1. 사용자 입력에 대응하는 사용자 입력 신호를 출력하는 입력부;
    상호 연결된 다수의 페이지로 구성되는 웹 어플리케이션의 파일을 저장하는 저장부; 및
    상기 입력부를 통해 웹 어플리케이션 실행이 요청되면, 상기 저장부에서 웹 어플리케이션의 파일을 로딩하여 실행하고, 웹 어플리케이션의 실행 시, 상기 웹 어플리케이션에 포함된 다수의 페이지 간의 호출 관계를 분석하여, 현재 페이지를 기준으로 호출 가능성이 큰 하나 이상의 페이지를 미리 캐싱하는 제어부를 포함하는 단말 장치.
  2. 제1항에 있어서, 상기 제어부는
    상호 링크된 다수의 페이지로 구성되는 웹 어플리케이션의 각 페이지 간의 호출 관계를 분석하는 분석 모듈;
    상기 분석 모듈의 분석 결과에 기초하여, 현재 페이지에서 호출 가능성이 큰 페이지를 하나 이상 추출하여 페이지 리스트를 생성하는 예측 모듈; 및
    상기 예측 모듈에서 생성된 페이지 리스트에 포함된 하나 이상의 페이지를 미리 캐싱하는 실행 모듈을 포함하는 단말 장치.
  3. 제2항에 있어서, 상기 분석 모듈은
    분석 결과를 이용하여 페이지간 호출 빈도를 저장할 테이블을 더 생성하는 것을 특징으로 하는 단말 장치.
  4. 제2항에 있어서, 상기 예측 모듈은
    웹 어플리케이션의 실행 중의 페이지 전환 결과를 이용하여, 각 페이지 간의 호출 빈도를 측정하고, 상기 호출 빈도를 기준으로 호출 가능성을 판단하는 것을 특징으로 하는 단말 장치.
  5. 제2항에 있어서, 상기 예측 모듈은
    페이지 전환 이벤트가 발생하면, 현재 생성한 페이지 리스트를 삭제하고, 전환된 페이지를 기준으로 다시 페이지 리스트를 생성하는 것을 특징으로 하는 단말 장치.
  6. 제2항에 있어서, 상기 실행 모듈은
    가용 메모리를 고려하여 캐싱할 페이지의 개수를 정하는 것을 특징으로 하는 단말 장치.
  7. 제1항에 있어서, 상기 제어부는
    상기 호출 가능성이 큰 하나 이상의 페이지를 분석 및 구조화하여 바이너리 페이지 데이터로 변경하여 저장하는 것을 특징으로 하는 단말 장치.
  8. 제1항에 있어서, 상기 웹 어플리케이션은
    상기 웹 어플리케이션의 콘텐츠를 기술하는 콘텐츠 파일과, 상기 웹 어플리케이션에 대한 정보를 기술하는 정보 파일을 포함하는 것을 특징으로 하는 단말 장치.
  9. 제8항에 있어서, 상기 콘텐츠 파일은
    상기 웹 어플리케이션의 각 페이지를 표현하는 소스 파일 및 상기 소스 파일에 링크로 연결되는 리소스 파일을 포함하는 것을 특징으로 하는 단말 장치.
  10. 제9항에 있어서, 상기 소스 파일은
    태그 및 상기 태그의 속성이 기술되는 마크업 언어, 상기 태그 및 상기 태그의 속성이 페이지에 표시되는 스타일을 기술하는 스타일시트 및 상기 웹 어플리케이션을 동적으로 제어하기 위한 스크립트 언어를 포함하는 것을 특징으로 하는 단말 장치.
  11. 제9항에 있어서, 상기 리소스 파일은
    장면 기술, 비디오, 오디오, 이미지, 폰트, 텍스트, 메타데이터, 및 스크립트 파일 중 적어도 하나인 것을 특징으로 하는 단말 장치.
  12. 제8항에 있어서, 상기 정보 파일은
    상기 웹 어플리케이션에 포함되는 파일의 목록, 파일 별 공개 여부와 공개 범위 및 상기 웹 어플리케이션의 실행 환경을 설정하기 위한 설정 값을 포함하는 구성 정보가 기술되는 구성 정보 파일과,
    상기 웹 어플리케이션이 단말의 운영 체제에 접근할 수 있는 접근 권한의 범위를 지정하기 위한 정책 정보를 기술하는 정책 정보 파일을 포함하는 것을 특징으로 하는 단말 장치.
  13. 다수의 페이지로 구성되는 웹 어플리케이션을 실행하는 단말 장치에서의 웹 어플리케이션을 위한 사전 캐싱 방법에 있어서,
    상기 단말 장치가 상기 웹 어플리케이션을 실행할 때, 웹 어플리케이션을 구성하는 페이지 간의 호출 관계를 분석하는 단계;
    상기 분석 결과를 이용하여, 현재 실행 중인 페이지를 기준으로 호출 가능성이 큰 페이지 리스트를 추출하여 저장하는 단계; 및
    상기 저장된 페이지 리스트에 포함된 하나 이상의 페이지를 미리 캐싱하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션을 위한 사전 캐싱 방법.
  14. 제13항에 있어서, 상기 페이지 간의 호출 관계를 분석하는 단계는
    상기 페이지 간의 호출 관계에 대한 분석 결과에 근거하여, 상기 웹 어플리케이션 실행 중에 나타나는 페이지간 호출 빈도를 저장할 테이블을 생성하는 단계;
    웹 어플리케이션의 실행 중에 발생하는 페이지 전환 이벤트 결과에 기초하여, 상기 테이블의 페이지 간 호출 빈도를 갱신하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션을 위한 사전 캐싱 방법.
  15. 제13항에 있어서,
    페이지 전환 이벤트 발생 여부를 확인하여, 페이지 전환 이벤트가 발생하면, 상기 저장된 페이지 리스트를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션을 위한 사전 캐싱 방법.
  16. 제13항에 있어서, 상기 캐싱하는 단계는
    가용 메모리를 고려하여 캐싱할 페이지의 개수를 설정하는 것을 특징으로 하는 웹 어플리케이션을 위한 사전 캐싱 방법.
  17. 제13항에 있어서,
    상기 캐싱한 하나 이상의 페이지를 분석 및 구조화하여 바이너리 페이지 데이터로 변경하는 단계를 더 포함하는 것을 특징으로 하는 웹 어플리케이션을 위한 사전 캐싱 방법.
  18. 제13항 내지 제17항 중에서 어느 한 항에 기재된 웹 어플리케이션을 위한 사전 캐싱 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020100078600A 2010-08-16 2010-08-16 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치 KR101453743B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100078600A KR101453743B1 (ko) 2010-08-16 2010-08-16 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100078600A KR101453743B1 (ko) 2010-08-16 2010-08-16 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치

Publications (2)

Publication Number Publication Date
KR20120016333A true KR20120016333A (ko) 2012-02-24
KR101453743B1 KR101453743B1 (ko) 2014-10-21

Family

ID=45838619

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100078600A KR101453743B1 (ko) 2010-08-16 2010-08-16 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치

Country Status (1)

Country Link
KR (1) KR101453743B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013181164A1 (en) * 2012-05-29 2013-12-05 Limelight Networks, Inc. Chronological-progression access prioritization
US9058402B2 (en) 2012-05-29 2015-06-16 Limelight Networks, Inc. Chronological-progression access prioritization
KR20150111158A (ko) * 2014-03-25 2015-10-05 연세대학교 산학협력단 데이터 프리로드 기능을 구비한 단말의 프리로드된 데이터 관리 방법 및 그 단말
US9633217B2 (en) 2009-08-03 2017-04-25 Limelight Networks, Inc. Indiscriminate virtual containers for prioritized content-object distribution
KR20180102625A (ko) * 2016-12-28 2018-09-17 구글 엘엘씨 미래 액션들을 위한 사용자 인터페이스 데이터 캐싱 최적화
US10310866B2 (en) 2015-08-12 2019-06-04 Samsung Electronics Co., Ltd. Device and method for executing application
KR20210118781A (ko) * 2015-04-07 2021-10-01 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 프로세스 단축을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US11809313B2 (en) 2018-06-15 2023-11-07 Samsung Electronics Co., Ltd. Resource caching method and electronic device supporting the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH063246B2 (ja) * 1987-12-21 1994-01-12 新日本製鐵株式会社 ケーブル端末部のソケット内鋳込み固定方法
KR20020011016A (ko) * 2000-07-31 2002-02-07 윤종용 웹 검색 속도 향상을 위한 프리캐싱 알고리즘
JP4063246B2 (ja) 2004-05-11 2008-03-19 日本電気株式会社 ページ情報表示装置
KR100959759B1 (ko) * 2007-11-07 2010-05-25 (주) 엘지텔레콤 모바일 인터넷의 서버 지원형 웹가속 서비스 시스템 및 그방법

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633217B2 (en) 2009-08-03 2017-04-25 Limelight Networks, Inc. Indiscriminate virtual containers for prioritized content-object distribution
WO2013181164A1 (en) * 2012-05-29 2013-12-05 Limelight Networks, Inc. Chronological-progression access prioritization
US9058402B2 (en) 2012-05-29 2015-06-16 Limelight Networks, Inc. Chronological-progression access prioritization
KR20150111158A (ko) * 2014-03-25 2015-10-05 연세대학교 산학협력단 데이터 프리로드 기능을 구비한 단말의 프리로드된 데이터 관리 방법 및 그 단말
KR20210118781A (ko) * 2015-04-07 2021-10-01 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 프로세스 단축을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US10310866B2 (en) 2015-08-12 2019-06-04 Samsung Electronics Co., Ltd. Device and method for executing application
US11614948B2 (en) 2015-08-12 2023-03-28 Samsung Electronics Co., Ltd. Device and method for executing a memo application in response to detachment of a stylus
CN108605053A (zh) * 2016-12-28 2018-09-28 谷歌有限责任公司 优化为未来动作缓存的用户界面数据
KR20200130523A (ko) * 2016-12-28 2020-11-18 구글 엘엘씨 미래 액션들을 위한 사용자 인터페이스 데이터 캐싱 최적화
CN108605053B (zh) * 2016-12-28 2021-05-25 谷歌有限责任公司 为未来动作优化用户界面数据缓存的方法、设备和系统
KR20180102625A (ko) * 2016-12-28 2018-09-17 구글 엘엘씨 미래 액션들을 위한 사용자 인터페이스 데이터 캐싱 최적화
US11310331B2 (en) 2016-12-28 2022-04-19 Google Llc Optimizing user interface data caching for future actions
US11809313B2 (en) 2018-06-15 2023-11-07 Samsung Electronics Co., Ltd. Resource caching method and electronic device supporting the same

Also Published As

Publication number Publication date
KR101453743B1 (ko) 2014-10-21

Similar Documents

Publication Publication Date Title
KR101453743B1 (ko) 웹 어플리케이션을 위한 사전 캐싱 방법 및 이를 적용한 단말 장치
JP4208081B2 (ja) 複数のウェブサイトにパーソナライズされた価値を追加するためのシステム、ウェブサーバ、方法およびプログラム
US9405745B2 (en) Language translation using embeddable component
KR100353585B1 (ko) 표시 제어 정보 생성 방법 및 컴퓨터
US7707316B2 (en) Information processing apparatus and method
US10185704B2 (en) Webpage browsing method, webapp framework, method and device for executing javascript and mobile terminal
US9378188B2 (en) Method and device for dynamically wrapping text when displaying a selected region of an electronic document
US8065610B2 (en) Asynchronously rendering dynamically created content across multiple network domains
WO2017206626A1 (zh) 网络资源访问设备、混合设备及方法
US20130227398A1 (en) Page based navigation and presentation of web content
US10528651B2 (en) Client-side aggregation of web content
JP2011108102A (ja) ウェブサーバ、ウェブブラウザおよびウェブシステム
WO2014206072A1 (zh) 预览网页的方法及系统
US20090270076A1 (en) Performance optimizer for mobile devices website
US20100023953A1 (en) Method and apparatus for executing application
EP4198773A1 (en) Image processing method and apparatus, and computer readable storage medium
JP2023541186A (ja) 可視化ページレンダリング方法、装置、機器及び記憶媒体
CN115495417A (zh) 内容加载方法、装置、设备、介质和程序产品
CN117390326A (zh) 页面管理方法、装置、设备以及存储介质
CN115659087B (zh) 页面渲染方法、设备及存储介质
US20140331117A1 (en) Application-based dependency graph
CN112905920A (zh) 一种页面显示的方法和装置
CN113448649B (zh) 一种基于Redis的首页数据加载的服务器及方法
KR101079966B1 (ko) 웹페이지에서의 동영상 재생을 지원하는 이동통신단말기 및 웹페이지에서의 동영상 재생 지원 방법
KR101504088B1 (ko) 웹 어플리케이션 실행 장치, 이의 웹 어플리케이션 실행 방법 및 이 방법이 기록된 컴퓨터로 판독 가능한 기록 매체

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190916

Year of fee payment: 6