문제 정의
- 데이터 조회 시 속도가 느려 서비스 성능 저하
- 반복적으로 동일한 요청이 발생하여 서버 부하 증가
- 불필요한 DB 트래픽으로 인해 성능 저하 및 운영 비용 상승
원인
- 데이터베이스의 조회 시간이 길어지는 경우
- 동일한 요청이 빈번하게 발생하지만 캐시를 활용하지 않는 경우
- 트래픽이 급증하는 순간에도 모든 요청이 DB에 직접 접근하는 구조
- 캐시 없이 매번 데이터를 연산하여 조회하는 구조
해결
목표 설정
- 불필요한 트래픽을 줄이고, 서버의 부하 감소
- 빠른 처리성능(조회)을 확보하여 고객에게 더 나은 서비스경험을 제공
- TTL(Time To Live) 설정
- 주요 캐싱 대상 선정
캐싱 전략을 사용하기 전 주의 사항
"용도에 맞지 않는 정보나 서비스요청에 캐시를 남용하게 되면 서비스 신뢰도에 큰 문제가 생길 수 있는 위험성을 내포한다."
- TTL(Time To Live) 설정
- 캐싱한 정보의 갱신시점
주로 Cache의 대상이 되는 정보들
- 정보의 단순성
- 빈번한 동일요청의 반복
- 높은 단위처리비용
ex) 포탈의 검색어, 방문자수, 조회수, 추천수, 공지사항, Q&A
적용
평가
1. 단위 테스트
결론
Redis 캐싱 전략을 효과적으로 활용하면 서버 성능 최적화뿐만 아니라, 운영 비용 절감 및 사용자 경험 향상까지 긍정적인 효과를 얻을 수 있습니다. 다만, 잘못된 캐싱 전략은 데이터 불일치 및 불필요한 캐시 업데이트 비용을 초래할 수 있으므로, 데이터 특성에 맞는 적절한 TTL 설정과 캐싱 정책이 중요합니다.
'TIL' 카테고리의 다른 글
B Tree 계열의 알고리즘을 활용한 DB 인덱싱 튜닝 (0) | 2025.02.28 |
---|---|
DB 이중화 구현을 통한 DB 병목 현상 예방(with CQRS패턴 & Redis 캐싱 전략) (0) | 2025.02.25 |
Spring Security6를 활용한 인증 인가 (1) | 2024.12.27 |
Burp Suite 인터셉터를 활용한 웹사이트 보안 테스트 (1) | 2024.12.27 |
Spring AOP와 예외처리를 활용한 로그 쌓기 (0) | 2024.12.27 |