KR102390381B1 - 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체 - Google Patents

시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체 Download PDF

Info

Publication number
KR102390381B1
KR102390381B1 KR1020200160176A KR20200160176A KR102390381B1 KR 102390381 B1 KR102390381 B1 KR 102390381B1 KR 1020200160176 A KR1020200160176 A KR 1020200160176A KR 20200160176 A KR20200160176 A KR 20200160176A KR 102390381 B1 KR102390381 B1 KR 102390381B1
Authority
KR
South Korea
Prior art keywords
web page
load time
simulation
loading
network
Prior art date
Application number
KR1020200160176A
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 KR1020200160176A priority Critical patent/KR102390381B1/ko
Application granted granted Critical
Publication of KR102390381B1 publication Critical patent/KR102390381B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

웹 페이지 로드 시간 예측 장치에서의 웹 페이지 로드 시간 예측 방법은 웹 페이지 로드과정에 필요한 시뮬레이션 데이터가 저장되는 단계; 시뮬레이션이 필요한 시뮬레이션 웹 페이지가 입력되는 단계; 상기 시뮬레이션 웹 페이지의 로딩을 위한 리소스들의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 구분하는 단계; 상기 네트워크 활동노드 및 상기 비네트워크 활동노드로 구분된 전체 활동노드들을 의존 관계에 따라 위상 정렬하는 단계; 및 정렬된 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산하여 상기 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 단계를 포함한다.

Description

시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체{APPARATUSE AND METHOD FOR PREDICTING WEBPAGE LOAD TIME BASED ON SIMULATION DATA, AND A RECORDING MEDIUM PROGRAM FOR PERFORMING THE SAME}
본 발명은 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체에 관한 것으로, 보다 상세하게는, 시뮬레이션 데이터를 기반으로 하여 웹 페이지의 로드 시간을 예측하는 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체에 관한 것이다.
웹 페이지 전송을 위해 사용되는 대표적인 프로토콜인 하이퍼텍스트 전송 프로토콜(이하 HTTP)은 1996년 HTTP/1.0이 제안된 이래로 현재 표준화 진행중인 HTTP/3까지 계속해서 사용자의 요구에 따라 발전해오고 있다.
이 과정에서 새로운 기능과 이를 위한 문법 및 의미가 추가되며, 프로토콜 표준 문서에 따른 구현은 웹 브라우저와 웹 서버 개발자가 개별적으로 실시한다.
웹 브라우저가 웹 페이지를 로드하기 위해 필요한 것은 HTTP는 물론, 페이지를 구성하는 자원 발견, 스크립트 실행, 스크립트 실행에 따른 데이터 흐름 파악, 페이지 레이아웃 구성, 실제 화면 출력 등이 필수로 필요하다.
뿐만 아니라, 캐싱, 예측적 연결 개시 기능 역시 대부분의 상용 웹 브라우저가 보다 나은 서비스를 제공하기 위해 탑재하고 있으며, 브라우저 제조사마다 각기 다른 방식의 사용자 편의 기능과 이들 간의 최적화 수준의 차이로 동일한 기계를 사용하여 동일한 웹 페이지에 접속하더라도 브라우저마다 웹 서비스 제공에서의 성능, 대표적으로 페이지 로드가 완료되는 시간(Page Load Time, PLT)은 상이하다.
또한 페이지 로드를 비롯한 웹 서비스 성능은 HTTP 동작과 렌더링이 복합적으로 상호작용한 결과이다.
따라서 전체 브라우저의 페이지 로드 과정에서 HTTP의 동작만의 평가는 HTTP 프로토콜과 네트워크 관련 연구 및 개발자에게는 중요한 지표가 된다.
특히 HTTP로만 브라우저와 상호작용하는 웹 서버 개발자의 경우, 웹 서비스 성능 개선이 주요 목표인 것은 동일하면서도, 렌더링과 기타 사용자 편의 기능에는 관여할 수 없기 때문에 더욱 중요한 지표가 된다.
그렇기 때문에 종래에는 인터넷을 통하여 제공되는 웹 서비스의 성능을 측정하는 방법은 사용자가 직접 키보드를 통하여 문자를 입력하거나 마우스를 클릭하는 대신에 에이전트에 의하여 기 정의된 시나리오 스크립트를 실행함으로써 사용자의 키보드 입력 또는 마우스 클릭 행위와 동일하게 웹 사이트 제공 서버로 특정의 서비스를 요청하고 서버로부터 해당 서비스의 실행 결과를 수신하여 디스플레이하기까지 걸리는 서비스 처리 시간을 측정하는 것에 의한다.
즉, 현재 웹 사이트에 접속하여 에이전트를 실행하여 시간별로 웹 서비스의 성능을 저장하고 디스플레이하기 때문에, 실제로 개발자 혹은 사용자가 웹 페이지를 직접 실행해야지만 로드 시간을 예측할 수 있다는 단점이 있다.
하나의 예로서 공개특허 제10-2007-0080313호에 이러한 에이전트에 의한 사용자 관점에서의 웹 서비스 성능 측정 방법이 개시되어 있다.
한국특허 제2007-0080313호
본 발명은 상기와 같은 문제를 해결하기 위해 안출된 것으로, 본 발명의 목적은 웹 브라우저 내의 페이지 로드에서 네트워크와 관련된 요소만을 분리하여 성능을 평가하기 위해, 브라우저에서의 활동 의존성 로그 데이터를 활용한 시뮬레이션을 통해 웹 페이지 로드 시간을 예측하는 것은 물론, 실제 웹 페이지 로드 시간을 측정하지 않고 시뮬레이션을 통해 웹 페이지 구성 요소만으로도 성능을 가늠할 수 있는 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체를 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 장치에서의 웹 페이지 로드 시간 예측 방법은, 웹 페이지 로드과정에 필요한 시뮬레이션 데이터가 저장되는 단계; 시뮬레이션이 필요한 시뮬레이션 웹 페이지가 입력되는 단계; 상기 시뮬레이션 웹 페이지의 로딩을 위한 리소스들의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 구분하는 단계; 상기 네트워크 활동노드 및 상기 비네트워크 활동노드로 구분된 전체 활동노드들을 의존 관계에 따라 위상 정렬하는 단계; 및 정렬된 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산하여 상기 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 단계를 포함한다.
그리고, 상기 총 로드 시간을 예측하는 단계에서, 상기 네트워크 활동노드에 소요되는 로딩시간은, 상기 시뮬레이션 웹 페이지를 실제 네트워크 상에서 실행하여 소요되는 로딩시간을 사용하고, 상기 비네트워크 활동노드에 소요되는 로딩시간은, 상기 시뮬레이션 데이터에 저장된 로딩시간을 사용하여 상기 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측할 수 있다.
또한, 상기 시뮬레이션 데이터는, 웹 페이지 로딩 시 필요한 리소스들의 종류, 상기 리소스들의 타입을 분류하는 분류기준, 상기 네트워크 활동노드의 로딩시간, 상기 비네트워크 활동노드의 로딩시간, 상기 네트워크 활동노드 및 상기 비네트워크 활동노드 간의 의존관계를 포함하는 데이터일 수 있다.
그리고, 상기 시뮬레이션 데이터는, 웹 브라우저 제조사 또는 웹 브라우저 종류 중 적어도 하나와 매칭되어 저장될 수 있다.
또한, 상기 시뮬레이션 데이터는, 웹 브라우저에 저장된 데이터로부터 추출되는 데이터, 사용자에 의해 입력되는 데이터, 그리고 웹 브라우저의 실행 결과로부터 추출되는 데이터 중 적어도 하나일 수 있다.
그리고, 예측된 총 로드 시간과 웹 페이지 실행 결과에 의한 실제 로드 시간을 비교판단하는 단계; 상기 예측된 총 로드 시간과 상기 실제 로드 시간이 상이한 경우, 상기 네트워크 활동노드의 로딩시간 및 상기 비네트워크 활동노드의 로딩시간이 갱신되는 단계;를 더 포함할 수 있다.
한편, 상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 컴퓨터로 판독 가능한 기록 매체에는, 웹 페이지 로드 시간 예측 방법을 수행하기 위한 컴퓨터 프로그램이 기록되어 있다.
한편, 상기 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따른 웹 페이지 로드 시간 예측 장치는, 웹 페이지 로드과정에 필요한 시뮬레이션 데이터가 저장되는 저장부; 시뮬레이션이 필요한 시뮬레이션 페이지가 입력되는 입력부; 상기 시뮬레이션 페이지의 로딩을 위한 리소스들의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 구분하고, 의존 관계에 따라 상기 네트워크 활동노드 및 상기 비네트워크 활동노드로 구분된 전체 활동노드들을 위상 정렬하는 위상정렬부; 정렬된 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산하여 상기 시뮬레이션 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 시뮬레이션부; 및 예측된 총 로드 시간과 웹 페이지 실행 결과에 의한 실제 로드 시간을 비교판단하고, 상기 예측된 총 로드 시간과 상기 실제 로드 시간이 상이한 경우, 상기 네트워크 활동노드의 로딩시간 및 상기 비네트워크 활동노드의 로딩시간을 갱신하는 갱신부를 포함한다.
상술한 본 발명의 일측면에 따르면, 브라우저에서의 활동 의존성 로그 데이터를 활용한 시뮬레이션을 통해 웹 페이지 로드 시간을 예측하는 것은 물론, 실제 웹 페이지 로드 시간을 측정하지 않고 시뮬레이션을 통해 웹 페이지 구성 요소만으로도 성능을 가늠할 수 있는 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체를 제공함으로써, 네트워크와 관련이 없는 요소에는 변화가 없이, 네트워크 관련 활동의 성능이 개선되었을 때 미치는 영향을 파악하여, HTTP와 웹 브라우저의 네트워크 관련 요소의 보다 효율적인 구현을 돕는 데 활용할 수 있다. 또한, 웹 페이지 개발자 역시 본인이 서비스하는 웹 페이지 간의 의존성 관계를 바탕으로 비효율적인 구간을 파악할 수 있다.
도 1은 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 장치의 블록도이다.
도 2는 웹 페이지 로딩 활동 간의 인과관계를 나타내는 참고도이다.
도 3은 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 방법에서의 웹 페이지 로딩 활동 간의 의존성 관계를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 방법의 흐름도이다. 그리고,
도 5는 본 발명의 다른 실시예에 따른 웹 페이지 로드 시간 예측 방법의 흐름도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
웹 브라우저는 페이저 로드 실행 과정에서 발생한 HTTP 요청 및 응답, HTML 문서 파싱, 자바스크립트 코드 실행, 렌더링, 페인팅 등의 활동을 로그 형태로 기록한다.
소스 코드가 공개된 웹 브라우저의 경우 이 로그를 바탕으로 각 활동이 어떤 자원에서 발생한 것인지, 해당 활동에 걸린 시간은 얼마인지, 어떤 활동이 다른 활동의 근거가 되었는지를 추출하는 것이 가능하다.
본 발명은 이러한 특징을 바탕으로 웹 브라우저 내의 페이지 로드에서 네트워크와 관련된 요소만을 분리하여 웹 서비스의 성능을 평가하기 위한 브라우저에서의 활동 의존성 로그 데이터를 활용한 시뮬레이션을 통해 웹 페이지 로드 시간을 예측하기 위해 마련된다.
도 1은 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 장치의 블록도이다. 도 2는 웹 페이지 로딩 활동 간의 인과관계를 나타내는 참고도이다. 그리고, 도 3은 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 방법에서의 웹 페이지 로딩 활동 간의 의존성 관계를 설명하기 위한 도면이다.
본 발명에 따른 웹 페이지 로드 시간 예측 장치(10)는, 시뮬레이션 데이터를 기반으로 하여 웹 페이지의 로드 시간을 예측하기 위해 마련되는 것으로, 저장부(110), 입력부(130), 위상정렬부(150), 시뮬레이션부(170) 및 갱신부(190)를 포함한다.
본 발명의 웹 페이지 로드 시간 예측 장치(10)는 웹 페이지 로드 시간 예측 방법을 수행하기 위한 소프트웨어(애플리케이션)가(이) 설치되어 실행될 수 있으며, 저장부(110), 입력부(130), 위상정렬부(150), 시뮬레이션부(170) 및 갱신부(190)의 구성은 웹 페이지 로드 시간 예측 장치(10)에서 실행되는 웹 페이지 로드 시간 예측 방법을 수행하기 위한 소프트웨어에 의해 제어될 수 있다.
웹 페이지 로드 시간 예측 장치(10)는 별도의 단말이거나 또는 단말의 일부 모듈일 수 있다. 또한, 저장부(110), 입력부(130), 위상정렬부(150), 시뮬레이션부(170) 및 갱신부(190)의 구성은 통합 모듈로 형성되거나, 하나 이상의 모듈로 이루어질 수 있는 것은 물론, 이와 반대로 각 구성은 별도의 모듈로 이루어질 수도 있다.
그리고 웹 페이지 로드 시간 예측 장치(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)는, 웹 페이지 로드과정에 필요한 시뮬레이션 데이터를 저장할 수 있다.
저장부(110)에 저장되는 시뮬레이션 데이터는, 웹 페이지 로딩 시 필요한 리소스들의 종류, 리소스들의 타입을 분류하는 분류기준, 네트워크 활동노드의 로딩시간, 비네트워크 활동노드의 로딩시간, 네트워크 활동노드 및 비네트워크 활동노드 간의 의존관계를 포함하는 데이터일 수 있다.
여기서 리소스들의 타입을 분류하는 기준의 경우, HTTP 요청 및 응답, HTML 문서 파싱, 자바스크립트 코드 실행, 렌더링, 페인팅 등의 활동을 네트워크와의 관련성에 기초하여 분류하는 기준이다.
구체적으로 로그 데이터에서 스크립팅, 파싱, 렌더링, 페인팅 등의 활동과 이들 간의 상호작용 및 의존 관계는 페이지 로드 시간에 영향을 미치지만 네트워크와는 관련이 없는 요소이다.
따라서 네트워크와는 관련이 없는 스크립팅, 파싱, 렌더링, 페인팅 등의 활동에 해당하는 리소스의 타입은 비네트워크 활동노드로 분류하고, 네트워크와 관련있는 HTTP 요청 및 응답 등의 활동에 해당하는 리소스의 타입은 네트워크 활동노드로 분류하는 것이다.
그리고 시뮬레이션 데이터는, 웹 브라우저 제조사 또는 웹 브라우저 종류 중 적어도 하나와 매칭되어 저장될 수 있다.
또한 시뮬레이션 데이터는, 웹 브라우저에 저장된 데이터로부터 추출되는 데이터, 사용자에 의해 입력되는 데이터, 그리고 웹 브라우저의 실행 결과로부터 추출되는 데이터 중 적어도 하나일 수 있다.
입력부(130)는, 시뮬레이션이 필요한 시뮬레이션 페이지를 입력하기 위해 마련되는 것으로, 개발자 또는 사용자에 의해 입력될 수 있다.
위상정렬부(150)는, 시뮬레이션 페이지의 로딩을 위한 리소스들의 타입을 상술한 바와 같이 네트워크 활동노드 또는 비네트워크 활동노드로 구분할 수 있다.
그리고 위상정렬부(150)는 네트워크 활동노드 또는 비네트워크 활동노드로 구분된 전체 활동노드들을 의존 관계에 따라 위상 정렬할 수 있다.
이상에서의 위상 정렬이라 함은, 후술할 도 3에 도시된 바와 같이 유향 비순환 그래프(Directed Acyclic Graph, 이하 DAG) 형태를 가지도록 활동노드와 활동노드 간의 의존성 관계를 정렬하는 것이다.
시뮬레이션부(170)는, 위상정렬부(150)에서 정렬된 활동노드들의 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산할 수 있다.
그리고 시뮬레이션부(170)는 시뮬레이션 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측할 수 있다.
갱신부(190)는, 시뮬레이션부(170)에서 예측된 총 로드 시간과 실제 네트워크 상에서 이루어진 웹 페이지 실행 결과에 의한 실제 로드 시간을 비교판단할 수 있다.
그리고 갱신부(190)는 예측된 총 로드 시간과 실제 로드 시간이 상이한 것으로 판단되면, 네트워크 활동노드의 로딩시간 및 비네트워크 활동노드의 로딩시간을 갱신할 수 있다.
또한 갱신부(190)는 갱신된 네트워크 활동노드의 로딩시간 및 비네트워크 활동노드의 로딩시간을 저장부(110)에 시뮬레이션 데이터로 저장되도록 할 수 있다.
그리고, 도면에는 도시되어 있지 않으나, 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 장치(10)는 입력부(130)에 입력된 시뮬레이션 웹 페이지를 실제 웹 브라우저를 이용해 네트워크 상에서 로딩할 수 있도록 하는 통신부(미도시)를 더 포함한다.
한편, 웹 페이지 로딩 과정은 도 2에 도시된 바와 같이 매우 복잡하며, 오브젝트 로딩(object loading), HTML 파싱(hypertext markup language parsing), JavaScript/CSS 실행 (evaluation), 렌더링(rendering) 활동들의 복잡한 상호과정으로 이루어져 있다.
오브젝트 로딩은 오브젝트 혹은 사용자가 요청한 오브젝트를 가져오는데, 이러한 오브젝트는 캐시나 로컬 저장소에서 얻거나 네트워킹을 통해 서버로부터 전달받을 수 있다.
한편, HTML 파싱은 HTML 페이지를 DOM(Document Object Model)으로 변환시키고, JavaScript/CSS 실행은 웹 오브젝트 중 JavaScript 혹은 CSC 오브젝트를 실행하여 DOM을 변경하며 렌더링은 DOM을 기반으로 웹 페이지를 시각적으로 표현한다.
따라서, 웹 페이지 로딩을 위한 활동들은 서로가 서로에게 영향을 받을 수 밖에 없다.
도 3을 보면, 활동노드 간의 의존성 정보는 두 활동노드 간의 관계 *로 나타내어진다. 활동노드 A와 B가 있을 때 두 활동노드에 걸린 시간이 각각 주어지며, A →B는 활동노드 A는 반드시 활동노드 B의 시작 이전에 종료되어야 함을 의미한다.
웹 페이지 로드의 관점에서 활동노드와 활동노드 간의 의존성 관계는 빈번히 등장한다.
예를들면, 활동노드 A는 리소스 https://example.com/index.Html에 대한 네트워크 요청을 의미하고, 그리고 활동노드 B는 리소스 https://example.com/index.html의 내용을 파싱하는 활동일 수 있다.
이 경우 A→B의 관계가 성립함은 자명한데, 클라이언트가 서버로부터 https://example.com/index.html을 네트워크로부터 전달받기 전에 해당 리소스에 대한 파싱활동을 수행할 수는 없게 된다.
그리고 https://example.com/index.html의 파싱 활동인 활동노드 B의 실행 결과 해당 HTML 문서 내에 새로운 리소스 https://example.com/image.jpg가 발견될 수 있다.
웹 페이지 로드를 마치기 위해서는 해당 리소스 역시 서버로부터 전달받아야 하므로, 이를 위한 네트워크 활동노드 C는 https://example.com/image.jpg의 네트워크 요청을 의미하며, B의 실행 결과 발견된 활동노드이므로 B *관계 또한 존재한다.
한편, 본 발명에서는 전체 웹 페이지를 로드하는 데 있어 각각의 활동노드들은 모두 하나 이상의 의존성 관계를 가지며, 전체 활동노드들과 의존성 관계를 그래프로 표기했을 때 유향 비순환 그래프(Directed Acyclic Graph, 이하 DAG) 형태를 가짐을 가정한다.
그리고 도 3은 이러한 유향 비순환 그래프(Directed Acyclic Graph, 이하 DAG)로 표현된 활동과 활동 간의 의존성 관계를 나타내기 위한 도면이다.
본 발명에서는 DAG에서 한 노드는 하나의 활동에 대응하기에 해당 활동에 해당하는 리소스의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 정의하여 설명하기로 한다.
도 3의 그래프에서 노드는 활동이며 에지는 의존성 관계이다. 빗금 표시된 노드인 활동 A, E, F, I, J는 클라이언트가 서버로 HTTP 요청을 보내 응답을 받는 네트워크 활동노드이며, 빗금 표시되지 않은 노드의 활동 B, C, D, G, H는 네트워크 이외의 파싱, 스크립팅, 렌더링, 페인팅 등에 속하는 비네트워크 활동노드인 것으로 상정하고 설명하기로 한다.
본 도면이 나타내는 네트워크 활동노드와 비네트워크 활동노드 간의 의존성 관계는 다음과 같이 해석할 수 있다.
네트워크 활동노드 A는 비네트워크 활동노드 B, C, D의 실행에 앞서 실행되어야 한다. 네트워크 활동노드 E는 비네트워크 활동노드 B의 이후에 실행되어야 한다. 나머지 활동노드들도 마찬가지로 해석하면 되며, 특이하게 비네트워크 활동노드 H의 경우 비네트워크 활동노드 D와 네트워크 활동노드 F 둘 모두의 실행이 완료되어야 실행이 가능하다. 이는 본 발명의 가정인 네트워크 활동노드와 비네트워크 활동노드 간의 의존성 관계는 DAG 형태를 가지기 때문이다.
그리고 각 활동노드 간의 실행 시간은 저장부(110)에 시뮬레이션 데이터 중 하나로 저장되어 있을 수 있다. 이는 상술한 바와 같이 실행시간을 포함하는 시뮬레이션 데이터가 시뮬레이션에 의한 결과일 수도 있고, 추정치일 수도 있으며, 아니면 실제 브라우저 실행 결과 로그에서 추출한 정보일 수도 있다.
아래의 표 1은 본 발명의 일 실시예에 따른 저장부(110)에 저장된 시뮬레이션 데이터 중 사전 저장되거나 실제 웹 브라우저 실행 결과 로그에서 추출한 각 활동노드별 실행 시간을 설명하기 위한 구체적인 예시이다.
A B C D E F G H I J
71 ms 17 ms 34 ms 20 ms 44 ms 81 ms 21 ms 36 ms 18 ms 35 ms
구체적으로 예를 들면 표1에 기재된 것처럼 활동노드 A의 실행 시간은 71 ms, 활동노드 B의 실행 시간은 17 ms, 활동노드 C의 실행 시간은 34 ms 등이 가능하다.
이상의 정보를 포함하는 시뮬레이션 데이터를 바탕으로 도 3에 기재된 네트워크 활동노드와 비네트워크 활동노드 간의 의존성 관계를 가지는 해당 웹 페이지 로드 완료 시간을 예측하는 방법은 다음과 같다.
우선 DAG의 정의에 의해 해당 그래프는 도시된 바와 같이 항상 위상 정렬(topological ordering)이 존재하고, 이를 구하기 위한 다항 시간 복잡도 알고리즘이 알려져 있으므로(V는 노드의 수, E는 에지의 수), 특정 위상 정렬을 먼저 구한다. 그리고 구한 위상 정렬 순서대로 각 활동노드의 누적 실행 시간을 계산해가는 방식을 사용한다.
구체적으로 위 예시에서의 위상 정렬 중 하나인 도 3에 도시된 위상 정렬의 경우, 활동노드 A부터 차례대로 계산을 진행하는데, 첫 번째 활동노드의 누적 실행 시간은 해당 활동노드의 실행 시간 자체로 채운다.
본 예시에서는 활동노드 A의 실행 시간인 71 ms가 된다. 나머지 활동노드는 다음 방식으로 계산한다. 자신이 의존하는 활동노드의 누적 실행 시간 값 중 높은 값을 선택하고, 그 활동노드에 자신의 실행 시간을 더한 값으로 계산한다. 본 예시에서 활동 B, C, D를 차례로 계산하는데, 각각 네트워크 활동노드 A의 누적 실행 시간 계산 값인 71에 자신의 실행 시간을 더한 결과 비네트워크 활동노드 B는 88ms, 비네트워크 활동노드 C는 105ms, 그리고 비네트워크 활동노드 D는 91 ms가 된다. 다음 계산 대상인 네트워크 활동노드 E 및 네트워크 활동노드 F의 경우, 먼저 비네트워크 활동노드 B의 누적 실행 시간은 88ms에 44ms를 더해 132 ms가 된다. 같은 방식으로 네트워크 활동노드 F는 186 ms가 된다. 다음 계산 대상인 비네트워크 활동노드 G는 207 ms가 된다. 한편 비네트워크 활동노드 H는 비네트워크 활동노드 D의 누적 실행 시간 91 ms와, 네트워크 활동노드 F의 누적 실행 시간 186 ms 중 더 큰 186 ms를 선택하여 누적 실행 시간은 217 ms가 된다. 그리고 네트워크 활동노드 I와 네트워크 활동노드 J 역시 같은 방식으로 계산하면 누적 실행 시간은 225 ms, 242 ms가 된다.
위상 정렬에 따라 계산을 수행하면 언제나 모든 활동노드의 계산을 마칠 수 있으며, 활동노드마다 계산한 값 중 가장 큰 값이 해당 웹 페이지 로드 시간의 예측치가 된다.
도 4는 본 발명의 일 실시예에 따른 웹 페이지 로드 시간 예측 방법의 흐름도이다.
먼저 웹 페이지 로드과정에 필요한 시뮬레이션 데이터가 저장된다(단계 S110).
시뮬레이션이 필요한 시뮬레이션 웹 페이지가 입력된다(단계 S120).
시뮬레이션 웹 페이지의 로딩을 위한 리소스들의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 구분한다(단계 S130).
네트워크 활동노드 및 비네트워크 활동노드로 구분된 전체 활동노드들을 의존 관계에 따라 위상 정렬한다(단계 S140).
정렬된 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산하여 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측한다(단계 S150).
이를 통해 개발자는 본인이 서비스하는 웹 페이지 간의 의존성 관계를 바탕으로 비효율적인 구간을 파악할 수 있게 되고, 네트워크 관련 활동의 성능이 개선되었을 때 미치는 영향을 파악할 수 있게 된다.
또한, 이에 의해 실제 웹 페이지 로드 시간을 측정하는 것이 아니라 시뮬레이션만을 통해서 웹 페이지 구성 요소만으로도 그 성능을 가늠할 수 있게 된다.
한편, 도 5는 본 발명의 다른 실시예에 따른 웹 페이지 로드 시간 예측 방법의 흐름도이다.
본 발명의 다른 실시예에 따른 웹 페이지 로딩 시간 예측 방법은 도 4에 도시된 본 발명의 일 실시예에 따른 예측 방법 중 단계 S110 내지 S150까지는 동일하거나 이를 통해 충분히 예측가능한바, 반복되는 설명은 생략한다.
단계 S150을 통해 총 로드시간을 예측하고 난 후, 실제 시뮬레이션 웹 페이지를 실제 네트워크 상에서 로딩해본 후 예측된 총 로드 시간과 웹 페이지 실행 결과에 의한 실제 로드 시간을 비교판단한다(단계 S160).
비교 판단 결과 예측된 총 로드시간과 웹 페이지 실행 결과에 의한 실제 로드 시간이 일치하면(단계 S170-예), 로딩 시간 예측 방법을 종료한다.
반면, 비교 판단 결과 예측된 총 로드시간과 웹 페이지 실행 결과에 의한 실제 로드 시간이 일치하지 않으면(단계 S170-아니오), 네트워크 활동노드의 로딩시간 및 비네트워크 활동노드의 로딩시간이 갱신되도록 한다(단계 S180).
이후 갱신된 네트워크 활동노드의 로딩시간 및 비네트워크 활동노드의 로딩시간을 시뮬레이션 데이터로 저장하는 단계 S110으로 회귀한다.
이상에서는 네트워크 활동노드 및 비네트워크 활동노드에 소요되는 실행 시간이 모두 사전에 시뮬레이션 데이터로써 저장부(100)에 저장되어 있는 경우를 예시로 상정하였다.
한편, 본 발명의 또 다른 실시예에 따른 웹 페이지 로딩 시간 예측방법은 도 4 의 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 단계(S150)에서 네트워크 활동노드에 소요되는 로딩시간으로 시뮬레이션 웹 페이지를 실제 네트워크 상에서 실행하여 소요되는 로딩시간을 추출하여 사용하고, 비네트워크 활동노드에 소요되는 로딩시간으로 사전에 시뮬레이션 데이터에 저장된 로딩시간을 사용하여 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측할 수도 있다.
이와 같은, 웹 페이지 로드 시간 예측 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 웹 페이지 로드 시간 예측 장치 110 : 저장부
130 : 입력부 150 : 위상정렬부
170 : 시뮬레이션부 190 : 갱신부

Claims (8)

  1. 웹 페이지 로드 시간 예측 장치에서의 웹 페이지 로드 시간 예측 방법에 있어서,
    웹 페이지 로드과정에 필요한 시뮬레이션 데이터가 저장되는 단계;
    시뮬레이션이 필요한 시뮬레이션 웹 페이지가 입력되는 단계;
    상기 시뮬레이션 웹 페이지의 로딩을 위한 리소스들의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 구분하는 단계;
    상기 네트워크 활동노드 및 상기 비네트워크 활동노드로 구분된 전체 활동노드들을 의존 관계에 따라 위상 정렬하는 단계; 및
    정렬된 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산하여 상기 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 단계를 포함하고,
    상기 웹 페이지 로드시간 예측 방법은,
    브라우저에서의 활동 의존성 로그데이터를 활용한 데이터인 상기 시뮬레이션 데이터를 기반으로 실제 웹 페이지 로드 시간을 측정하지 않고 웹 페이지의 로드 시간을 예측하는 것을 특징으로 하는, 웹 페이지 로드 시간 예측 방법.
  2. 제1항에 있어서,
    상기 총 로드 시간을 예측하는 단계에서,
    상기 네트워크 활동노드에 소요되는 로딩시간은, 상기 시뮬레이션 웹 페이지를 실제 네트워크 상에서 실행하여 소요되는 로딩시간을 사용하고, 상기 비네트워크 활동노드에 소요되는 로딩시간은, 상기 시뮬레이션 데이터에 저장된 로딩시간을 사용하여 상기 시뮬레이션 웹 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 것을 특징으로 하는, 웹 페이지 로드 시간 예측 방법.
  3. 제1항에 있어서,
    상기 시뮬레이션 데이터는,
    웹 페이지 로딩 시 필요한 리소스들의 종류, 상기 리소스들의 타입을 분류하는 분류기준, 상기 네트워크 활동노드의 로딩시간, 상기 비네트워크 활동노드의 로딩시간, 상기 네트워크 활동노드 및 상기 비네트워크 활동노드 간의 의존관계를 포함하는 데이터인 것을 특징으로 하는, 웹 페이지 로드 시간 예측 방법.
  4. 제3항에 있어서,
    상기 시뮬레이션 데이터는,
    웹 브라우저 제조사 또는 웹 브라우저 종류 중 적어도 하나와 매칭되어 저장되는 것을 특징으로 하는, 웹 페이지 로드 시간 예측 방법.
  5. 제3항에 있어서,
    상기 시뮬레이션 데이터는,
    웹 브라우저에 저장된 데이터로부터 추출되는 데이터, 사용자에 의해 입력되는 데이터, 그리고 웹 브라우저의 실행 결과로부터 추출되는 데이터 중 적어도 하나인 것을 특징으로 하는, 웹 페이지 로드 시간 예측 방법.
  6. 제3항에 있어서,
    예측된 총 로드 시간과 웹 페이지 실행 결과에 의한 실제 로드 시간을 비교판단하는 단계;
    상기 예측된 총 로드 시간과 상기 실제 로드 시간이 상이한 경우, 상기 네트워크 활동노드의 로딩시간 및 상기 비네트워크 활동노드의 로딩시간이 갱신되는 단계;를 더 포함하는 것을 특징으로 하는, 웹 페이지 로드 시간 예측 방법.
  7. 제1항 내지 제6항 중 어느 하나의 항에 따른 웹 페이지 로드 시간 예측 방법을 수행하기 위한 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  8. 웹 페이지 로드 시간을 예측하는 웹 페이지 로드 시간 예측장치에 있어서,
    웹 페이지 로드과정에 필요한 시뮬레이션 데이터가 저장되는 저장부;
    시뮬레이션이 필요한 시뮬레이션 페이지가 입력되는 입력부;
    상기 시뮬레이션 페이지의 로딩을 위한 리소스들의 타입을 네트워크 활동노드 또는 비네트워크 활동노드로 구분하고, 의존 관계에 따라 상기 네트워크 활동노드 및 상기 비네트워크 활동노드로 구분된 전체 활동노드들을 위상 정렬하는 위상정렬부;
    정렬된 위상의 순서대로 각 활동노드마다 소요되는 로딩시간을 누적 계산하여 상기 시뮬레이션 페이지의 로딩을 위해 소요되는 총 로드 시간을 예측하는 시뮬레이션부; 및
    예측된 총 로드 시간과 웹 페이지 실행 결과에 의한 실제 로드 시간을 비교판단하고, 상기 예측된 총 로드 시간과 상기 실제 로드 시간이 상이한 경우, 상기 네트워크 활동노드의 로딩시간 및 상기 비네트워크 활동노드의 로딩시간을 갱신하는 갱신부를 포함하고,
    상기 웹 페이지 로드 시간 예측장치는,
    브라우저에서의 활동 의존성 로그데이터를 활용한 데이터인 상기 시뮬레이션 데이터를 기반으로 실제 웹 페이지 로드 시간을 측정하지 않고 웹 페이지의 로드 시간을 예측하는 것을 특징으로 하는, 웹 페이지 로드 시간 예측 장치.
KR1020200160176A 2020-11-25 2020-11-25 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체 KR102390381B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200160176A KR102390381B1 (ko) 2020-11-25 2020-11-25 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200160176A KR102390381B1 (ko) 2020-11-25 2020-11-25 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체

Publications (1)

Publication Number Publication Date
KR102390381B1 true KR102390381B1 (ko) 2022-04-25

Family

ID=81451689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160176A KR102390381B1 (ko) 2020-11-25 2020-11-25 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체

Country Status (1)

Country Link
KR (1) KR102390381B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070080313A (ko) 2006-02-07 2007-08-10 주식회사 케이티프리텔 클라이언트 단말로 제공되는 서비스 성능 분석 방법 및시스템
US20130097313A1 (en) * 2009-08-26 2013-04-18 Microsoft Corporation Web page load time prediction and simulation
KR20180093038A (ko) * 2015-12-11 2018-08-20 제말토 에스에이 신뢰 실행 환경을 갖는 모바일 디바이스

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070080313A (ko) 2006-02-07 2007-08-10 주식회사 케이티프리텔 클라이언트 단말로 제공되는 서비스 성능 분석 방법 및시스템
US20130097313A1 (en) * 2009-08-26 2013-04-18 Microsoft Corporation Web page load time prediction and simulation
KR20180093038A (ko) * 2015-12-11 2018-08-20 제말토 에스에이 신뢰 실행 환경을 갖는 모바일 디바이스

Similar Documents

Publication Publication Date Title
US10645143B1 (en) Static tracker
US11962667B1 (en) Application state client-side cache for a state-based client-server application
US9456019B2 (en) Web page load time prediction and simulation
CN103034583B (zh) 一种用于处理软件自动测试脚本的方法和系统
US8095486B2 (en) Discovering optimal system configurations using decentralized probability based active sampling
KR102151457B1 (ko) 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
KR102140096B1 (ko) 전염병확산예측장치 및 그 동작 방법
CN105260229A (zh) 拉取虚拟机镜像文件的方法和装置
CN113342559A (zh) 计算系统中的诊断框架
CN102812456A (zh) 用于内容叠合的方法
US20100153928A1 (en) Developing and Maintaining High Performance Network Services
Zheng et al. Markov regenerative models of webservers for their user-perceived availability and bottlenecks
US7287144B2 (en) Hit ratio estimation device, hit ratio estimation method, hit ratio estimation program and recording medium
Guo et al. Personalized pagerank for web page prediction based on access time-length and frequency
KR102390381B1 (ko) 시뮬레이션 데이터 기반 웹 페이지 로드 시간 예측 장치, 방법 및 이를 수행하기 위한 프로그램을 기록한 기록매체
JP7003909B2 (ja) 通信解析装置、通信解析方法およびコンピュータプログラム
Goel et al. System to identify and elide superfluous JavaScript code for faster webpage loads
EP1618479A1 (en) Method, system and computer program product for evaluating download performance of web pages
US20130086021A1 (en) Apparatus and method for controlling data access
CN116909613A (zh) 前端增量更新方法、装置及其应用
US8782214B1 (en) Limiting site latencies and page weights
Gudla et al. Framework to improve the web application launch time
Williamson et al. An overview of the VMTP transport protocol
Book et al. Cost and response time simulation for web-based applications on mobile channels
US8892683B2 (en) Website object dependency file creation and use thereof

Legal Events

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