개발놀이터

면접 준비 : 낙관적 락, 비관적 락 본문

CS 지식/면접준비

면접 준비 : 낙관적 락, 비관적 락

마늘냄새폴폴 2023. 6. 1. 03:26

Q. 낙관적 락과 비관적 락에 대해서 설명해주세요. 
A. 둘 다 데이터에 락을 걸어서 동시성 문제를 해결하는 방법중에 하나입니다. 낙관적 락은 충돌이 빈번하지 않은 경우에 효과적입니다. 낙관적 락은 커밋과정에서 충돌을 감지하여 Exception을 던지는데 이 때 Exception은 OptimisticLockingFailureException입니다. 이 예외를 처리함으로써 동시성 문제를 해결할 수 있습니다. 비관적 락은 충돌이 빈번한 경우에 더 효과적입니다. 비관적 락은 반드시 동시성 문제가 발생한다는 가정을 하고 락을 걸기 때문에 데이터의 정합성이 보장되지만 낙관적 락에 비해 성능이 조금 부족할 수 있습니다.