Skip to content

Latest commit

 

History

History
21 lines (12 loc) · 899 Bytes

File metadata and controls

21 lines (12 loc) · 899 Bytes

문제

동시에 같은 DB Table row 를 업데이트 하는 상황을 방어하기 위해 어떻게 개발하실 건지 설명해주세요.

답변

동시에 같은 DB Table row를 업데이트 하는 경우 동시성 문제가 발생한다면 두가지의 해결방법이 떠오릅니다.

  1. 비관적 동시성 제어
  2. 낙관적 동시성 제어

비관적 동시성 제어

  • 동시에 같은 데이터를 수정하는 것을 가정하여 데이터에 Lock을 거는 방식
  • 사용자가 데이터를 조회하는 시점에 Lock을 걸고 그 다음 처리(조회 or 갱신)가 완료될 때 까지 유지

낙관적 동시성 제어

  • 동시에 같은 데이터를 수정하지 않을 것이라고 가정하고 Lock을 걸지 않는 방식
  • 사용자가 갱신하고자 하는 시점에 해당 데이터가 변경여부가 있었는지 확인하여 일관성을 유지