티켓팅 오픈런 좌석 선점 동시성 이슈 해결과 락 성능 분석
·
스프링
들어가며인기 콘서트 예매나 선착순 이벤트 시스템을 설계할 때 가장 까다롭지만 중요한 부분 중 하나가 바로 '동시성 문제' 입니다. 수만 명의 사용자가 동시에 같은 좌석을 클릭하는 상황에서 시스템은 어떻게 단 한 명의 요청만 성공시키고 나머지는 정확하게 실패 처리할 수 있을까요? 이번 글에서는 티켓팅 서비스를 개발하며 겪었던 좌석 선점 동시성 이슈를 설명하고 낙관적 락, 비관적 락, 분산 락을 실제로 적용해 보며 얻은 테스트 결과를 공유합니다.동시성 제어가 필요한 이유한정된 자원에 짧은 시간 동안 트래픽이 집중되면 경쟁 상태(Race Condition)가 발생합니다.예를 들어, 두 개의 스레드(User A, User B)가 동시에 `Seat A` 정보를 읽고 빈 좌석임을 확인했다고 가정해보겠습니다.User..