Transaction(트랜잭션)

컴공생의 코딩 일기·2023년 1월 4일
0

스프링

목록 보기
12/16
post-thumbnail

Transaction(트랜잭션)

Transaction 이란?

트랜잭션이란 쪼갤 수 없는 업무 처리의 최소 단위를 말한다. 예를 들어 A라는 사람이 B라는 사람에게 계좌이체를 한다고 가정하면 A라는 사람이 B에게 송금하는 과정에서 A는 송금이 완료 됐지만 시스템에서 송금하는 과정에서 B에게 입금이 되지 않고 에러가 생겼을 경우 A는 돈이 출금됐지만 B는 받지 못하는 상황이 생긴다. 이런 상황을 만들지 않기 위해 트랜잭션을 사용해 A부터 B까지 모든 처리 과정이 끝이 났을 경우 실행이 완료 되고 중간에 하나라도 오류가 생길 경우 처음 실행한 부분도 전부 실행되지 않게 만드는 것을 트랜잭션이라고 한다. 즉 모두 실행되거나 모두 실행되지 않는다(all-or-nothing)

img

ACID

ACID는 데이터의 유효성을 보장하기 위한, 트랜잭션의 특징들의 앞글자를 딴 단어이다.

  1. Atomicity (원자성)
    • 모든 작업이 반영되거나 모두 롤백되는 특성
  2. Consistency (일관성)
    • 데이터는 미리 정의된 규칙에서만 수정이 가능한 특성을 의미한다. 숫자 컬럼에 문자열 값이 저장이 안 되도록 보장해준다.
  3. Isolation (고립성)
    • A와 B 두 개의 트랜잭션이 실행되고 있을 때, A의 작업들이 B에게 보여지는 정도를 의미한다.
  4. Durability (연구성)
    • 한 번 반영(커밋)된 트랜잭션의 내용은 영원히 적용되는 특성을 의미한다.
profile
더 좋은 개발자가 되기위한 과정

0개의 댓글