pointcut
-
스프링(Spring) AOP(Aspect Oriented Programming) 이용한 트랜잭션(Transaction) 처리 패턴Spring/컨셉 2018. 9. 7. 10:18
트랜잭션이란 '하나의 업무 처리단위' 를 뜻한다. 이해를 돕기 위해 대표적으로 사용하는 것이 예금 입금 및 출금이다. ATM기로 예금을 출금하는 경우를 하나의 트랜잭션으로 본다면 1) 사용자는 ATM기에 원하는 출금액을 입력 2) ATM기는 출금액 확인 후 DB에서 사용자의 잔고를 갱신 ( 잔고 - 출금액으로 ) 3) ATM기는 출금액만큼 투입구에 반환 여기서 문제는 ATM기에 출금액만큼의 돈이 없는 경우이다. 출금액만큼의 금액을 줄 수 없는 경우 ATM은 출금액만큼 사용자에게 줄 수 없지만 DB에서는 사용자의 잔고가 출금액만큼 줄어 있다. 따라서 사용자의 경우 클레임을 걸어 올 것이다. 이를 방지하기 위해 1 ~ 3까지를 하나의 업무 처리단위로 보고 모두 충족시키지 않는 경우 DB를 이전 상황으로 돌려..