inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

REQUIRES_NEW와 예외 핸들링의 상관 관계

59

김준기

작성한 질문수 4

0

REQUIRES_NEW를 올바르게 사용하기 위해선, 다시 말해 외부 트랜잭션과 내부 트랜잭션(신규 트랜잭션)을 제대로 분리하기 위해선 아래와 같이 이해했습니다.

 

이렇게 이해한 이유는 아래와 같습니다.

 

 

따라서, REQUIRES_NEW 를 본래의 의도대로 사용하기 위해선, 반드시 예외 핸들링을 하여 예외 정상처리(예외를 catch하여 먹어버림)해주어야 한다고 이해하였는데, 제가 이해한게 맞을지 여쭤보고 싶습니다 🙂

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.
김준기님께서 이해하신 내용은 매우 정확합니다.

REQUIRES_NEW는 기존 트랜잭션과는 별도의 신규 트랜잭션을 열어줍니다. 따라서 외부 트랜잭션의 흐름에 영향을 주지 않도록 내부 트랜잭션에서 발생하는 예외를 적절하게 핸들링해야 합니다.

트랜잭션 B에서 발생한 예외가 트랜잭션 A로 전파되면, 트랜잭션 A까지도 롤백될 수 있기 때문에 외부 트랜잭션에서 내부 트랜잭션의 예외를 별도로 처리하여 의도한 대로 트랜잭션 간의 결과를 보장할 수 있습니다.

따라서 예외를 캐치하고 처리하여 트랜잭션 A가 원활하게 커밋될 수 있도록 설계하는 것이 중요합니다.
김준기님의 이해가 올바르며, 예외를 제대로 핸들링 하는 것이 REQUIRES_NEW의 의도를 살리는 좋은 방법입니다.

추가적인 정보는 Spring Boot Reference Documentation 에서 확인하실 수 있습니다.

강의 추천해주세요

2

25

1

케이테스트 서버 운영 방법

2

44

1

실습 파일 업로드 안된 것 같아요 이거 강사님한테 보여주세요

1

24

2

젠킨스버전과 플러그인설치

1

36

2