SlideShare a Scribd company logo
박상혁 | 웹표준개발2팀/UIT센터 | 2012.02
1-1 속도의 심리학
1-2 사용자 환경
1-3 네트워크와 성능
1 꼭 빠르게 해야되나요?
2 Front-End 성능 최적화
2-1 Front-End 성능 최적화
2-2 파일 크기 최소화
2-3 파일 요청 최소화
2-4 브라우저 렌더링을 고려한 개발 방법
목차
3 점검, 분석, 측정도구 그리고 사례
3-1 점검, 분석, 측정 도구
3-2 사례
[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?
1-1
일반적인 UI 디자인 가이드라인
• 대화형 시스템에서 응답을 기다려주는 한계는 5초
• 10초가 넘어가면 다른 작업으로 관심이 이행함
자료 : designing and engineering Time, Steven Seow 2008 / Velocity 2010 / NHN, FE 성능 Awareness 교육 재인용
구분 응답시간 SW 디자인 가이드라인
Instantaneous (순간적) 0.2초
버튼 입력에 대한 반응 : 5~100ms
메뉴 펼치기 : 200ms
Immediate (즉시) 0.5초 ~ 1초
책 페이지를 넘기는 시간
웹 브라우저의 페이지 업/다운에 대한 기대시간
Continuous (연속적) 2~5초
시스템이 멈추지 않았음을 주기적으로 알려줄 필요가 있음
5초가 넘어가는 경우 반드시 feedback 해야 함
Captive (참고 기다림) 7~10초 웹 페이지에서 사용자들이 떠남
네이버 속도 만족도 실험
• 웹 페이지 캡쳐 후 다양한 속도로 화면을 재생하면서 체감속도와 만족도를 설문
• 2초가 넘어가면 실제 소요시간과 관계없이 “느리고 답답하다”고 인지
• 4~5초 정도부터 만족비율 50% 이하로 하락
• 모바일이라고 해서 느린 것을 이해하고 기다리지 않음
• 단순한 서핑형 서비스(뉴스, 카페, 블로그, 웹툰, 영화)와 목적형 서비스(통합검색, 이미지
검색 , 메일, 캘린더, 사전, 날씨등)의 경우 비슷한 만족도를 나타냈으나 목적형 서비스에서
보다 빠른 응답속도가 요구됨
1-2
초고속 인터넷 가입 유형
• 50M~100M 급 광랜이 60%에 육박하지만
아직도 HFC 나 ADSL 등의 저속망 사용자도 30%이상이다.
• 물리적인 여건 때문에 저속망 사용자가 쉽게 줄어들지 않을 전망
22%
35%
14%
29%
FTTH
LAN
xDSL
HFC
자료 : 방통위(초고속 인터넷 가입 유형 2011.9월 기준)
1-2
OS/인터넷 브라우저
• 구형 PC, 구형 브라우저 사용자가 아직도 많은 비중을 차지하고 있으므로 배려해야
한다.
• IE의 점유율이 상당히 높은 반면 IE 의 성능은 모바일 수준으로 낮다.
기준 : 2012.02.23 네이버 메인 접속 평균
No OS % Browser %
1 Win XP 61.39% Internet Explorer 8 51.6%
2 Win 7 31.82% Internet Explorer 7 16.2%
3 Win Vista 4.76% Internet Explorer 9 15.1%
4 iOS 0.83% Internet Explorer 6 10.2%
5 Mac OS 0.70% Chrome 4.30%
6 Safari 1.57%
7 Firefox 0.69%
1-2
국내 이동전화 및 스마트폰 가입자 수
• 데스크톱 컴퓨터를 타겟으로 제작한 웹 서비스를 무선망을 이용하여
노트북, 스마트폰, 태블릿 PC등 다양한 디바이스로 사용하고 있음.
• 기존 데스크톱 하드웨어에 비해
성능이 떨어지는 디바이스와 인터넷 망 사용자가 늘어나고 있음
자료 : NIA 2011 국가 정보화 백서
2010.3 2010.6 2010.9 2010.12 2011.1 2011.2
이동전화 가입자(A) 4,898 4,961 5,021 5,077 5,098 5,116
스마트폰 가입자(B) 152 247 442 722 826 926
비중(B/A) 3.1 5.0 8.8 14.2 16.2 18.1
1-3
네트웍이 빨라진만큼 웹 서비스도 빨라졌다?
• 네트웍이 빨라진만큼 웹 서비스도 빨라지지 않는다.
• 네트웍이 빨라진다는 의미는 회선 대역폭(bandwidth)이 증가했다는 것이다.
• 유선망의 전달지연은 물리적 한계에 도달하여 더 줄이기 어렵다
• 회선 대역폭이 증가하더라도 HTTP의 유효 대역폭은 크게 높아지기 어렵다.
• 웹 서핑 이외의 용도로 가용 대역폭이 좁아질 수도 있다.
10Mbps -> 100Mbps 증가
latency는 그대로 자료 : NHN, FE 성능 Awareness 교육
HTTP 대역폭은 많이 늘어나지
않고 유휴대역폭만 증가한다.
• 30% 이상이 10M급 인터넷을 사용하고 있으며, 실제 대역폭은 이보다 낮다.
• 대역폭 보다는 latency가 더 중요하다.
1-3
무선망은? (모바일)
• 대역폭이나 latency면에서 해외 인터넷 수준이다.
• 단말기 칩셋에 따라 uplink가 느림
• 패킷 1회 왕복에 0.1~0.5초 소요되는 등 편차가 매우 큼
• Warm up 이 덜 되었거나 채널이 부족한 경우 15kbps 까지 저하됨
HTTP GET 1건 = 0.6초, Redirect는 무조건 0.5초 손실
3G망 사용자는 해외 인터넷 사용자 수준의 지연이 발생
[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?
3-1
웹 페이지의 로딩 과정
• Waterfall Chart로 보는 웹 페이지 로딩 과정
• Block : 해당 리소의 로딩이 필요하다고 판단하고 로딩 시작전까지 대기 시간 (동시 연결수, 다른작업)
• DNS : DNS Lookup에 소요된 시간
• Connect : 로딩 시작 이후 TCP 연결 생성에 소요된 시간
• Send : HTTP 요청 전송에 걸린 시간 (긴 쿠키, 업로드할 데이터 양, 대역폭)
• Wait : HTTP 응답 시작까지 기다린 시간
• Receive : 콘텐츠 수신에 소요된 시간 (대역폭)
• Cache read : 브라우저 캐시에서 콘텐츠를 읽어오는 시간)
대역폭 확장에 관계 되는 것은 Receive 구간이고 나머지 구간은 latency에 의해 결정된다. 또한 단말과
서버의 성능에 의해서도 크게 좌우된다.
3-1
Front-End 구간의 비중이 90% 이상
• 서비스에 따라 다를 수 있지만 사용자가 웹 페이지를 내려 받는데 까지 걸리는 시
간은 그리 오래 걸리지 않는다.
• 문서를 구성하는 추가 콘텐츠와 스타일등을 요청하고 받는 것이 대부분이다.
Back End 0.047s
Front-End 2.338s
• www.aol.com 97%
• www.ebay.com 95%
• www.facebook.com 95%
• www.yahoo.com 98%
자료 : NHN, FE 성능 Awareness 교육, Steve Souders, Velocity 2009
3-1
최적화를 위한 3가지 요소
• 파일 크기 최소화
• CSS & Javascript minification
• Image optimization
• File compression
• Cookies Free Domain
• 요청 최소화(Reduce HTTP request)
• Merge file
• Image Data URI
• CSS Sprites
• No Redirect
• Multi Domain
• 브라우저 렌더링을 고려한 개발 방법
• Markup Complexity
• Short CSS Selector
• Reduce Reflow & Repaint
• ETC
3-2
파일 크기 최소화
• HTML&CSS minification
• 주석,공백,빈줄 제거, 문법 특성을 이용한 축약
• NHN 마크업 코딩 컨벤션을 토대로 한 CSS Formatter
• Image optimization
• http://html.nhndesign.com/markup_tools/imgoptimizer
3-2
파일 크기 최소화
• File compression
• 브라우저가 요청한 파일을 서버에서 압축 전송하고 브라우저 압
축해제하여 보여주는 방법
• 일반적으로 모든 브라우저가 지원하는 gzip, deflate 방식 사용
http://www.whatsmyip.org/http-compression-test/
• 중복되는 문자열(속성, 셀렉터, 속성값)이 많은 CSS의 경우 압축
률이 우수함 (80% 정도)
3-2
파일 크기 최소화
• Cookies Free Domain
• Cookie가 필요 없는 이미지 파일은 도메인설정을 변경하여
Cookie 정보를 보내지 않도록 처리
page_uid=touKdUQL34GsscmIKOGcussssuh-221009; _naver_usersession_=TL5LZZfkYEwAABj4B24;
nid_inf=fb3a60de4e4d814ffe256ea715a1552f79ea5a4b10f6ffcd0fb49c272f6ebda617f6f8a4dd856bb4dfdcdef2a68e2cf079a3476b2bec
66a28db9b9f3896765c13f437265724681c0ec4ce7152f7188fd01babbd130110be3558b78891b49c892; nid_pwa=2;
NID_AUT=/uT36s+7QTkgwlpoaHYPSBFubVwBa/g1LB37DSu56bN224rgODnMtaH7Mc2h5nbTtLBx4pf2YDdNQNA5oktLKezK
Z91u4TpXEzdnt2XIZobxSGkduYqmHlsXriDTxE0E77uEprN3qFO5S6G3N6Po9INX1yeRnmx0ZkbtV2r0Waq2W+DbX+xX/yQa
RY8evR1hBEavIWpJ1+nkj6xtvzqIu0dA7jJ9R/Ylcr5nVopPOZUG+TAjI+FFV9aulPQnnUIZ+badeORoqYQtwPwNgEKz/aev2zHto
Kwagf9ytTJd1+UyCQZeowippFLt8T/p7AMjDUJeLLhBFt00fMJsydNwI/I77HWBT3WvERDF5kUXTBfw8zOa0FbvXsK1QmTM/j
BTZi1nC2OPFN9WNj7FUFEeT5U1TuJJwIdLNa8ABBXeYsi3OaGtHs3m1lRxotS5xrwZzF9woydl5Kj/z4Zeph6s71DlESnRH5AsVs
Ul42z/u+S4yAUrKYK5mXgysXwNmWfxE/fzlRPbjEzXhCV24mrK+A==; NID_MATCH_M=1; NID_DH_UI=1;
NID_SES=LkNyeGAXjZ5uSOor5Wq36QRAIF7ZTxttsazPACSQOgi9rugcTntBlmPQ1cPBsfI4ctz2D4gwm8X3KFZJF4F/1uNmdug+
FJNFPaCykolJqxVIr/NYL+wRWoafSjo9qL3df65xdd7M42266Sh5dnoEL3P05BTnAAPRqfne/moa3No=; cc_menu=me2day;
NIPD=1; NB=HE3TEMRYGYYTKMRX; NNB=ANYO4FMJAS6EY;
npic=UK+IJlHyVC6ygVLYkRrixlN5edpZpXJzzcZiDiOBpglwIuWecZ6ZtZM2qNmLRMoHCA==; DA_HC=LZ41135580,LB;
NVSERV=appstore@ndrive@appfactory@contact; NNF=on; pwe_menu_type=list; nsr_acl=1;
__utma=163452323.450796262.1287541011.1287541011.1287541011.1; __utmb=163452323.1.10.1287541011; __utmc=163452323;
__utmz=163452323.1287541011.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none);
_naver_usersession_=TL5LZZfkYEwAABj4B24; JSESSIONID=E2DF2BED82737391A2D933D6C58F428C;
map_bicycle_warning_cookie=no; map_inaccurate_poi_cookie=no
3-3
파일 요청 최소화 (Reduce HTTP Request)
• Merge file
• 문서 구성에 필요한 CSS, Javascript 파일을 합친다.
• Image Data URI
• 이미지는 바이너리 데이터이므로 브라우저가 인식할 수 있도록
base64로 인코딩해서 문서에 직접 넣을 수 있다.
• <img src=“data:image/png;base64;…” width=“” height=“”
alt=“”>
• IE7이하에서는 불가, 별도 인코딩 프로세스가 필요, cache가 안됨
• CSS Sprites
• 문서를 구성하는 요소 중 제일 많은 요청이 발생한다.
• 이미지 파일을 합친다.
3-3
파일 요청 최소화 (Reduce HTTP Request)
• No Redirect
• 문서내의 연결된 문서의 URL 뒤에는 파일을 제외하고 모두 후행
슬래시를 넣거나 서버에서 설정해 주어야 한다.
• 1회 요청으로 응답이 오지 않고 502가 반환되어 후행슬래시를 넣
어 재 요청한다.
3-3
파일 요청 최소화 (Reduce HTTP Request)
• Multi Domain
• 과도한 트래픽을 막기 위해 도메인 단위로 동시 접속수를 제한
• 요청이 많은 서비스일수록 Bottle Neck 발생
• 반면에 요청이 많지 않은 서비스는 DNS Lookup Time이 지연에
원인이 되기도 하므로 도메인을 통합하는 것이 성능을 향상 시킬
수도 있다.
• 하나의 도메인에서 너무 많은 리소스를 서브하면 wait 시간이
늘어남으로 도메인 분리하여 서브해야 함
• 하나의 도메인에서 극히 적은 리소스를 서브하면 DNS look up
time 낭비
브라우저 HTTP/1.1 HTTP/1.0
IE 6,7 2 4
3-4
브라우저 렌더링을 고려한 개발 방법
• Markup Complexity
• HTML의 DOM Node는 깊게 중첩될 수록 성능에 악영향을 끼친다.
• Short CSS Selector
• DOM Tree에 CSS를 파싱한 결과를 더해 렌더 트리를 만든다.
• 이때 브라우저는 CSS Selector를 이용하여 DOM Tree를 탐색한다.
• 브라우저는 제일 오른쪽 선택자를 기준으로 왼쪽으로 하나씩 옮겨가며 선택자와
정확히 일치하는지 탐색한다.
• 페이지 내에서 처음 span을 찾고 그 다음 a > span 를 찾고 다음에는 li > a >
span을 찾고 그 다음 ul > li > a > span 을 찾고 그 다음에는 div > ul > li >
a > span을 찾는다.
• 더 이상 왼쪽에 셀렉터가 없기 때문에 div > ul > li > a > span에 CSS로 선언
한 color 정보를 저장한다.
<style type=”text/css”>
div ul li a span{color:red}
</style>
<div>
<h3>사람들<span>전체<span>(404)</span></span></h3>
<ul>
<li><a href=”#”>사람1<span>(101)</span></a></li>
<li><a href=”#”>사람2<span>(101)</span></a></li>
</ul>
</div>
3-4
브라우저 렌더링을 고려한 개발 방법
• Short CSS Selector
• 제일 오른쪽 셀렉터를 엘리먼트로 선언하는것보다 class나 ID로 선언하는
것이 렌더링 속도가 더 빠르다.
• 자식 선택자 선언 방식은 렌더링 시간은 차이가 없지만 반복 사용으로 코드
량이 늘어나므로 가급적 사용하지 않는다.
• :hover 사용시에는 IE7 에서 성능이슈가 있으므로 반드시 앞에 엘리먼트를
선언한다.
• 모든 요소에 매칭되는 *(universal key)는 사용하지 않는다.
<style type=”text/css”>
.man_lst ul li a .num{color:red} /* (X) */
.man_lst a .num{color:red} /* (△) */
.num{color:red} /* (O) */
a.num:hover{color:blue} /* (O) */
</style>
<div class=”man_lst”>
<h3>사람들<span>전체<span
class=“num”>(404)</span></span></h3>
<ul>
<li><a href=”#”>사람1<span class=“num”>(101)</span></a></li>
<li><a href=”#”>사람2<span class=“num”>(101)</span></a></li>
</ul>
</div>
3-4
브라우저 렌더링을 고려한 개발 방법
• Reduce Reflow
• 페이지 레이아웃에 관련한 요소들의 위치,순서, 배치, 간격등을 계산하는
것으로 반복되는 과정이다.
• http://www.youtube.com/watch?v=ZTnIxIA5KGw
3-4
브라우저 렌더링을 고려한 개발 방법
• Reduce Reflow
• 주로 동적으로 요소를 숨기거나 크기변경, 추가, 삭제등의 작업을 하면 브라
우저는 일부 혹은 페이지 전체를 다시 배치한다. 이러한 reflow를 최소화 하
는 것이 좋다.
• 보이지 않는 것은 화면 구성과 관계없으므로 화면 구성에 영향이 없다면 보
이지 않게 한 후 스타일을 변경하고, 다시 보이도록 설정한다.
• 요소에 스타일을 설정함과 동시에 스타일 정보를 얻는 반복 구문은 피해야
한다.
var el = document.getElementById("container");
el.style.display = "none";
for(var i=0; i < 1000; i++) { el.style.left += value+i; }
el.style.display = "block";
for(var i=0; i < object.length; i++) {
object[i].style.left = object[i].offsetLeft + 10 + "px";
}
3-4
브라우저 렌더링을 고려한 개발 방법
• 그 밖의 방법
• 자바스크립트가 필요할 때 로딩하는 Lazy Loading을 쓴다.
• 사용자 체감 속도를 향상시키기 위해 화면을 구성에 필요하지 않은 자바스
크립트는 onload 발생 이후에 로딩한다.
• DOM에 접근하는 자체만으로도 지연이 발생할 수 있으므로 DOM
Caching을 사용한다.
for (var i = 0; i < document.forms[0].elements.length; i++) {
document.forms[0].elements[i].value;
}
var aElements = document.forms[0].elements;
for (var i = 0, nLen = aElements.length; i < nLen; i++)
{
aElements[i].value;
}
자료 : 자바스크립트 최적화 교육 자료 일부 발췌 , Ajax UI 랩
[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?
4-1
점검
• Yslow
• FF, Chrome, Opera, Safari, bookmarklet등 지원
• Ruleset에서 원하는 항목만 체크할 수 있음
• 결과에서 리소스별 크기, 압축, 쿠키, 헤더, 만료일등을 점검할 수 있음
• Page Speed
• FF, Chrome, online, apache 모듈등 지원
• 분석범위를 지정하고 JSON형식으로 저장하거나 외부로 전송가능
• 결과는 ySlow와 비슷
4-1
분석
• Dynatrace
• IE, FF 지원
• 렌더링 과정 (CSS Parsing, Reflow(layout), Painting) 추적 가능
• Timeline에서 로딩, 렌더링 한눈에 파악이 가능하며 마우스, 키보드 이벤트
시점 표시 가능
• Caching, Network, Server Side 의 상세한 분석이 가능하고, 측정 시간도
OLT가 아닌 rendering, On Server, On Client등으로 세분화된 것으로 볼
수 있다.
• http://ajax.dynatrace.com/ajax/en/download/download.aspx
4-1
측정
• WebpageTest
• 다양한 위치, 환경의 agent에서 측정 가능
• Pagespeed, Dynatrace와 연동
• Filmstrip, Video Compare 지원
• http://www.webpagetest.org
• http://www.webpagetest.org/result/120207_NX_34Z1D/
• http://www.webpagetest.org/video/compare.php?tests=120208_CT_
357GH,120208_A2_357GJ
4-1
측정
• NSpeed
• Web page Test의 Client PC Agent를 활용하고 내부 서버를 개발하여 사
내에서 사용할 수 있도록 함
• Waterfall, filmstrip 지원
4-2
사례
• 압축 전송, 헤더 만료일 설정 필요, JS 병합
4-2
사례
• IE6에서 CSS 에 AlphaImageLoader 사용시 블로킹
4-2
사례
• 78px * 60px 이미지가 30k
• 그 중 약 20k가 불필요한 메타데이터 (xmp, exif, ICC profile)
[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?
34

More Related Content

PDF
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
PDF
[2012널리세미나] Front-End 최적화의 끝판왕, CSM + Markup Complexity
PDF
[2012널리세미나] 태블릿PC를 위한 마크업
PDF
[2014널리세미나] 사용자 측면에서의 한국형 웹 콘텐츠 지침
PDF
[2014널리세미나] 접근성 빅(?) 데이터, 새로운 법칙의 발견!
PDF
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
PDF
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
PDF
문돌이가 가르치는 웹 프론트엔드 1차시
[2012널리세미나] 네이버 모바일의 숨겨진 코드 읽기
[2012널리세미나] Front-End 최적화의 끝판왕, CSM + Markup Complexity
[2012널리세미나] 태블릿PC를 위한 마크업
[2014널리세미나] 사용자 측면에서의 한국형 웹 콘텐츠 지침
[2014널리세미나] 접근성 빅(?) 데이터, 새로운 법칙의 발견!
[2014널리세미나] 시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
[7/27 접근성세미나] 웹 접근성 진단 100% 자동화, 그 가능성을 말하다
문돌이가 가르치는 웹 프론트엔드 1차시

What's hot (20)

PDF
구글 크롬브라우저로 인터넷 200%즐기기
PDF
WebStandards-Basic 2.Semantic markup
PDF
HTML5 & CSS3
PDF
Web Standards HTML5_CSS3
PPTX
Html5 시맨틱태그
PPTX
웹기술 이해 (프론트엔드 기초)
PDF
[132]웨일 브라우저 1년 그리고 미래
PDF
WebStandards-Basic 3.Starting style
PDF
웹 개발 스터디 01 - HTML, CSS
PDF
WebStandards-Basic 1.Introduce
PPTX
구글 검색엔진 최적화(Seo) 정리
PDF
Polymer Codelab: Before diving into polymer
PDF
[2014널리세미나] 웹 서비스분석 MEAN Stack과 PhantomJS만 알면 끝!
PDF
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
PDF
Basic html
PDF
웹 개발 스터디 02 - javascript, bootstrap
PDF
Best practice of HTML5 Semantic Markup
PPTX
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
PPTX
유니티3D 그리고 웹통신
PDF
Aws ses 이메일 보내기 받기 송신 수신
구글 크롬브라우저로 인터넷 200%즐기기
WebStandards-Basic 2.Semantic markup
HTML5 & CSS3
Web Standards HTML5_CSS3
Html5 시맨틱태그
웹기술 이해 (프론트엔드 기초)
[132]웨일 브라우저 1년 그리고 미래
WebStandards-Basic 3.Starting style
웹 개발 스터디 01 - HTML, CSS
WebStandards-Basic 1.Introduce
구글 검색엔진 최적화(Seo) 정리
Polymer Codelab: Before diving into polymer
[2014널리세미나] 웹 서비스분석 MEAN Stack과 PhantomJS만 알면 끝!
시맨틱한 HTML5 마크업 구조 설계, 어떻게 할까?
Basic html
웹 개발 스터디 02 - javascript, bootstrap
Best practice of HTML5 Semantic Markup
처음부터 다시 배우는 HTML5 & CSS3 강의자료 7일차
유니티3D 그리고 웹통신
Aws ses 이메일 보내기 받기 송신 수신
Ad

Viewers also liked (15)

PDF
[2012널리세미나] 모바일 마크업을 위한 디자이너와의 소통?! 우린 이렇게 할라구요
PDF
[2012널리세미나] 모바일 크로스 브라우징, 그 끝은 어디인가?
PDF
[2012널리세미나] 네이버는 시각장애인이 모든 서비스를 다 검사한다며?!
PDF
[2012널리세미나] 마크업 역량 개발 모델을 기반으로 특정 기술 트랙의 전문가 되기
PPTX
[2016널리세미나] 웹 접근성 체험관을 소개합니다!
PDF
[2014널리세미나] 모바일 앱 유저 테스트가 서비스에 반영되기까지
PPTX
[2016널리세미나] 스크립트를 통한 접근성은 어떻게 지켜야 할까
PPTX
[2016널리세미나] 청각장애와 유니버셜 디자인 그리고 웹 접근성
PPTX
[2016널리세미나] 남의 문제 나의 문제 우리의 문제
PPTX
[2016널리세미나] 사용자 경험 향상을 위한 N가지 생각
PPTX
[2016널리세미나] 모바일 접근성 지침 Ato z 20160405
PDF
[2012널리세미나] 네이버의 웹 접근성 개선 방향
PPTX
[2016널리세미나] 모바일애플리케이션접근성 이것만알아두자
PDF
[2012널리세미나] The Anatomy of Image Format
PDF
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
[2012널리세미나] 모바일 마크업을 위한 디자이너와의 소통?! 우린 이렇게 할라구요
[2012널리세미나] 모바일 크로스 브라우징, 그 끝은 어디인가?
[2012널리세미나] 네이버는 시각장애인이 모든 서비스를 다 검사한다며?!
[2012널리세미나] 마크업 역량 개발 모델을 기반으로 특정 기술 트랙의 전문가 되기
[2016널리세미나] 웹 접근성 체험관을 소개합니다!
[2014널리세미나] 모바일 앱 유저 테스트가 서비스에 반영되기까지
[2016널리세미나] 스크립트를 통한 접근성은 어떻게 지켜야 할까
[2016널리세미나] 청각장애와 유니버셜 디자인 그리고 웹 접근성
[2016널리세미나] 남의 문제 나의 문제 우리의 문제
[2016널리세미나] 사용자 경험 향상을 위한 N가지 생각
[2016널리세미나] 모바일 접근성 지침 Ato z 20160405
[2012널리세미나] 네이버의 웹 접근성 개선 방향
[2016널리세미나] 모바일애플리케이션접근성 이것만알아두자
[2012널리세미나] The Anatomy of Image Format
[토크아이티] 프런트엔드 개발 시작하기 저자 특강
Ad

Similar to [2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠? (20)

PDF
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
PPTX
High performance websites v1.0
PPTX
Html5
PDF
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
PPTX
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
PDF
WebKit at the Future Web Forum 2010
PDF
빅데이터 기술 현황과 시장 전망(2014)
PDF
클라우드 환경에서 알아야할 성능 이야기
PDF
2020년 9월 5일 개발 이야기 정리
PPTX
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
PDF
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
PDF
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
PDF
Infiniflux introduction
PDF
OpenSource Big Data Platform - Flamingo 소개와 활용
PDF
Flamingo project v4
PDF
OpenSource Big Data Platform : Flamingo Project
PDF
OpenSource Big Data Platform - Flamingo v7
PDF
웹표준 교육
PDF
NAVER의 웹/HTML5환경 대응 현황
PPT
웹표준의 이해
HTML5/JSON 을 이용해 범용 2D 맵에디터 제작하기
High performance websites v1.0
Html5
나는 웹 크리에이터다! 그리고... 최근 웹 핫이슈!.pdf
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
WebKit at the Future Web Forum 2010
빅데이터 기술 현황과 시장 전망(2014)
클라우드 환경에서 알아야할 성능 이야기
2020년 9월 5일 개발 이야기 정리
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
[온라인교육시리즈] 글로벌 서비스를 위한 인프라 구축방법(남용현 클라우드 솔루션 아키텍트)
웹에 빠른 날개를 달아주는 웹 성능 향상 이야기
Infiniflux introduction
OpenSource Big Data Platform - Flamingo 소개와 활용
Flamingo project v4
OpenSource Big Data Platform : Flamingo Project
OpenSource Big Data Platform - Flamingo v7
웹표준 교육
NAVER의 웹/HTML5환경 대응 현황
웹표준의 이해

More from Nts Nuli (14)

PDF
Link branding & brand identity overview
PDF
Link branding & brand identity overview
PDF
[2019널리세미나] 청각장애인 택시 운전기사를 위한 접근성
PDF
[2019널리세미나] 듣고 말하는 서비스로 발전하는 네이버 어학사전의 접근성 개선
PDF
[2019널리세미나] 접근성은 별책 부록
PDF
[2019널리세미나] 비슷하지만 다른 웹과 모바일 접근성
PDF
[2019널리세미나] 모두를 위한 제품 및 서비스 - 구글 웹 프로덕트 및 구글 플레이의 접근성
PPTX
[2018널리세미나] 모바일 인앱 실무에 활용한 접근성 해결 방안​
PPTX
[2018널리세미나] 지못미(지켜주지 못해 미안해) 마우스이벤트
PPTX
[2018널리세미나] 모두가 쉽게 쓰는 그날까지... 함께 만드는 접근성
PPTX
[2018널리세미나] 4차 산업혁명에서 정보 접근성 교육 현황과 앞으로의 과제
PPTX
[2018널리세미나] 정보 접근성 자동화 솔루션 개발 현황 및 방향 II
PPTX
[2017널리세미나] 네이버 접근성 진단솔루션
PPTX
[2017널리세미나] Accessibility at Microsoft
Link branding & brand identity overview
Link branding & brand identity overview
[2019널리세미나] 청각장애인 택시 운전기사를 위한 접근성
[2019널리세미나] 듣고 말하는 서비스로 발전하는 네이버 어학사전의 접근성 개선
[2019널리세미나] 접근성은 별책 부록
[2019널리세미나] 비슷하지만 다른 웹과 모바일 접근성
[2019널리세미나] 모두를 위한 제품 및 서비스 - 구글 웹 프로덕트 및 구글 플레이의 접근성
[2018널리세미나] 모바일 인앱 실무에 활용한 접근성 해결 방안​
[2018널리세미나] 지못미(지켜주지 못해 미안해) 마우스이벤트
[2018널리세미나] 모두가 쉽게 쓰는 그날까지... 함께 만드는 접근성
[2018널리세미나] 4차 산업혁명에서 정보 접근성 교육 현황과 앞으로의 과제
[2018널리세미나] 정보 접근성 자동화 솔루션 개발 현황 및 방향 II
[2017널리세미나] 네이버 접근성 진단솔루션
[2017널리세미나] Accessibility at Microsoft

[2012널리세미나] 오빠~ 네이버 왜 이렇게 늦게 떠?

  • 2. 1-1 속도의 심리학 1-2 사용자 환경 1-3 네트워크와 성능 1 꼭 빠르게 해야되나요? 2 Front-End 성능 최적화 2-1 Front-End 성능 최적화 2-2 파일 크기 최소화 2-3 파일 요청 최소화 2-4 브라우저 렌더링을 고려한 개발 방법 목차 3 점검, 분석, 측정도구 그리고 사례 3-1 점검, 분석, 측정 도구 3-2 사례
  • 4. 1-1 일반적인 UI 디자인 가이드라인 • 대화형 시스템에서 응답을 기다려주는 한계는 5초 • 10초가 넘어가면 다른 작업으로 관심이 이행함 자료 : designing and engineering Time, Steven Seow 2008 / Velocity 2010 / NHN, FE 성능 Awareness 교육 재인용 구분 응답시간 SW 디자인 가이드라인 Instantaneous (순간적) 0.2초 버튼 입력에 대한 반응 : 5~100ms 메뉴 펼치기 : 200ms Immediate (즉시) 0.5초 ~ 1초 책 페이지를 넘기는 시간 웹 브라우저의 페이지 업/다운에 대한 기대시간 Continuous (연속적) 2~5초 시스템이 멈추지 않았음을 주기적으로 알려줄 필요가 있음 5초가 넘어가는 경우 반드시 feedback 해야 함 Captive (참고 기다림) 7~10초 웹 페이지에서 사용자들이 떠남 네이버 속도 만족도 실험 • 웹 페이지 캡쳐 후 다양한 속도로 화면을 재생하면서 체감속도와 만족도를 설문 • 2초가 넘어가면 실제 소요시간과 관계없이 “느리고 답답하다”고 인지 • 4~5초 정도부터 만족비율 50% 이하로 하락 • 모바일이라고 해서 느린 것을 이해하고 기다리지 않음 • 단순한 서핑형 서비스(뉴스, 카페, 블로그, 웹툰, 영화)와 목적형 서비스(통합검색, 이미지 검색 , 메일, 캘린더, 사전, 날씨등)의 경우 비슷한 만족도를 나타냈으나 목적형 서비스에서 보다 빠른 응답속도가 요구됨
  • 5. 1-2 초고속 인터넷 가입 유형 • 50M~100M 급 광랜이 60%에 육박하지만 아직도 HFC 나 ADSL 등의 저속망 사용자도 30%이상이다. • 물리적인 여건 때문에 저속망 사용자가 쉽게 줄어들지 않을 전망 22% 35% 14% 29% FTTH LAN xDSL HFC 자료 : 방통위(초고속 인터넷 가입 유형 2011.9월 기준)
  • 6. 1-2 OS/인터넷 브라우저 • 구형 PC, 구형 브라우저 사용자가 아직도 많은 비중을 차지하고 있으므로 배려해야 한다. • IE의 점유율이 상당히 높은 반면 IE 의 성능은 모바일 수준으로 낮다. 기준 : 2012.02.23 네이버 메인 접속 평균 No OS % Browser % 1 Win XP 61.39% Internet Explorer 8 51.6% 2 Win 7 31.82% Internet Explorer 7 16.2% 3 Win Vista 4.76% Internet Explorer 9 15.1% 4 iOS 0.83% Internet Explorer 6 10.2% 5 Mac OS 0.70% Chrome 4.30% 6 Safari 1.57% 7 Firefox 0.69%
  • 7. 1-2 국내 이동전화 및 스마트폰 가입자 수 • 데스크톱 컴퓨터를 타겟으로 제작한 웹 서비스를 무선망을 이용하여 노트북, 스마트폰, 태블릿 PC등 다양한 디바이스로 사용하고 있음. • 기존 데스크톱 하드웨어에 비해 성능이 떨어지는 디바이스와 인터넷 망 사용자가 늘어나고 있음 자료 : NIA 2011 국가 정보화 백서 2010.3 2010.6 2010.9 2010.12 2011.1 2011.2 이동전화 가입자(A) 4,898 4,961 5,021 5,077 5,098 5,116 스마트폰 가입자(B) 152 247 442 722 826 926 비중(B/A) 3.1 5.0 8.8 14.2 16.2 18.1
  • 8. 1-3 네트웍이 빨라진만큼 웹 서비스도 빨라졌다? • 네트웍이 빨라진만큼 웹 서비스도 빨라지지 않는다. • 네트웍이 빨라진다는 의미는 회선 대역폭(bandwidth)이 증가했다는 것이다. • 유선망의 전달지연은 물리적 한계에 도달하여 더 줄이기 어렵다 • 회선 대역폭이 증가하더라도 HTTP의 유효 대역폭은 크게 높아지기 어렵다. • 웹 서핑 이외의 용도로 가용 대역폭이 좁아질 수도 있다. 10Mbps -> 100Mbps 증가 latency는 그대로 자료 : NHN, FE 성능 Awareness 교육 HTTP 대역폭은 많이 늘어나지 않고 유휴대역폭만 증가한다. • 30% 이상이 10M급 인터넷을 사용하고 있으며, 실제 대역폭은 이보다 낮다. • 대역폭 보다는 latency가 더 중요하다.
  • 9. 1-3 무선망은? (모바일) • 대역폭이나 latency면에서 해외 인터넷 수준이다. • 단말기 칩셋에 따라 uplink가 느림 • 패킷 1회 왕복에 0.1~0.5초 소요되는 등 편차가 매우 큼 • Warm up 이 덜 되었거나 채널이 부족한 경우 15kbps 까지 저하됨 HTTP GET 1건 = 0.6초, Redirect는 무조건 0.5초 손실 3G망 사용자는 해외 인터넷 사용자 수준의 지연이 발생
  • 11. 3-1 웹 페이지의 로딩 과정 • Waterfall Chart로 보는 웹 페이지 로딩 과정 • Block : 해당 리소의 로딩이 필요하다고 판단하고 로딩 시작전까지 대기 시간 (동시 연결수, 다른작업) • DNS : DNS Lookup에 소요된 시간 • Connect : 로딩 시작 이후 TCP 연결 생성에 소요된 시간 • Send : HTTP 요청 전송에 걸린 시간 (긴 쿠키, 업로드할 데이터 양, 대역폭) • Wait : HTTP 응답 시작까지 기다린 시간 • Receive : 콘텐츠 수신에 소요된 시간 (대역폭) • Cache read : 브라우저 캐시에서 콘텐츠를 읽어오는 시간) 대역폭 확장에 관계 되는 것은 Receive 구간이고 나머지 구간은 latency에 의해 결정된다. 또한 단말과 서버의 성능에 의해서도 크게 좌우된다.
  • 12. 3-1 Front-End 구간의 비중이 90% 이상 • 서비스에 따라 다를 수 있지만 사용자가 웹 페이지를 내려 받는데 까지 걸리는 시 간은 그리 오래 걸리지 않는다. • 문서를 구성하는 추가 콘텐츠와 스타일등을 요청하고 받는 것이 대부분이다. Back End 0.047s Front-End 2.338s • www.aol.com 97% • www.ebay.com 95% • www.facebook.com 95% • www.yahoo.com 98% 자료 : NHN, FE 성능 Awareness 교육, Steve Souders, Velocity 2009
  • 13. 3-1 최적화를 위한 3가지 요소 • 파일 크기 최소화 • CSS & Javascript minification • Image optimization • File compression • Cookies Free Domain • 요청 최소화(Reduce HTTP request) • Merge file • Image Data URI • CSS Sprites • No Redirect • Multi Domain • 브라우저 렌더링을 고려한 개발 방법 • Markup Complexity • Short CSS Selector • Reduce Reflow & Repaint • ETC
  • 14. 3-2 파일 크기 최소화 • HTML&CSS minification • 주석,공백,빈줄 제거, 문법 특성을 이용한 축약 • NHN 마크업 코딩 컨벤션을 토대로 한 CSS Formatter • Image optimization • http://html.nhndesign.com/markup_tools/imgoptimizer
  • 15. 3-2 파일 크기 최소화 • File compression • 브라우저가 요청한 파일을 서버에서 압축 전송하고 브라우저 압 축해제하여 보여주는 방법 • 일반적으로 모든 브라우저가 지원하는 gzip, deflate 방식 사용 http://www.whatsmyip.org/http-compression-test/ • 중복되는 문자열(속성, 셀렉터, 속성값)이 많은 CSS의 경우 압축 률이 우수함 (80% 정도)
  • 16. 3-2 파일 크기 최소화 • Cookies Free Domain • Cookie가 필요 없는 이미지 파일은 도메인설정을 변경하여 Cookie 정보를 보내지 않도록 처리 page_uid=touKdUQL34GsscmIKOGcussssuh-221009; _naver_usersession_=TL5LZZfkYEwAABj4B24; nid_inf=fb3a60de4e4d814ffe256ea715a1552f79ea5a4b10f6ffcd0fb49c272f6ebda617f6f8a4dd856bb4dfdcdef2a68e2cf079a3476b2bec 66a28db9b9f3896765c13f437265724681c0ec4ce7152f7188fd01babbd130110be3558b78891b49c892; nid_pwa=2; NID_AUT=/uT36s+7QTkgwlpoaHYPSBFubVwBa/g1LB37DSu56bN224rgODnMtaH7Mc2h5nbTtLBx4pf2YDdNQNA5oktLKezK Z91u4TpXEzdnt2XIZobxSGkduYqmHlsXriDTxE0E77uEprN3qFO5S6G3N6Po9INX1yeRnmx0ZkbtV2r0Waq2W+DbX+xX/yQa RY8evR1hBEavIWpJ1+nkj6xtvzqIu0dA7jJ9R/Ylcr5nVopPOZUG+TAjI+FFV9aulPQnnUIZ+badeORoqYQtwPwNgEKz/aev2zHto Kwagf9ytTJd1+UyCQZeowippFLt8T/p7AMjDUJeLLhBFt00fMJsydNwI/I77HWBT3WvERDF5kUXTBfw8zOa0FbvXsK1QmTM/j BTZi1nC2OPFN9WNj7FUFEeT5U1TuJJwIdLNa8ABBXeYsi3OaGtHs3m1lRxotS5xrwZzF9woydl5Kj/z4Zeph6s71DlESnRH5AsVs Ul42z/u+S4yAUrKYK5mXgysXwNmWfxE/fzlRPbjEzXhCV24mrK+A==; NID_MATCH_M=1; NID_DH_UI=1; NID_SES=LkNyeGAXjZ5uSOor5Wq36QRAIF7ZTxttsazPACSQOgi9rugcTntBlmPQ1cPBsfI4ctz2D4gwm8X3KFZJF4F/1uNmdug+ FJNFPaCykolJqxVIr/NYL+wRWoafSjo9qL3df65xdd7M42266Sh5dnoEL3P05BTnAAPRqfne/moa3No=; cc_menu=me2day; NIPD=1; NB=HE3TEMRYGYYTKMRX; NNB=ANYO4FMJAS6EY; npic=UK+IJlHyVC6ygVLYkRrixlN5edpZpXJzzcZiDiOBpglwIuWecZ6ZtZM2qNmLRMoHCA==; DA_HC=LZ41135580,LB; NVSERV=appstore@ndrive@appfactory@contact; NNF=on; pwe_menu_type=list; nsr_acl=1; __utma=163452323.450796262.1287541011.1287541011.1287541011.1; __utmb=163452323.1.10.1287541011; __utmc=163452323; __utmz=163452323.1287541011.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); _naver_usersession_=TL5LZZfkYEwAABj4B24; JSESSIONID=E2DF2BED82737391A2D933D6C58F428C; map_bicycle_warning_cookie=no; map_inaccurate_poi_cookie=no
  • 17. 3-3 파일 요청 최소화 (Reduce HTTP Request) • Merge file • 문서 구성에 필요한 CSS, Javascript 파일을 합친다. • Image Data URI • 이미지는 바이너리 데이터이므로 브라우저가 인식할 수 있도록 base64로 인코딩해서 문서에 직접 넣을 수 있다. • <img src=“data:image/png;base64;…” width=“” height=“” alt=“”> • IE7이하에서는 불가, 별도 인코딩 프로세스가 필요, cache가 안됨 • CSS Sprites • 문서를 구성하는 요소 중 제일 많은 요청이 발생한다. • 이미지 파일을 합친다.
  • 18. 3-3 파일 요청 최소화 (Reduce HTTP Request) • No Redirect • 문서내의 연결된 문서의 URL 뒤에는 파일을 제외하고 모두 후행 슬래시를 넣거나 서버에서 설정해 주어야 한다. • 1회 요청으로 응답이 오지 않고 502가 반환되어 후행슬래시를 넣 어 재 요청한다.
  • 19. 3-3 파일 요청 최소화 (Reduce HTTP Request) • Multi Domain • 과도한 트래픽을 막기 위해 도메인 단위로 동시 접속수를 제한 • 요청이 많은 서비스일수록 Bottle Neck 발생 • 반면에 요청이 많지 않은 서비스는 DNS Lookup Time이 지연에 원인이 되기도 하므로 도메인을 통합하는 것이 성능을 향상 시킬 수도 있다. • 하나의 도메인에서 너무 많은 리소스를 서브하면 wait 시간이 늘어남으로 도메인 분리하여 서브해야 함 • 하나의 도메인에서 극히 적은 리소스를 서브하면 DNS look up time 낭비 브라우저 HTTP/1.1 HTTP/1.0 IE 6,7 2 4
  • 20. 3-4 브라우저 렌더링을 고려한 개발 방법 • Markup Complexity • HTML의 DOM Node는 깊게 중첩될 수록 성능에 악영향을 끼친다. • Short CSS Selector • DOM Tree에 CSS를 파싱한 결과를 더해 렌더 트리를 만든다. • 이때 브라우저는 CSS Selector를 이용하여 DOM Tree를 탐색한다. • 브라우저는 제일 오른쪽 선택자를 기준으로 왼쪽으로 하나씩 옮겨가며 선택자와 정확히 일치하는지 탐색한다. • 페이지 내에서 처음 span을 찾고 그 다음 a > span 를 찾고 다음에는 li > a > span을 찾고 그 다음 ul > li > a > span 을 찾고 그 다음에는 div > ul > li > a > span을 찾는다. • 더 이상 왼쪽에 셀렉터가 없기 때문에 div > ul > li > a > span에 CSS로 선언 한 color 정보를 저장한다. <style type=”text/css”> div ul li a span{color:red} </style> <div> <h3>사람들<span>전체<span>(404)</span></span></h3> <ul> <li><a href=”#”>사람1<span>(101)</span></a></li> <li><a href=”#”>사람2<span>(101)</span></a></li> </ul> </div>
  • 21. 3-4 브라우저 렌더링을 고려한 개발 방법 • Short CSS Selector • 제일 오른쪽 셀렉터를 엘리먼트로 선언하는것보다 class나 ID로 선언하는 것이 렌더링 속도가 더 빠르다. • 자식 선택자 선언 방식은 렌더링 시간은 차이가 없지만 반복 사용으로 코드 량이 늘어나므로 가급적 사용하지 않는다. • :hover 사용시에는 IE7 에서 성능이슈가 있으므로 반드시 앞에 엘리먼트를 선언한다. • 모든 요소에 매칭되는 *(universal key)는 사용하지 않는다. <style type=”text/css”> .man_lst ul li a .num{color:red} /* (X) */ .man_lst a .num{color:red} /* (△) */ .num{color:red} /* (O) */ a.num:hover{color:blue} /* (O) */ </style> <div class=”man_lst”> <h3>사람들<span>전체<span class=“num”>(404)</span></span></h3> <ul> <li><a href=”#”>사람1<span class=“num”>(101)</span></a></li> <li><a href=”#”>사람2<span class=“num”>(101)</span></a></li> </ul> </div>
  • 22. 3-4 브라우저 렌더링을 고려한 개발 방법 • Reduce Reflow • 페이지 레이아웃에 관련한 요소들의 위치,순서, 배치, 간격등을 계산하는 것으로 반복되는 과정이다. • http://www.youtube.com/watch?v=ZTnIxIA5KGw
  • 23. 3-4 브라우저 렌더링을 고려한 개발 방법 • Reduce Reflow • 주로 동적으로 요소를 숨기거나 크기변경, 추가, 삭제등의 작업을 하면 브라 우저는 일부 혹은 페이지 전체를 다시 배치한다. 이러한 reflow를 최소화 하 는 것이 좋다. • 보이지 않는 것은 화면 구성과 관계없으므로 화면 구성에 영향이 없다면 보 이지 않게 한 후 스타일을 변경하고, 다시 보이도록 설정한다. • 요소에 스타일을 설정함과 동시에 스타일 정보를 얻는 반복 구문은 피해야 한다. var el = document.getElementById("container"); el.style.display = "none"; for(var i=0; i < 1000; i++) { el.style.left += value+i; } el.style.display = "block"; for(var i=0; i < object.length; i++) { object[i].style.left = object[i].offsetLeft + 10 + "px"; }
  • 24. 3-4 브라우저 렌더링을 고려한 개발 방법 • 그 밖의 방법 • 자바스크립트가 필요할 때 로딩하는 Lazy Loading을 쓴다. • 사용자 체감 속도를 향상시키기 위해 화면을 구성에 필요하지 않은 자바스 크립트는 onload 발생 이후에 로딩한다. • DOM에 접근하는 자체만으로도 지연이 발생할 수 있으므로 DOM Caching을 사용한다. for (var i = 0; i < document.forms[0].elements.length; i++) { document.forms[0].elements[i].value; } var aElements = document.forms[0].elements; for (var i = 0, nLen = aElements.length; i < nLen; i++) { aElements[i].value; } 자료 : 자바스크립트 최적화 교육 자료 일부 발췌 , Ajax UI 랩
  • 26. 4-1 점검 • Yslow • FF, Chrome, Opera, Safari, bookmarklet등 지원 • Ruleset에서 원하는 항목만 체크할 수 있음 • 결과에서 리소스별 크기, 압축, 쿠키, 헤더, 만료일등을 점검할 수 있음 • Page Speed • FF, Chrome, online, apache 모듈등 지원 • 분석범위를 지정하고 JSON형식으로 저장하거나 외부로 전송가능 • 결과는 ySlow와 비슷
  • 27. 4-1 분석 • Dynatrace • IE, FF 지원 • 렌더링 과정 (CSS Parsing, Reflow(layout), Painting) 추적 가능 • Timeline에서 로딩, 렌더링 한눈에 파악이 가능하며 마우스, 키보드 이벤트 시점 표시 가능 • Caching, Network, Server Side 의 상세한 분석이 가능하고, 측정 시간도 OLT가 아닌 rendering, On Server, On Client등으로 세분화된 것으로 볼 수 있다. • http://ajax.dynatrace.com/ajax/en/download/download.aspx
  • 28. 4-1 측정 • WebpageTest • 다양한 위치, 환경의 agent에서 측정 가능 • Pagespeed, Dynatrace와 연동 • Filmstrip, Video Compare 지원 • http://www.webpagetest.org • http://www.webpagetest.org/result/120207_NX_34Z1D/ • http://www.webpagetest.org/video/compare.php?tests=120208_CT_ 357GH,120208_A2_357GJ
  • 29. 4-1 측정 • NSpeed • Web page Test의 Client PC Agent를 활용하고 내부 서버를 개발하여 사 내에서 사용할 수 있도록 함 • Waterfall, filmstrip 지원
  • 30. 4-2 사례 • 압축 전송, 헤더 만료일 설정 필요, JS 병합
  • 31. 4-2 사례 • IE6에서 CSS 에 AlphaImageLoader 사용시 블로킹
  • 32. 4-2 사례 • 78px * 60px 이미지가 30k • 그 중 약 20k가 불필요한 메타데이터 (xmp, exif, ICC profile)
  • 34. 34