도메인 주도 개발 시작하기, 오프라인 선점 잠금 질문
172
작성한 질문수 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)와 같이 사용하여 데이터를 읽는 동안 다른 트랜잭션의 변경을 방지할 수 있습니다. 이처럼 잠금 메커니즘을 적절하게 활용함으로써 동시성을 관리하고 데이터 무결성을 유지할 수 있습니다.
도메인 주도 설계 측면에서 오프라인 선점 잠금 구현은 애플리케이션의 복잡도와 요구 사항에 따라 다르게 접근할 수 있으므로, 자세한 구현 방법은 프로젝트의 구체적인 상황을 고려하여 결정하는 것이 중요합니다.
도움이 되셨길 바랍니다. 추가적인 질문이 있으시다면 언제든지 문의주세요.
Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.
0
49
2
테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.
0
32
1
JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문
0
57
3
설계 트레이드 오프 링크 접속 안됨
0
85
2
헥사고날 아키텍처와 DDD를 적용할 때, 화면에 강하게 연관된 조회 데이터를 어떻게 다루는 게 좋은지 궁금합니다.
0
134
2
Request DTO에서 Entity를 생성할 때 의존성 방향을 반대로 하면 어떨까요?
0
117
2
안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?
0
127
2
시각 자료도 공유 받을 수 있을지 문의드립니다.
0
55
1
테스트 관련 질문!
0
105
2
N+1 관련해서 질문있습니다.
0
150
3
도메인 모델에서 관계와 규칙을 구분하는 방법
0
146
2
애그리거트 질문있습니다!
0
96
2
헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?
0
226
2
어댑터에서 도메인에 직접 의존하는 경우에 대해
0
214
2
Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.
0
184
2
MemberService와 EmailSender 책임 분리에 대한 질문
0
151
2
NonNullApi를 NullMarked로 대체하라고 합니다.
0
217
2
39. 문서와 코드 다듬기 updateInfo 테스트 질문 있습니다.
0
118
2
도메인 질문있습니다
0
90
2
MSA 질문이 있습니다
0
124
1
Repository Adapter 설계에 대해 피드백을 부탁드립니다
0
152
2
초기 어플리케이션 구동 시 compose.yml 파싱 오류
0
219
2
애플리케이션의 JPA 리턴과 도메인 모델
0
174
2
애그리거트 루트의 하위 도메인들의 depth가 깊어질 때 문의
0
186
2





