목록 보기
putlfAbsent()의 한계와 변경감지 개선
백엔드

putlfAbsent()의 한계와 변경감지 개선

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

두줄요약

실시간 모니터링에서 계산식 메타데이터 동기화 문제를 다뤘습니다. `putIfAbsent()` 한계를 보완하기 위해 `replace()`로 변경 감지와 이벤트 발행을 개선했습니다.

문제 상황

  • 실시간 모니터링 시스템에서 계산식 메타데이터를 서비스 간 동기화해야 하는 요구
  • putIfAbsent() 기반 구조로는 계산식 변경 감지와 변경 이벤트 발행이 불가능한 한계
  • 센서 신호 구성에 따라 동일한 계산식의 내용이 달라질 수 있는 운영 시나리오

원인 분석

  • 초기에는 계산식이 최초 생성 후에는 변경되지 않는다는 전제
  • putIfAbsent() 는 기존 키가 있으면 비교나 갱신 없이 종료
  • 동시 수정 상황에서 단순 조회 후 비교 방식은 중복 이벤트 위험

해결 방법

  • replace(key, oldValue, newValue) 로 기존 값과 일치할 때만 교체
  • 교체 성공 시에만 변경 이벤트 발행
  • 다중 스레드 환경에서 변경 감지와 중복 이벤트 방지 동시 처리

다음 읽기

#cache 주제를 다룬 다른 회사 글

분산 시스템에서 로컬 캐시 활용하기

분산 환경에서 로컬 캐시와 Redis Pub/Sub을 함께 사용해 조회 성능을 높이고 데이터 정합성을 맞추는 방법을 설명했습니다. 서버별 캐시 불일치와 오래된 데이터 문제를 줄이기 위한 설계와 구현 경험을 공유했습니다.

카카오페이
카카오페이
백엔드

댓글 0개

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

댓글을 불러오는 중...