더북(TheBook)

예를 들어 A 사용자와 B 사용자는 서로 다른 부서에서 일하고 있습니다. 각자의 업무를 위해 동시에 같은 데이터베이스의 같은 데이터에 접근하여 작업한다고 가정하겠습니다. 먼저 A 사용자가 X 값 1000, Y 값 1000을 조회하여 X 값에 100을 더한 1100으로 갱신합니다(). 그 직후 B 사용자가 X 값 1100을 조회하여 2를 곱하여 2200으로 갱신합니다(). A 사용자가 다시 Y 값을 조회하여 100을 더해 1100으로 갱신합니다().

최종 결과는 어떻게 될까요? A 사용자는 원래 값 X=1000, Y=1000에서 X에 100을 더하고 Y에 100을 더했기 때문에 결괏값으로 X=1100, Y=1100을 기대하지만 최종 결과는 예상과 다르게 X=2200, Y=1100이 되어 있습니다. B 사용자는 단지 X에 2를 곱했을 뿐이므로 X=2200, Y=1000을 기대하지만 역시 최종 결과는 의도한 것과 전혀 다른 값이 되어 있습니다.

 

그림 9-15 동시성 제어 실패 : 불일치 현상

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.