트랜잭션의 정의
트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.
예시)
A라는 사람이 B라는 사람에게 사과 1개를 주고 B가 그 사과를 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 사과를 건네 주었으나 B는 사과를 받지 못했다면 그 거래는 성립되지 않는다. 이처럼 A가 사과를 주는 행위와 B가 사과를 받는 행위는 별개로 분리될 수 없으며 하나의 거래내역으로 처리되어야 하는 단일 거래이다. 이런 거래의 최소 단위를 트랜잭션이라고 한다.
트랜잭션의 4가지 특성
1. Atomicity (원자성)
- 트랜잭션의 연산은 반드시 모두 반영되도록 완료되거나, 아니면 전혀 반영되지 않도록 복구되어야한다.
- (ALL OR NOTHING)
2. Consistency (일관성)
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
3. Isolation (독립성, 격리성)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
4. Durablility (영속성, 지속성)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
@Transactional 어노테이션
- 클래스나 메서드에서 사용할 경우, 해당 범위 내 매서드가 트랜잭션이 되도록 보장해준다.
@Transactional
으로 생성된 프록시 객체는@Transactional
이 적용된 메소드가 호출될 경우,PlatformTransactionManager
를 사용하여 트랜잭션을 시작하고, 정상 여부에 따라 Commit/Rollback 동작을 수행한다.
참고
출처: https://data-make.tistory.com/738 [Data Makes Our Future:티스토리]
[데이터베이스] 트랜잭션의 ACID 성질 - 하나몬
트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛을 말한다. 데이터베이스 트랜잭션은 ACID라는 특성을 가지고 있다. ACID는 데이터베이스 내에서 일어나는 하나의 트랜잭션(transaction)의 안
hanamon.kr
http://wiki.hash.kr/index.php/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98
트랜잭션 - 해시넷
트랜잭션(transaction)이란 "쪼갤 수 없는 업무 처리의 최소 단위"를 말한다. 거래내역이라고도 한다. '트렌젝션'이 아니라 '트랜잭션'이 올바른 표기법이다. 영어로 간략히 Tx라고 표기하기도 한다.
wiki.hash.kr
'IT Diary > # JPA' 카테고리의 다른 글
JPA ( Java Persistence API ) 의 정의 (0) | 2022.01.08 |
---|