Post

[매일매일]백엔드 기술 일기: CDN, 백엔드 개발자가 알아야 할 핵심 지식

안녕하세요! 오늘은 백엔드 개발자라면 반드시 알아야 할 CDN(Content Delivery Network) 의 개념과 동작 원리, 그리고 사용 시 주의할 점까지 정리했습니다.CDN은 백엔드 서버의 부담을 줄이고, 전 세계 사용자에게 빠르고 안정적으로 콘텐츠를 제공하는 중요한 기술입니다.

🌐 CDN이란?CDN(Content Delivery Network) 은 전 세계에 분산된 서버 네트워크를 통해, 사용자에게 물리적으로 가장 가까운 서버에서 콘텐츠를 전달하는 시스템입니다.백엔드 서버의 부하를 분산하고, 통신 지연(latency)을 최소화하여 성능을 개선합니다.백엔드 입장에서 보면, 원본 서버(origin)의 역할을 최소화하고, 정적 콘텐츠(HTML, CSS, JS, 이미지 등)를 CDN이 대신 서비스함으로써 효율적으로 트래픽을 처리할 수 있습니다.

📌 대표적인 CDN 서비스AWS CloudFrontCloudflareAkamaiFastly

⚙️ CDN의 동작 원리CDN은 클라이언트 요청을 받으면, 요청한 콘텐츠를 자신의 캐시에 가지고 있으면 바로 응답하고, 없으면 원본 서버에서 받아와 캐싱 후 응답합니다.즉, 백엔드 서버를 거치지 않거나 최소한 한 번만 거치도록 해서 불필요한 부하를 줄입니다.

🔷 Push 방식과 Pull 방식​✅ Push 방식백엔드 서버가 콘텐츠를 미리 CDN으로 전송항상 최신 콘텐츠를 빠르게 서비스 가능관리 주체가 백엔드 서버이므로 콘텐츠 업데이트를 지속적으로 수행해야 함관리 비용이 상대적으로 높음

📌 백엔드가 “미리 보내놓고 준비”하는 방식

✅ Pull 방식클라이언트가 요청한 콘텐츠가 CDN에 없으면, CDN이 원본 서버에서 가져와 캐싱 후 응답초기 요청 시에는 백엔드 서버가 직접 응답하지만 이후부터는 CDN이 처리관리가 더 쉽고, 자주 요청되는 콘텐츠만 캐싱됨

📌 백엔드가 “필요할 때만 제공”하는 방식

📝 CDN 사용 시 고려할 점백엔드 개발자는 CDN을 도입할 때 아래 요소들을 신중히 검토해야 합니다.​1️⃣ 비용CDN 서비스는 대부분 유료입니다.모든 트래픽을 무조건 CDN으로 처리하지 않고, 정적 콘텐츠 위주로 전략적으로 사용해 비용을 최적화해야 합니다.​2️⃣ 캐싱 만료 시간만료 시간이 너무 길면 오래된 콘텐츠가 노출되고, 너무 짧으면 원본 서버 요청이 빈번해집니다.적절한 TTL(Time-To-Live) 설정이 필요합니다.​3️⃣ 장애 대응CDN에 장애가 발생했을 때, 클라이언트가 원본 서버로 직접 요청하도록 백업 플랜을 마련해야 합니다.​4️⃣ 콘텐츠 무효화업데이트된 콘텐츠를 빠르게 반영해야 할 때는 버저닝이나 CDN 무효화 API를 활용합니다.

📚 더 알아보기https://www.youtube.com/watch?v=_kcoeK0ITkQ

https://www.youtube.com/watch?v=Zz-IehTBgjY

https://www.youtube.com/watch?v=54PLQS4OS5E

https://cottonblue.tistory.com/31

글로벌 비디오 서비스가 가능하게 한 넷플릭스의 Microservice 아키텍쳐 구조 분석 Cao Duc Nguyen 원문 링크 A Design Analysis of Cloud-based Microservices Architecture at Netflix | by Cao Duc Nguyen | The Startup | Medium 역주 그림을 따라서 보아야하는 단어들의 경우는 굳이 한국어로 바꾸지 않고 그림과 똑같은 단어를 사용하였습니다. 1. 시작 넷플릭스는 매년 전세계 인터넷 트래픽의 15% 이상([ 12 ])을 차지하고 있습니다. 2019년에는 이미 1억 6700만명의 구독자가 생겼고, 매 4분기 마다 5백만명이 2… cottonblue.tistory.com

https://www.youtube.com/watch?v=Grhua7yhWh4

✍️ 마무리CDN은 오늘날 백엔드 시스템의 필수 요소 중 하나입니다.서버 비용과 부하를 줄이면서도 빠르고 안정적인 서비스를 제공하기 위해 반드시 이해하고 활용해야 할 기술입니다.서비스의 성격과 요구 사항에 맞게, Push와 Pull 방식을 선택하고, TTL과 장애 대응을 적절히 설계해 보세요.

📌 TIP: 백엔드와 프론트엔드가 함께 캐싱 전략을 논의하면 더욱 효율적인 시스템을 설계할 수 있습니다.

​

This post is licensed under CC BY 4.0 by the author.