Transaction 전파 전략:
트랜잭션 전파는 이미 진행 중인 트랜잭션이 있을 때 새로운 트랜잭션을 어떻게 처리할지를 정의합니다. 주요 전략은 다음과 같습니다:
REQUIRED (기본값):
진행 중인 트랜잭션이 있으면 참여, 없으면 새로 시작
가장 일반적으로 사용되는 전략
SUPPORTS:
진행 중인 트랜잭션이 있으면 참여, 없어도 비트랜잭션으로 실행
트랜잭션이 필수적이지 않은 읽기 작업에 적합
MANDATORY:
진행 중인 트랜잭션이 반드시 있어야 함. 없으면 예외 발생
독립적으로 실행되면 안 되는 비즈니스 로직에 사용
REQUIRES_NEW:
항상 새로운 트랜잭션을 시작. 기존 트랜잭션은 일시 중단
독립적인 트랜잭션이 필요한 경우 사용 (예: 로깅)
NOT_SUPPORTED:
트랜잭션 없이 실행. 진행 중인 트랜잭션이 있다면 일시 중단
트랜잭션이 필요 없는 작업에 사용
NEVER:
트랜잭션 없이 실행. 진행 중인 트랜잭션이 있으면 예외 발생
트랜잭션을 허용하지 않는 작업에 사용
NESTED:
진행 중인 트랜잭션이 있으면 중첩 트랜잭션을 생성, 없으면 REQUIRED처럼 동작
세부 작업의 롤백이 전체에 영향을 주지 않아야 할 때 사용
이러한 전파 전략들은 @Transactional 어노테이션의 propagation 속성으로 지정할 수 있습니다.
'개발일기 > CS(면접)' 카테고리의 다른 글
시간 복잡도란? (0) | 2024.09.08 |
---|---|
OSI 7계층 이란? (0) | 2024.08.21 |
API 요청에 대한 Spring 내부 동작 (0) | 2024.08.13 |
Spring AOP 란? (0) | 2024.08.12 |
JWT,Refresh,Access Token란? (0) | 2024.08.09 |