You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
6️⃣ 트랜잭션 문제 해결 - 트랜잭션 템플릿
✅ 트랜잭션 사용 코드
템플릿 콜백 패턴을 활용하면 이런 반복 문제를 깔끔하게 해결할 수 있다.✅ 트랜잭션 템플릿
템플릿 콜백 패턴을 적용하려면 템플릿을 제공하는 클래스를 작성해야 하는데, 스프링은
TransactionTemplate라는 템플릿 클래스를 제공한다.execute() : 응답 값(return값)이 있을 때 사용한다
executeWithoutResult() : 응답 값이 없을 때 사용한다.
7️⃣ 트랜잭션 문제 해결 - 트랜잭션 AOP 이해
✅ 프록시를 통한 문제해결
프록시를 사용하면 트랜잭션을 처리하는 객체와 비즈니스 로직을 처리하는 서비스 객체를 명확하게 분리할 수 있다.
트랜잭션 프록시 코드 예시
✅ 스프링이 제공하는 트랜잭션 AOP
✅ @transactional
org.springframework.transaction.annotation.Transactional8️⃣ 트랜잭션 문제 해결 - 트랜잭션 AOP 적용
@Transactional애너테이션을 추가했다.@Transactional애노테이션은 메서드에 붙여도 되고, 클래스에 붙여도 된다. 클래스에 붙이면 외부에서 호출 가능한 public 메서드가 AOP 적용 대상이 된다.✅ AOP 프록시 적용 확인
9️⃣ 트랜잭션 문제 해결 - 트랜잭션 AOP 정리
✅ 트랜잭션 AOP가 사용된 전체 흐름을 그림으로 정리
✅ 선언적 트랜잭션 관리 VS 프로그래밍 방식 트랜잭션 관리
선언적 트랜잭션 관리(Declarative Transaction Management)
프로그래밍 방식의 트랜잭션 관리(programmatic transaction management)
9️⃣ 스프링 부트의 자동 리소스 등록
✅ 데이터소스와 트랜잭션 매니저를 스프링 빈으로 직접 등록
✅ application.properties
✅ 트랜잭션 매니저 - 자동 등록
✅ 데이터소스, 트랜잭션 매니저 직접 등록
✅ 데이터소스와 트랜잭션 매니저 자동 등록
🔗 출처
All reactions