[Redis] Redis 1차 필터 + Optimistic Lock + UPSERT로 Oversell 0건 만든 타임딜 재고 차감 시스템 (Kotlin/Spring/PostgreSQL)
·
Infra/Redis
💡 먼저, 이 글은 실제로 운영 중인 특정 서비스를 그대로 옮긴 설계가 아니라, 학습과 설계 연습을 위한 글입니다. 예전에 참여했던 서비스 중 하나가 “락, 동시성 제어가 필요하니까 Redis를 쓰자”라는 전제 아래 이미 구현되어 있었습니다. 저는 그 구조 위에서 기능을 추가하고 운영을 함녀서, Redis 기반 락과 동시성 제어가 오히려 예상치 못한 문제를 일으키는 상황을 몇 번 경험했습니다. 그 경험을 바탕으로, “같은 문제를 다시 만난다면 어떤 가정 위에서 DB를 보호하는 설계를 할 수 있을까?”를 정리해 보고자 이 글을 쓰게 되었습니다.그래서 이 글은 “굳이 Redis를 써야 한다”는 주장을 하려는 것이 아니라, Redis를 1차 필터로 두고 DB를 보호하는 식으로도 타임딜 재고 차감 문제를 설계..