비관적 잠금(선점 잠금, Pessimistic Lock)과 낙관적 잠금(비선점 잠금, Optimistic Lock)
2020. 8. 17.
들어가며 최근 DDD Start! 라는 DDD 관련 서적을 읽다가 비관적, 낙관적 잠금에 대한 내용이 나왔다. 애그리거트를 수정, 조회시 멀티스레드 환경에서 발생되는 문제를 다루는 내용이다. 해당 문제는 비관적 잠금, 낙관적 잠금을 통해 예방할 수 있는데 비관적, 낙관적 잠금은 DDD에 국한된 내용이 아니라서 DDD 카테고리가 아닌 다른 카테고리에 기록하면 좋을것 같아 포스팅하고자 한다. 멀티스레드 환경에서 어떤 문제가 생기길래? DDD Start! 서적에 나온 예시를 그대로 들면 좋을것 같다. 예를 들면 온라인 쇼핑몰 서비스에서 고객이 주문한 상품의 배송지를 변경하는 스레드와 관리자 페이지에서 운영자가 해당 고객이 주문한 상품의 배송상태를 변경하는 스레드가 있다고 가정하자. 1) 운영자는 배송상태를 변..