@Transactional어노테이션을 사용한 선언적 트랜잭션 관리의 전체 흐름에는 크게 3가지 요소가 등장한다.
1) 트랜잭션 매니저 2) 트랜잭션 AOP 프록시 3) 트랜잭션 동기화 매니저
클라이언트 코드로부터 요청이 들어오면 트랜잭션 AOP 프록시가 트랜잭션 매니저를 획득하고, 트랜잭션을 시작하기 위해서 트랜잭션 매니저에게 요청한다.
트랜잭션 시작 요청을 받은 트랜잭션 매니저는 데이터소스를 통해 커넥션을 받아오고 트랜잭션을 시작한다.
그리고, 트랜잭션 매니저는 트랜잭션이 시작된 커넥션을 동기화 매니저에 보관한다.
이후 트랜잭션이 종료되는 경우 트랜잭션 매니저는 트랜잭션 동기화 매니저에 보관한 커넥션을 가져와 트랜잭션을 종료하고 커넥션을 반환하거나 종료한다.
요소비유실제 역할
| 트랜잭션 매니저 | 예산 담당 과장 | 트랜잭션 시작/종료 결정, DB 커넥션 관리 |
| AOP 프록시 | 비서 | 메서드 실행 전후로 트랜잭션 처리 |
| 동기화 매니저 | 금고 | 커넥션을 안전하게 보관하고 공유 |
'cs(with 매일메일)' 카테고리의 다른 글
| [251226금] 코드 커버리지에 대해서 설명해주세요. (0) | 2026.01.14 |
|---|---|
| [251225목] 의존성 주입이랑 무엇인가요? (0) | 2026.01.14 |
| [251223화] 전략 패턴에 대해서 설명해주세요. (0) | 2026.01.14 |
| [251222월] 정적 IP 주소 할당 방식과 동적 IP 주소 할당 방식의 차이점을 설명해주세요. (0) | 2026.01.13 |
| [251219금] 단일 장애 지점(SPOF)이란 무엇인가요? (0) | 2026.01.13 |