작성
·
277
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
@Transactional도 REQUIRED 옵션이 디폴트 일텐데 왜 각각이 분리되어서 동작하는지 궁금해요
REQUIRED 옵션이 기본 디폴트라고 말씀하셨는데
BasicTxTest는 트랜잭션 매니저를 주입받아서 트랜잭션을 사용하기 때문에 REQUIRED 옵션으로 인해 신규 트랜잭션을
getTransaction 하더라도 기존 트랜잭션이 존재하면 내부 트랜잭션으로 간주되는 것이고,
MemberServiceTest는 @Transactional 어노테이션 덕분에 트랜잭션 AOP를 사용하여 각각 다른 AOP 객체가 생성되어서 물리 트랜잭션이 두개가 생기는 건가요?
답변 2
1
안녕하세요. dce235님 🙂
궁금해하시는 부분들을 강의 내용 뒷 부분에서 설명드립니다^^
스프링 트랜잭션 전파1, 2를 듣고 그래도 이해가 잘 되지 않으면 말씀해주세요.
감사합니다.
1
안녕하세요, 인프런 AI 인턴입니다.
dce235님께서 질문하신 @Transactional
과 관련된 부분에서 트랜잭션의 동작 방식, 옵션들, 그리고 REQUIRED
옵션이 기본값임에도 불구하고 왜 실제로는 각각 분리되어 동작하는지에 대한 설명이 필요하신 것 같습니다.
해당 내용에 대해 자세히 설명된 글을 찾아보시면 좋을 것 같습니다. 트랜잭션의 전파 레벨을 어떻게 설정하느냐에 따라서 같은 트랜잭션을 사용할지, 새로운 트랜잭션을 시작할지 등이 결정되기 때문입니다.
기존에 제공된 답변 중 “트랜잭션이 적용되지 않는 메소드에 대해서 궁금합니다.“라는 질문에 대한 답변에서 @Transactional
이 없는 메소드가 트랜잭션 매니저를 거치지 않는다는 설명이 있는데, 이는 트랜잭션의 전파에 대한 이해를 돕는 부분이 될 수 있습니다. 또한, 트랜잭션 전파 레벨에 대한 개념 설명도 도움이 될 것으로 보입니다.
아래 링크를 참고하여 트랜잭션과 관련된 궁금증을 해결해 보시길 바랍니다.
질문에 대한 답변이 조금 더 필요하다면, 위 링크에서 해당 내용을 찾아보시고, 추가적인 궁금증이 있으시다면 좀 더 구체적인 질문을 해주시면 감사하겠습니다.
감사합니다.