Skip to content

[FEAT] 로컬 캐시 도입을 통한 DB 요청 감소 #222

@kssumin

Description

@kssumin

어떤 기능인가요?

  • 저희 서비스는 특정 순간에만 사람들이 사용하는 패턴을 가지고 있습니다.
  • API 응답값이 자주 변경되지 않는 특성이 있습니다.
  • 현재는 캐시를 적용하지 않고 매 요청마다 DB에 접근하고 있습니다.
  • Caffeine 기반의 로컬 캐시를 도입하여 DB 부하를 줄이고 응답 속도를 개선합니다.

작업 상세 내용

  • Caffeine 캐시 의존성 추가 및 기본 설정 구성
  • 캐시 추상화 레이어 구현 (CacheManager 인터페이스 및 CaffeineCacheManager 구현체)
  • 주요 API 엔드포인트에 캐시 적용 (읽기 작업 위주)
  • 데이터 변경 시 캐시 무효화
  • 캐시 적중률 및 성능 모니터링 지표 추가
  • 캐시 만료 정책 고려

추후

  • 로드 테스트를 통한 캐시 효과 검증

기술적 고려사항

  • 캐시 키 설계: API 파라미터를 고려한 효율적인 캐시 키 생성 방식 정의
  • 메모리 사용량: 최대 캐시 크기 제한으로 메모리 사용량 관리
  • 캐시 무효화 전략: 데이터 일관성을 위한 적절한 캐시 무효화 시점 결정
  • 모니터링: 캐시 적중률, 미스율, 메모리 사용량 모니터링 방안

참고할만한 자료

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions