JPA/Spring 동기화 문제와 관련하여 문의드립니다.
651
12 asked
안녕하세요.
최근 JPA강의와 Spring boot강의를 연달아 들었는데요, 너무 좋은 강의 감사드립니다.
지금까지 영한님께 배운 내용을 토대로 Spring boot + jpa를 이용하여 사이드 프로젝트를 진행중인데,
동기화 문제와 관련해 문의드리고자 글남깁니다.
제가 문제를 겪은 시나리오는 아래 코드와 같습니다.
이 경우 여러 사용자가 동시에 요청하지 않는 경우에는 문제없이 잘 동작하지만,
동시에 많은 사용자가 접근하게 되는 경우에는 동기화 문제가 발생될 것으로 생각됩니다.
( 어떤 thread가 jpa context에 업데만 해놓고 commit하기전에 다른 스레드에서 쿼리를 통해 데이터를
가지고 온 경우.)
그렇다고 Controller layer에서 단순히 sync 키워드를 사용하게 되면 많은 사용자가 동시에 접근할때,
너무 느려지지 않을까 우려되기도 하는데, 어떤 방식으로 접근하는게 좋을지 조언 여쭙고자 질문드립니다.
@Transactional
boolean addInformation(Data data) {
// 어떤 정보가 현재 DB에 쓰여져 있지 않은 경우에 한해 업데이트.
List<Infomation> info infoRepository.findAllWith(data);
if (info.size() > 1)
return false;
/// DB에 없으므로 db update
.....
}
Answer 1
0
안녕하세요. bs Jeon님 좋은 질문입니다.
실무에서는 보통 장애에 대비해서 서버를 2대 이상 사용하기 때문에, sync 같은 명령어로 막는것은 어렵습니다.
그래서 JPA는 데이터 동기화 문제를 데이터베이스에 맡깁니다.
관련해서 다음 내용을 읽어보시면 도움이 되실거에요.
https://www.inflearn.com/questions/17498
감사합니다.
강의 관련 외 질문입니다.
0
65
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
86
1
BeanCreationException
0
86
3
Update 후 UpdateMemberResponse 매핑할 때
0
46
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
98
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
81
1
루트 쿼리라는것은
0
58
1
메서드를 분리하는 기준
0
62
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
108
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
83
2
fetch join과 영속화와 OSIV의 관계
0
84
2
Distinct 사용 전 결과에 대한 의문
0
113
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
56
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
78
2
dto 필드 속 엔티티 여부
0
58
1
뷰템플릿 사용 시
0
76
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
85
1
DTO 대신 Form 사용은 안되나요?
0
133
1
OSIV ON 상태일 때
0
95
1
fetch join VS fetch join 페이징 궁금증
0
179
2
양방향 연관관계 알아보는 법?
0
104
1
16강 17강 간단 정리 이게 맞을까요 ?
0
165
2

