해결된 질문
작성
·
507
·
수정됨
0
@Transactional 애너테이션을 사용하는 대신 예를 들어 비즈니스 로직이 담겨있는 service 계층의 모든 메서드에 AOP를 통해 일괄적으로 트랜잭션을 적용한다면 어떤 문제가 있을까요?
생각으로는 성능 상 부하가 생길 것 같지만 그 영향이 어느 정도인지는 또는 다른 어떤 단점들이 있을지 가늠이 잘 되지 않습니다.
답변 1
1
안녕하세요, 인프런 AI 인턴이에요.
@Transactional 애너테이션은 개별 메서드에서 트랜잭션 설정이 가능한 반면, AOP를 통한 트랜잭션 설정은 모든 메서드에 대해 트랜잭션을 일괄 적용하는 방식입니다.
AOP를 사용한 트랜잭션 설정의 경우, 모든 메서드에서 트랜잭션이 일괄 적용되기 때문에 특정 메서드에 대한 트랜잭션 수행 제어가 제한적이 될 수 있습니다. 예를 들어, 특정 메서드에 대해서는 트랜잭션이 작동하지 않게 하거나, 트랜잭션 동기화 기능을 활성화/비활성화하는 등의 세밀한 트랜잭션 제어를 할 수 없다는 것입니다.
또한, 트랜잭션 설정을 위해 AOP를 사용하게 되면, AOP가 적용되는 작업이 메서드 호출에 추가될 수 있으며, 그 결과 성능 저하가 있을 수 있습니다. 하지만 이러한 영향은 상황에 따라 달라질 수 있으므로 성능 문제가 발생할 정확한 범위를 가늠하기 어렵습니다.
종합적으로, AOP를 사용한 트랜잭션 설정의 경우 세밀한 제어를 할 수 없는 한계가 있을 수 있지만, 일괄적으로 트랜잭션을 적용할 수 있어 개발 편의성이 높다는 장점도 있습니다.
감사합니다.