트랜잭션: 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계
ACID (원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어
트랜잭션의 특징
16) 데이터 2개 이상 저장 시
A 계좌→ B계좌로 200,000 원 이체 시
A 계좌 잔고: 1,000,000 원
B 계좌 잔고: 1,000,000 원
정상 케이스
A 계좌 잔고 200,000 원 이상 확인
A 계좌 잔고 200,000 원 금액 감소
B 계좌 잔고 200,000 원 금액 증가
- B 계좌 잔고: 1,200,000 원 (1,000,000 원 + 200,000 원)
만약, 3번 과정에서 에러가 발생 시
17) 데이터 2개 이상 저장 시 (with 트랜잭션)
트랜잭션 시작
A 계좌 잔고 200,000 원 이상 확인
A 계좌 잔고 200,000 원 금액 감소
B 계좌 잔고 200,000 원 금액 증가
- B 계좌 잔고: 1,200,000 원 (1,000,000 원 + 200,000 원)
모두 성공 시 ⇒트랜잭션 Commit
중간에 하나라도 실패 시 ⇒ 트랜잭션 Rollback
스파르타 강의 내용을 가져온 것이다.
위 내용을 봤을 때 트랜잭션은 jdbc의 Connection 과 같은 역할을 하는 것 같다.
예외 처리를 해 DB와의 통신이 원할 하다면 commit을,아니면 rollback해 자동으로 처리해주는 역할을 하는 것 같다..