시스템 설계 · 기초
시스템 성능 향상 및 부하 감소를 위해 '캐싱(Caching)' 기법을 활용합니다. 캐싱의 기본 원리와 어떤 종류의 데이터를 캐싱할 수 있는지 설명해주세요.
힌트 · 캐싱은 자주 접근하는 데이터를 임시 저장하여 빠르게 재사용함으로써 데이터 조회 시간을 단축하고 원본 시스템의 부하를 줄입니다. 웹 페이지, 데이터베이스 쿼리 결과 등을 캐싱할 수 있습니다.
캐시 메모리지역성유효 시간(TTL)CDN데이터베이스 쿼리
모범답안
캐싱은 자주 사용되는 데이터를 임시 저장소(캐시 메모리)에 저장해두고, 이후 요청 시 원본 데이터에 접근하는 대신 캐시에서 데이터를 가져오는 방식입니다. 이렇게 하면 데이터 접근 시간을 단축하고, 원본 시스템의 부하를 줄일 수 있습니다.
캐싱의 기본 원리는 '지역성'을 활용하는 것입니다. 시간 지역성은 최근에 사용된 데이터가 다시 사용될 가능성이 높다는 것을 의미하고, 공간 지역성은 특정 데이터와 가까운 위치의 데이터가 함께 사용될 가능성이 높다는 것을 의미합니다.
캐싱할 수 있는 데이터 종류는 다양합니다. 예를 들어, 웹 페이지의 정적 콘텐츠(이미지, CSS, JavaScript 파일), 데이터베이스 쿼리 결과, API 응답, 세션 정보 등을 캐싱할 수 있습니다. 캐시된 데이터는 유효 시간(TTL)을 설정하여 관리하고, 필요에 따라 캐시를 갱신하거나 삭제합니다. CDN(콘텐츠 전송 네트워크)도 캐싱 기술을 활용하여 사용자에게 더 가까운 위치에서 콘텐츠를 제공함으로써 성능을 향상시킵니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 대용량 트래픽 설계 면접 질문
- 시스템 확장 방식 중 '수직 확장(Vertical Scaling)'과 '수평 확장(Horizontal Scaling)'의 개념을 설명하고, 각각의 장단점을 비교해주세요.
- 대용량 트래픽 처리 시 '로드 밸런서(Load Balancer)'가 왜 필수적인 역할을 하는지 설명하고, 주요 기능 몇 가지를 언급해주세요.
- 웹 서비스에서 'CDN(Content Delivery Network)'을 사용하면 대용량 트래픽 상황에서 어떤 이점을 얻을 수 있으며, 기본적인 동작 원리는 무엇인가요?
- 데이터베이스의 데이터가 너무 많아질 때 발생하는 성능 문제를 해결하기 위한 방법 중 하나인 '샤딩(Sharding)' 또는 '파티셔닝(Partitioning)'의 개념을 설명해주세요.
- 읽기(Read) 작업이 많은 서비스에서 데이터베이스의 부하를 줄이기 위해 '읽기 전용 복제본(Read Replicas)'을 활용합니다. 이 방식의 목적과 장점은 무엇인가요?
- 여러 대의 서버로 트래픽을 분산하는 로드 밸런서의 주요 역할과 일반적인 로드 밸런싱 알고리즘 몇 가지를 설명하고, 각 알고리즘이 어떤 상황에 적합한지 비교 설명해 주세요.