[Spring JPA] @Transactional 전파 속성
·
Spring
최근 부모 메서드 → 자식 메서드 호출 흐름에서 트랜잭션이 어떻게 이어지는지 혼동이 있었다. 이 글은 저장과 롤백 결과 중심으로, 부모/자식 메서드 4가지 조합을 간단한 코드로 비교한다.1. @Transactional과 AOP Proxy의 상관관계@Transactional은 Spring AOP 프록시로 동작한다. 프록시가 메서드 호출 앞뒤로 트랜잭션 시작/커밋/롤백을 감싼다.같은 클래스 내부에서 **자기 자신 메서드 호출(self-invocation)**을 하면 프록시를 우회해 어노테이션이 적용되지 않는다.안전한 패턴은 다음 둘 중 하나다.부모/자식을 서로 다른 빈으로 분리하여 호출이 프록시를 통과하도록 구성필요 시 ApplicationContext에서 자기 자신의 프록시 빈을 주입받아 그 빈으로 호출핵..