[SQLAlchemy] Pessimistic/Optimistic Lock
HTML 삽입 미리보기할 수 없는 소스 개요 웹 서버는 여러 Client의 요청을 동시에 수행할 수 있어야 한다. 한 자원을 놓고 동시에 요청이 실행한다면 어떤 문제가 발생할 수 있을까? 위와 같은 주제는 동시성(Concurrency)이라는 개념에 대해 생각하게 만드는 주제이다. 비관적(Pessimistic)/낙관적(Optimistic) 잠금에 대한 이해를 필요로 한다. 그러한 맥락에서 이 포스팅은 SQLAlChemy의 Session ORM을 통해 각각을 어떻게 구현할 수 있을지에 대해 정리한 내용이다. 1. Concurrency 문제 한 자원을 놓고 동시에 요청을 실행하는 문제는 익히 알려져 있다. 이는 다음과 같은 도식화로 설명이 가능하다. 위와 같은 시나리오에서는 사용자 A, B가 Resouce를 ..