캐시 테이블 불일치로 인한 전자계약 발송 실패 - Spring Cache의 숨겨진 함정
약 2분 소요

목차
TL;DR
- 증상: 전자계약 발송 시 간헐적 NPE, DB에는 데이터 존재
- 원인: 동일 도메인 데이터를 4개 캐시 이름으로 분산 + Repository/Entity 테이블 불일치
- 해결: 단일 캐시로 통합, 올바른 서비스 주입, 레거시 @Deprecated 후 삭제 계획
- 효과: NPE 재현 불가, 캐시 히트율 정상화, 모니터링 지표 확보
- 한계: 로컬 캐시는 중앙 관리 불가 → 네이밍 사고에 여전히 취약
💡환경
- 트래픽: 피크 타임 100 TPS 미만 (WAS 2대)
- 캐시: Caffeine 로컬 캐시, 분산 무효화는 Lambda 브로드캐스트
- 데이터: 사용자 암호화 데이터 (users 테이블)