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

이지현님의 프로필 이미지

작성한 질문수

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

주문, 주문상품 엔티티 개발

Item 클래스의 addStock, removeStock method 동시성 문제가 없나요?

20.02.12 23:21 작성

·

219

2

안녕하세요.

강의 잘 보고있습니다.

여러 스레드에서  addStock 또는 removeStock method 실행시 stock 수가 변경할때 동시성 문제가 발생하지 않나요?

junit으로 multi thread 요청을 테스트 해보고 싶어서 이런 저런 방법을 시도중인데 제가 테스트를 잘못한건지 동시성 문제가 발생하더라구요..

JPA에 입문한지 얼마 안되서 어떤식으로 해결하는게 좋을지 잘 모르겠습니다.. ㅠ

답변 1

0

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

2020. 02. 13. 00:36

안녕하세요. 지현님

이런 경우 당연히 동시성 문제가 발생합니다^^!

JPA는 동시성 문제를 해결하기 위해 낙관적 락과 비관적 락 2가지 방식을 제공합니다.

이 부분에 대한 자세한 내용은(사실 너무 길어서...) 자바 ORM표준 JPA 프로그래밍 책 16.1 트랜잭션과 락 부분을 참고해주세요^^