TIL

CDN

KANG_G1 2023. 5. 23. 18:03

인터뷰를 진행한 곳의 CTO님께서 넷플릭스나 무신사처럼 영상 데이터,

상품 이미지 데이터 등 고용량의 데이터를 빠르게 가져오는 것을 볼 수 있는데

어떤 개념이 사용되어 이렇게 빨리 이미지를 로드할 수 있을까? 라는 질문을 받게 되었다.

 

사용되지 않는 이미지는 lazy 처리를 해주고 필수적으로 보여져야 하는 이미지만 초기에 로드한다고 답했고,

이후에 받게 된 꼬리 질문으로 다른 방법이나 개념은 없을까요? 라고 질문을 받았다.

10초가 넘게 답을 못하자 CDN이란 무엇인지 알고있는지 물어보셨고 그제서야 질문의 의도를 파악할 수 있었다.

 

CDN이란?

Content Delivery Network

지리적인 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠 전송을 할 수 있는 기술.

이를 통해서 컨텐츠의 병목현상을 피할 수 있다.

 

CDN의 원리

CDN(Content Delivery Network)은 물리적으로 떨어져 있는 사용자에게

컨텐츠를 더 빠르게 제공하기 위해 고안된 기술이다.

 

넷플릭스를 예시로 들어본다면 한국의 유저가 미국에 있는 서버에

이미지나 영상 파일 등을 로드받기 위해선 오랜 시간이 필요하다.

하나의 서버에서 다량의 데이터를 받길 원하니 당연히 오래 걸릴 수 밖에 없는 것이다.

 

하지만 서버를 분산시켜 놓는다면?

하나의 서버만 운용하는 것이 아닌 여러 개의 서버를 각지에 배치에 데이터를 캐싱해두고

유저의 데이터 요청이 온다면 유저의 지역에서 가장 가까운 서버로 해당 요청을 넘겨

캐싱되어있는 데이터를 응답으로 데이터를 전송할 수 있게 된다.

 

혹시나 해당 서버에서 데이터를 찾는데 실패한다면, 다른 서버에서 데이터를 찾은 후 응답을 전송한다.

CDN의 예시

CDN 캐싱 방식

1) Static Caching

  • Origin Server 에 있는 Content를 운영자가 미리 Cache Server에 복사 해두어
  • 사용자가 Cache Server에 Content 요청 시 무조건 Cache Server에 있다
  • 대부분의 국내 CDN에서 이 방식을 사용 (게임 클라이언트 다운로드 등)

2) Dynamic Caching

  • Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사하지 않음
  • 사용자가 Content를 요청 시 해당 Content가 없는 경우 Origin Server로부터 다운로드 받아 전달한다.
  • 있는 경우에는 캐싱된 Content전달
  • 각각의 Content 일정 시간 이후 Cache Server에서 삭제 수도 있다.

 

Reference

CDN이란 무엇인가

CDN의 동작 원리