
[Spring][JPA] PessimisticLockException with MySQL
·
Dev Framework/Spring
PessimisticLockException은 왜 발생할까?MySQL의 동작 원리와 함께 이해하는 비관적 락 예외JPA를 사용할 때 종종 마주치는 예외 중 하나가 PessimisticLockException이다. 비관적 락이라는 개념은 직관적으로 "다른 트랜잭션이 건드리지 못하도록 선제적으로 막는 것"으로 이해할 수 있지만, 이 예외가 발생하는 정확한 원인을 명확히 이해하려면 DBMS, 특히 MySQL이 비관적 락을 어떻게 처리하는지를 아는 것이 중요하다. 비관적 락(Pessimistic Lock)이란?비관적 락은 트랜잭션이 데이터를 읽거나 수정하려고 할 때, 다른 트랜잭션이 해당 데이터를 동시에 변경하지 못하도록 락을 거는 방식이다. 주로 SELECT ... FOR UPDATE 또는 SELECT ....