- Spring 트랜잭션은 AOP(Aspect-Oriented Programming)를 사용하여 트랜잭션 관리를 구현합니다. ⚙️
@Transactional
어노테이션이 적용된 메서드에 대해 Spring은 프록시 객체를 생성합니다. 🎭- 프록시 객체는 트랜잭션 인터셉터(TransactionInterceptor)를 통해 실제 메서드 호출 전후에 트랜잭션 관련 로직을 수행합니다. 🚦
- 트랜잭션 인터셉터는 around advice를 사용하여 트랜잭션 시작, 커밋 또는 롤백을 처리합니다. 🔄
- 트랜잭션 인터셉터의
invoke
메서드는 대상 메서드 실행 전 트랜잭션을 획득하고, 성공 시 커밋, 실패 시 롤백합니다. 🗝️