[TicketDojo] MySQL로만 대기열 구현하기 - 구현편
서론https://dongyeop00.tistory.com/209이전 글에서 대기열 시스템에 대한 설계를 마쳤다.이제 구현을 해보자.본론대기열 진입POST /queue/enterService가 현재 대기 인원(Waiting) 조회순번 = 대기 인원 + 1DB에 저장 ( Position 포함 ) @Transactional @Override public QueueEnterResponse enterQueue(Long userId) { log.info("대기열 진입 요청 - userId {}", userId); // 1. User 조회 User user = userRepository.findById(userId) .orElseThr..
2025.12.08
no image
[TicketDojo] MySQL로만 대기열 구현하기 - 설계편
1. 서론대규모 티켓팅에서 "대기열"은 거의 필수 기능이다.보통은 Redis + Lua 스크립트 + 분산 락 같은 구성을 떠올리며 대기열을 처리하겠지만,나는 아직 그정도의 개념과 개발력을 갖고 있지 않기에 내가 진행한 프로젝트의 출발점은 조금 달랐다. MySQL만으로 대기열을 구현한다면 어디까지 갈 수 있을까?그리고 그 과정에서 어떤 문제를 만나고, 어떻게 개선할 수 있을까? 실제 서비스라기보다는동시성 제어복잡한 시스템 설계 능력Redis로의 전환을 전제로 한 구조 설계이 세 가지를 학습과 실험의 목표로 두고 MySQL 기반 대기열 시스템을 설계했다. 이 글에서는내가 어떻게 대기열을 설계 했는지왜 그렇게 설계했는지지금 단계에서 예상되는 문제점그리고 그에 대한 해결 방향까지 정리해보려고 한다.2. 본론 -..
2025.12.01