인프런 커뮤니티 질문&답변

최승준님의 프로필 이미지

작성한 질문수

스프링 DB 1편 - 데이터 접근 핵심 원리

트랜잭션 문제 해결 - 트랜잭션 템플릿

영한님 TransactionTemplate 설명 관련 질문이 있습니다!

작성

·

266

0

안녕하세요! 강의 잘 보고 있는 학생입니다.

 

'트랜잭션 문제 해결 - 트랜잭션 템플릿' 강의 10분 30초를 보면
영한님께서 트랜잭션 템플릿의 기본 동작이 "체크 예외가 발생하면 트랜잭션을 롤백하지 않고 커밋한다"라고 말씀하셔서

package org.springframework.transaction.support;

위 패키지에 있는 TransactionTemplate의 execute코드를 확인하게 되었는데요

 

예외의 최상위 계층인 Throwable이 catch되면 rollback되는 구조인데, 이렇게 되면 체크 예외여도 롤백이 되는 것 아닌가요??

확인한 버전은 SpringBoot 3.x 버전입니다.

 

현재는 바뀐것인지 아니면, 제가 잘못된 부분을 찾고 있는 것인지 답변 부탁드립니다 감사합니다!

답변 2

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 최승준님

우선 애노테이션을 사용하는 트랜잭션 관리와, TransactionTemplate은 분리해서 이해해야 합니다.

코드를 만들어서 테스트해보시면 아시겠지만, TransactionTemplate은 CheckedException 자체를 반환할 수 없도록 설계되어 있습니다. 따라서 CheckedException을 사용하는 사례 자체가 발생하지 않습니다.

추가로 TransactionTemplate이 더 단순하게 작동한다고 이해하시면 됩니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

최승준님의 질문은 TransactionTemplate 관련하여 “체크 예외와 언체크 예외에 대한 트랜잭션 롤백 처리”에 대한 궁금증으로 이해됩니다. 스프링의 TransactionTemplate이 예외 발생 시 어떤 기준으로 트랜잭션을 롤백하거나 커밋하는지에 관한 질문인 것 같습니다.

강의의 롤백 커밋 기준에 대해 추가로 궁금한 점이 있습니다.에서는 예외와 트랜잭션 롤백에 대한 다소 상세한 설명과 질문자의 자체적인 실험 내용이 포함되어 있습니다. 이는 트랜잭션 롤백과 관련된 상황에서 스프링이 어떻게 작동하는지 규정하는 기본 원칙을 다룹니다. 해당 답변에서는 트랜잭션 내에서 예외 처리가 어떻게 롤백 또는 커밋으로 이어지는지에 대한 설명이 포함되어 있어 관련된 궁금증을 해소하는 데 도움이 될 수도 있습니다.

그러나 직접적으로 TransactionTemplate의 구현체와 관련된 변경사항이나, 정확한 예외 처리 메커니즘에 대한 설명은 포함되어 있지 않습니다.

SpringBoot 3.x 버전에서의 TransactionTemplate 클래스와 관련해 체크 예외 및 언체크 예외의 처리 방식이 어떻게 설계되었는지의 궁금증은 스프링의 공식 문서나 소스 코드를 직접 확인하는 것이 가장 확실한 방법입니다. 스프링 프레임워크의 버전 업데이트로 인해 내부 구현 방식이나 정책이 변경될 수 있으며, 이를 확인하기 위해서는 해당 버전의 공식 문서 리뷰 또는 소스 코드 분석이 필요할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.