Spring Boot

Spring 트랜잭션

@Transactional, propagation, isolation, rollback, PlatformTransactionManager를 사용한 트랜잭션 관리

30 면접 질문·
Senior
1

Spring에서 @Transactional 어노테이션의 주요 역할은 무엇입니까?

답변

@Transactional은 메서드가 트랜잭션 컨텍스트 내에서 실행되어야 함을 나타내며, 데이터베이스 작업의 원자성을 보장합니다. Spring은 클래스 주위에 AOP proxy를 자동으로 생성하여 트랜잭션의 시작, commit, rollback을 처리합니다. 이 선언적 접근 방식은 TransactionTemplate이나 PlatformTransactionManager를 사용한 수동 프로그래밍에 비해 트랜잭션 관리를 크게 단순화합니다.

2

@Transactional의 기본 propagation 타입은 무엇입니까?

답변

Propagation.REQUIRED는 기본 propagation 타입입니다. 이 전략에서 Spring은 기존 트랜잭션이 있으면 그것에 참여하고, 없으면 새로운 트랜잭션을 생성합니다. 이는 대부분의 사용 사례에서 가장 일반적이고 직관적인 동작으로, 데이터베이스 작업에 항상 트랜잭션이 존재하도록 보장합니다.

3

@Transactional 메서드에서 RuntimeException이 발생하면 어떻게 됩니까?

답변

기본적으로 Spring은 RuntimeException(또는 Error)이 발생하면 트랜잭션을 자동으로 rollback합니다. 이를 통해 예기치 않은 오류가 발생할 경우 데이터베이스 변경 사항이 취소되도록 보장합니다. 반면, checked 예외(Exception을 상속하지만 RuntimeException은 아닌 예외)는 rollbackFor로 명시적으로 지정하지 않는 한 기본적으로 rollback을 트리거하지 않습니다.

4

@Transactional 어노테이션은 어디에 적용할 수 있습니까?

5

Propagation.REQUIRES_NEW는 어떤 동작을 합니까?

+27 면접 질문

다음 면접을 위해 Spring Boot을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기