ioh's Development

  • 홈
  • 태그
  • 방명록

k6 1

캐시 삭제했는데 stale data가 살아 돌아왔다

afterCommit DELETE면 충분하지 않나? — Cache-Aside 레이스 컨디션을 발견하고, 근본 원인을 찾기까지 TL;DRCache-Aside + afterCommit DELETE면 캐시 무효화는 끝이라고 생각했습니다. 그런데 "DB 읽기와 캐시 SET 사이의 시간 간격"이라는 구조적 허점을 발견했고, 처음에는 캐시 레이어에서 사후 패치하려 했습니다. 한 발 물러서 보니, 이 문제의 근본 원인은 캐시가 아니라 DB 쓰기 프로세스의 동시성 제어였습니다. 쓰기 쪽을 비관적 락과 원자적 UPDATE로 잠근 뒤에는, afterCommit DELETE + TTL 안전망만으로 충분했습니다.캐시가 필요한 이유: 속도가 아니라 DB 보호인덱스 최적화 + Cursor 페이지네이션까지 적용하고 나니, 상품 목..

데이터베이스 2026.03.12
이전
1
다음
더보기
프로필사진

ioh's Development

"코드는 나의 언어, 디버깅은 나의 모험!" 배움은 기록에서, 성장은 도전에서 시작됩니다. 이 블로그는 개발 여정을 기록하고, 성장의 발자취를 남기는 공간입니다. 삽질도 성공도 모두 소중한 경험으로, 개발의 미로를 탐험하며 얻은 보물들을 공유합니다. 다양한 관심사와 배운 것들, 그리고 주니어 개발자로서의 고민과 성장을 담아내는 블로그입니다.

  • 분류 전체보기 (253)
    • AX (5)
    • 아키텍처 (7)
    • AWS 및 클라우드 인프라 (0)
    • 운영 (38)
      • 웹 애플리케이션 서버 (Web Applicatio.. (1)
      • Kafka & MQ (19)
      • 로깅 및 모니터링 (0)
    • 프로그래밍 언어 (19)
      • Java (16)
      • Kotlin (3)
    • 알고리즘 & 자료구조 (86)
      • 자료구조 (Data Structures) (1)
      • 코딩테스트 준비 (40)
      • 스터디 (Algorithm Study) (36)
    • 백엔드 프레임워크 (19)
      • SpringBoot (3)
      • Spring Framework (2)
      • JPA & Mybatis (9)
    • 데이터베이스 (18)
      • RDBMS (관계형 데이터베이스) (1)
      • NoSQL (3)
      • Elasticsearch (3)
    • Network (10)
    • CICD 및 버전 관리 (2)
      • CICD (2)
      • 버전 관리 (0)
    • React (3)
    • 도서 (12)
      • 수학리부트 (2)
      • 알고리즘 (1)
      • 리액트 교과서 (5)
      • 디자인 패턴의 아름다움 (0)
    • 개발환경 (1)
      • Dev Setup (1)
      • IDE 및 개발 도구 (0)
      • 프로젝트 관리 도구 (0)
    • 오픈소스 기여 (1)
    • 자격증 (2)
      • 정보처리기사 (1)
    • 스터디 (9)
      • 루퍼스 (12)

Tag

프로그래머스, 개발자스터디, 항해, 리눅스마스터자격증, 가상 면접 사례로 배우는 대규모 시스템 설계 기초, 99일지, Loopers, Kafka, 코딩테스트, 루프팩 3기, 자료구조, java, Redis, 99클럽, 루프팩, 루퍼스 루프팩, til, 루퍼스, 소프트웨어 아키텍처, 대기열,

최근글과 인기글

  • 최근글
  • 인기글

공지사항

Calendar

«   2026/08   »
일 월 화 수 목 금 토
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

Copyright © Daum Corp. All rights reserved.

  • My Github

티스토리툴바