SETNX (1) 썸네일형 리스트형 재고는 1개인데 주문이 2건? 동시성 이슈를 해결하는 모든 방법 총정리 서비스를 운영하다 보면 평소엔 멀쩡하던 코드가 트래픽이 몰리는 순간 갑자기 이상하게 동작하는 일을 겪게 됩니다. 한정 수량 이벤트나 선착순 쿠폰 같은 상황이 대표적인데요. 분명히 재고가 1개밖에 없는데 주문은 2건이 성공해서 "재고 -1"이라는 물리법칙 위반 상태가 만들어지기도 합니다. 이런 현상의 범인이 바로 동시성 이슈(Concurrency Issue)입니다. 이번 글에서는 동시성 문제가 왜 생기는지부터, 이를 막는 방법을 애플리케이션 레벨, 데이터베이스 레벨, Redis 분산락까지 차근차근 정리해 보겠습니다. 백엔드 개발자라면 한 번쯤은 꼭 부딪히게 되는 주제이니 끝까지 읽어두면 분명 써먹을 일이 생깁니다.동시성 이슈는 왜 생길까상황을 단순하게 만들어 보겠습니다. 상품의 재고를 조회한 뒤, 1개를 .. 이전 1 다음