KR101415179B1 - 페이지 로딩 시스템 및 그 방법 - Google Patents

페이지 로딩 시스템 및 그 방법 Download PDF

Info

Publication number
KR101415179B1
KR101415179B1 KR1020130009811A KR20130009811A KR101415179B1 KR 101415179 B1 KR101415179 B1 KR 101415179B1 KR 1020130009811 A KR1020130009811 A KR 1020130009811A KR 20130009811 A KR20130009811 A KR 20130009811A KR 101415179 B1 KR101415179 B1 KR 101415179B1
Authority
KR
South Korea
Prior art keywords
page
tree
node
target
leaf
Prior art date
Application number
KR1020130009811A
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 KR1020130009811A priority Critical patent/KR101415179B1/ko
Application granted granted Critical
Publication of KR101415179B1 publication Critical patent/KR101415179B1/ko

Links

Images

Classifications

    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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
    • 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/93Document management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PDF 문서와 같이 페이지 트리(tree) 형태로 구성되는 디지털 문서에서, 해당 디지털 문서를 모두 탐색하지 않고도 특정 페이지를 로딩할 수 있는 페이지 로딩 시스템 및 그 방법이 개시된다. 본 발명의 일 측면에 따르면, 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서, 상기 페이지 트리에 포함된 각각의 리프 노드(leaf node)는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 방법은, (a) 페이지 로딩 시스템이, 상기 디지털 문서의 페이지 트리 형태에 관한 정보인 페이지 트리 형태 정보를 획득하는 단계 (b) 상기 페이지 로딩 시스템이, 상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드(root node)로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계 및 (c) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하는 페이지 로딩 방법이 제공된다.

Description

페이지 로딩 시스템 및 그 방법{Page loading system and method thereof}
본 발명은 페이지 로딩 시스템 및 그 방법에 관한 것이다. 보다 상세하게는 PDF 문서와 같이 페이지 트리(tree) 형태로 구성되는 디지털 문서에서, 해당 디지털 문서를 모두 탐색하지 않고도 특정 페이지를 로딩할 수 있는 페이지 로딩 시스템 및 그 방법에 관한 것이다.
컴퓨터로 읽을 수 있는 디지털 문서는 텍스트 포맷(.txt)과 같이 문서의 내용이 파일 내에 순차적으로 기록되는 단순한 형태의 것도 있지만, 보안이나 다중 플랫폼에 대한 호환성, 공유 편의성, 확장성, 고품질 출력 등 다양한 기능이 요구됨에 따라 매우 복잡한 구조를 가지는 디지털 문서들도 등장하고 있다. 이러한 디지털 문서 가운데에는 해당 디지털 문서를 구성하는 각각의 페이지들을 노드(node)로 가지는 페이지 트리의 형태로 구성되는 경우가 있는데, 대표적으로 어도비(Adobe)사의 PDF(Portable Document Format)이다.
이하에서, 페이지 트리 구조를 가지는 디지털 문서의 대표적인 예인 PDF의 구조에 대해 설명한다. 다만 아래에서는 본 발명을 용이하게 이해하기 위하여 필요한 일부의 내용만을 설명하며, 기타 PDF에 대한 자세한 내용은 PDF 레퍼런스 문서()에 개시되어 있다.
PDF는 헤더(header), 바디(body), xref 테이블(xref table) 및 트래일러(trailer)로 구성될 수 있다. 헤더는 해당 PDF 파일의 버전, 어떤 방식으로 PDF 를 읽어야 할지에 대한 정보를 포함할 수 있으며, 바디는 디지털 문서의 내용을 구성하는 각종 오브젝트 정보와, 데이터 스트림 등을 포함할 수 있다. 한편, xref 테이블은 해당 PDF 를 읽을 때 사용될 상호참조 테이블로서, 어떤 오브젝트의 파일 내 위치를 알 수 있다. 트래일러에는 페이지 트리의 루트 오브젝트에 관한 정보, xref 테이블의 파일 내 위치에 관한 정보 등을 포함할 수 있다.
다음은 트레일러 정보의 예이다.
Figure 112013008524153-pat00001
위 예에 따르면, 10번 오브젝트에 페이지 트리의 루트에 대한 정보가 나타나며, xref table은 파일의 시작점으로부터 7470byte에 위치할 수 있다. 한편, /Info에 의해 참조되는 11번 오브젝트는 디지털 문서의 제목, 저자, 생성시간, PDF 생성 자(즉, 생성 프로그램)에 대한 정보를 포함할 수 있다.
다음은 xref 테이블의 예이다.
Figure 112013008524153-pat00002
위 테이블에 따르면, 1 번 오브젝트는 15byte부터 시작을 하며, 2 번 오브젝트는 623 바이트부터 시작하며, …, 11 번 오브젝트는 7212 바이트부터 시작할 수 있다.
한편, 상술한 오브젝트에는 여러가지 타입(type)이 있을 수 있는데, 특히 /Pages 타입의 오브젝트와 /Page 타입의 오브젝트는 디지털 문서의 페이지 페이지 트리를 구성하는데 이용될 수 있다. 특히, Pages 오브젝트는 페이지 트리의 넌-리프 노드(non-leaf node)를 구성하며, Page 오브젝트는 페이지 트리의 리프 노드(leaf node)를 구성할 수 있다.
다음은 Pages 타입의 오브젝트의 예이다.
Figure 112013008524153-pat00003
위 예시에 따른 3번 오브젝트는 /Pages타입의 오브젝트이다. 이 오브젝트는 4번 오브젝트, 6번 오브젝트, 8번 오브젝트 및 10번 오브젝트를 자식(kid)으로 가진다. 한편, 3번 오브젝트를 루트로 하는 페이지 트리에서 리프노드(즉, 페이지의 수)는 모두 36이다.
다음은 Page 타입의 오브젝트의 예이다.
Figure 112013008524153-pat00004
위 예시에 따른 9번 오브젝트는 /Page 타입으로서, 9번 오브젝트에 의해 표현되는 페이지 내의 컨텐츠는 10 번 오브젝트에서 참조할 수 있으며, 리소스는 11 번 오브젝트에서 참조할 수 있다.
이하에서 도 1을 참조하여, PDF 문서를 표현하는 페이지 트리에 관하여 설명하기로 한다. 도1은 PDF 페이지 트리의 일 예를 나타내는 도면이다.
도 1에서 네모로 표현되는 노드는 Pages 노드이며, 원으로 표현되는 노드는 Page노드이다. 한편, 모든 Pages노드는 논-리프 노드이며, 모든 Page노드는 리프 노드이다. 상술한 바와 같이, 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응될 수 있다.
각 논-리프 노드는 오브젝트 ID 및 자신을 루트로 하는 트리에 포함된 리프 노드의 수(즉, 페이지의 수)를 가지며, 도 1에서는 오브젝트 ID(리프노드 수)로 표현되어 있다. 한편, 각 리프 노드는 오브젝트 ID를 가질 수 있다. 도 1의 페이지 트리에서, 루트 노드는 오브젝트 ID가 337인 337번 노드이며, 총 페이지 수는 62이다. 루트 노드는 335번 노드 및 336번 노드를 자식 노드로 가진다. 335번 노드를 루트 노드로 하는 트리는 총 36개의 리프 노드를 가지며, 336번 노드를 루트 노드로 하는 트리는 총 26개의 리프 노드를 가진다.
335번 노드는 오브젝트 ID가 각각 4, 43, 77, 108, 139, 그리고 170인 자식 노드를 가진다. 한편, 335번 노드의 자식 노드들은 모두 6개의 리프 노드를 가진다. 예를 들어, 4번 노드는 오브젝트 ID가 각각 3, 16, 21, 26, 31, 37인 6개의 리프 노드를 가질 수 있다. 상술한 바와 같이 각 리프 노드는 모두 개별 페이지에 대응될 수 있다.
한편, PDF 문서의 페이지 트리 내의 어떠한 논-리프 노드의 경우에도, 그 노드의 왼쪽 서브트리에 포함되어 있는 리프 노드에 의해 표현되는 모든 페이지의 번호는 그 노드의 오른쪽 서브트리에 포함되어 있는 리프 노드에 의해 표현되는 어떠한 페이지의 번호보다 작을 수 있는데, 본 명세서에서는 이러한 트리를 왼쪽자식우선할당트리라고 부르기로 한다(즉, PDF 문서의 페이지 트리는 왼쪽자식우선할당트리임). 따라서, 예를 들어, 도 1에 도시된 335번 노드 아래에 있는 페이지들의 번호는 모두 336번 노드 아래에 있는 페이지들의 번호 보다 작으며, 4번 노드 아래에 있는 페이지들의 번호는 모두 43번 노드 아래에 있는 페이지들의 번호 보다 작다. 또한, 3번 노드에 상응하는 페이지의 번호는 16번 노드에 상응하는 페이지의 번호보다 작다.
한편, 상술한 Page 타입의 오브젝트의 예에서도 볼 수 있는 바와 같이, PDF 문서에서 Page 오브젝트는 자신이 가리키는 페이지의 번호에 대한 정보를 가지고 있지 않다. 따라서, 종래에는 PDF 문서 내의 임의의 페이지에 접근하기 위해서는 첫 페이지를 가리키는 리프 노드부터 접근하고자 하는 페이지를 가리키는 리프 노드까지 차례로 탐색하여야 하였다. 즉, 종래에는 페이지 트리의 모든 노드를 순회(traversal)하면서 리프 노드를 탐색함으로써 디지털 문서 내의 페이지를 페이지 번호의 순서대로 접근하여야 하였다. 즉, 도 1의 페이지 트리에서 7페이지를 찾기 위해서는 3번 노드, 16번 노드, 21번 노드, …, 37번 노드, 42번 노드를 차례로 탐색하여야 하였다. 또 다른 방법으로는 처음에 페이지 트리를 모두 읽어 순회하여 각 페이지에 상응하는 오브젝트 ID를 저장해 두는 방법을 이용하여야 했는데, 이러한 방법은 사용자가 문서의 특정 페이지만을 열람하고자 하는 경우에도 모든 페이지 트리를 읽어야 한다는 문제점이 있었다.
본 발명은 상기 종래 기술의 문제점을 해결하고자 안출된 발명으로써, 본 발명은 PDF 문서와 같이 페이지 트리 형태로 구성되는 디지털 문서에서 해당 디지털 문서를 모두 다운로드 하거나 해당 디지털 문서의 페이지 트리를 모두 탐색하지 않고도 특정 페이지에 접근할 수 있는 시스템 및 그 방법을 제공하는 것이다.
본 발명의 일 측면에 따르면, 페이지 트리(tree)의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서, 상기 페이지 트리에 포함된 각각의 리프 노드(leaf node)는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 방법은, (a) 페이지 로딩 시스템이, 상기 디지털 문서의 페이지 트리 형태에 관한 정보인 페이지 트리 형태 정보를 획득하는 단계 (b) 상기 페이지 로딩 시스템이, 상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드(root node)로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계 및 (c) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하는 페이지 로딩 방법이 제공된다.
일 실시예에서, 상기 페이지 트리 형태 정보는 상기 페이지 트리의 타입에 대한 정보를 포함하며, 상기 (a) 단계는, 상기 디지털 문서를 생성한 생성자 정보를 획득하고, 획득한 상기 생성자 정보에 기초하여 상기 페이지 트리의 타입을 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 페이지 트리는 제1타입 k차 왼쪽자식우선할당트리(k는 2 이상의 정수)일 수 있다-여기서, 리프 노드 개수가 N(N은 자연수)인 제1타입 k차 왼쪽자식우선할당트리 T는, 1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고, 2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고, 3) 상기 T의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성됨.
일 실시예에서, 상기 (a) 단계는, 상기 루트 노드의 첫 자식의 자식 수를 상기 페이지 트리의 차수 k로 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 페이지 트리는 제2타입 왼쪽자식우선할당트리일 수 있다-여기서, 리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T는, 1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고, 2) N이 소정의 제1 한계치 L1보다 크면, 상기 T2는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, 3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T2는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, 4) N이 상기 제2 한계치 L2 이하이면, 상기 T2는 N개의 리프 노드를 모두 자식으로 가지며, 5) 상기 T의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성됨.
일 실시예에서, 상기 (a) 단계는, 상기 페이지 트리의 루트 노드로부터 가장 왼쪽에 위치한 리프 노드까지 탐색하여, 상기 페이지 트리의 제1한계치 L1 및 제2한계치 L2를 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 페이지 트리에 포함된 논-리프 노드(non-leaf node)는 자신을 루트 노드로 하는 페이지 트리에 포함된 리프 노드의 개수 및 자신의 자식 노드에 대한 정보를 포함하며, 상기 (b) 단계는, (b-1) 상기 페이지 트리의 루트 노드를 탐색 노드로서 획득하는 단계 및 (b-2) 상기 탐색 노드가 상기 대상 리프 노드일 때까지 (1) 상기 대상 리프 노드를 포함하는 서브트리를 선택하는 단계 및 (2) 선택된 서브트리의 루트 노드를 상기 탐색 노드로서 획득하는 단계를 반복 수행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (b-1) 단계는, 상기 디지털 문서 파일을 저장하고 있는 소정의 문서 서버로 상기 페이지 트리의 루트 노드를 요청하는 단계 및 상기 문서 서버로부터 상기 루트 노드를 수신하는 단계를 포함하며, 상기 (2) 단계는, 선택된 상기 서브트리의 루트 노드를 상기 문서 서버로 상기 페이지 트리의 루트 노드를 요청하는 단계 및 상기 문서 서버로부터 선택된 상기 서브트리의 루트 노드를 수신하는 단계를 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서, 상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 방법은, (a) 상기 페이지 로딩 시스템이, 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계 및 (b) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하며, 상기 페이지 트리는 제1타입 k차 왼쪽자식우선할당트리(k는 2 이상의 정수)이며, 리프 노드 개수가 N(N은 자연수)인 제1타입 k차 왼쪽자식우선할당트리 T는, 1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고, 2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고, 3) 상기 T의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성되는 페이지 로딩 방법이 제공된다.
본 발명의 다른 일 측면에 따르면, 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서, 상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 방법은, (a) 상기 페이지 로딩 시스템이, 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계; 및 (b) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하며, 상기 페이지 트리는 제2타입 왼쪽자식우선할당트리며, 리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T는, 1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고, 2) N이 소정의 제1 한계치 L1보다 크면, 상기 T2는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, 3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T2는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, 4) N이 상기 제2 한계치 L2 이하이면, 상기 T2는 N개의 리프 노드를 모두 자식으로 가지며, 5) 상기 T의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성되는 페이지 로딩 방법이 제공된다.
본 발명의 다른 일 측면에 따르면, 상술한 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체가 제공된다.
본 발명의 다른 일 측면에 따르면, 페이지 로딩 시스템으로서, 프로세서 및 상기 프로세서에 의하여 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하며, 상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 페이지 로딩 시스템이 상술한 방법을 수행하도록 하는 페이지 로딩 시스템이 제공된다.
본 발명의 다른 일 측면에 따르면, 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 시스템으로서, 상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 시스템은, 상기 디지털 문서의 페이지 트리 형태에 관한 정보인 페이지 트리 형태 정보를 획득하는 형태정보모듈, 상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 탐색모듈 및 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 제어모듈을 포함하는 페이지 로딩 시스템이 제공된다.
일 실시예에서, 상기 페이지 트리에 포함된 논-리프 노드(non-leaf node)는 자신을 루트 노드로 하는 페이지 트리에 포함된 리프 노드의 개수 및 자신의 자식 노드에 대한 정보를 포함하며, 상기 탐색모듈은, 상기 페이지 트리의 루트 노드를 탐색 노드로서 획득하고, 상기 탐색 노드가 상기 대상 리프 노드일 때까지 (1) 상기 대상 리프 노드를 포함하는 서브트리를 선택하는 단계 및 (2) 선택된 서브트리의 루트 노드를 상기 탐색 노드로서 획득하는 단계를 반복 수행할 수 있다.
본 발명의 다른 일 측면에 따르면, 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 시스템으로서, 상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 시스템은, 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 탐색모듈 및 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 제어모듈을 포함하며, 상기 페이지 트리는 제1타입 k차 왼쪽자식우선할당트리(k는 2 이상의 정수)이며, 리프 노드 개수가 N(N은 자연수)인 제1타입 k차 왼쪽자식우선할당트리 T는, 1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고, 2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고, 3) 상기 T의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성될 수 있다.
본 발명의 다른 일 측면에 따르면, 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 시스템으로서, 상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며, 상기 페이지 로딩 시스템은, 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 탐색모듈 및 (b) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 제어모듈을 포함하며, 상기 페이지 트리는 제2타입 왼쪽자식우선할당트리며, 리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T는, 1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고, 2) N이 소정의 제1 한계치 L1보다 크면, 상기 T2는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, 3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T2는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, 4) N이 상기 제2 한계치 L2 이하이면, 상기 T2는 N개의 리프 노드를 모두 자식으로 가지며, 5) 상기 T의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성될 수 있다.
본 발명의 일 실시예에 따르면, 디지털 문서 내의 임의의 대상 페이지를 찾기 위해 상기 디지털 문서를 표현하는 페이지 트리 내의 노드를 모두 탐색하는 대신, 찾고자 하는 대상 페이지에 상응하는 리프 노드까지의 최단 경로만을 탐색하여 상기 대상 페이지에 접근할 수 있어 빠르게 대상 페이지에 접근할 수 있는 효과가 있다.
또한, 사용자가 원격 서버에 저장되어 있는 디지털 문서의 특정 페이지만을 열람하고자 하는 경우, 종래에는 문서 파일 전체를 다운로드하여야 했으나, 본 발명의 일 실시예에 따르면, 해당 페이지에 상응하는 페이지 트리 내의 노드까지 접근하기 위해 필요한 일부 정보 및 해당 페이지를 로딩하기 위한 정보만을 수신하면 충분하므로 적은 네트워크 트래픽을 사용하면서 빠르게 해당 페이지를 로딩할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 PDF 문서의 페이지 트리를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 페이지 로딩 시스템을 개략적인 구성 및 동작방법을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 페이지 로딩 시스템의 구성을 나타내는 블록도이다.
도 4 및 도 5는 각각 서로 다른 두 종류의 페이지 트리 및 본 발명의 일 실시예에 따른 페이지 로딩 시스템이 상기 페이지 트리를 탐색하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 페이지 로딩 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 명세서에 있어서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. 반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부된 도면들을 참조하여 본 발명의 실시예들을 중심으로 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 페이지 로딩 시스템을 개략적인 구성 및 동작방법을 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 페이지 로딩 방법이 수행되기 위하여, 페이지 로딩 시스템(100)이 구비될 수 있다. 상기 페이지 로딩 시스템(100)은 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내에 있는 임의의 대상 페이지에 접근하여, 상기 대상 페이지를 로딩할 수 있다. 여기서 페이지 트리라 함은 디지털 문서를 구성하는 각 페이지에 상응하는 노드로 구성된 트리를 의미할 수 있으며, 특정 실시예에서는 페이지 트리에 포함된 각각의 리프 노드가 상기 디지털 문서의 개별 페이지에 대응될 수 있다. 또한, 특정 페이지를 로딩한다고 함은 상기 특정 페이지를 구성하기 위해 필요한 데이터 중 적어도 일부를 메모리로 읽어 들임을 의미할 수 있다.
상기 페이지 로딩 시스템은 로딩한 상기 특정 페이지를 사용자 단말(10)로 제공하거나 사용자 단말(10)이 구비한 출력 수단에 출력할 수 있다.
한편, 상기 사용자 단말(10)는 컴퓨터, 랩탑, 데스크탑, 타블렛 PC, PDA(Personal Digital Assistant)를 포함하는 컴퓨팅 장치일 수 있으며, 휴대 전화, 위성 전화, 무선 전화, SIP(Session Initiation Protocol), WLL(Wireless Local Loop) 스테이션, 스마트폰, 기타 무선 접속 기능을 갖는 핸드헬드 장치를 포함하는 무선 컴퓨팅 장치 또는 다른 무선 모뎀에 연결된 프로세싱 장치일 수도 있다.
도 2에 도시된 바와 같이, 상기 페이지 로딩 시스템(100)은 상기 사용자 단말(10)에 포함되어 구현될 수 있다. 이 경우, 상기 페이지 로딩 시스템(100)의 전부 또는 일부는 상기 사용자 단말(10)에서 구동되는 상기 디지털 문서를 열람하거나 편집하기 위한 문서 애플리케이션의 일부로서 구현될 수도 있고, 문서 애플리케이션과 연동되는 별도의 애플리케이션으로 구현될 수도 있다.
또 다른 일 실시예에서는, 도 2에 도시된 바와 달리, 상기 페이지 로딩 시스템(100)은 상기 사용자 단말(10)과는 별도의 물리적 장치로 구현될 수 있다. 이 경우 상기 페이지 로딩 시스템(100)은 상기 사용자 단말(10)과 유무선 네트워크를 통해 소정의 정보를 송수신하면서 본 발명의 기술적 사상을 구현할 수 있다.
한편, 상기 페이지 로딩 시스템(100)은 상기 사용자 단말(10) 또는 상기 페이지 로딩 시스템(100) 내에 저장되어 있는 디지털 문서를 대상으로 본 발명의 일 실시예에 따른 페이지 로딩 방법을 수행할 수도 있지만, 구현 예에 따라서는 도 2에 도시된 바와 같이, 상기 페이지 로딩 시스템(100)은 디지털 문서 파일을 소정의 문서 서버(20)에서 저장/관리하고 디지털 문서를 대상으로 본 발명의 일 실시예에 따른 페이지 로딩 방법을 수행할 수도 있다. 전자의 경우에는 상기 페이지 로딩 시스템(100)이 저장된 디지털 문서 파일에 직접 접근하여 필요한 정보를 획득할 수 있다. 하지만 후자의 구현예의 경우에는 상기 페이지 로딩 시스템(100)과 상기 문서 서버(20)는 유무선 네트워크를 통해 서로 연결될 수 있으며 상기 페이지 로딩 시스템(100)은 본 발명의 기술적 사상을 달성하기 위하여 필요한 소정의 정보를 상기 문서 서버(20)로 요청할 수 있다. 그러면 상기 문서 서버(20)는 이에 대한 응답으로 요청한 정보를 상기 페이지 로딩 시스템(100)으로 전송할 수 있다. 예를 들어, 상기 페이지 로딩 시스템(100)은 상기 문서 서버(20)로 페이지 트리의 루트 노드 혹은 소정의 오브젝트 ID에 상응하는 노드를 요청할 수 있다. 그러면 상기 문서 서버(20)는 요청된 노드에 포함된 정보를 상기 페이지 로딩 시스템(100)에 전송할 수 있다.
도 3은 본 발명의 일 실시예에 따른 페이지 로딩 시스템의 구성을 나타내는 블록도이다. 도 3에 도시된 바와 같이, 상기 페이지 로딩 시스템(100)은 형태정보모듈(110), 탐색모듈(120) 및 제어모듈(130)을 포함할 수 있다. 본 발명의 실시예에 따라서는, 상술한 구성요소들 중 일부 구성요소는 반드시 본 발명의 구현에 필수적으로 필요한 구성요소에 해당하지 않을 수도 있으며, 또한 실시예에 따라 상기 페이지 로딩 시스템(100) 은 이보다 더 많은 구성요소를 포함할 수도 있음은 물론이다.
상기 페이지 로딩 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 필요한 하드웨어 리소스(resource) 및/또는 소프트웨어를 구비할 수 있으며, 반드시 하나의 물리적인 구성요소를 의미하거나 하나의 장치를 의미하는 것은 아니다. 즉, 상기 페이지 로딩 시스템(100)은 본 발명의 기술적 사상을 구현하기 위해 구비되는 하드웨어 및/또는 소프트웨어의 논리적인 결합을 의미할 수 있으며, 필요한 경우에는 서로 이격된 장치에 설치되어 각각의 기능을 수행함으로써 본 발명의 기술적 사상을 구현하기 위한 논리적인 구성들의 집합으로 구현될 수도 있다. 또한, 상기 페이지 로딩 시스템(100)은 본 발명의 기술적 사상을 구현하기 위한 각각의 기능 또는 역할별로 별도로 구현되는 구성들의 집합을 의미할 수도 있다. 예컨대, 상기 형태정보모듈(110), 탐색모듈(120) 및/또는 제어모듈(130)은 서로 다른 물리적 장치에 위치할 수도 있고, 동일한 물리적 장치에 위치할 수도 있다. 또한, 구현 예에 따라서는 상기 형태정보모듈(110), 탐색모듈(120) 및/또는 제어모듈(130) 등 각각의 모듈 역시 서로 다른 물리적 장치에 위치하고, 서로 다른 물리적 장치에 위치한 구성들이 서로 유기적으로 결합되어 각각의 모듈들이 수행하는 기능을 실현할 수도 있다.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것은 아님은 본 발명의 기술분야의 평균적 전문가에게는 용이하게 추론될 수 있다.
상기 제어모듈(120)은 본 발명의 일 실시예에 따른 페이지 로딩 시스템(100)에 포함된 다른 구성들(예컨대, 형태정보모듈(110) 및/또는 탐색모듈(120) 등)의 기능 및/또는 리소스를 제어할 수 있다.
상기 형태정보모듈(110)은 디지털 문서의 페이지 트리의 형태에 관한 정보인 페이지 트리 형태 정보를 획득할 수 있다. 페이지 트리 형태 정보는 페이지 트리의 형태를 결정하는데 필요한 소정의 정보를 의미할 수 있다.
예를 들어, 상기 페이지 트리 형태정보는 트리의 타입에 관한 정보일 수도 있고, 아래 예시와 같이 하나의 트리의 형태를 완전히 정의할 수 있는 정보(트리의 타입 및 해당 타입의 트리 모양을 결정하는 세부정보)일 수도 있다.
예시 1) 타입: 완전이진트리(complete binary tree), 세부정보: 노드의 개수가 200임
예시 2) 타입: 포화이진트리(full binary tree), 세부정보: 깊이(depth)가 5임
한편, 일 실시예에서, 디지털 문서의 페이지 트리의 타입은 제1타입 왼쪽자식우선트리 또는 제2타입왼쪽자식우선트리일 수 있다.
리프 노드 개수가 N(N은 자연수)인 제1타입의 k차 왼쪽자식우선트리 T1은 다음의 조건을 만족하는 트리일 수 있다.
1) 서로 인접한 상기 T1의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T1은 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T1은 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고,
3) 상기 T1의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성됨.
제1 타입 왼쪽자식우선할당트리의 일 예가 도 4에 도시되어 있다. 다만 도 4의 페이지 트리는 논-리프 노드만을 도시하고 리프 노드는 생략하고 있으며, 각 노드 안의 기호는 '오브젝트ID(리프노드의 수)'를 의미한다.
도 4에는 리프노드가 2517개이며, 차수가 10인 제1 타입 왼쪽자식우선할당트리가 도시되어 있다. 도 4에 도시된 바와 같이, 루트 노드 R은 10^3(=1000)개의 리프노드를 가지는 두 서브트리의 루트인 a0 및 a1과 2517-2*10^3(=517)개의 자식을 가지는 가장 오른쪽 서브트리의 루트인 a2를 자식노드로 가진다. 이때, a1아래의 리프 노드에 의해 표현되는 모든 페이지의 번호는 a0아래의 리프 노드에 의해 표현되는 어떠한 페이지의 번호보다 크고, a2아래의 리프 노드에 의해 표현되는 어떠한 페이지의 번호보다 작다.
또한, a0를 루트 노드로 하는 서브트리 역시 제1타입 10차 왼쪽자식우선할당트리이므로 a0는 10^2(=100)개의 리프 노드를 가지는 10개의 서브트리의 루트인 a00 내지 a09를 자식 노드로 가진다. a1을 루트 노드로 하는 서브트리 역시 제1타입 10차 왼쪽자식우선할당트리이므로 a1은 10^2개의 리프 노드를 가지는 10개의 서브트리의 루트인 a00 내지 a09를 자식 노드로 가진다. 마찬가지로 a2를 루트 노드로 하는 서브트리 역시 제1타입 10차 왼쪽자식우선할당트리이지만 리프노드의 개수가 517개이므로 10^2개의 리프 노드를 가지는 5개의 서브트리의 루트 노드인 a20 내지 a24 및 17개의 리프노드를 가지는 가장 오른쪽 서브트리의 루트 노드인 a25를 자식 노드로 가진다. 본 발명이 속하는 분야에서 통상의 지식을 가진 자(이하, '통상의 기술자'라고 함)는 상술한 규칙을 통하여 이들의 자식 노드의 형태도 용이하게 파악할 수 있을 것이다.
한편, 리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T2는 다음의 조건을 만족하는 트리일 수 있다.
1) 서로 인접한 상기 T2의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
2) N이 소정의 제1 한계치 L1보다 크면, 상기 T2는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T2는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
4) N이 상기 제2 한계치 L2 이하이면, 상기 T2는 N개의 리프 노드를 모두 자식으로 가지며,
5) 상기 T2의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성됨.
제2 타입 왼쪽자식우선할당트리의 일 예가 도 5에 도시되어 있다. 다만 도 5의 페이지 트리는 논-리프 노드만을 도시하고 리프 노드는 생략하고 있으며, 각 노드 안의 기호는 '오브젝트ID(리프노드의 수)'를 의미한다.
도 5에는 리프노드가 2517개이며, 제1한계치 및 제2한계치가 각각 1000 255인 제2 타입 왼쪽자식우선할당트리가 도시되어 있다. 도 5에 도시된 바와 같이, 루트 노드 R은 1000(제1한계치)개의 리프노드를 가지는 두 서브트리의 루트인 b0 및 b1과 2517-2*1000(=517)개의 자식을 가지는 가장 오른쪽 서브트리의 루트인 b2를 자식노드로 가진다. 이때, b1아래의 리프 노드에 의해 표현되는 모든 페이지의 번호는 b0아래의 리프 노드에 의해 표현되는 어떠한 페이지의 번호보다 크고, b2아래의 리프 노드에 의해 표현되는 어떠한 페이지의 번호보다 작다.
또한, b0를 루트 노드로 하는 서브트리 역시 제2타입 왼쪽자식우선할당트리이므로 b0는 255(제2한계치)개의 리프 노드를 가지는 3개의 서브트리의 루트인 b00 내지 b02 및 1000-2*255(=235)개의 자식을 가지는 가장 오른쪽 서브트리의 루트인 b03을 자식 노드로 가진다. b1을 루트 노드로 하는 서브트리 역시 제2타입 왼쪽자식우선할당트리이므로 b1은 255(제2한계치)개의 리프 노드를 가지는 3개의 서브트리의 루트인 b10 내지 b12 및 1000-2*255(=235)개의 자식을 가지는 가장 오른쪽 서브트리의 루트인 b13을 자식 노드로 가진다. 마찬가지로 b2를 루트 노드로 하는 서브트리 역시 제2타입 왼쪽자식우선할당트리이지만 리프노드의 개수가 517개이므로 255개의 리프 노드를 가지는 2개의 서브트리의 루트 노드인 b20 내지 b21 및 7개의 리프노드를 가지는 가장 오른쪽 서브트리의 루트 노드인 a22를 자식 노드로 가진다. 한편, 이들의 자식 노드는 모두 255(제2한계치) 이하의 리프노드를 가지므로 b00 내지 b21은 모두 255개의 리프 노드를 가지는 트리의 루트 노드가 되며, b22는 7개의 리프 노드를 가지는 트리의 루트 노드가 된다.
다시 도 3을 참조하면, 상기 형태정보모듈(110)은 다양한 방법으로 페이지 트리 형태 정보를 획득할 수 있다. 일 실시예에서, 상기 형태정보모듈(110)은 디지털 문서의 생성자 정보를 획득하고, 획득한 생성자 정보에 기초하여 상기 디지털 문서의의 페이지 트리의 타입을 판단할 수 있다. 도 2와 같이, 상기 페이지 로딩 시스템(100)이 상기 문서 서버(20)와 통신하는 구현예에서는, 상기 페이지 로딩 시스템(100)은 상기 문서 서버(20)로 상기 디지털 문서의 생성자 정보를 요청할 수 있다. 그러면, 상기 문서 서버(20)는 상기 디지털 문서 내의 특정 필드(예를 들어, PDF 파일의 경우에는 /Producer 필드)로부터 상기 디지털 문서의 생성자를 확인하여 상기 페이지 로딩 시스템(100)으로 전송할 수 있다. 그러면, 상기 페이지 로딩 시스템(100)은 상기 생성자에 상응하는 페이지 트리의 타입을 상기 디지털 문서의 페이지 트리의 트리 타입이라고 판단할 수 있는데, 이를 위하여 상기 페이지 로딩 시스템(100)은 각 생성자 별 페이지 트리에 대한 정보를 미리 저장하여 둘 수 있다.
또 다른 실시예에서는 상기 형태정보모듈(110)은 트리를 구성하는 일부 노드의 정보(예를 들면, 루트 노드의 첫 번째 자식이 가지는 페이지 수(즉, 리프 노드의 수)와 첫 번째 자식의 자식 수에 대한 정보 등)만을 획득하고 이를 이용하여 트리의 타입을 판단하거나 유추할 수도 있다.
한편, 상기 형태정보모듈(110)은 트리의 타입을 파악한 이후 상기 페이지 트리의 극히 일부만을 탐색하여 트리 형태에 관한 세부정보를 획득할 수 있다. 예를 들어, 상기 형태정보모듈(110)은 디지털 문서의 페이지 트리의 타입이 상술한 제1 타입 왼쪽자식우선할당트리라고 판단한 경우, 상기 루트 노드의 첫 자식의 자식 수를 상기 페이지 트리의 차수 k로 판단할 수 있다. 또한, 상기 형태정보모듈(110)은 상기 디지털 문서의 페이지 트리의 타입이 상기 제2 타입 왼쪽자식우선할당트리라고 판단한 경우, 상기 페이지 트리의 루트 노드로부터 가장 왼쪽에 위치한 리프 노드까지만 탐색하여, 상기 페이지 트리의 제1한계치 L1 및 제2한계치 L2를 판단할 수 있다.
상기 탐색모듈(120)은 상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 소정의 페이지 순번을 가지는 대상 페이지에 상응하는 대상 리프 노드까지 탐색할 수 있다. 즉, 상기 페이지 로딩 시스템(100)은 상기 페이지 트리 형태 정보를 통하여 페이지 트리의 형태에 관해 알 수 있으므로 이를 이용하여 페이지 트리의 루트 노드로부터 상기 대상 리프 노드까지의 최단 경로로 상기 대상 리프 노드까지 탐색할 수 있다. 이는 상기 탐색모듈(120)은 상기 대상 리프 노드까지 탐색하는 과정에서 부모 노드로 되돌아오는 일이 없음을 의미할 수 있다.
일 실시예에서 상기 탐색모듈(120)은 대상 리프 노드까지 탐색할 수 있다.
아래는 대상 리프 노드까지의 탐색과정을 나타내는 pseudo code이다.
Figure 112013008524153-pat00005
즉, 상기 탐색모듈(120)은 먼저 페이지 트리의 루트 노드를 탐색 노드(node)로서 획득할 수 있다. 구현 예에 따라서, 상기 탐색모듈(120)은 상기 문서 서버(20)로 상기 페이지 트리의 루트 노드를 요청하고, 상기 문서 서버(20)로부터 상기 루트 노드를 수신할 수 있다.
이후, 상기 탐색모듈(120)은 상기 탐색 노드가 상기 대상 리프 노드일 때까지 상기 대상 리프 노드를 포함하는 서브트리를 선택하는 단계 및 선택된 서브트리의 루트 노드를 상기 탐색 노드로서 획득하는 단계를 반복 수행함으로써 상기 대상 리프노드까지 탐색할 수 있다. 여기서 서브트리를 선택하는 방법(혹은, 알고리즘)은 트리의 타입에 의해 따라 정해질 수 있다. 서브트리를 선택하는 방법의 예에 대하여는 추후 도 4 및 도 5를 참조하여 설명하기로 한다. 한편, 구현 예에 따라서, 상기 탐색모듈(120)은 선택된 서브트리의 루트 노드를 상기 탐색 노드로서 획득하기 위하여, 선택된 상기 서브트리의 루트 노드를 상기 문서 서버(20)로 상기 페이지 트리의 루트 노드를 요청하고, 상기 문서 서버(20)로부터 선택된 상기 서브트리의 루트 노드를 수신할 수 있다.
이하에서 도 4 및 도 5를 참조하여, 탐색 과정의 일 예에 대하여 설명하기로 한다.
먼저 도 4를 참조하면, 상술한 바와 같이 상기 형태정보모듈(110)이 디지털 문서의 페이지 트리가 제1타입 10차 왼쪽자식우선할당트리라고 판단하면, 상기 탐색모듈(120)은 이 정보를 이용하여 페이지 트리를 탐색할 수 있다.
만약 상기 탐색모듈이 상기 디지털 문서의 2485번째 페이지를 찾는다고 하면, 먼저 상기 탐색모듈(120)은 루트 노드 R를 탐색 노드로서 획득할 수 있다. R에는 페이지 트리에 포함된 총 페이지 수(2517) 및 자식 노드의 오브젝트 ID(a0, a1, a2)에 대한 정보가 포함되어 있다. 상기 페이지 트리의 차수가 10이며, 탐색 노드 아래에는 10^4(=10,000)보다 작고 10^3(=1,000)보다 큰 2517개의 리프 노드가 포함되어 있으므로 상기 탐색모듈(120)은 R은 각각 10^3의 리프 노드를 포함하는 서브트리(a0, a1)와 2517%(10^3)의 리프 노드를 포함하는 마지막 서브트리(a2)로 구성됨을 알 수 있다. 또한, 상기 탐색모듈(120)은 a0 아래에는 1~1000번째 페이지가 포함되어 있으며, a1 아래에는 1001~2000번째 페이지가 포함되어 있으며, a2 아래에는 2001~2517번째 페이지가 포함되어 있음을 알 수 있다. 그런데, 찾고자 하는 대상 페이지(2485번째 페이지)는 a2를 루트 노드로 하는 페이지 트리에서 485번째 리프 노드에 상응하는 페이지이므로 상기 탐색모듈(120)은 다음 탐색 노드를 a2로 결정하고 a2를 루트 노드로 하는 페이지 트리에서 485번째 리프 노드를 탐색할 수 있다. 이후 상기 탐색모듈(120)은 a2에 관한 정보를 획득할 수 있다. 도 4에 도시된 바와 같이, a2 아래에는 517개의 페이지가 있으며 오브젝트 ID가 a20 내지 a25인 자식을 가지고 있다. 상기 탐색모듈(120)은 a20 아래에는 1~100번째 페이지, a21 아래에는 101~200번째 페이지, a22 아래에는 201~300번째 페이지, a23 아래에는 301~400번째 페이지, a24 아래에는 401~500번째 페이지, 그리고 a25 아래에는 501~517번째 페이지가 포함되어 있음을 알 수 있다. 따라서, 상기 탐색모듈(120)은 다음 탐색 노드로 a24를 선택할 수 있으며, 마찬가지 과정을 통해 a248 노드 아래에 대상 페이지(2485)가 있음을 알 수 있다.
다음으로 도 5를 참조한다. 상기 형태정보모듈(110)이 디지털 문서의 페이지 트리가 제2타입 왼쪽자식우선할당트리이고, 제1한계치 및 제2한계치가 각각 1000 255라고 판단하면, 상기 탐색모듈(120)은 이 정보를 이용하여 페이지 트리를 탐색할 수 있다.
만약 상기 탐색모듈이 상기 디지털 문서의 2485번째 페이지를 찾는다고 하면, 먼저 상기 탐색모듈(120)은 루트 노드 R를 탐색 노드로서 획득할 수 있다. R에는 페이지 트리에 포함된 총 페이지 수(2517) 및 자식 노드의 오브젝트 ID(b0, b1, b2)에 대한 정보가 포함되어 있다. 루트 노드 아래의 총 페이지 수가 제1한계값(1000)보다 크므로 상기 탐색모듈(120)은 b0 및 b1 아래에는 각각 1000개의 페이지가 있으며, b2아래에는 517개의 페이지가 있으며, b0 아래에는 1~1000번째 페이지, b1 아래에는 1001~2000번째 페이지, 그리고 b2 아래에는 2001~2517번째 페이지가 포함되어 있음을 알 수 있다. 상기 탐색모듈(120)이 찾고자 하는 대상 페이지(2485)는 b2 아래에 있으므로 상기 탐색모듈(120)은 b2에 대한 정보를 획득할 수 있다. b2 아래에는 총 517 페이지가 있으며 제2한계값이 255이므로 상기 탐색모듈(120)은 b2의 자식 b20 및 b21 아래에는 각각 255 개의 페이지(각각 2001~2255 및 2256~2510), 그리고 b22 아래에는 7개의 페이지(2511~2517)가 포함되어 있음을 알 수 있고, 상기 탐색모듈(120)은 다음 탐색 노드로 b21을 선택할 수 있다. 255개의 노드를 가지는 b21의 자식은 모두 리프 노드이므로 상기 탐색모듈(120)은 b21의 자식 중 230번째 리프 노드가 대상 리프 노드임을 알 수 있다.
이와 같은 방법으로 대상 리프 노드가 탐색되면, 상기 제어모듈(130)은 상기 대상 리프 노드에 포함된 정보에 기초하여 대상 페이지에 대한 정보를 획득하고, 상기 대상 페이지를 로딩할 수 있다.
도 6은 본 발명의 일 실시예에 따른 페이지 로딩 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 먼저 상기 페이지 로딩 시스템(100)은 문서의 생성자 정보(예를 들면, 생성 프로그램의 식별자 정보)를 상기 문서 서버(20)로 요청할 수 있다(S100). 그러면, 상기 문서 서버(20)는 이에 대한 응답으로 상기 문서의 생성자 정보를 반환할 수 있다(S110).
상기 페이지 로딩 시스템(100)은 획득한 문서 생성자 정보에 기초하여 상기 문서의 페이지 트리의 타입을 판단할 수 있으며(S120), 상기 페이지 트리의 기타 형태 정보를 더 획득할 수 있다.
한편, 상기 페이지 로딩 시스템(100)은 상기 페이지 트리를 탐색하기 위하여, 먼저 상기 페이지 트리의 루트 노드(R)을 상기 문서 서버(20)로 요청하고(S130), 상기 문서 서버(20)로부터 R을 획득할 수 있다(S140).
상기 페이지 로딩 시스템(100)은 현재 탐색 중인 노드(node)가 리프 노드(x)인지 판단하고(S160), 그렇다면 리프 노드(x)에 포함된 페이지 정보(예를 들면, 페이지를 구성하는 각종 오브젝트나 리소스의 ID)를 이용하여 대상 페이지를 상기 문서 서버(20)에 요청하고(S210), 상기 대상 페이지를 구성하기 위한 각종 정보를 상기 문서 서버(20)로부터 수신하여(S220) 상기 대상 페이지를 로딩할 수 있다(S230).
만약 판단 결과, 현재 탐색 중인 노드(node)가 리프 노드(x)가 아니라면, 상기 페이지 로딩 시스템(100)은 탐색 중인 노드(node)의 서브트리 중 대상 리프 노드를 포함할 수 있는 서브트리 S를 판단할 수 있다. 서브트리 S의 판단 방법은 상술한 바와 같이, 상기 페이지 트리의 형태 정보에 의해 결정될 수 있다.
상기 페이지 로딩 시스템(100)은 서브트리 S를 판단한 후, 서브트리 S의 루트 노드의 오브젝트 ID를 이용하여 상기 서브트리 S의 루트 노드를 상기 문서 서버(20)에 요청할 수 있다(S180). 상기 페이지 로딩 시스템(100)은 상기 문서 서버(20)가 서브트리 S의 루트 노드를 반환하면(S190), 상기 페이지 로딩 시스템(100)은 대상 리프 노드를 찾기 위하여 S를 탐색할 수 있다(S200).
상술한 바와 같은 본 발명의 기술적 사상에 따르면, 디지털 문서 내의 임의의 대상 페이지를 찾기 위해 상기 디지털 문서를 표현하는 페이지 트리 내의 노드를 모두 탐색하지 않고 찾고자 하는 대상 페이지에 상응하는 리프 노드까지의 최단 경로만을 탐색하여 상기 대상 페이지에 접근할 수 있다.
또한, 도 2에 도시된 실시예에서와 같이, 열람하고자 하는 디지털 문서가 원격 서버에 저장되어 있는 경우, 본 발명의 기술적 사상에 따르면, 사용자가 문서의 특정 페이지만을 열람하고자 할 때에 문서 파일 전체를 다운로드할 필요 없이, 해당 페이지에 상응하는 페이지 트리 내의 노드까지 접근하기 위해 필요한 일부 정보 및 해당 페이지를 로딩하기 위한 정보만을 수신하면 되는 효과가 있다.
한편, 구현 예에 따라서, 상기 페이지 로딩 시스템(100)은 프로세서 및 상기 프로세서에 의해 실행되는 프로그램을 저장하는 메모리를 포함할 수 있다. 상기 프로세서는 싱글 코어 CPU혹은 멀티 코어 CPU를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치, 또는 기타 비휘발성 고체상태 메모리 장치와 같은 비휘발성 메모리를 포함할 수도 있다. 프로세서 및 기타 구성 요소에 의한 메모리로의 액세스는 메모리 컨트롤러에 의해 제어될 수 있다. 여기서, 상기 프로그램은, 프로세서에 의해 실행되는 경우, 본 실시예에 따른 페이지 로딩 시스템(100)으로 하여금, 상술한 페이지 로딩 방법을 수행하도록 할 수 있다. 예를 들어, 상기 프로그램은 상기 프로세서에 의해 실행되는 경우, 상기 페이지 로딩 시스템으로 하여금, 디지털 문서의 페이지 트리 형태에 관한 정보인 페이지 트리 형태 정보를 획득하는 단계, 상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계 및 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하는 페이지 로딩 방법 을 수행하도록 제어할 수 있다.
한편, 본 발명의 실시예에 따른 출력 문서 관리 방법은 컴퓨터가 읽을 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명의 실시예에 따른 제어 프로그램 및 대상 프로그램도 컴퓨터로 판독 가능한 기록 매체에 저장될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 읽을 수 있는 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (16)

  1. 페이지 트리(tree)의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서,
    상기 디지털 문서의 페이지 트리에 포함된 각각의 리프 노드(leaf node)는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며,
    상기 페이지 로딩 방법은,
    (a) 페이지 로딩 시스템이, 상기 디지털 문서의 페이지 트리 형태에 관한 정보인 페이지 트리 형태 정보를 획득하는 단계;
    (b) 상기 페이지 로딩 시스템이, 상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드(root node)로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계; 및
    (c) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하는 페이지 로딩 방법.
  2. 제1항에 있어서,
    상기 페이지 트리 형태 정보는 상기 페이지 트리의 타입에 대한 정보를 포함하며,
    상기 (a) 단계는,
    상기 디지털 문서를 생성한 생성자 정보를 획득하고, 획득한 상기 생성자 정보에 기초하여 상기 페이지 트리의 타입을 판단하는 단계를 포함하는 페이지 로딩 방법.
  3. 제1항에 있어서,
    상기 페이지 트리는 제1타입 k차 왼쪽자식우선할당트리(k는 2 이상의 정수)인 페이지 로딩 방법-여기서, 리프 노드 개수가 N(N은 자연수)인 제1타입 k차 왼쪽자식우선할당트리 T는,
    1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
    2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고,
    3) 상기 T의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성됨.
  4. 제3항에 있어서,
    상기 (a) 단계는,
    상기 루트 노드의 첫 자식의 자식 수를 상기 페이지 트리의 차수 k로 판단하는 단계를 포함하는 페이지 로딩 방법.
  5. 제1항에 있어서,
    상기 페이지 트리는 제2타입 왼쪽자식우선할당트리인 페이지 로딩 방법-여기서, 리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T는,
    1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
    2) N이 소정의 제1 한계치 L1보다 크면, 상기 T는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
    3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
    4) N이 상기 제2 한계치 L2 이하이면, 상기 T는 N개의 리프 노드를 모두 자식으로 가지며,
    5) 상기 T의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성됨.
  6. 제5항에 있어서,
    상기 (a) 단계는,
    상기 페이지 트리의 루트 노드로부터 가장 왼쪽에 위치한 리프 노드까지 탐색하여, 상기 페이지 트리의 제1한계치 L1 및 제2한계치 L2를 판단하는 단계를 포함하는 페이지 로딩 방법
  7. 제1항에 있어서,
    상기 페이지 트리에 포함된 논-리프 노드(non-leaf node)는 자신을 루트 노드로 하는 페이지 트리에 포함된 리프 노드의 개수 및 자신의 자식 노드에 대한 정보를 포함하며,
    상기 (b) 단계는,
    (b-1) 상기 페이지 트리의 루트 노드를 탐색 노드로서 획득하는 단계; 및
    (b-2) 상기 탐색 노드가 상기 대상 리프 노드일 때까지
    (1) 상기 대상 리프 노드를 포함하는 서브트리를 선택하는 단계; 및
    (2) 선택된 서브트리의 루트 노드를 상기 탐색 노드로서 획득하는 단계를 반복 수행하는 단계를 포함하는 페이지 로딩 방법.
  8. 제7항에 있어서,
    상기 (b-1) 단계는,
    상기 디지털 문서 파일을 저장하고 있는 소정의 문서 서버로 상기 페이지 트리의 루트 노드를 요청하는 단계; 및 상기 문서 서버로부터 상기 루트 노드를 수신하는 단계를 포함하며,
    상기 (2) 단계는,
    선택된 상기 서브트리의 루트 노드를 상기 문서 서버로 상기 페이지 트리의 루트 노드를 요청하는 단계; 및 상기 문서 서버로부터 선택된 상기 서브트리의 루트 노드를 수신하는 단계를 포함하는 페이지 로딩 방법.
  9. 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서,
    상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며,
    상기 페이지 로딩 방법은,
    (a) 상기 페이지 로딩 시스템이, 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계; 및
    (b) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하며,
    상기 페이지 트리는 제1타입 k차 왼쪽자식우선할당트리(k는 2 이상의 정수)이며,
    리프 노드 개수가 N(N은 자연수)인 제1타입 k차 왼쪽자식우선할당트리 T는,
    1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
    2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고,
    3) 상기 T의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성되는 페이지 로딩 방법.
  10. 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 방법으로서,
    상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며,
    상기 페이지 로딩 방법은,
    (a) 상기 페이지 로딩 시스템이, 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 단계; 및
    (b) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 단계를 포함하며,
    상기 페이지 트리는 제2타입 왼쪽자식우선할당트리며,
    리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T는,
    1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
    2) N이 소정의 제1 한계치 L1보다 크면, 상기 T는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
    3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
    4) N이 상기 제2 한계치 L2 이하이면, 상기 T는 N개의 리프 노드를 모두 자식으로 가지며,
    5) 상기 T의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성되는 페이지 로딩 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
  12. 페이지 로딩 시스템으로서,
    프로세서; 및
    상기 프로세서에 의하여 실행되는 컴퓨터 프로그램을 저장하는 메모리를 포함하며,
    상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행되는 경우, 상기 페이지 로딩 시스템이 제1항 내지 제 10항 중 어느 한 항에 기재된 방법을 수행하도록 하는 페이지 로딩 시스템.
  13. 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 시스템으로서,
    상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며,
    상기 페이지 로딩 시스템은,
    상기 디지털 문서의 페이지 트리 형태에 관한 정보인 페이지 트리 형태 정보를 획득하는 형태정보모듈;
    상기 페이지 트리 형태 정보를 이용하여 상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 탐색모듈; 및
    상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 제어모듈을 포함하는 페이지 로딩 시스템.
  14. 제13항에 있어서,
    상기 페이지 트리에 포함된 논-리프 노드(non-leaf node)는 자신을 루트 노드로 하는 페이지 트리에 포함된 리프 노드의 개수 및 자신의 자식 노드에 대한 정보를 포함하며,
    상기 탐색모듈은,
    상기 페이지 트리의 루트 노드를 탐색 노드로서 획득하고,
    상기 탐색 노드가 상기 대상 리프 노드일 때까지
    (1) 상기 대상 리프 노드를 포함하는 서브트리를 선택하는 단계; 및
    (2) 선택된 서브트리의 루트 노드를 상기 탐색 노드로서 획득하는 단계를 반복 수행하는 페이지 로딩 시스템.
  15. 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 시스템으로서,
    상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며,
    상기 페이지 로딩 시스템은,
    상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 탐색모듈; 및
    상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 제어모듈을 포함하며,
    상기 페이지 트리는 제1타입 k차 왼쪽자식우선할당트리(k는 2 이상의 정수)이며,
    리프 노드 개수가 N(N은 자연수)인 제1타입 k차 왼쪽자식우선할당트리 T는,
    1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
    2) kx-1 < N < kx(x는 자연수)인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k-1개의 서브트리와 N%(kx-1)개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며, N = kx인 경우, 상기 T는 kx-1 개의 리프 노드를 가지는 k 개의 서브트리를 가지고,
    3) 상기 T의 서브트리는 모두 제1타입 k차 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성되는 페이지 로딩 시스템.
  16. 페이지 트리의 형태로 표현되는 소정의 디지털 문서 내의 대상 페이지를 로딩하기 위한 페이지 로딩 시스템으로서,
    상기 페이지 트리에 포함된 각각의 리프 노드는 상기 디지털 문서를 구성하는 개별 페이지에 대응되며,
    상기 페이지 로딩 시스템은,
    상기 페이지 트리의 루트 노드로부터 최단 경로를 따라 상기 대상 페이지에 상응하는 대상 리프 노드까지 탐색하는 탐색모듈; 및
    (b) 상기 페이지 로딩 시스템이, 상기 대상 리프 노드에 포함된 정보에 기초하여 상기 대상 페이지를 로딩하는 제어모듈을 포함하며,
    상기 페이지 트리는 제2타입 왼쪽자식우선할당트리며,
    리프 노드 개수가 N(N은 자연수)인 제2타입 왼쪽자식우선할당트리 T는,
    1) 서로 인접한 상기 T의 두 서브트리 S1, S2에서, S1에 의해 표현되는 모든 페이지의 번호는 S2에 의해 표현되는 어떠한 페이지의 번호보다 작고,
    2) N이 소정의 제1 한계치 L1보다 크면, 상기 T는 L1개의 리프 노드를 가지는 서브트리와 N%L1개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
    3) N이 소정의 제2 한계치 L2보다 크고 상기 제1한계치 L1이하이면, 상기 T는 L2개의 리프 노드를 가지는 서브트리와 N%L2개의 리프 노드를 가지는 한 개의 마지막 서브트리를 가지며,
    4) N이 상기 제2 한계치 L2 이하이면, 상기 T는 N개의 리프 노드를 모두 자식으로 가지며,
    5) 상기 T의 서브트리는 모두 제2타입 왼쪽자식우선할당트리거나 하나의 리프 노드로 구성되는 페이지 로딩 시스템.
KR1020130009811A 2013-01-29 2013-01-29 페이지 로딩 시스템 및 그 방법 KR101415179B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130009811A KR101415179B1 (ko) 2013-01-29 2013-01-29 페이지 로딩 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130009811A KR101415179B1 (ko) 2013-01-29 2013-01-29 페이지 로딩 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101415179B1 true KR101415179B1 (ko) 2014-07-04

Family

ID=51741140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130009811A KR101415179B1 (ko) 2013-01-29 2013-01-29 페이지 로딩 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101415179B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124528A (zh) * 2019-11-11 2020-05-08 泰康保险集团股份有限公司 页面加载方法、装置、电子设备及计算机可读存储介质
KR20200079169A (ko) * 2018-12-21 2020-07-02 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터를 처리하기 위한 방법, 장치 및 시스템
CN113051504A (zh) * 2021-03-23 2021-06-29 北京百度网讯科技有限公司 文档预览方法、装置、设备、存储介质及程序产品
CN113094674A (zh) * 2021-04-28 2021-07-09 平安国际智慧城市科技股份有限公司 页面展示方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110047855A (ko) * 2009-10-30 2011-05-09 (주)넥스트이지 웹 페이지를 음성으로 서비스하는 방법 및 장치
JP2012223952A (ja) 2011-04-19 2012-11-15 Canon Inc 情報処理装置、pdlデータ変換方法およびコンピュータプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110047855A (ko) * 2009-10-30 2011-05-09 (주)넥스트이지 웹 페이지를 음성으로 서비스하는 방법 및 장치
JP2012223952A (ja) 2011-04-19 2012-11-15 Canon Inc 情報処理装置、pdlデータ変換方法およびコンピュータプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200079169A (ko) * 2018-12-21 2020-07-02 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터를 처리하기 위한 방법, 장치 및 시스템
KR102338208B1 (ko) 2018-12-21 2021-12-13 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 데이터를 처리하기 위한 방법, 장치 및 시스템
US11277498B2 (en) 2018-12-21 2022-03-15 Beijing Baidu Netcom Science And Technology Co., Ltd. Method, apparatus and system for processing data
CN111124528A (zh) * 2019-11-11 2020-05-08 泰康保险集团股份有限公司 页面加载方法、装置、电子设备及计算机可读存储介质
CN111124528B (zh) * 2019-11-11 2023-06-27 泰康保险集团股份有限公司 页面加载方法、装置、电子设备及计算机可读存储介质
CN113051504A (zh) * 2021-03-23 2021-06-29 北京百度网讯科技有限公司 文档预览方法、装置、设备、存储介质及程序产品
CN113051504B (zh) * 2021-03-23 2023-08-01 北京百度网讯科技有限公司 文档预览方法、装置、设备、存储介质及程序产品
CN113094674A (zh) * 2021-04-28 2021-07-09 平安国际智慧城市科技股份有限公司 页面展示方法、装置、电子设备及存储介质
CN113094674B (zh) * 2021-04-28 2024-04-02 深圳赛安特技术服务有限公司 页面展示方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN108292323B (zh) 使用数据源的元数据的数据库操作
US10250526B2 (en) Method and apparatus for increasing subresource loading speed
US20220035600A1 (en) API Specification Generation
CN111339382B (zh) 字符串数据检索方法、装置、计算机设备及存储介质
KR101415179B1 (ko) 페이지 로딩 시스템 및 그 방법
US20160098574A1 (en) Systems and methods to manage file access
CA2815156A1 (en) Document order management via relaxed node indexing
CN111597148B (zh) 用于分布式文件***的分布式元数据管理方法
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
US20160103858A1 (en) Data management system comprising a trie data structure, integrated circuits and methods therefor
US20160299915A1 (en) Retrieval Method And Retrieval Apparatus Based On Browser
US11334567B2 (en) Efficient SQL-based graph random walk
CN108509544A (zh) 思维导图的获取方法及装置、设备及可读存储介质
CN111241040A (zh) 信息获取方法、装置、电子设备及计算机存储介质
WO2012129684A1 (en) Transforming http requests into web services trust messages for security processing
US10984189B2 (en) Search engine content switch
CN102811167A (zh) 用于基于分层名称结构的网络的方法和设备
CN112286706B (zh) 安卓应用的应用信息远程快速获取方法及相关设备
KR101792399B1 (ko) IoT/M2M 리소스 검색 방법 및 시스템
US20140337707A1 (en) Method and apparatus for client to browse web page provided by server
KR20150052544A (ko) 컨텐츠 중심 네트워크에서 패킷 특성을 고려하는 노드의 동작 방법 및 노드
CN107977381B (zh) 数据配置方法、索引管理方法、相关装置以及计算设备
KR101586145B1 (ko) Gpu 기반 트리 탐색 방법
KR101001844B1 (ko) 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법
WO2020241207A1 (ja) データ管理装置、制御方法、及び記憶媒体

Legal Events

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

Payment date: 20170705

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190610

Year of fee payment: 6