inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

재고시스템으로 알아보는 동시성이슈 해결방법

Optimistic Lock 활용해보기

안녕하세요 강사님 save 메서드 사용 질문있습니다.

505

진짜 잘하고싶다

작성한 질문수 30

1

트랜잭션이 걸려있는 경우에

stock.decrease(quantity)만 해줘도 영속성 컨텍스트에 있는 값을 가져와서 재고 감소가 가능한 걸로 아는데

왜 save를 한 번 더 해주는 건지 이유가 궁금합니다.

그리고 위에 제가 이해한 영속성 컨텍스트에 대한 내용도 맞을까요?

java spring 동시성

답변 2

0

최상용

dbsquddlfz 님 안녕하세요.
dbsquddlfz 님께서 이해하신대로 save 메소드를 별도로 호출하지 않아도 괜찮습니다.
그럼에도 불구하고 강의에서 save 를 한 이유는 JPA 를 모르시는 분이 강의를 들을때 어색하지 않게하기 위해 명시적으로 표현하였습니다.
감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. save 메서드에 대한 질문이시군요.

트랜잭션이 걸려있는 경우에 stock.decrease(quantity)만 수행하면 영속성 컨텍스트에 있는 값을 가져와서 재고 감소가 가능합니다. 그러나 save 메서드를 한 번 더 호출하는 이유는, 변경된 값을 데이터베이스에 반영하기 위해서입니다.

save 메서드는 영속성 컨텍스트의 변경 내용을 데이터베이스에 적용하는 역할을 합니다. 만약 save 메서드를 호출하지 않으면, 영속성 컨텍스트에만 변경된 내용이 반영되고, 데이터베이스에는 변경이 반영되지 않습니다. 따라서 save 메서드를 호출하여 변경된 값을 데이터베이스에 저장하게 됩니다.

영속성 컨텍스트에 대한 설명을 보면, 영속성 컨텍스트는 엔티티의 상태를 관리하고 엔티티를 데이터베이스에 반영하는 등의 역할을 하는 곳이라고 설명되어 있어요. 따라서 제가 이해한 내용과 동일하게, 영속성 컨텍스트에 있는 값을 가져와서 사용하는 거군요.

더 자세한 내용은 JPA와 Hibernate 관련 문서를 참고하시면 도움이 될 거라고 생각됩니다.

레디선 테스트코드에서 채널이름은 없어도 되는건가요?

0

43

2

낙관적 락을 사용할 떄 차이점

0

120

2

동시성 검증 코드에 관한 문의

0

94

2

단일연산

0

70

2

낙관적락vs. 레디스락

0

108

2

안녕하세요. 레디슨 질문있습니다..!!

0

67

2

@Lock(OPTIMISTIC)이 필요한 이유

0

90

2

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

0

132

2

DataSource Hikari 사용 이유

0

147

2

saveAndFlush 사용 이유 문의

0

113

3

비관적 락 VS 네임드 락

0

160

3

application.yaml 에 redis 정보

0

100

2

왜 클래스 이름에 Facade 가 붙나요?

0

185

2

@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.

0

219

2

@modifying 이용한 동시성 제어

0

168

2

DB락과 분산락

0

260

2

NamedLock 테스트 실패

0

186

2

테스트에서 트랜잭션 어노테이션 질문 있습니다.

0

172

2

optimistic Lock 재시도 질문입니다.

0

230

2

낙관적 락 테스트 실패

0

239

2

오류?

0

1627

4

LettureLockStockFacadeTest에서 오류가 발생합니다.

1

268

2

Pessimistic Lock 전체 테스트 오류 문의

0

360

3

비관적 락 vs 레디스(Lettuce)락 비교 관련 질문

0

460

2