웹 서비스를 만들다 보면 이런 상황 경험해보셨나요?“재고가 마이너스로 떨어졌네?”, “예약이 중복으로 잡혔어!” 🤯이건 여러 사용자가 동시에 같은 데이터를 수정하면서 생기는 동시성 문제입니다. 낙관적 락(Optimistic Lock) 은 “동시에 수정될 일이 많진 않겠지” 하고 버전으로 관리하는 방식이라면이번에는 반대로, “언제든 충돌 날 수 있어!”라고 비관적으로 가정하고 아예 미리 락을 걸어버리는 방식, 즉 비관적 락(Pessimistic Lock) 을 알아보겠습니다. 비관적 락이란?비관적 락은 데이터를 읽는 순간부터 데이터베이스(DB) 차원에서 락을 걸어버립니다.즉, 내가 이 데이터 보고 있는 동안 다른 트랜잭션은 건드리지 마! 라는 거예요.읽기(Read): 다른 트랜잭션이 수정하지 못하게 막음쓰..