KR102533070B1 - 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치 - Google Patents

웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치 Download PDF

Info

Publication number
KR102533070B1
KR102533070B1 KR1020200176352A KR20200176352A KR102533070B1 KR 102533070 B1 KR102533070 B1 KR 102533070B1 KR 1020200176352 A KR1020200176352 A KR 1020200176352A KR 20200176352 A KR20200176352 A KR 20200176352A KR 102533070 B1 KR102533070 B1 KR 102533070B1
Authority
KR
South Korea
Prior art keywords
resource
graph
dependency
web
prioritization
Prior art date
Application number
KR1020200176352A
Other languages
English (en)
Other versions
KR20220086160A (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 KR1020200176352A priority Critical patent/KR102533070B1/ko
Publication of KR20220086160A publication Critical patent/KR20220086160A/ko
Application granted granted Critical
Publication of KR102533070B1 publication Critical patent/KR102533070B1/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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

웹 리소스 의존성 기반 리소스 우선순위화 방법은, 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 단계; 의존성 그래프로부터 하나의 노드가 하나의 리소스에 대응하는 오브젝트 로딩 엑티비티 간 리소스 의존성 그래프를 추출하는 단계; 상기 리소스 의존성 그래프와 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기와 리소스가 중요 경로(critical path)에 속하는지 여부로 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정하는 단계; 및 웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드하는 단계;를 포함한다. 이에 따라, 웹 페이지 로딩 엑티비티 간 의존성을 고려한 리소스 우선순위화에 따라 빠른 렌더링을 제공할 수 있다.

Description

웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치{METHOD FOR PRIORITIZING RESOURCES BASED ON DEPENDENCY OF WEB RESOURCES, RECORDING MEDIUM AND DEVICE FOR PERFORMING THE METHOD}
본 발명은 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치에 관한 것으로서, 더욱 상세하게는 각 웹 리소스를 어떠한 순서로 요청 및 응답해야 하는지에 대한 결정을 하는 리소스 우선순위화(resource prioritization) 문제에 있어서 리소스 의존성(dependency) 정보를 활용하여 리소스 우선순위화를 수행하는 기술에 관한 것이다.
웹 페이지 로딩(Web page loading) 과정은 매우 복잡하다. 웹 페이지 로딩은 오브젝트 로딩(object loading), HTML 파싱(hypertext markup language parsing), JavaScript/CSS 실행 (evaluation), 렌더링(rendering) 엑티비티들의 복잡한 상호과정으로 이루어져 있다.
오브젝트 로딩은 오브젝트 혹은 사용자가 요청한 오브젝트를 가져온다. 오브젝트는 캐시(cache)나 로컬 저장소(local storage)에서 얻거나 네트워킹(networking)를 통해 서버로부터 전달받을 수 있다. HTML 파싱 엑티비티는 HTML 페이지를 DOM(document object model)으로 변환시킨다. JavaScript/CSS 실행은 웹 오브젝트 중 JavaScript 혹은 CSS 오브젝트를 실행하여 DOM을 변경한다. 렌더링 엑티비티는 DOM을 기반으로 웹 페이지를 시각적으로 표현한다.
페이지 로딩 엑티비티들은 서로가 서로에 영향을 받는다. 예를 들어, 한 엑티비티는 다른 엑티비티가 끝난 후에 실행될 수 있다. 또는, 한 엑티비티는 다른 엑티비티의 결과물 중 일부를 입력으로 필요로 한다. 이러한 관계성을 웹 페이지 로딩 엑티비티 간 의존성이라 표현할 수 있다. 웹 페이지 로딩을 가속화하기 위한 여러 웹 기술들이 도입되었다.
리소스 우선순위화는 웹 페이지 로딩 가속화를 위한 방법론 중 하나이다. 웹 페이지 로딩 시 리소스의 요청은 주로 브라우저의 리소스 발견 순서에 따라 결정된다. 기존에는 리소스를 발견하면 즉시 리소스 요청을 보냈다. 하지만, 리소스들 간 중요도가 다르다는 것이 인식되고 리소스 우선순위화 기법이 도입되었다. 리소스 요청 혹은 응답의 순서를 그 중요도에 따라 변경하는 것을 리소스 우선순위화라 칭한다.
이는 일반적으로 브라우저 내에서 이루어지지만 다른 방식으로도 가능하다. HTTP/2의 PRIORITY 프레임은 서버와 클라이언트(client)가 스트림(stream)의 중요도와 스트림 간 의존성을 설정할 수 있게 한다. 리소스는 하나의 양방향 스트림과 대응하기에 스트림 우선순위화는 프로토콜을 이용한 리소스 우선순위화이다.
그러나, 기존의 리소스 우선순위화의 결정 기준은 각 리소스의 특성이었다. 이는 리소스의 종류, 리소스가 'async' 속성을 포함하는지 등 각 단일 리소스에 관한 정보를 의미한다. 하지만, 웹 페이지 로딩의 복잡성을 고려한 리소스 우선순위화가 필요한 실정이다.
KR 10-2008-0033403 A KR 10-2151457 B1 KR 10-1711528 B1 US 10,389,592 B2
M. Wijnants and R. Marx and P. Quax and W. Lamotte, "HTTP/2 Prioritization and its Impact on Web Performance," in Proc. of WWW, April 2018. R. Marx, T. D. Decker, P. Quax and W. Lamotte, "Of the Utmost Importance: Resource Prioritization in HTTP/3 over QUIC," in Proc. of WEBIST, September 2019.
이에, 본 발명의 기술적 과제는 이러한 점에서 착안된 것으로 본 발명의 목적은 웹 리소스 의존성 기반 리소스 우선순위화 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 웹 리소스 의존성 기반 리소스 우선순위화 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 기록 매체를 제공하는 것이다.
본 발명의 또 다른 목적은 상기 웹 리소스 의존성 기반 리소스 우선순위화 방법을 수행하기 위한 장치를 제공하는 것이다.
상기한 본 발명의 목적을 실현하기 위한 일 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 방법은, 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 단계; 의존성 그래프로부터 하나의 노드가 하나의 리소스에 대응하는 오브젝트 로딩 엑티비티 간 리소스 의존성 그래프를 추출하는 단계; 상기 리소스 의존성 그래프와 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기와 리소스가 중요 경로(critical path)에 속하는지 여부로 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정하는 단계; 및 웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드하는 단계;를 포함한다.
본 발명의 실시예에서, 상기 웹 리소스 의존성 기반 리소스 우선순위화 방법은, 브라우저에 의해 상기 리소스의 우선순위 순서대로 리소스를 요청하는 단계;를 더 포함할 수 있다.
본 발명의 실시예에서, 상기 리소스 의존성 그래프를 추출하는 단계는, 오브젝트 로딩 엑티비티는 모두 네트워킹일 수 있다.
본 발명의 실시예에서, 상기 중요 경로(critical path)는 페이지 로딩 중 가장 시간이 오래 걸리는 일련의 엑티비티 순서일 수 있다.
본 발명의 실시예에서, 상기 리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG) 일 수 있다.
본 발명의 실시예에서, 상기 리소스의 우선순위를 결정하는 단계는, 토폴로지컬 정렬(topological sorting) 알고리즘을 사용하여 상기 유향 비순환 그래프로부터 하나의 순서를 생성할 수 있다.
본 발명의 실시예에서, 상기 리소스의 우선순위를 결정하는 단계는, 상기 루트 노드(root node)부터 시작하여 인접한 모든 노드에 대해 재귀적으로 토폴로지컬 정렬을 호출하는 단계; 노드에 인접한 모든 노드가 스택(stack)에 있는 경우, 스택에 해당 노드를 삽입하는 단계; 및 스택은 그래프의 의존성을 어긋나지 않는 하나의 순서를 생성하는 단계;를 포함할 수 있다.
본 발명의 실시예에서, 상기 리소스의 우선순위를 결정하는 단계는, 리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기를 나타내는 subgraphsize 함수, 리소스의 중요 경로 여부를 나타내는 criticalpath 함수 및 각 리소스가 요청된 시간을 나타내는 relativestarttime 함수를 사용하여 각 리소스의 중요도 점수를 부여할 수 있다.
본 발명의 실시예에서, 상기 subgraphsize 함수와 criticalpath 함수는 정수이고 relativestartime은 0과 1사이의 값일 수 있다.
상기한 본 발명의 다른 목적을 실현하기 위한 일 실시예에 따른 컴퓨터로 판독 가능한 저장 매체에는, 상기 웹 리소스 의존성 기반 리소스 우선순위화 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
상기한 본 발명의 또 다른 목적을 실현하기 위한 일 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 장치는, 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 정보 추출부; 의존성 그래프로부터 하나의 노드가 하나의 리소스에 대응하는 오브젝트 로딩 엑티비티 간 리소스 의존성 그래프를 추출하는 의존성 그래프 추출부; 상기 리소스 의존성 그래프와 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기와 리소스가 중요 경로(critical path)에 속하는지 여부로 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정하는 리소스 우선순위화부; 및 웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드하는 리소스 프리로드부;를 포함한다.
본 발명의 실시예에서, 상기 리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG)일 수 있다.
본 발명의 실시예에서, 상기 리소스 우선순위화부는, 토폴로지컬 정렬(topological sorting) 알고리즘을 사용하여 상기 유향 비순환 그래프로부터 하나의 순서를 생성할 수 있다.
본 발명의 실시예에서, 상기 리소스 우선순위화부는, 상기 루트 노드(root node)부터 시작하여 인접한 모든 노드에 대해 재귀적으로 토폴로지컬 정렬을 호출하고, 노드에 인접한 모든 노드가 스택(stack)에 있는 경우, 스택에 해당 노드를 삽입할 수 있다.
본 발명의 실시예에서, 상기 리소스 우선순위화부는, 리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기를 나타내는 subgraphsize 함수, 리소스의 중요 경로 여부를 나타내는 criticalpath 함수 및 각 리소스가 요청된 시간을 나타내는 relativestarttime 함수를 사용하여 각 리소스의 중요도 점수를 부여할 수 있다.
이와 같은 웹 리소스 의존성 기반 리소스 우선순위화 방법에 따르면, 웹 페이지 로딩 엑티비티 간 의존성을 고려하므로, 빠른 렌더링을 유도하게되어 결론적으로 좋은 사용자 경험을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 장치의 블록도이다.
도 2는 웹 페이지의 예시를 보여주는 도면이다.
도 3은 도 2의 웹 페이지에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출한 결과를 보여주는 도면이다.
도 4는 도 3의 웹 페이지 로딩 엑티비티 간 의존성 그래프 중 네트워킹 엑티비티 간의 의존성 그래프를 추출한 결과를 보여주는 도면이다.
도 5는 WProfX를 통해 실제로 얻은 google.com 페이지 로딩 엑티비티 간 의존성 그래프이다.
도 6은 도 5의 네트워킹 엑티비티 간 의존성 그래프를 추출한 결과를 보여주는 도면이다.
도 7은 본 발명에 따른 수정된 리소스의 중요도 점수를 고려한 깊이 우선 탐색 토폴로지컬 정렬 알고리즘의 의사코드이다.
도 8은 본 발명에 따라 변경한 초기 HTML파일 indexB.html을 보여주는 도면이다.
도 9는 본 발명에서 제안한 방식으로 리소스 우선순위화를 다른 리소스 우선순위화 방법과 그 성능을 비교한 그래프이다.
도 10은 본 발명의 일 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 방법의 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 장치의 블록도이다.
본 발명에 따른 웹 리소스 의존성 기반 리소스 우선순위화 장치(10, 이하 장치)는 웹 페이지 로딩 시 리소스를 어떤 순서로 요청 혹은 응답할 것인가에 대한 문제인 리소스 우선순위화를 해결하기 위해 기존의 리소스 우선순위화 방법과는 달리 리소스 의존성(dependency) 정보를 활용하여 리소스 우선순위화를 수행하는 새로운 방안을 제안한다.
도 1을 참조하면, 본 발명에 따른 장치(10)는 정보 추출부(110), 의존성 그래프 추출부(130), 리소스 우선순위화부(150) 및 리소스 프리로드부(170)를 포함한다.
본 발명의 상기 장치(10) 웹 리소스 의존성 기반 리소스 우선순위화를 수행하기 위한 소프트웨어(애플리케이션)가 설치되어 실행될 수 있으며, 상기 정보 추출부(110), 상기 의존성 그래프 추출부(130), 상기 리소스 우선순위화부(150) 및 상기 리소스 프리로드부(170)의 구성은 상기 장치(10)에서 실행되는 상기 웹 리소스 의존성 기반 리소스 우선순위화를 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
상기 장치(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 상기 정보 추출부(110), 상기 의존성 그래프 추출부(130), 상기 리소스 우선순위화부(150) 및 상기 리소스 프리로드부(170)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어 질 수 있다. 그러나, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
상기 장치(10)는 이동성을 갖거나 고정될 수 있다. 상기 장치(10)는, 서버(server) 또는 엔진(engine) 형태일 수 있으며, 디바이스(device), 기구(apparatus), 단말(terminal), UE(user equipment), MS(mobile station), 무선기기(wireless device), 휴대기기(handheld device) 등 다른 용어로 불릴 수 있다.
상기 장치(10)는 운영체제(Operation System; OS), 즉 시스템을 기반으로 다양한 소프트웨어를 실행하거나 제작할 수 있다. 상기 운영체제는 소프트웨어가 장치의 하드웨어를 사용할 수 있도록 하기 위한 시스템 프로그램으로서, 안드로이드 OS, iOS, 윈도우 모바일 OS, 바다 OS, 심비안 OS, 블랙베리 OS 등 모바일 컴퓨터 운영체제 및 윈도우 계열, 리눅스 계열, 유닉스 계열, MAC, AIX, HP-UX 등 컴퓨터 운영체제를 모두 포함할 수 있다.
상기 정보 추출부(110)는 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출한다.
본 발명을 수행하기 위해서는 우선으로 웹 페이지 로딩 시 발생하는 엑티비티 간의 의존성 그래프가 필요하다. WProfX는 Google Chrome 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 기존의 도구이다.
캐시와 로컬 저장소가 비어 있는 상태에서 WProfX를 사용하여 웹 페이지 로딩 엑티비티의 의존성 그래프를 얻는다. 캐시나 로컬 저장소에서 리소스를 얻어 오는 오브젝트 로딩을 제외하였기에 웹 페이지 로딩 엑티비티들 중 오브젝트 로딩 엑티비티는 모두 네트워킹이다.
상기 의존성 그래프 추출부(130)는 의존성 그래프에서 오브젝트 로딩(네트워킹) 엑티비티 간 의존성만 추출한다. 추출한 그래프에서 한 노드는 하나의 리소스에 대응하기에 이를 리소스 의존성 그래프라 칭한다. 리소스 의존성은 추후의 리소스 우선순위화에서 한 리소스의 로딩이 어떤 리소스의 로딩보다 선행되어야 하는지에 대한 명확한 기준을 제시한다.
도 2는 예시 웹 페이지이다. 예시 웹 페이지의 초기 HTML 문서는 indexA.html이고, indexA.html은 1.js, 2.js를 <script> 태그를 통해 참조한다. 1.js, 2.js는 각각 1.img, 2.img를 참조한다.
해당 예시 웹 페이지에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출한 결과가 도 3이다. indexA.html의 앞 부분 x의 렌더링 관련 엑티비티 이후를 살펴보면, indexA.html 의 a 부분의 파싱 엑티비티가 선행 되어야 1.js가 참조된다는 것을 알고 1.js 오브젝트 로딩 엑티비티가 시작될 수 있다. 1.js의 실행 엑티비티가 선행되어야 1.js가 1.img를 참조한다는 것을 알고 1.img의 오브젝트 로딩이 시작될 수 있다.
indexA.html의 a부분의 파싱 이후에 indexA.html의 b 부분의 파싱이 실행된다. indexA.html 의 b 부분의 파싱 엑티비티가 선행 되어야 2.js가 참조된다는 것을 알고 2.js 오브젝트 로딩 엑티비티가 시작될 수 있다. 2.js의 실행 엑티비티가 선행되어야 2.js가 2.img를 참조한다는 것을 알고 2.img의 오브젝트 로딩이 시작될 수 있다.
해당 예시 페이지의 웹 페이지 로딩 엑티비티 간 의존성 그래프 중 네트워킹 엑티비티 간의 의존성 그래프를 추출한 결과가 도 4이다.
도 5는 WProfX를 통해 실제로 얻은 google.com 페이지 로딩 엑티비티 간 의존성 그래프이다. 그래프에서 노란색 노드는 네트워킹 엑티비티이고, 흰색 노드는 다른 종류의 페이지 로딩 엑티비티들이다. 빨간 선의 노드들은 중요 경로(critical path) 에 해당하는 엑티비티들을 의미한다. 중요 경로는 페이지 로딩 중 가장 시간이 오래 걸리는 일련의 엑티비티 순서를 의미한다.
도 5에서 네트워킹 엑티비티 간 의존성 그래프를 추출한 결과는 도 6에서 보이는 google.com의 리소스 의존성 그래프이다.
리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG)이다. 토폴로지컬 정렬(topological sorting) 알고리즘을 사용하면 DAG에서 그 방향을 어긋나지 않는 하나의 순서를 만들 수 있다.
상기 리소스 우선순위화부(150)는 상기 리소스 의존성 그래프 자체로 리소스의 우선순위를 결정하거나 또는 상기 리소스 의존성 그래프 및 상기 리소스 의존성 그래프에서 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정한다.
다시 말해, 일 실시예에서는 상기 리소스 의존성 그래프 자체로 리소스의 우선순위를 결정할 수 있고, 다른 실시예에서는 리소스 의존성 그래프 자체와 리소스 중요도 점수를 모두 고려하여 우선순위를 결정할 수 있다.
상기 리소스 중요도 점수는 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기 및 리소스가 중요 경로(critical path)에 속하는지 여부에 따라 결정될 수 있다.
도 7은 수정된 리소스의 중요도 점수를 고려한 깊이 우선 탐색 토폴로지컬 정렬 알고리즘의 의사코드이다.
토폴로지컬 정렬 알고리즘은 도 7의 6줄과 15줄에서 보이는 것처럼 루트 노드(root node)부터 시작하여 인접한 모든 노드에 대해 재귀적으로 토폴로지컬 정렬을 호출한다. 도 7의 17줄처럼 어떤 노드에 인접한 모든 노드가 스택(stack)에 있으면, 스택에 해당 노드를 삽입한다. 스택은 그래프의 의존성을 어긋나지 않는 하나의 순서를 만들어준다.
본 발명은 리소스 의존성 정보뿐 아니라 각 리소스의 중요도 또한 리소스 우선순위화에 활용하였다. 우선 각 리소스에게 점수를 리소스 중요 경로 여부, 리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기를 기준으로 점수를 부여하였다.
도 7의 각 리소스의 중요도 점수를 부여하는 함수인 SCORE에서 subgraphsize는 리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기, criticalpath는 리소스의 중요 경로 여부, 그리고 relativestarttime은 각 리소스가 요청된 시간을 의미한다.
subgraphsize와 criticalpath 정수이고 relativestartime은 0과 1사이의 값이기 때문에 subgraphsize와 criticalpath에 의해 우선순위화 순서는 결정된다. relativestarttime은 동일한 점수의 리소스 간 순서를 만드는 1보다 작은 값이다.
기존의 깊이 우선 탐색 토폴로지컬 정렬 알고리즘에서 각 노드가 인접한 노드에 대한 토폴로지컬 정렬을 노드의 중요도 점수가 낮은 순서로 재귀적으로 호출하게 하였다. 이는 도 7의 4줄과 14줄에서 학인할 수 있다. 이 방식을 사용하면 중요도 점수가 높은 노드가 나중에 탐색되어 스택에 먼저 삽입될 확률을 낮춘다.
상기 리소스 프리로드부(170)는 웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드한다.
프리로드란 곧 필요로 하는 리소스 정보를 브라우저에게 미리 알려주는 방법이다. 주로 HTML 파일의 앞부분 <head> 안에 <link> 태그를 이용하여 적시한다. 이와 같은 프리로드를 사용하면 리소스의 발견까지 걸리는 시간을 단축해 필요로 하는 리소스의 요청을 빠르게 보낼 수 있다.
리소스 우선순위화는 서버가 클라이언트에 보내는 리소스 내에 우선순위를 삽입하여 클라이언트가 이를 바탕으로 우선순위화를 수행하도록 하였다. 이 때, 프리로드가 사용되었는데, 클라이언트가 웹 페이지 로딩 시 받는 초기 HTML 파일의 <head>에 리소스 우선순위화 순서대로 각 리소스를 프리로드하게 하였다. 브라우저는 프리로드된 순서대로 리소스 요청을 보낸다.
도 2의 테스트 페이지의 indexA.html을 본 발명을 이용하여 리소스 우선순위화 순서를 도출하고, 도출한 리소스 우선순위화 순서대로 초기 HTML 파일의 <head>에 preload로 삽입한다. 도 8은 본 발명의 방법론대로 변경한 초기 HTML파일 indexB.html을 보여준다. indexB.html을 서버가 서비스하면 브라우저는 우선순위 순서대로 리소스 요청을 보낸다.
도 9는 본 발명에서 제안한 방식으로 리소스 우선순위화를 다른 리소스 우선순위화 방법과 그 성능을 비교한 그래프이다. NO-PRELOAD는 우선순위화 없이 웹 페이지 로딩을 수행한다.
DEFAULT[선행기술문헌의 비특허문헌 1]은 WProfX 측정 시 기록된 순서대로 리소스를 프리로드한다. 이는 Chrome의 리소스 우선순위화의 결과대로 로딩을 수행하는 것이다. SIMPLETOP[본 발명에 따라 리소스 의존성 그래프만으로 우선순위를 결정하는 알고리즘]은 기본 토폴로지컬 정렬의 순서대로 리소스를 프리로드하여 웹 페이지 로딩을 수행한다. REVTOP[본 발명에 따라 리소스 의존성 그래프 자체와 리소스 중요도 점수를 둘다 고려하여 우선순위를 결정하는 알고리즘]은 본 발명에서 제안한 우선순위화의 방식대로 프리로드하여 웹 페이지 로딩을 수행하였다. 도 9에서 본 발명에 따른 REVTOP이 RelativeRUM-SpeedIndex가 가장 작은 것을 확인할 수 있다.
도 10은 본 발명의 일 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 방법의 흐름도이다.
본 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 방법은, 도 1의 장치(10)와 실질적으로 동일한 구성에서 진행될 수 있다. 따라서, 도 1의 장치(10)와 동일한 구성요소는 동일한 도면부호를 부여하고, 반복되는 설명은 생략한다.
또한, 본 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 방법은 웹 리소스 의존성 기반 리소스 우선순위화를 수행하기 위한 소프트웨어(애플리케이션)에 의해 실행될 수 있다.
본 발명은 웹 페이지 로딩 시 리소스를 어떤 순서로 요청 혹은 응답할 것인가에 대한 문제인 리소스 우선순위화를 해결하기 위해 기존의 리소스 우선순위화 방법과는 달리 리소스 의존성(dependency) 정보를 활용하여 리소스 우선순위화를 수행하는 새로운 방안을 제안한다.
도 10을 참조하면, 본 실시예에 따른 웹 리소스 의존성 기반 리소스 우선순위화 방법은, 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출한다(단계 S10).
본 발명을 수행하기 위해서는 우선으로 웹 페이지 로딩 시 발생하는 엑티비티 간의 의존성 그래프가 필요하다. WProfX는 Google Chrome 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 기존의 도구이다.
캐시와 로컬 저장소가 비어 있는 상태에서 WProfX를 사용하여 웹 페이지 로딩 엑티비티의 의존성 그래프를 얻는다. 캐시나 로컬 저장소에서 리소스를 얻어 오는 오브젝트 로딩을 제외하였기에 웹 페이지 로딩 엑티비티들 중 오브젝트 로딩 엑티비티는 모두 네트워킹이다.
의존성 그래프로부터 하나의 노드가 하나의 리소스에 대응하는 오브젝트 로딩 엑티비티 간 리소스 의존성 그래프를 추출한다(단계 S20).
상기 리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG)이다. 리소스 의존성은 추후의 리소스 우선순위화에서 한 리소스의 로딩이 어떤 리소스의 로딩보다 선행되어야 하는지에 대한 명확한 기준을 제시한다.
상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기 및 리소스가 중요 경로(critical path)에 속하는지 여부를 기초로 리소스의 우선순위를 결정한다(단계 S30).
상기 중요 경로(critical path)는 페이지 로딩 중 가장 시간이 오래 걸리는 일련의 엑티비티 순서이다. 리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG)이다. 토폴로지컬 정렬(topological sorting) 알고리즘을 사용하면 DAG에서 그 방향을 어긋나지 않는 하나의 순서를 만들 수 있다.
상기 리소스의 우선순위를 결정하는 단계는, 상기 리소스 의존성 그래프 자체로 리소스의 우선순위를 결정하거나 또는 상기 리소스 의존성 그래프 및 상기 리소스 의존성 그래프에서 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정한다.
다시 말해, 일 실시예에서는 상기 리소스 의존성 그래프 자체로 리소스의 우선순위를 결정할 수 있고, 다른 실시예에서는 리소스 의존성 그래프 자체와 리소스 중요도 점수를 모두 고려하여 우선순위를 결정할 수 있다.
상기 리소스 중요도 점수는 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기 및 리소스가 중요 경로(critical path)에 속하는지 여부에 따라 결정될 수 있다.
상기 루트 노드(root node)부터 시작하여 인접한 모든 노드에 대해 재귀적으로 토폴로지컬 정렬을 호출하고, 노드에 인접한 모든 노드가 스택(stack)에 있는 경우, 스택에 해당 노드를 삽입하여, 그래프의 의존성을 어긋나지 않는 하나의 순서를 생성할 수 있다.
상기 리소스의 우선순위를 결정하기 위해, 리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기를 나타내는 subgraphsize 함수, 리소스의 중요 경로 여부를 나타내는 criticalpath 함수 및 각 리소스가 요청된 시간을 나타내는 relativestarttime 함수를 사용하여 각 리소스의 중요도 점수를 부여할 수 있다.
예를 들어, 상기 subgraphsize 함수와 criticalpath 함수는 정수이고 relativestartime은 0과 1사이의 값일 수 있다.
웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드한다(단계 S40).
리소스 우선순위화는 서버가 클라이언트에 보내는 리소스 내에 우선순위를 삽입하여 클라이언트가 이를 바탕으로 우선순위화를 수행하도록 하였다. 예를 들어, 클라이언트가 웹 페이지 로딩 시 받는 초기 HTML 파일의 <head>에 리소스 우선순위화 순서대로 각 리소스를 프리로드하게 할 수 있다.
본 발명은 브라우저에 의해 상기 리소스의 우선순위 순서대로 리소스를 요청하게 된다. 다시 말해, 기존의 깊이 우선 탐색 토폴로지컬 정렬 알고리즘에서 각 노드가 인접한 노드에 대한 토폴로지컬 정렬을 노드의 중요도 점수가 낮은 순서로 재귀적으로 호출하게 하였다. 이 방식을 사용하면 중요도 점수가 높은 노드가 나중에 탐색되어 스택에 먼저 삽입될 확률을 낮출 수 있다.
이와 같은 웹 리소스 의존성 기반 리소스 우선순위화 방법에 따르면, 웹 페이지 로딩 엑티비티 간 의존성을 고려하였기에 이에 따른 빠른 렌더링으로 결론적으로 좋은 사용자 경험을 제공할 것이다. 본 발명은 사용자 경험과 밀접히 관련된 지표인 QoE(quality of experience) 지표 중 RUM-SpeedIndex 지표에서 좋은 성능을 보였다. Speed Index는 시간에 따른 웹 페이지 로딩의 시각적 완성도를 수량화한 지표로 RUM-SpeedIndex는 Speed Index를 Resource Timing API를 통해 계산한 지표이다.
이와 같은, 웹 리소스 의존성 기반 리소스 우선순위화 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
본 발명은 더 나은 사용자 웹 경험을 제공하고자 하는 웹 서비스를 제공하는 사업자가 활용할 수 있다. 현재 웹 서비스를 하는 서버를 가진 사업자의 경우, 현재 서비스 중인 웹 콘텐츠를 위 방식으로 수정하여 서비스하면 리소스 의존성을 고려한 리소스 우선순위화된 웹 서비스를 제공할 수 있다. 브라우저 내에서 리소스 우선순위화를 수행하는 것 또한 가능하다. 웹 컨텐츠의 수정 없이 브라우저 내에서 리소스 의존성 정보를 고려한 리소스 우선순위화를 수행할 수 있다. 웹 서비스를 제공하는 대부분 기업에서 활용할 수 있으며, 사용자가 겪는 웹 서비스의 품질 향상이 이익과 직접 연결되는 시장에서 활용이 더욱 기대된다.
10: 웹 리소스 의존성 기반 리소스 우선순위화 장치
110: 정보 추출부
130: 의존성 그래프 추출부
150: 리소스 우선순위화부
170: 리소스 프리로드부

Claims (15)

  1. 리소스 우선순위화 장치에서의 웹 리소스 의존성 기반 리소스 우선순위화 방법에 있어서,
    정보 추출부에서 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 단계;
    의존성 그래프 추출부에서 의존성 그래프로부터 하나의 노드가 하나의 리소스에 대응하는 오브젝트 로딩 엑티비티 간 리소스 의존성 그래프를 추출하는 단계;
    리소스 우선순위화부에서 상기 리소스 의존성 그래프와 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기와 리소스가 중요 경로(critical path)에 속하는지 여부로 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정하는 단계; 및
    리소스 프리로드부에서 웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드하는 단계;를 포함하는, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  2. 제1항에 있어서,
    리소스 프리로드부에서 브라우저에 의해 상기 리소스의 우선순위 순서대로 리소스를 요청하는 단계;를 더 포함하는, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  3. 제1항에 있어서, 상기 리소스 의존성 그래프를 추출하는 단계는,
    오브젝트 로딩 엑티비티는 모두 네트워킹인, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  4. 제1항에 있어서,
    상기 중요 경로(critical path)는 페이지 로딩 중 가장 시간이 오래 걸리는 일련의 엑티비티 순서인, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  5. 제1항에 있어서,
    상기 리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG)인, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  6. 제5항에 있어서, 상기 리소스의 우선순위를 결정하는 단계는,
    토폴로지컬 정렬(topological sorting) 알고리즘을 사용하여 상기 유향 비순환 그래프로부터 하나의 순서를 생성하는, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  7. 제6항에 있어서, 상기 리소스의 우선순위를 결정하는 단계는,
    상기 루트 노드(root node)부터 시작하여 인접한 모든 노드에 대해 재귀적으로 토폴로지컬 정렬을 호출하는 단계;
    노드에 인접한 모든 노드가 스택(stack)에 있는 경우, 스택에 해당 노드를 삽입하는 단계; 및
    스택은 그래프의 의존성을 어긋나지 않는 하나의 순서를 생성하는 단계;를 포함하는, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  8. 제1항에 있어서, 상기 리소스의 우선순위를 결정하는 단계는,
    리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기를 나타내는 subgraphsize 함수, 리소스의 중요 경로 여부를 나타내는 criticalpath 함수 및 각 리소스가 요청된 시간을 나타내는 relativestarttime 함수를 사용하여 각 리소스의 중요도 점수를 부여하는, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  9. 제8항에 있어서,
    상기 subgraphsize 함수와 criticalpath 함수는 정수이고 relativestartime은 0과 1사이의 값인, 웹 리소스 의존성 기반 리소스 우선순위화 방법.
  10. 제1항 내지 제9항 중 어느 하나의 항에 따른 상기 웹 리소스 의존성 기반 리소스 우선순위화 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 저장 매체.
  11. 브라우저에서 웹 페이지 로딩 엑티비티 간 의존성 그래프를 추출하는 정보 추출부;
    의존성 그래프로부터 하나의 노드가 하나의 리소스에 대응하는 오브젝트 로딩 엑티비티 간 리소스 의존성 그래프를 추출하는 의존성 그래프 추출부;
    상기 리소스 의존성 그래프와 상기 리소스 의존성 그래프에서 리소스에 대응하는 노드를 루트 노드(root node)로 설정하여 하위 그래프의 크기와 리소스가 중요 경로(critical path)에 속하는지 여부로 결정된 리소스 중요도 점수를 기초로 리소스의 우선순위를 결정하는 리소스 우선순위화부; 및
    웹 페이지를 로딩하는 경우 서버가 클라이언트에 보내는 초기 파일에 결정된 리소스의 우선순위 순서대로 각 리소스를 프리로드하는 리소스 프리로드부;를 포함하는, 웹 리소스 의존성 기반 리소스 우선순위화 장치.
  12. 제11항에 있어서,
    상기 리소스 의존성 그래프는 하나의 노드가 리소스에 대응하는 유향 비순환 그래프(directed acyclic graph, DAG)인, 웹 리소스 의존성 기반 리소스 우선순위화 장치.
  13. 제12항에 있어서, 상기 리소스 우선순위화부는,
    토폴로지컬 정렬(topological sorting) 알고리즘을 사용하여 상기 유향 비순환 그래프로부터 하나의 순서를 생성하는, 웹 리소스 의존성 기반 리소스 우선순위화 장치.
  14. 제13항에 있어서, 상기 리소스 우선순위화부는,
    상기 루트 노드(root node)부터 시작하여 인접한 모든 노드에 대해 재귀적으로 토폴로지컬 정렬을 호출하고, 노드에 인접한 모든 노드가 스택(stack)에 있는 경우, 스택에 해당 노드를 삽입하는, 웹 리소스 의존성 기반 리소스 우선순위화 장치.
  15. 제11항에 있어서, 상기 리소스 우선순위화부는,
    리소스에 해당하는 노드를 루트 노드로 볼 때 하위 그래프의 크기를 나타내는 subgraphsize 함수, 리소스의 중요 경로 여부를 나타내는 criticalpath 함수 및 각 리소스가 요청된 시간을 나타내는 relativestarttime 함수를 사용하여 각 리소스의 중요도 점수를 부여하는, 웹 리소스 의존성 기반 리소스 우선순위화 장치.
KR1020200176352A 2020-12-16 2020-12-16 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치 KR102533070B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200176352A KR102533070B1 (ko) 2020-12-16 2020-12-16 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200176352A KR102533070B1 (ko) 2020-12-16 2020-12-16 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치

Publications (2)

Publication Number Publication Date
KR20220086160A KR20220086160A (ko) 2022-06-23
KR102533070B1 true KR102533070B1 (ko) 2023-05-15

Family

ID=82222113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200176352A KR102533070B1 (ko) 2020-12-16 2020-12-16 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치

Country Status (1)

Country Link
KR (1) KR102533070B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023550883A (ja) 2021-10-19 2023-12-06 エルジー・ケム・リミテッド 多層素材の物性予測装置および方法
CN117648179A (zh) * 2023-11-23 2024-03-05 北京菱云科技有限公司 一种资源分配方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100575581B1 (ko) 2004-12-15 2006-05-03 한국전자통신연구원 우선순위 그래프를 이용한 제품 계열의 기능 분석 및테스팅 경로 분석 장치 및 그 방법
JP2009540449A (ja) 2006-06-13 2009-11-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 因果関係のグラフの定性的関係のモデル化
KR101498533B1 (ko) 2014-07-18 2015-03-04 주식회사 한글과컴퓨터 컴포넌트 분리 표시 기반의 전자 문서 출력 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228500B2 (en) 2003-06-13 2007-06-05 Microsoft Corporation Web page rendering priority mechanism
WO2013048986A1 (en) 2011-09-26 2013-04-04 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US9325806B2 (en) 2012-02-24 2016-04-26 Qualcomm Incorporated Cooperative loading of webpages based on shared meta information
KR102151457B1 (ko) 2014-08-25 2020-09-03 삼성전자 주식회사 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100575581B1 (ko) 2004-12-15 2006-05-03 한국전자통신연구원 우선순위 그래프를 이용한 제품 계열의 기능 분석 및테스팅 경로 분석 장치 및 그 방법
JP2009540449A (ja) 2006-06-13 2009-11-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 因果関係のグラフの定性的関係のモデル化
KR101498533B1 (ko) 2014-07-18 2015-03-04 주식회사 한글과컴퓨터 컴포넌트 분리 표시 기반의 전자 문서 출력 장치 및 방법

Also Published As

Publication number Publication date
KR20220086160A (ko) 2022-06-23

Similar Documents

Publication Publication Date Title
JP6653334B2 (ja) 情報抽出方法及び装置
US10567407B2 (en) Method and system for detecting malicious web addresses
US10009439B1 (en) Cache preloading
US20140337716A1 (en) Displaying content on a mobile device
KR102533070B1 (ko) 웹 리소스 의존성 기반 리소스 우선순위화 방법, 이를 수행하기 위한 기록 매체 및 장치
US9253013B1 (en) Efficient delivery of content by virtualization of dynamic interaction with the document object model
US20120011431A1 (en) Method and System of Retrieving Ajax Web Page Content
CN106897251B (zh) 富文本展示方法及装置
US20090281989A1 (en) Micro-Bucket Testing For Page Optimization
US8825856B1 (en) Usage-based content filtering for bandwidth optimization
WO2014153457A1 (en) Merging web page style addresses
CN111104587A (zh) 网页显示方法、装置和服务器
CN112632358B (zh) 一种资源链接获取方法、装置、电子设备及存储介质
CN110286917A (zh) 文件打包方法、装置、设备及存储介质
CN110688596B (zh) 静态网页更新方法、装置、计算机设备和存储介质
WO2020124724A1 (zh) 资源描述文件的处理、页面资源的获取方法及设备
US9645984B2 (en) Efficient delivery of content by virtualization of static interaction with the document object model
CN111553652B (zh) 业务处理方法及装置
CN110381363A (zh) 视频解码方法、装置、服务器及存储介质
Ghasemisharif et al. Speedreader: Reader mode made fast and private
CN112287201A (zh) 对爬虫的请求去重的方法、装置、介质以及电子设备
US20170109363A1 (en) Computing system with dynamic web page feature
CN115168770A (zh) 一种页面生成方法、装置、电子设备及介质
CN102694802B (zh) 网络访问信息记录方法和装置
CN115391711A (zh) 网页正文信息提取方法、装置、设备及介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant