# CDN
### CDN이란?
- Contents Delivery Network
- 각 지역에 빠른 속도, 안정적으로 컨텐츠를 제공할 수 있는 컨텐츠 전송 기술
- 각 지역에 캐싱 서버를 배치해 사용자의 요청을 원본 서버가 아닌 캐싱 서버로 요청
### CDN의 역할
- 서버와 클라이언트간에 물리적인 거리를 줄여 컨텐트 로딩에 소요되는 시간을 최소화
- 웹 서버의 트래픽 분산 및 감소
### CDN 캐싱 방식 종류
#### Static Caching
- 사용자의 요청 없어도 Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사함
- 따라서 사용자가 Cache Server에 접속하여 Content를 요청하면 무조건 그 Content는 Cache Server에 있음(100% Cache Hit)
#### Dynamic Caching
- 최초 Cache Server에는 Content가 없음
- 사용자 요청시 Cache Server에 없으면(Cache Miss) Origin Server로부터 다운로드 받아 응답
- 이후 동일 Content에 대한 요청은 저장(캐싱)된 Content 응답(Cache Hit)
- 각 Content는 일정 시간(TTL)이 지나면 Cache Server에서 삭제될 수 있고 Origin Server에서 Content Freshness 확인 후 계속 가지고 있을 수 있음
### 오늘케어에 CDN 적용해야 하는가?
- 현재 컨텐츠 캐싱, 전진배치가 필요한지는 의문이 들 수 있지만 트래픽의 절반을 CDN으로 넘길 수 있다는 점 또한 무시할 수 없다 생각합니다.
- [링크](https://docs.google.com/spreadsheets/d/14MdYMIQs0p9_sIR2ktkRsJmBTiG_UJfe1K1Q-UMZf5U/edit#gid=0)를 들어가보시면 53%의 request가 첨부파일 관련이라는 것을 알 수 있습니다.
### Reference
[CDN 동작 원리](https://ijbgo.tistory.com/32)
[CDN이란 무엇인가요? - AWS](https://aws.amazon.com/ko/what-is/cdn/)
[CDN이란? - 가비아](https://library.gabia.com/contents/infrahosting/8985/)
[CDN(Contents Delivery Network) 이란?](https://goddaehee.tistory.com/173)