inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 DB 2편 - 데이터 접근 활용 기술

스프링 트랜잭션 전파6 - 내부 롤백

애너테이션 대신 AOP로 트랜잭션 설정하면 어떤가요?

해결된 질문

529

아름

작성한 질문수 6

0

@Transactional 애너테이션을 사용하는 대신 예를 들어 비즈니스 로직이 담겨있는 service 계층의 모든 메서드에 AOP를 통해 일괄적으로 트랜잭션을 적용한다면 어떤 문제가 있을까요?

생각으로는 성능 상 부하가 생길 것 같지만 그 영향이 어느 정도인지는 또는 다른 어떤 단점들이 있을지 가늠이 잘 되지 않습니다.

spring

답변 1

1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

@Transactional 애너테이션은 개별 메서드에서 트랜잭션 설정이 가능한 반면, AOP를 통한 트랜잭션 설정은 모든 메서드에 대해 트랜잭션을 일괄 적용하는 방식입니다.

AOP를 사용한 트랜잭션 설정의 경우, 모든 메서드에서 트랜잭션이 일괄 적용되기 때문에 특정 메서드에 대한 트랜잭션 수행 제어가 제한적이 될 수 있습니다. 예를 들어, 특정 메서드에 대해서는 트랜잭션이 작동하지 않게 하거나, 트랜잭션 동기화 기능을 활성화/비활성화하는 등의 세밀한 트랜잭션 제어를 할 수 없다는 것입니다.

또한, 트랜잭션 설정을 위해 AOP를 사용하게 되면, AOP가 적용되는 작업이 메서드 호출에 추가될 수 있으며, 그 결과 성능 저하가 있을 수 있습니다. 하지만 이러한 영향은 상황에 따라 달라질 수 있으므로 성능 문제가 발생할 정확한 범위를 가늠하기 어렵습니다.

종합적으로, AOP를 사용한 트랜잭션 설정의 경우 세밀한 제어를 할 수 없는 한계가 있을 수 있지만, 일괄적으로 트랜잭션을 적용할 수 있어 개발 편의성이 높다는 장점도 있습니다.

감사합니다.

RepositoryTest의 패키지 위치가 domain인 이유

0

36

2

REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!

0

31

1

update()에 사용하는 setter 질문드립니다.

0

49

1

SQL 중심적 개발의 문제점에 대한 질문

0

75

1

혹시 Containing 을 안쓰신 이유가 있을까요?

0

86

2

[공유] 스프링부트 4.x 버전 mybatis 연동

0

183

1

@repository 어노테이션

0

91

3

ItemService

0

59

1

논리 커밋, 물리 커밋 질문드립니다.

0

54

1

내부 트랜잭션 커밋은 필수인가요?

0

57

1

프록시 커넥션 객체를 반환할 때 생성하는건가요?

0

55

1

Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)

2

180

2

JPQL 대신 네이티브 쿼리를 사용해야 하는 경우

0

80

1

@EventListener(ApplicationReadyEvent.class) 관련

0

89

1

트랜잭션 동기화 매니저와 데이터 소스

0

77

1

DB 관련 강의 개설 계획은 없으신건가요?

0

133

2

물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요

0

94

1

스프링 3 버전 이상 rollbackFor 변경된듯요

1

113

1

트랜잭션 전파 질문.

0

87

1

프로젝트 오픈 에러

0

126

1

외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다

0

84

2

같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환

0

74

1

h2 인메모리 테스트중 예약어 충돌날 경우 대처방법

0

105

1

커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문

0

98

2