인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

정윤성님의 프로필 이미지
정윤성

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA 관련질문

작성

·

209

0

1.비관적락 + 낙관적락 vs 트랜잭션 리드커밋디드 + 낙관적락

책에서는 후자를  JPA에서 추천해주신다고 하였는데 그렇다면 전자같은 2개의 락은 따로 사용하지 않는건가요 ??

2.본 강의 예제에서의 회원가입, 주문 등 을 DDD에서 말하는 이벤트로 처리해서 하는것도 좋을까요 ??

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 정윤성님

1. 정확하게는 비관적 락 보다는 낙관적 락을 사용하는게 더 실시간 애플리케이션에서는 나은 선택입니다. 왜냐하면 비관적락을 거는 순간 보통 나머지 쓰레드들이 블록킹을 당하기 때문에, 장애로 이어질 수 있기 때문입니다.

2. 사실 DDD에서 말하는 이벤트로 처리하는 방식으로 처리하려면 설계 단계부터 에그리것트에 대한 정의가 잘 되어 있어야 합니다. 회원과 주문을 명확하게 연관관계를 끊어내고, 에그리것트를 각각 잘 가지고 가면, 말씀하신데로 처리하는 것도 괜찮습니다. 그런데, 막상 이벤트 방식으로 해보시면 코드의 흐름이 중간에서 잘 끊어지기 때문에, 정말 큰 애플리케이션에서만 권장하고, 작은 애플리케이션에서는 단순하게 코드의 흐름을 쭉 이어가는 방식이 더 나을 수 있습니다.

감사합니다^^

정윤성님의 프로필 이미지
정윤성

작성한 질문수

질문하기