본문 바로가기
Computer Science/FAQ

웹 사이트의 에셋을 여러 도메인으로 서빙했을 때의 장점은 무엇인가요?

by minhi 2024. 9. 30.
웹 사이트의 에셋을 여러 도메인으로 서빙하는 것을 도메인 샤딩이라고 한다.

 

도메인 샤딩
브라우저가 웹 사이트의 에셋을 다운받을 때 해당 웹 사이트의 도메인으로부터 모든 에셋을 다운받지 않고 여러 개의 서브 도메인으로 에셋을 나눠 다운받는 방법

 

shard는 조각, 파편이라는 뜻으로

 

도메인 샤딩이라는 것은 곧 하나의 도메인을 여러 개의 도메인으로 조각낸다는 의미이다.

 

이때 굳이 하나의 도메인을 여러 개의 도메인으로 조각내는 이유는

 

하나의 도메인으로부터 모든 에셋을 다운받지 않고 여러 개의 서브 도메인으로 에셋을 나누어 다운받음으로써

 

동시에 더 많은 에셋을 병렬로 다운받을 수 있게끔 하고 결과적으로 페이지 로딩 속도와 시간을 향상시키기 위함이다.

 

이때 에셋이란 CSS, JavaScript, 폰트, 이미지 등의 정적 파일을 뜻한다.

 

 

등장 배경

 

HTTP/1.x는 하나의 도메인이 한 번에 다운받을 수 있는 자원의 개수에 제한을 두기 때문에*

 

하나의 도메인은 대부분의 모던 브라우저에서 한 번에 6~8개, IE 하위 버전에서 한 번에 2개까지의 자원만 다운받을 수 있다.

 

때문에 다운받아야 할 자원이 많은 경우 페이지 로딩 속도 저하가 발생하고,

 

이를 해결하고자 자원을 다운받는 도메인 개수 자체를 늘려버린 것이 도메인 샤딩이다.

 

예를 들어 24개의 자원을 다운받아야 한다고 할 때,

 

하나의 도메인은 6개의 자원을 4번에 걸쳐 다운받아야 하지만

 

4개의 도메인은 각각 6개씩 한 번에 다운받을 수 있는 것이다.

 

* 이때 한 번에 다운받을 수 있는 자원의 개수를 동시 요청 개수, 활성 연결 개수라고도 한다.

 

장점

 

도메인 샤딩은 동시에 더 많은 에셋을 병렬로 다운받을 수 있게끔 함으로써 페이징 로딩 속도와 시간을 향상시킬 수 있다.

 

단점

 

하지만 DNS 조회가 여러 개의 서브 도메인에 대해 이루어지면서 DNS 조회 비용이 증가하고

 

각 서브 도메인과 tcp 연결을 설정하기 위한 비용이 증가한다는 단점이 있어

 

너무 많은 서브 도메인은 오히려 성능 저하를 불러일으키기도 한다.

 

때문에 도메인 샤딩은 서브 도메인의 개수를 2~4개로 유지하거나

 

이미지 자원이 많고 자주 업데이트되는 동적 웹사이트에 사용하는 것이 적합하고*

 

경우에 따라 동시 요청 개수에 제한이 없는 HTTP/2를 사용하는 것이 더 효과적일 수 있다.

 

* 브라우저 캐시에 캐싱이 되므로 정적 웹사이트에서 도메인 샤딩은 유용하지 못하다.

 

 

 

 

 


다음 자료를 공부하여 정리한 글로, 아직 많이 부족해 틀린 내용이 있을 수도 있습니다.

 

혹시 있다면 댓글로 알려주세요. 수정하고 더 공부해나가겠습니다-

 

도메인 샤

Domain Sharding

Domain Sharding이란?

Domain Sharding / concurrent requests in browser