도메인 주도 개발 시작하기, 오프라인 선점 잠금 질문
165
작성한 질문수 3
도메인 주도 설계 책을 읽는 중에 오프라인 선점 잠금 부분에서 이해가 안되는 부분이 있어서 해당 책을 읽어보셨거나 구현을 해보신 분 중에 알고 계신 분 있으신가요?
책에 나온 건 처음 세션 얻는 유저(A)가 접근했을 때, LockId를 LockManager로 생성하면 해당 반환된 LockId를 얻는 것까진 나와있는데 도메인이랑 엮어서 타임아웃 전 유저(B)가 LockId를 얻는 방법이 없더라고요.
해당 도메인 엔티티 내에 lock 관련 필드를 하나 만들고 A의 첫 번째 조회 트랜잭션이 끝나기 전에 저장한 다음 B가 그 데이터에 접근할 때, 얻는 방법 밖에 생각이 안나는데 해당 방법이 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
Recfli님 질문에 답변드리겠습니다. 제공해드린 정보에는 오프라인 선점 잠금에 대한 직접적인 언급이 없습니다. 하지만, 오프라인 선점 잠금 방식을 구현하는 데 있어서 도메인 엔티티 내에 잠금 관련 필드를 추가하는 것은 일반적인 접근 방식 중 하나입니다. 이를 통해 해당 엔티티가 어떤 사용자에 의해 잠겼는지, 잠긴 시간은 언제인지 등의 정보를 관리할 수 있습니다.
또한, Spring Data JPA나 JDBC와 같은 기술을 활용할 때 @Lock 어노테이션을 사용하여 데이터 접근 시 잠금 모드를 명시적으로 지정할 수 있습니다. 예를 들어, Spring Data JPA에서는 @Lock(LockModeType.READ)와 같이 사용하여 데이터를 읽는 동안 다른 트랜잭션의 변경을 방지할 수 있습니다. 이처럼 잠금 메커니즘을 적절하게 활용함으로써 동시성을 관리하고 데이터 무결성을 유지할 수 있습니다.
도메인 주도 설계 측면에서 오프라인 선점 잠금 구현은 애플리케이션의 복잡도와 요구 사항에 따라 다르게 접근할 수 있으므로, 자세한 구현 방법은 프로젝트의 구체적인 상황을 고려하여 결정하는 것이 중요합니다.
도움이 되셨길 바랍니다. 추가적인 질문이 있으시다면 언제든지 문의주세요.
도메인 모델에서 관계와 규칙을 구분하는 방법
0
41
2
애그리거트 질문있습니다!
0
33
2
헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?
0
119
2
어댑터에서 도메인에 직접 의존하는 경우에 대해
0
122
2
Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.
0
105
2
MemberService와 EmailSender 책임 분리에 대한 질문
0
103
2
NonNullApi를 NullMarked로 대체하라고 합니다.
0
125
2
39. 문서와 코드 다듬기 updateInfo 테스트 질문 있습니다.
0
74
2
도메인 질문있습니다
0
50
2
MSA 질문이 있습니다
0
70
1
Repository Adapter 설계에 대해 피드백을 부탁드립니다
0
108
2
초기 어플리케이션 구동 시 compose.yml 파싱 오류
0
148
2
애플리케이션의 JPA 리턴과 도메인 모델
0
128
2
애그리거트 루트의 하위 도메인들의 depth가 깊어질 때 문의
0
135
2
페이징 처리를 해야한다면 어떻게 해야할까요?
0
188
2
애그리거트의 repository
0
118
2
Domain Expert가 정확히 어떤 역할을 하는 사람인가요?
0
233
1
회원 애플리케이션 서비스 테스트 (1)
0
106
2
정적 팩토리 메서드 관련 질문드립니다!
0
105
2
required 포트에 관해서
0
93
2
혹시 다음 편은 언제쯤 오픈할까요?
0
167
2
서비스 단위 테스트 코드 작성
0
97
2
domain 모듈에 entity를 정의한다고 했을때
0
100
2
여러 엔티티의 조합으로 리포트를 제공해야할 때
0
80
2





