키보드워리어

[databases]데이터의 일관성을 지키기 위한 로킹(locking) 본문

개발 관련/Database

[databases]데이터의 일관성을 지키기 위한 로킹(locking)

꽉 쥔 주먹속에 안경닦이 2023. 7. 27. 11:51
728x90

안녕하세요 블로그 방문자 여러분, 반갑습니다. 오늘은 로킹에 대해 배워볼게요 

제가 지난번 동시성 제어문제에 대해 글을 작성한 게 있었는데 이 내용의 2부라고 보셔도 좋을 거 같아요!

2023.06.23 - [개발 관련/Database] - [databases] 동시성 제어 문제 해결

 

[databases] 동시성 제어 문제 해결

안녕하세요 【키보드 워리어】 블로그 방문자 여러분, 안경닦이입니다. 원티드 프리온 보딩 챌린지 백엔드 사전문제 1번 문제와 답안입니다! [01] 동시에 같은 DB Table row 를 업데이트 하는 상황을

keyboardwarrior.tistory.com

본문의 내용은 원티드 프리온보딩 챌린지에서 훈 멘토님께서 정리해 주셨던 내용입니다. 많은 도움을 주셔서 감사합니다.

 

원티드 프리온보딩 백엔드 챌린지
원티드 프리온보딩 백엔드 챌린지


락 = 데이터 일관성을 위한 목적

Optimistic Lock

  • 낙관적, 비선점적 (데이터 갱신시 충돌이 발생하지 않을 것으로 예상하므로 우선적으로 락을 걸진 않음)
  • 버전을 이용해 관리. 조회 다시 수행했을 때 버전이 다르면 예외를 터트림. (예방이 아닌 사후 처리)
  • 데이터베이스 단에서 거는 락이 아니라, 어플리케이션 단에서 처리

Pessimistic Lock

  • 비관적, 선점적 (데이터 갱신시 충돌이 계속 발생할 것으로 예상하므로 조회를 할 때부터 우선적으로 락을 검)
  • 데이터베이스 단에서 거는 락
  • Shared Lock: 읽기는 동시에 되지만 수정, 삭제 (Update, Delete) 은 락으로 막음
  • Exclusive Lock: 읽기, 수정, 삭제 모두 락으로 막음

 ⭐참고하시면 좋은 영상 ⭐

참고링크

우아한 테크의 카일님께서정리해 주신 영상이 정말 도움이 많이 됩니다. 꼭 참고해 주세요!

 


이상 부족한 콘텐츠 읽어주셔서 감사드립니다.

내용 피드백이 있는 경우 댓글 부탁드립니다!

다음 포스팅 때 뵙겠습니다! 감사합니다 🤗

728x90