시스템 설계 · 기초
웹 서비스에서 'CDN(Content Delivery Network)'을 사용하면 대용량 트래픽 상황에서 어떤 이점을 얻을 수 있으며, 기본적인 동작 원리는 무엇인가요?
힌트 · CDN은 사용자에게 가장 가까운 엣지 서버에서 콘텐츠를 제공하여 지연 시간을 줄이고 원본 서버의 부하를 경감시킵니다. 주로 정적 콘텐츠에 활용됩니다.
캐싱분산지연시간 감소트래픽 분산오리진 서버 보호
모범답안
CDN은 대용량 트래픽 상황에서 웹 서비스의 안정성과 성능을 향상시키는 데 중요한 역할을 합니다.
CDN의 가장 큰 이점은 콘텐츠를 사용자에게 더 가까운 엣지 서버에 캐싱하여 제공함으로써 지연 시간을 줄이고, 원본 서버의 부하를 분산시키는 것입니다. 예를 들어, 전 세계 사용자가 동시에 웹사이트에 접속하더라도, 각 사용자에게 가장 가까운 CDN 서버가 콘텐츠를 제공하므로 원본 서버는 트래픽 폭주를 방지할 수 있습니다.
기본적인 동작 원리는 다음과 같습니다. 사용자가 웹사이트에 접속하면, CDN은 사용자의 위치를 파악하여 가장 가까운 엣지 서버를 선택합니다. 해당 엣지 서버에 요청된 콘텐츠가 캐싱되어 있다면 즉시 제공하고, 없다면 원본 서버에서 가져와 사용자에게 전달하고 동시에 엣지 서버에 캐싱합니다. 이러한 과정을 통해 CDN은 트래픽을 분산하고 응답 속도를 향상시켜 사용자 경험을 개선합니다. 주로 이미지, CSS, JavaScript와 같은 정적 콘텐츠에 많이 활용됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 대용량 트래픽 설계 면접 질문
- 시스템의 '확장성(Scalability)'과 '성능(Performance)'은 어떤 차이가 있으며, 각각 대용량 트래픽 설계 시 어떤 관점에서 중요하게 고려되어야 하나요?
- 시스템 확장 방식 중 '수직 확장(Vertical Scaling)'과 '수평 확장(Horizontal Scaling)'의 개념을 설명하고, 각각의 장단점을 비교해주세요.
- 대용량 트래픽 처리 시 '로드 밸런서(Load Balancer)'가 왜 필수적인 역할을 하는지 설명하고, 주요 기능 몇 가지를 언급해주세요.
- 시스템 성능 향상 및 부하 감소를 위해 '캐싱(Caching)' 기법을 활용합니다. 캐싱의 기본 원리와 어떤 종류의 데이터를 캐싱할 수 있는지 설명해주세요.
- 데이터베이스의 데이터가 너무 많아질 때 발생하는 성능 문제를 해결하기 위한 방법 중 하나인 '샤딩(Sharding)' 또는 '파티셔닝(Partitioning)'의 개념을 설명해주세요.
- 읽기(Read) 작업이 많은 서비스에서 데이터베이스의 부하를 줄이기 위해 '읽기 전용 복제본(Read Replicas)'을 활용합니다. 이 방식의 목적과 장점은 무엇인가요?