네트워크 / 배포
CDN(Content Delivery Network)
CDN은 여러 지역의 서버를 통해 웹 콘텐츠를 전달하고, 저장해 둔 콘텐츠를 재사용해 전송을 돕는 서비스입니다.
쉬운 설명
웹사이트에 올린 이미지나 파일을 여러 곳의 사용자에게 전달할 때 CDN을 사용할 수 있어요. 요청할 때마다 원본 서버에서 가져오는 대신, CDN 서버에 사용할 수 있는 사본이 있으면 그것을 보내 줘요. 원본 서버의 부담이나 전송 시간을 줄이는 데 도움이 될 수 있어요. 다만 모든 요청이 저장되는 것은 아니고, 앱의 처리 속도까지 자동으로 빨라지는 것도 아니에요.
이런 상황에서 만나요
스터디 모집 페이지의 이미지를 바꿨는데 일부 사람에게 예전 이미지가 보인다고 해 볼게요. CDN을 사용 중이라면 원본 파일뿐 아니라 저장된 사본이 계속 전달되는지도 살펴봐야 해요.
같은 이미지 요청도 가져오는 곳이 달라질 수 있어요
GET /images/study-v2.png
HIT
CDN에 저장된 콘텐츠로 응답
MISS
원본에서 콘텐츠 가져오기
- 1브라우저가 특정 주소의 이미지 파일을 요청해요.
- 2원본에서 매번 파일을 다시 가져오지 않아도 돼요.
- 3이후 저장 여부는 캐시 규칙에 따라 달라져요.
아래 HIT와 MISS는 캐시에서 응답했는지를 보여 주는 설명용 상태예요. 실제 서비스에서는 응답 헤더나 관리 도구에서 상태를 확인해요. 브라우저 캐시도 별도로 있으므로 예전 화면이 보인다는 이유만으로 CDN 문제라고 단정하지 않아요.
헷갈리기 쉬운 점
CDN을 쓰면 새 파일이 즉시 모두에게 보이나요?
캐시 규칙과 파일 주소에 따라 이전 사본이 계속 전달될 수 있어요. 파일 이름에 버전을 넣어 새 주소로 배포하거나, 제공자가 지원하는 캐시 삭제 기능을 쓰는 방법이 있어요. 어떤 방법을 쓰는지는 배포 방식과 캐시 설정에 맞춰 정해요.
로그인한 사람만 볼 수 있는 응답을 공용 캐시에 저장하면 안 되는 경우가 많아요. 공개 파일과 사용자별 데이터를 구분하고, 서비스의 캐시 규칙을 확인해요.
왜 알아야 할까요?
원본 파일을 고쳤는데 화면이 그대로일 때 확인할 곳을 나눌 수 있어요. 이미지 전달이 느린 문제와 서버에서 AI 답변을 생성하느라 오래 걸리는 문제도 구분할 수 있어요.
조금 더 자세히
CDN은 Content Delivery Network의 줄임말입니다. 캐시는 콘텐츠를 저장해 다시 사용하는 방식이고, CDN은 여러 위치에서 콘텐츠를 전달하는 네트워크입니다. 두 단어는 같은 뜻이 아닙니다.
캐시에 유효한 콘텐츠가 없는 요청은 원본에서 가져와야 할 수 있습니다. 저장 여부와 보관 시간은 응답 헤더, 콘텐츠 종류, CDN 설정 등에 따라 달라집니다. CDN의 서버 위치와 앱이나 데이터베이스를 실행하는 리전도 구분해야 합니다.
직접 사용할 때 확인해 보세요
- 어떤 콘텐츠와 주소가 오래된 것인지 확인한다
- 브라우저와 CDN의 캐시 상태를 구분한다
- 배포 방식에 맞춰 새 주소나 캐시 삭제를 적용한다