Transaction

최대 1 분 소요

Transaction이란???

작업의 단위이다.
작업의 단위이며, 하나의 트랜잭션은 Commit되거나 Rollback된다.

왜 사용할까?

보통.. 하나의 작업은 여러개의 쿼리를 요구한다.
데이베이스를 다룰 때 트랜잭션을 적용하면 데이터의 추가,
업데이트, 삭제 등으로 이뤄진 작업을 처리하던도중 오류 발생시 모든 작업들을 원상태로 되돌릴 수 있다.
(모든 작업들이 성공해야만 최종적으로 데이터베이스에 반영하도록 한다.)


송금이라는 작업이 있다고 가정하자.
A가 B에게 일정금액을 송금한다고 가정해보자.
A의 계좌에서는 송금을위해 10000원이 출금되었지만,
B의 계좌에 10000원이 입금되지 않았고, A의 10000원은 증발했다.
이를 복구하는 개념이 트랜잭션이다.

사용법

스프링에서는 간단하게 어노테이션 방식으로
@Transaction을 메소드, 클래스, 인터페이스 위에 추가하여 사용하는 방식이 일반적이며,
이를 선언적 트랜잭션이라 부른다.
적용된 범위에서는 트랜잭션 기능이 포함된 프록시객체가 생성되어 자동으로 commit 혹은 rollback을 진행해준다.

카테고리:

업데이트: