주문 로직에서 락 적용과 트랜잭션
·
Study/Database
서론앞서 트랜잭션과 격리 수준, DB가 보장하는 동시성 제어를 정리해 보았다. 이번에는 실제 주문 로직에 어떻게 적용했는지를 정리해보고자 한다. 이번 주차 구현에서는 DB 레벨의 락 전략 학습이 목표였기 때문에 Redis와 같은 분산락은 고려하지 않고 낙관적 락과 비관적 락을 먼저 도입해 보기로 했다. 왜 락 전략이 필요하지?InnoDB의 MVCC와 Next-Key Lock 덕분에 기본적인 읽기 일관성이나 Phantom Read 방지는 잘 되지만 도메인 규칙까지 완전히 보장하기에는 부족하다고 느꼈다. 따라서 락 전략을 추가해 보기로 했다. 낙관적 락 vs 비관적 락두 방식을 간단하게 비교하면 아래와 같다.구분낙관적 락 (Optimistic Lock)비관적 락 (Pessimistic Lock)방식버전 ..