📌면접 답변
데이터를 무작정 캐싱하는 것이 아니라,
적절한 전략을 통해서 성능을 최적화 하는것이 캐싱 전략이다.
읽기 중심 캐싱 전략
- Cache Aside (Lazy Loading)
- 캐시를 먼저 확인하고, 없으면 DB에서 가져와 저장하는 방식 (Lazy Loading)
- 애플리케이션이 캐시를 직접 관리하는 방식
- 캐시를 메인 저장소처럼 다루는 것이 아니라, 옆에( Aside) 둬서 활용
- 캐시에 저장된 데이터가 오래되면 갱신 필요
- 실제 요청된 데이터만 캐시에 저장되어 불필요한 데이터 캐싱 줄임
- 초기에 대량의 캐시 미스르 인한 DB 부하 발생할 수 있음
- 캐시 미스 발생 시 개발자가 직접 DB에서 데이터를 가져와 캐시에 저장
- Read Throgh
- 애플리케이션이 캐시를 통해 (Through) 데이터를 가져옴
- 애플리케이션이 아닌 캐시 시스템이 직접 DB에서 데이터를 가져와 저장하는 방식
- 코드가 단순하고, 일관성 유지 가능
- 캐시 미스시 캐시 시스템이 자동으로 DB에서 조회
- DB로 직접적인 요청이 줄어들고 캐시 일관성 유지
쓰기 중심 캐싱 전략
- WriteThrogh
- 데이터를 캐시에 저장하면서 동시에 DB에도 저장
- 항상 최신 데이터 유지
- 하지만 쓰기 성능 저하가 될 수 있다. (DB와 캐시 모두 업데이트)
- 불필요한 데이터도 캐시에 저장될 수 있음
- Write Back
- 데이터를 먼저 캐시에만 저장하고, 나중에((Back, 미뤄서) 캐시에서 DB로 데이터 업데이트
- 데이터를 먼저 캐시에 저장하고, 일정 시간이 지나면 DB에 반영하는 방식
- 쓰기 성능이 매우 빠르지만, 장애 발생 시 데이터 유실 가능
- 복잡한 동기화 전략 필요
📌 내 답변
캐싱은 자주 쓰는 데이터를 캐시해 두는 것을 의미한다. 예를 들어, A라는 사용자가 특정 데이터를 주기적으로 쓴다고 가정해보자. A는 맨 처음 해당 데이터를 요청 할 때 Disk와 같이 멀리 있는 장치로 부터 해당 데이터를 가져온다. 매번 이렇게 할 경우 시간 소모가 크기 때문에, 캐싱을 통해 그 특정 데이터를 임시 보관하여 A는 빠르게 데이터를 주고 받을 수 있다.캐싱을 하는데는 공간 지역성과 시간 지역성이 있는데, 캐싱하는 방법이 다른 뿐 임시 저장 및 목표는 똑같다.
답변 개선
캐싱은 자주 사용하는 데이터를 임시 저장하여 빠르게 접근할 수 있도록하는 기술이다. 예를 들어, A라는 사용자가 특정 데이터를 주기적으로 요청한다고 가정해보자. A가 처음 해당 데이터를 요청할 때, Disk와 같은 비교적 느린 저장 장치에서 데이터를 가져오게 된다. 하지만 매번 이렇게 하면 데이터 접근 속도가 느려지고, 성능 저하가 발생할 수 있다.
이를 해결하기 위해, 자주 사용하는 데이터를 캐시에 저장하여 A가 동일한 데이터를 다시 요철할 때 더 빠른 속도록 접근할 수 있도록 한다. 캐싱 기법에는 시간 지역성과 공간 지역성의 개념이 있고, 이러한 지역성의 특성을 활용하여 데이터를 저장하며 데이터 접근 속도를 향시킨다.
캐시 종류
1. CPU 캐시 (L1, L2, L3 캐시)
- CPU 내부에 내장된 초고속 메모리
- CPU가 자주 참조하는 명령어 및 데이터 저장
2. RAM 캐시
- OS나 애플리케이션에서 자주 사용하는 데이터 저장
- ex) DB가 최근 쿼리 결과를 메모리에 저장
3. SSD/HDD 캐시
- 자주 접근하는 파일을 디스크의 빠른 영역 SSD 캐시 등에 저장
- ex) 웹 브라이저가 방문한 웹사이트의 이미지/스크립트를 디스크 캐시에 저장
4. 네트워크 캐시
- 원격 서버로부터 데이터를 가져오는 대신, 가까운 네트워크 노드에서 제공
- CDN, Reverse Proxy, 로드밸런서 등
5. 소프트웨어 캐시
- 소프트웨어 캐시는 주로 서버 측에서 관리하는 캐시
- Redis, Memcached (메모리 기반 캐시)
- 서버의 RAM에 저장
- DB나 API 호출 결과를 캐싱하여 빠르게 응답
[출처 및 참고 자료]
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
면접 내용 출처
https://velog.io/@zenon8485/%EC%BA%90%EC%8B%B1%EC%A0%84%EB%9E%B5
캐싱 전략 (원제: Caching Strategies and How to Choose the Right One)
원문 출처: Caching Strategies and How to Choose the Right One | CodeAhoy 캐싱은 시스템의 성능을 향상시키는 가장 쉬운 방법입니다. DB는 느리고, 모두 알다시피 속도는 매우 중요한 문제입니다. 아래의 그래
velog.io
캐시 전략 그림
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] ACID에 대해 설명해주세요. (0) | 2025.03.25 |
---|---|
[1분 면접] REST란 무엇인가 ? (0) | 2025.03.24 |
[1분 면접] 자료구조 스택에 대해서 설명해주세요. (1) | 2025.03.15 |
[1분 면접] 동시성과 병렬성의 차이 (0) | 2025.03.14 |
[1분 면접] 로드 밸런싱이란 ? (0) | 2025.03.13 |