제공 :
한빛 네트워크
저자 : Barbara Bermes
역자 : 강상진
원문 :
The Power of a Private HTTP Archive Instance: Finding a Representative Performance Baseline
여러분은 솔직히 하루만이라도 스티브 사우더(Steve Souder)
[1]와 같은 역할을 통해 여러분이 선택한 웹 사이트의 통계 혹은 동향을 살펴 본적이 있나요? 혹은 HTTP Archive
[2]를 깊이 연구해 본적이 있나요? 여러분만의 HTTP Archive 를 설치한다면 이와 같은 작업과 더불어 더 많은 것을 할 수 있습니다.
httparchive.org는 웹 사이트를 추적 및 모니터링하며 어떻게 웹사이트가 구성되었는지를 알 수 있는 환상적인 도구입니다. 페이지 용량이나 페이지 로딩 시간, CDN(Content Delivery Network) 사용 여부, 각기 다른 MIME 타입 사용 정보를 비롯하여 많은 통계자료 등을 얻을 수 있습니다. WebPagetest
[3]와 통합한다면, 다양한 테스팅을 할 수 있는 훌륭한 도구가 될 수 있습니다.
HTTP Archive MySQL 덤프(매우 용량이 크니 유의하세요)와 HTTP Archive 소스 코드는
다운로드 페이지에서 내려 받을 수 있으며 데이터 스냅샷 분리가 가능 합니다. 만약 데이터베이스를 설치한다면 여러분이 원하는 어떠한 정보라도 데이터 질의가 가능합니다.
설치하기
여러분은 MySQL, PHP와 직접 운영중인 웹 서버가 필요합니다. 위에서 언급한대로, HTTP Archive는 WebPageTest와 같이 사용할 수 있습니다 - 만약 여러분만의 WebPageTest 인스턴스를 운영하는 방법을 선택하였다면 API 키를 요청할 필요는 없습니다. 저는 제한된 질의만 가능한 API 키를 Patrick Meenan에게 요청하는 방법을 선택하였습니다. 당시엔 이것으로도 충분했습니다. 만약 내가 하루에 아마도 200 페이지 이상을 읽도록 사용하길 원했다면 WebPageTest의
사설 인스턴스를 설치해야 했을 겁니다.
여러분이 직접 HTTP Archive 인스턴스를 설치하길 원하거나 더 많은 조언을 얻고 싶다면
제 블로그 포스트를 참조하세요.
장점
제가 위에서 말한 시나리오를 다시 살펴 봅시다: 이 도구를 사용하는 실질적인 이유는 여러분의 웹사이트를 비교 혹은 분석하기 위해서 관련없는 다른 웹사이트와 같이 쌓아두지 않는다는 것입니다. 우리의 디지털 자산
Canadian Broadcasting Corporation"s (CBC)는 각기 다른 목적과 방문자를 가지고 있는 수많은 URL로 이루어져 있습니다. 예를 들어
CBC Radio는 대부분의 캐나다의 라디오 방송을,
CBC News는 최신 뉴스를 제공하며
CBC Hockey Night in Canada는 하키에 대한 모든 정보를,
CBC Video는 CBC가 제공하는 모든 비디오 전용 사이트입니다. 이는 단순히 cbc.ca를 톱 100K Alexa 사이트들과 비교 하는 것이 아니라 우리의 웹 사이트 통계와 데이터를 확인하는데 사용할 수 있다는 점에 가치가 있습니다.
이 경우, HTTP Archive의 통계를 통해 미리 정의된 URL을 사용하길 원하기에 사설 인스턴스를 사용하는 것이 편리 합니다 - 매일 혹은 매주, 매달 테스트를 수행하여 원하는 사이트의 성능에 대한 정보를 수집할 수 있습니다. 이런 과정에서 httparchive.org와 우리 고유의 인스턴스에서 수집된 동향을 비교하는 것뿐만 아니라 로컬 데이터베이스에 저장된 수많은 데이터를 필요한 질의를 통해 적합한 성능 모니터링 및 조사를 수행하는 것이 가능합니다.
데이터 시각화
여러분만의 고유한 인스턴스를 보유하는 경우의 매우 큰 장점은 데이터 시각화를 관리할 수 있다는 점입니다: 여러분은 HTTP Archive 사용시 기본적으로 제공하는 차트 외에도 더 많은 차트를 생성할 수 있습니다. 만약 여러분이 구글 차트 도구를 좋아하지 않는다면, D3.js
[4] 혹은 Highcharts를 대신 사용할 수 있습니다.
아래 그림은 HTTP Archive 데이터베이스를 통해 CBC 웹 사이트가 사용 중인 모든 MIME 타입을 수집한 데이터를 D3.js 버블 차트를 사용하여 시각화한 것입니다.
[그림] CBC 웹 사이트의 MIME 타입 분포를 보여주는 이미지. 사설 HTTP Archive 데이터베이스의 테이블에 저장된 데이터를 D3.js 라이브러리의 버블 차트를 통해 시각화하였다.
데이터베이스 질의
가끔씩 여러분은 차트없이 원하는 정보를 얻기를 원할 수 있습니다. 그런 경우엔 MySQL 테이블을 직접 질의하면 됩니다. requests 테이블 내의 데이터를 질의하는 간단한 방법을 알아 봅시다.
예를 들어 CBC 사이트의 일부가 YUI
[5]를 사용하는데, 우리가 웹 사이트에서 JQuery와 YUI 두 개의 모듈 모두를 사용하는 것을 정말로 원치 않는다면 간단한 아래 질의로 이에 해당하는 주소들을 모두 알아낼 수 있습니다.
SELECT req_referer
FROM requests
WHERE url LIKE "%/jquery_.js%" OR url LIKE "%/i/l/yui/%"
GROUP BY req_referer
그리고 더…
우리는 HTTP Archive 인스턴스를 통해 웹 사이트의 병목현상을 파악하는 과정에서 얻은 더 많은 질의 방법과 정보를 공유할 것 입니다. 또한 불필요한 페이지 병목에 따른 문제를 발견하는 방법을 간단하게 설정하는 것에 대한 토론도 할 것 입니다.
----
[1] Steve Souder - 웹사이트 성능 최적화에 대한 전문가이며 구글에서 일하고 있다.
http://stevesouders.com/
[2] HTTP Archive - 웹 성능 진단을 지원하는 오픈 소스 기반의 소프트웨어.
http://httparchive.org/
[3] WebPagetest - 테스트 에이전트를 통한 웹 성능 진단 도구.
http://www.webpagetest.org
[4] D3.js - 데이터 시각화를 위한 자바스크립트 라이브러리.
http://d3js.org/
[5] YUI - 야후 사용자 인터페이스, 자바스크립트, CSS 기반의 오픈 소스 라이브러리.
http://yuilibrary.com/