(펌)개념 정리
웹 최적화와 방법
ble194
2022. 11. 1. 17:36
(1) 웹 최적화란 : 웹 최적화란 최고의 웹 성능을 구현하기 위해 최고의 조건을 만드는 다양한 노력을 의미한다. 즉 최고의 성능을 만드는 최적화 조건을 갖추는 것이다. 최적화에는 크게 세 가지 방법이 있다.
(2) 프론트엔드 최적화 : 웹 UI/UX 관련된 최적화이다. 주로 HTML, JS, CSS, Image을 최적화를 진행한다.
최적화가 잘되어 있는 웹사이트는 브라우저에서 콘텐츠를 다운로드, 로딩, 렌더링 할 때 속도가 빨라진다.
브라우징 시간별 콘텐츠를 볼 때 대부분 프런트엔드에서 발생한다.
프론트엔드 최적화하는 대표적 기술은 표와 같다.
스트립트를 병합하여 브라우저의 호출 개수를 줄인다. | 도메인 수를 줄여 DNS조회를 최소화한다. |
스크립트 크기를 최소화해 바이트자체를 줄인다. | DNS 정보를 미리 읽어 온다. |
스크립트를 zip 등으로 압축하여 전달한다. | CSS를 HTML상단에, JS를 HTML하단에 위치시킨다. |
WebP(손실/비손실 압축 이미지 파일을 위한 이미지 포맷 ) 등으로 브라우저 이미지 형식을 최적화한다 | page prefetching한다. (Application들의 성능 향상을 위해서 구동에 필요한 데이터들을 메모리에 먼저 올려놓게 하는 것. 즉, 브라우져가 유휴시간을 이용하여 사용자가 앞으로 방문하게 될 문서를 미리 다운로드 혹은 프리패치하여 cache에 저장해서 로딩타임을 줄일 수 있는 기법이다.) |
이미지 손실, 무손실 압축한다. | 타사 스크립트가 웹 성능을 방해하지 않도록 조정한다. |
Cache-Control 응답헤더를 통해 브라우저 캐시를 충실히 사용한다. |
(3) 백엔드 최적화 : 웹 서버, 웹 애플리케이션 서버, 데이터베이스, 로드 밸런싱, DNS 서버 등을 최적화한다.
백엔드 최적화하는 대표적 기술은 표와 같다.
DNS 응답이 빨라지도록 서버 증설한다. | CDN을 사용해 인터넷상에 콘텐츠 캐싱한다. |
DNS 응답을 빠르게 할 수 있도록 DNS정보를 최대한 캐싱한다. | 데이터베이스 정규화로 디스크 I/O 최적화한다. |
웹 서버가 있는 데이터 센터의 네트워크 출력/대역폭 증설한다. | 데이터베이스 캐싱으로 응답을 빠르게한다. |
웹 서버, 웹 애플리케이션 서버의 CPU/RAM 증설한다. | 로드밸런싱을 통해 가장 성능이 좋은 웹 서버로 요청을 연결한다. |
프록시 서버를 설정하여 웹 콘텐츠를 캐싱 한다. | 웹 애프리케이션 로직을 가볍고 빠르게 개발한다. |
(4) 프로토콜 최적화 : HTTP 프로토콜 자체의 효과를 극대화하면 콘텐츠를 최도 속도와 최저 지연 시간으로 전달할 수 있다. 즉 프로토콜 최적화는 웹 콘텐츠를 더 빠르게 요청하고 응답하도록 프로토콜을 업그레이드하는 과정이다.