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

hdr님의 프로필 이미지
hdr

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

jpa 동시성 이슈

작성

·

860

0

안녕하세요. 주옥같은 강의 정말 잘 보고 있습니다.

https://www.inflearn.com/questions/158967/%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94-entitymanager%EC%97%90-%EB%8C%80%ED%95%B4-%EA%B6%81%EA%B8%88%ED%95%9C-%EC%A0%90%EC%9D%B4-%EC%9E%88%EC%96%B4-%EC%A7%88%EB%AC%B8-%EB%82%A8%EA%B9%81%EB%8B%88%EB%8B%A4

이 질문에 답변 해주신 내용을 보면 결국 EntityManager는 동시성 이슈 없이 개발할 수 있다라고 해주셨는데, 한가지 궁금한게 있습니다.

만약 A, B 요청이 동시에 들어온 경우 A, B는 동일한 데이터를 가지게 될 것입니다. 이때 A 요청에서 update 후 commit으로 데이터 변경이 발생되고, 이후 B 요청에서 update 후 commit으로 데이터 변경이 발생되면 A 요청의 update는 반영이 안되는 갱신 손실 현상이 발생할 것으로 생각됩니다. 이러한 경우 lock을 이용해서 처리를 한다고 알고 있는데 혹시 이러한 경우에 대해서 3가지의 질문을 좀 드리고 싶습니다.

1. 위 예시로 적은 상황은 질문 글의 답변에서 말씀해주신 내용과는 다른 내용이라고 보는게 맞을까요?

2. 저의 지식으로는 위 예시의 경우는 lock을 이용해서 갱신 손실을 방지하는 것으로 알고 있는데, lock을 사용하는 방법 말고 다른 방법이 존재하는 걸까요?

3. 동시성 이슈 처리에서 thread-safe한 객체(Atomic 등등)와 db lock을 사용하는 방법 외에도 다른 방법이 있을까요?

저의 지식으로는 명쾌한 해답이 나오지 않아 질문 드리게 되었습니다.

미리 답변 감사드립니다!!!

답변 1

0

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

안녕하세요. hdr님

이 문제는 생각하신 내용과 다른 문제입니다.

추가로 2,3번 질문은 다음 내용을 참고해주세요.

https://www.inflearn.com/questions/17498

https://www.inflearn.com/questions/228082

감사합니다.

hdr님의 프로필 이미지
hdr
질문자

답변 감사드립니다!!

hdr님의 프로필 이미지
hdr

작성한 질문수

질문하기