동시에 들어온 예약을 막는 방법 - PostgreSQL EXCLUDE 제약조건
같은 회의실, 겹치는 시간의 예약이 동시에 들어올 때 PostgreSQL의 EXCLUDE 제약조건으로 하나만 받아들이는 방법과 그 원리를 정리했다.
글 3편

같은 회의실, 겹치는 시간의 예약이 동시에 들어올 때 PostgreSQL의 EXCLUDE 제약조건으로 하나만 받아들이는 방법과 그 원리를 정리했다.

synchronized의 JVM 모니터 락이 실제로 어떻게 동작하는지 보고, ReentrantLock으로 생산자-소비자 문제를 푼 뒤, 사용자별 키로 락을 나눠 성능을 높인다.

선착순 이벤트 시스템을 설계한다고 가정해보자. 요구사항은 아래와 같다. 100개의 재고가 있을 때 동시에 1,000명이 요청하면 어떻게 정확히 100명에게만 제공할 수 있을까? 이때 일반적으로 제시되는 해결책들은 아래와 같다.