스프링 트랜잭션

JDK Dynamic Proxy 와 CGLib Dynamic Proxy와 CGLib은 모두 런타임 위빙 방식이며 프록시 패턴으로 동작한다. 따라서 메서드 실행 시에만 위빙이 가능하다. 그래서 Dynamic Proxy와 CGLib를 사용하는 스프링 AOP도 메서드 실행 조인포인트만 지원한다.위빙 이란 ?위빙(Weaving)은 AOP(Aspect-Oriented Programming)에서 사용되는 중요한 개념으로, 어드바이스(Advice)와 타겟 객체 사이에 관점 지향 기능을 적용하는 프로세스를 의미합니다. 클래스 로딩 시점이나 프록시 객체 생성 시점에, AOP 프레임워크가 바이트코드를 수정하여 어드바이스를 적용하는 방식입니다. 이 방식은 JDK Dynamic Proxy나 CGLIB Dynamic ..
트랜잭션하나의 작업단위로 묶어 실행 시킨다. 트랜잭션은모든 작업을 완료 (commit) / 모든 작업을 무효화 (rollBack)단 두가지만 가능해야 한다.원칙트랜잭션에는 4가지 원칙이 있다.원자성 (Atomicity)트랜잭션은 원자적인 단위로 간주된다.트랜잭션에 속한 모든 연산은 전체가 성공하거나 전체가 실패하는 것만 보장한다.트랜잭션이 동작 중 어떤 연산이 실패하면 모든 상태가 이전으로 돌아간다(rollback). 일관성 (Consistency)트랜잭션의 실행 전후에 데이터베이스는 일관된 상태여야 한다. 은행 A 계좌에서 돈을 인출 한다 B 계좌로 돈이 입금 된다  쇼핑몰 고객이 A상품을 구매한다A상품은 재고가 차감 된다   고립성 (Isolation)여러 트랜잭션이 동..