작성
·
860
0
안녕하세요. 주옥같은 강의 정말 잘 보고 있습니다.
이 질문에 답변 해주신 내용을 보면 결국 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
감사합니다.
답변 감사드립니다!!