14. 어느 구간을 개선할 것인가?
DNS time TCP연결 TLS연결 TTFB Download Rendering
백엔드 시간 프런트엔드 시간
사용자가 URL을 요청 하는 즉시 백그라운드(서버)에서 수행되는 모든 프로세스가 포함 • 실제 사용자가 웹 페이지를 볼 수 있도록 컨텐츠들을 로딩 하는데 걸리는 시간
• DOM Loading Time / DOM complete time / First Paint / FCP / LCP 등
다양한 Metric 이 front-end Time 의 지표에 포함됨.
• LCP(Largest Contentful Paint) 는 실제 사용자의 체감 성능을 측정 하는
지표로 가장 많이 사용됨.
16. 어느 구간을 개선할 것인가?
Back-End Time
First Contentful Paint (FCP)
Largest Contentful Paint(LCP)
Page Load Time (PLT)
Loading…
FID(First Input Delay)
17. 측정과 분석의 시작
성능 측정 툴 분류 RUM(Real User Monitoring) Synthetic Tool
클라이언트
종류
실제 사용자 계측용 서버(Agent 기반)
클라이언트
위치
전체 사용자 위치
계측용 서버 설치 위치
(Node 가 없는 지역 많음)
측정 빈도 사용자 접근 시 마다
대상 Page에 대해 10회 측정 후
평균 값 적용
측정 방법 사용자 접근 시 마다 Script 생성
측정 Metric
다양한 Metric 제공
주로 Core Web Vital값 혹은 Page Load Time)
Page Load Time & LCP
한계
1. Transaction Time 을 알기 어려움.
2. 신규 페이지 오픈 전 성능 테스트 불가
1. 성능 측정 클라이언트의 위치가 벤더 사의 서버
설치 위치에 의존.
2. 실제 사용자가 느끼는 성능과 차이가 있음.
3. 제공하는 성능 Metric 이 제한적.
4. 성능과 비즈니스간의 연관 분석 불가.
5. 다양한 사용자 별 성능 측정 어려움
18. 성능 개선 방안
HOW FAST AM I? HOW FAST DO I NEED TO BE?
현재 사이트의 지연
요소를 찾아낸다
HOW DO I GET THERE?
비즈니스 영향도를
계산한다
진단하여 우선 개선할
점을 찾는다
19. 웹 사이트 성능 측정
75p
75p
75p
비즈니스 지표
Guide < 1s < 4s < 5s
< 0.1 < 100ms < 2.5s
75p
웹 성능 지표
특정 페이지
그룹이 느림
트래픽이 높은
페이지 파악
성능 KPI는 무엇으로?
20. 웹 사이트 성능 측정
LCP (6.5s) PLT(15s) PLT(12s)
LCP (3s)
Back-end
Video Video
JavaScript
JavaScript
Back-end가 bottleneck JavaScript가 bottleneck
22. 프런트엔드(Frontend) 최적화
• 스크립트 병합 (script combination)
• 스크립트 최소화 (script minification)
• 스크립트 압축 전달 (gzip Encoding)
• 브라우저 이미지 형식 최적화 (e.g. WebP)
• 이미지 (비)손실 압축 (compression)
• 브라우저 캐시 사용 (cache-control 헤더)
• DNS 조회 최소화
• DNS 정보 미리 읽어오기 (DNS prefetching)
• CSS/JS 위치 조절 (Top/Bottom)
• 페이지 미리 읽어오기 (page prefetching)
• 서드 파티(3rd party) 스크립트 조정
• …
23. 기본적인 네 가지 최적화 방안
• 요청과 응답 회수가 적어야 한다. (less round-trip)
• 콘텐츠의 크기(file size)는 작아야 한다. (smaller size)
• 최대한 캐싱한다. (cache as much as possible)
• 사용자 환경에 최적화된 콘텐츠를 보여준다. (optimize)
24. 기본적인 네 가지 최적화 방안
• 요청과 응답 회수가 적어야 한다 (least RTT)
→ 이미지 스프라이트, 서버 푸시, 불필요한 호출 제어
• 콘텐츠의 크기는 작아야 한다 (least size)
→ 압축(brotli), 스크립트 minify, WebP, AVIF
• 최대한 캐싱(caching) 한다
→ CDN, 브라우저, WebView, ..
25. 스크립트 최적화
• 사용하지 않는 불필요한 스크립트로 인한 바이트 낭비 최소화
• Chrome 개발자 도구 Coverage 모듈
31. 전송 최적화
• 전달 구간 전반에서 캐싱(caching)의 활용
원본 웹 서버
CDN 중계 서버
CDN 캐싱 서버
CDN 캐싱 서버
CDN 캐싱 서버
CDN 캐싱 서버
CDN 캐싱 서버
브라우저 캐싱
브라우저 캐싱
브라우저 캐싱
브라우저 캐싱
브라우저 캐싱
브라우저 캐싱
브라우저 캐싱
브라우저 캐싱
32. 웹 성능 개선 사례
• Repeat View 느림
• LTE에서 측정한 LCP가 5.113초에 달함
• 첫 HTML 응답이 느림
• 대역폭 정상 / CPU Intensive 발견
• 웹 폰트를 로딩 후반에 다운로드(PC와 다름)