자바 개발자되기
캐싱 정책 Inline Cache, Cache Aside
sowhat92
2020. 11. 18. 16:01
Inline Cache
- Application에서 Cache를 Main Database로 하여 조회
- Create, Update와 같은 요청이 들어오면 RDBMS와 같이 영구 저장소에 반영
- 배치 작업이 RDB에 변경 사항을 확인하여 Cache에 해당 정보를 UPDATE
장점
- 조회 요청에 대하여 RDB가 아닌 Cache를 사용하기 때문에 처리 속도 향상
- Cache만을 사용하여 조회하기 때문에 처리 속도를 일정하게 보장
단점
- 조회에 사용되는 모든 데이터를 Cache에 보관하기 때문에 하드웨어 리소스가 많이 듬
- 배치 작업 개발/관리에 추가적인 리소스가 필요
- 만약 배치 작업이 중단 될 시 Cache에 실시간 데이터가 반영되지 않음
Cache Aside
- 조회 요청 시 Cache에서 해당 데이터를 조회하여 반환
- 만약 Cache에 데이터가 존재하지 않는다면 RDB에서 데이터를 조회 후 Cache에 UPDATE 한 뒤 결과 반환
장점
- RDB에 먼저 조회하는 것보다 빠름
- Inline Cache 패턴과 같이 배치 작업이 필요하지 않기에 개발/관리 리소스 절약
- 조회 요청 중 선택적으로 캐싱이 가능하기에 하드웨어 리소스 조절 가능
단점
- 최초의 모든 조회 요청에 대하여 RDB를 접근하기 때문에 캐시 저장소 장애 발생 후 RDB 성능 이슈가 2차적으로 발생할 가능성이 높음