스프링에서 트랜잭션 전파(Transaction Propagation)는 트랜잭션의 경계에서 이미 진행 중인 트랜잭션이 있을 때 또는 없을 때 어떻게 동작할 것인가를 결정하는 기능이다. 가령, @Trancational 어노테이션이 존재하는 메서드를 호출했을때, 기존에 트랜잭션이 존재하면 재사용할지, 예외를 던질지 등 행동을 결정할 수 있다.
각 전파 속성
REQUIRED : 트랜잭션이 존재하는 경우 해당 트랜잭션을 사용하고, 없는 경우 생성한다.
REQUIRED_NEW : 트랜잭션이 존재하는 경우 트랜잭션을 잠시 보류시키고, 신규 트랜잭션을 생성한다.
MANDATORY : 트랜잭션이 반드시 있어야 한다. 없다면, 예외가 발생한다. 만약 트랜잭션이 존재하면 해당 것을 사용한다.
SUPPORTS : 존재하는 경우 트랜잭션을 사용하고, 없다면 없이 실행한다.
NOT_SUPPORTED : 존재하는 경우 잠시 보류하고, 없다면 트랜잭션이 없는 상태로 처리된다.
NESTED : 있다면 SAVEPOINT를 남기고 중첩 트랜잭션을 시작한다. 없는 경우 새로운 트랜잭션을 시작한다.
NEVER : 존재하는 경우 예외를 발생시키고, 없다면 생성하지 않는다.
'cs(with 매일메일)' 카테고리의 다른 글
| [260115목] 시간복잡도와 공간복잡도의 차이점은 무엇인가요? (0) | 2026.01.23 |
|---|---|
| [260114수] CDN이란 무엇인가요? (0) | 2026.01.23 |
| [260112월] 동시성 문제 중 경쟁 상태를 해결하려면 무엇이 보장되어야 하나요? (0) | 2026.01.20 |
| [260109금] DNS란 무엇인가요? (0) | 2026.01.19 |
| [260108목] 연속 메모리 할당 기법에 대해서 설명해주세요. (0) | 2026.01.19 |