(펌)개념 정리

웹 최적화와 방법

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 프로토콜 자체의 효과를 극대화하면 콘텐츠를 최도 속도와 최저 지연 시간으로 전달할 수 있다. 즉 프로토콜 최적화는 웹 콘텐츠를 더 빠르게 요청하고 응답하도록 프로토콜을 업그레이드하는 과정이다.

 

출처 - https://sw-ryu.tistory.com/78