@Transactional선언 메서드 정상동작하는건가요?
보상 트랜잭션 예제 소스에 createOrderAndStockDecreaseEvent 메서드에 Transactional선언되어 있고 주석에 하나의 트랜잭션으로 묶는다고 명시하신거 보면 트랜잭션되게 하시려고 한거 같은데요
근데 자기호출로 프록시 안타서 트랜잭션으로 안묶이는데 혹시 예제라서 그냥 해놓으신건가요?
Answer 2
1
후아휴님 안녕하세요!
해당 내용은 제가 예제 코드를 제미나이로 생성하면서 의도와 다르게 작성된 부분입니다!
(Self Invocation이 아니라 public 되어 있어 외부 호출을 가정하여 이렇게 작성된듯합니다)
이 부분은 강의 흐름에서 주요하게 소개되는 내용은 아니지만, 혼란을 드릴 수도 있는 내용이라고 생각되어 강의 예제 코드에 주석으로 보충 설명과 이 질문글 링크를 남겨놨습니다.
제보해주셔서 감사하고, 수강에 불편을 드려서 죄송합니다. (_ _)
0
안녕하세요, 인프런 AI 인턴입니다.
후아휴님, 질문 주신 내용은 보상 트랜잭션 예제에서 @Transactional이 제대로 동작하는지에 대한 문제인데요. 이 문제는 스프링 프레임워크에서 트랜잭션이 AOP(Aspect Oriented Programming)를 통해 프록시 기반으로 작동하기 때문에 발생할 수 있는 일반적인 문제 중 하나입니다.
자기 호출 문제:
@Transactional은 메서드가 외부에서 호출될 때에만 프록시를 통해 트랜잭션이 관리됩니다. 내부 메서드 호출(자기 호출)일 경우, 트랜잭션 프록시가 만들어지지 않으므로 트랜잭션이 적용되지 않습니다.예시 코드의 의도: 예제에서는 코드의 구조를 간단하게 설명하기 위해
@Transactional을 직접적인 메서드에 사용했을 수 있습니다. 하지만, 실제 작동을 기대하려면 트랜잭션이 적용될 수 있도록 외부에서 메서드를 호출해야 합니다.
이와 관련하여 더 자세한 이해를 돕기 위해 유용한 URL을 공유합니다:
- 스프링 트랜잭션 자기 호출 문제: 기존에 유사한 질문이 있었던 스레드입니다. 이 링크에서 질문자와 강사님의 대화가 진행된 방식과 트랜잭션 적용의 핵심을 이해할 수 있습니다.
현재 베타 기능으로 제공되는 답변으로서, 설명이 만족스럽지 않을 수 있어 양해 부탁드립니다. 추가적으로 질문이 있으시다면, 이어서 질문해 주시면 강사님께서 직접 더 상세히 안내해 주실 것입니다. 🙏
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
패키지 구분에 대해 궁금한게 있습니다
0
8
1
섹션4 AWS NAT Instance생성하는 과정에서 오류가 지속해서 발생합니다.
0
12
1
스프링부트 서버 에러나요
0
17
1
2026.04에 추가된 강의 시청 불가
0
27
1
Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문
0
18
1
인가 코드 발급(프론트 vs 백)
0
28
2
인텔리제이 MCP 서버 설정 관련
0
26
1
Sequence 관련 질문
1
32
2
Image Only Query
1
29
2
프롬프트, 스킬, sub-agent
0
31
1
도메인 모델에서 관계와 규칙을 구분하는 방법
0
37
2
16 강의 메세지 retryCount의 의도
0
23
2
user-service jwt
0
32
2
안녕하세요 강사님 질문 있습니다.
0
58
1
bitnami/kafka 말고 다른 이미지를 사용하는 방법 알려주세요.
0
167
2
카프카 질문
1
92
2
안녕하세요. 타임아웃 시간에 관하여 질문있습니다.
1
108
2
분산 시스템 인증/인가 관련 질문 ..
1
79
2
안녕하세요 주문처리에 관하여 질문있습니다 ㅠ ㅁ ㅜ
2
157
2
[데이터 버저닝을 활용한 멱등성 처리] 멱등성 보장을 위한 version 비교 질문
1
116
2
데이터 버저닝 질문
1
106
2
복제 관련 질문입니다!
2
107
2
영상 편집이 잘못된 것 같아요. (순서가 중간에 계속 바뀜)
0
76
3
혹시 강의자료랑 강의 안에 나오는 pdf와 같은거가요?
1
100
2

