JPA 비관적 락과 낙관적 락 및 재시도
·
프레임워크
개요콘서트 예약 프로젝트를 개발하면서 좌석 예약에서 발생하는 동시성 문제에 대해 고민하게 되었다. 여러 사용자가 동시에 같은 좌석을 예약하려고 할 때 동시성 문제가 발생할 수 있는데, 이를 해결하기 위해 JPA에서 제공하는 비관적 락(Pessimistic Lock)과 낙관적 락(Optimistic Lock)을 사용하고, AOP를 활용한 재시도 로직을 통해 동시성 문제를 해결하는 방법을 알아보자.비관적 락(Pessimistic Lock)첫 번째로 시도한 방법은 비관적 락이다. (익숙한 방법이라 먼저 진행하게 되었다.) 비관적 락은 데이터베이스 레벨에서 락을 걸어 동시성 문제를 해결하는 방식으로, 여기서 말하는 락은 X Lock(Exclusive Lock)을 의미한다.// ConcertFacade.java@..