잠금

· DDD
애그리거트와 트랜잭션 한 애그리거트가 여러곳의 호출에 의해 동시에 변경이 되는 걸 방지하기 위해 트랜잭션 처리 기법이 필요하다. 트랜잭션 처리 방식에는 선점(Pessimistic) 잠금과 비선점(Optimistic) 잠금 두 가지 방식이 있다. 선점(Pessimistic) 잠금 선점 잠금이란 먼저 애그리거트를 구한 스레드가 애그리거트 사용이 끝날때까지 다른 스레드가 해당 애그리거트를 수정하는 것을 막는 방식이다. 스레드1이 애그리거트를 수정하는 동안 블록킹이 되고 트랜잭션이 커밋되는 대기하고 있던 스레드2가 작동한다. 선점 잠금은 보통 DBMS가 제공하는 행 단위 잠금을 사용해서 구현한다. JPA의 EntityManager는 LockModeType을 인자로 받는 find() 메서드를 제공하는데, Lock..
beekei
'잠금' 태그의 글 목록