트랜잭션 3

[SpringBoot] @Transactional로 트랜잭션이 적용되는 원리

💡궁금하게 된 계기 하나의 클래스 안에서, @Transactional이 없는 메서드에서 있는 메서드를 호출할 때 트랜잭션이 적용되지 않는다는 것을 알았다. 이 문제로 부터, 궁금한 것을 이어가다보니 트랜잭션 어노테이션의 동작 방식에 대해 조사하게 되었다. ✅ 필요한 사전 지식 2023.03.21 - [CS/디자인패턴] - Proxy Pattern | 프록시 패턴 2023.03.22 - [Programming/Spring] - [SpringBoot] 관점 지향 프로그래밍 AOP의 개념과 사용법 @Transactional이 적용되는 과정 간단하게 보기 Spring Boot의 @Transactional은 AOP와 Proxy를 기반으로 동작한다. 정확히는, @Transactional은 AOP를 이용하고, AOP..

Programming/Spring 2023.05.06

[SpringBoot] 관점 지향 프로그래밍 AOP의 개념과 사용법

🐣 AOP란? AOP(Aspect Oriented Programming)는 관점 지향 프로그래밍이라는 의미이다. 이때 말하는 관점은 아래와 같이 두 분류로 나눌 수 있다. 1. 여러 메서드에 공통으로 사용하는 기능 : 주로 로깅이나 성능 측정과 같은 부가적인 로직이 이에 해당한다. 2. 특정 메소드에서만 사용하는 핵심 기능 : 어플이 제공하는 핵심 비즈니스 로직 그렇다면, "AOP를 사용했을 때 어떤 이점"이 있을까 여러 메서드에 공통적으로 사용하는 코드를 분리함으로써 코드 중복을 줄일 수 있다. 또한, 이 코드에서 수정 사항이 생기면 모든 파일을 살펴볼 필요 없이 분리된 코드만 수정하면 되기 때문에, OOP원칙에 더 맞는 코드가 된다. 또한, 비즈니스 로직에는 부가적인 코드가 섞여있지 않으므로 가독성이..

Programming/Spring 2023.03.22

Spring(11) - Spring & Mybatis 실습2 : Transaction처리

0. Transaction처리 해주는 이유 transaction이란 DB의 작업 단위이다. Spring에서 SqlSession을 관리할 때, default가 AutoCommit으로 되어있다. Transaction관리자를 등록해서 DB에 작업을 했을 때, Exception이 없으면 commit하고, 있으면 알아서 rollback해주기 위해 사용된다. 1. Transaction library추가 pom.xml에 아래 코드를 추가해서 maven update를 해서 적용시킨다. org.springframework spring-tx ${org.springframework-version} 2. Transaction 관리할 객체 생성&등록하기 1. namespace에 tx 추가하기 root-context.xml의 N..

Programming/Spring 2022.05.07