Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 웹성능최적화
- 네트워크
- Spring
- 백엔드
- 보안
- 프론트엔드
- 백엔드기초
- spring event
- 웹개발
- AbstractAggregateRoot
- CS
- java
- 세션
- 성능최적화
- 인프라
- 인증
- db
- http
- devops
- 클린코드
- Spring Boot
- 캐시
- interceptor
- DEVIEW2023
- JPA
- SnowFalke
- 데이터베이스
- 백엔드개발자
- redis
- 백엔드개발
Archives
- Today
- Total
이것저것 개발기록
"전 세계 어디서든 빠르게" CDN(Content Delivery Network)의 원리 본문
"미국에 있는 사용자가 한국 서버의 이미지를 보려면 왜 느릴까요?"
물리적 거리의 한계를 극복하고 사용자에게 가장 가까운 곳에서 콘텐츠를 전달하는 CDN의 핵심 원리를 정리합니다.
1. CDN이란 무엇인가?
CDN은 지리적으로 분산된 여러 서버의 네트워크입니다. 사용자가 웹사이트에 접속할 때, 메인 서버(Origin)까지 가지 않고 가장 가까운 곳에 위치한 에지 서버(Edge Server)에서 캐싱된 데이터를 받아오게 함으로써 로딩 시간을 획기적으로 단축합니다.
2. CDN의 주요 장점
- 응답 시간 단축: 물리적 거리가 가까워지므로 레이턴시(Latency)가 줄어듭니다.
- 서버 부하 분산: 트래픽이 분산되어 메인 서버의 대역폭 비용과 CPU 부담을 줄여줍니다.
- 가용성 향상: 일부 에지 서버에 장애가 발생해도 다른 에지 서버가 서비스를 유지할 수 있습니다.
💡 실무 노트
CDN은 정적 파일(이미지, JS, CSS, 영상)에 최적화되어 있습니다. 하지만 실무에서 가장 골치 아픈 점은 **'캐시 갱신(Cache Invalidation)'**입니다.
팁: 서버의 이미지를 교체했는데 사용자는 여전히 옛날 이미지를 보고 있다면 CDN 캐시가 남아있기 때문입니다. 이를 해결하기 위해 파일 이름 뒤에 해시값을 붙이는 Versioning(예: logo.abcdef.png) 기법을 쓰거나, 수동으로 Invalidation(무효화) 요청을 보내야 합니다. 다만, 전 세계 모든 에지 서버의 캐시를 비우는 데는 시간이 걸리고 비용이 발생할 수 있으므로, Versioning 방식을 가장 추천합니다.
"사용자와 가까울수록 속도는 빨라집니다. CDN은 그 거리를 좁히는 가장 영리한 방법입니다."
'IT 이야기' 카테고리의 다른 글
| "JSON이 전부는 아니다?" 데이터 직렬화 포맷 3종 비교 (JSON, XML, Protobuf) (0) | 2026.01.11 |
|---|---|
| "서비스 중단 없는 업데이트" 무중단 배포 전략(Blue-Green, Rolling, Canary) (0) | 2026.01.10 |
| "이벤트 폭주를 막아라" 디바운싱(Debouncing)과 쓰로틀링(Throttling) (0) | 2026.01.10 |
| "npm은 이제 옛말?" pnpm과 yarn Berry가 사랑받는 이유 (0) | 2026.01.09 |
| "에러는 막는 것이 아니라 관리하는 것" 백엔드 예외 처리 전략 (0) | 2026.01.09 |