백엔드 개발자 블로그

낙관적 락 vs 비관적 락 본문

테크 블로그 리뷰

낙관적 락 vs 비관적 락

backend-dev 2024. 10. 24. 10:34

해당 글은 우테코 테크톡을 리부한 글입니다.

https://www.youtube.com/watch?v=era8W7q3CeQ


낙관적 락

1. 충돌이 발생하지 않는다고 가정

2. version column을 추가

3. DB에서 처음 읽어온 Version을 기억

4. Update시 현재 DB의 버전가 다르다면 롤백


비관적 락

1. 충돌이 자주 발생할 것이라고 가정

2. TABLE or ROW에 LOCK 걸고 트랜잭션 작업

3. 다른 트랜잭션은 LOCK 획득까지 대기

4. 해당 작업 완료 시 LOCK 해


 

비교

 


사용하는 경우

  • 충돌이 적으면 낙관적 락
  • 충돌이 많으면 비관적 락 

'테크 블로그 리뷰' 카테고리의 다른 글

MySQL 옵티마이저  (1) 2024.12.11
OSI7 계층  (0) 2024.11.01
멀티쓰레드와 동기화  (0) 2024.10.24
DI  (0) 2024.10.24
@Transaction  (0) 2024.10.24