목록 보기
싱글톤 패턴을 이용한 캐시 관리
백엔드

싱글톤 패턴을 이용한 캐시 관리

넥스트리
넥스트리
2026년 6월 26일

두줄요약

메뉴 권한처럼 변경은 적고 조회는 많은 데이터를 싱글톤 인메모리 캐시로 관리하는 방법을 소개했습니다. 이를 통해 로그인 시 DB 부하를 줄이고 응답 속도와 유지보수성을 개선했습니다.

문제 상황

  • 사용자 로그인 시마다 메뉴 권한을 DB에서 반복 조회하는 구조로 인한 중복 접근
  • 사용자 수 증가와 동시 로그인 상황에서 DB 부하, 로그인 응답 지연, 확장성 한계 발생

원인 분석

  • 권한 데이터가 변경은 적고 조회는 많은 Read-Heavy 성격
  • 같은 Role 사용자가 동일 권한을 공유하는데도 매 요청마다 재조회

해결 방법

  • 애플리케이션 전체에서 하나의 캐시 객체만 쓰도록 싱글톤 패턴 적용
  • 기동 시 권한 정보를 메모리에 적재하고 로그인 시 캐시 조회, 관리자 수정 시 캐시 갱신

주의할 점

  • 캐시 무효화 실패 시 실제 권한과 캐시 불일치 가능성
  • 다중 인스턴스 환경에서는 서버 간 캐시 불일치 문제와 분산 캐시 필요성
  • 동시성 대응을 위해 HashMap 대신 ConcurrentHashMap 사용

적용해볼 점

  • 변경 빈도는 낮고 조회 빈도는 높은 데이터에 캐시 우선 검토
  • 캐시 저장보다 갱신 시점과 초기화 로직 설계가 핵심

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...