본문 바로가기

트랜잭션(Transaction) & ACID 본문

개발/알쓸코잡

트랜잭션(Transaction) & ACID

자전하는명왕성 2023. 2. 13. 21:45

트랜잭션

트랜잭션은 DB 내에서 한 묶음으로 처리되야 하는 명령어들을 모아 놓은 최소 작업 단위를 의미한다.

 

트랜잭션은 데이터의 일관성을 유지하며 안정적으로 데이터를 복구하는 것이 목적으로,

여러 단계로 나뉘어진 단계들을 한 가지의 단계로 다룰 수 있다는 특징을 가진다.

 

때문에 트랜잭션 내에 포함된 명령어들이 모두 정상적으로 처리되면 정상 종료되며,

반대로 하나의 명령어에 문제가 생겼을 경우 명령어 전체가 취소될 수 있다.

위와 같은 처리는 트랜잭션이 작업 처리의 일관성(Consistency)

트랜잭션이 모두 반영되거나 그렇지 않다는 원자성(Atomicity)의 특징을 가진다고 볼 수 있다.

 

추가적으로 트랜잭션은 둘 이상의 데이터들이 명령문에 의해 처리되는 과정이라고도 말할 수 있는데,

트랜잭션 그 말마따나 '거래'라는 의미로도 이해할 수 있다.

 

예시로 데이터 A와 B 가 C를 거래하는 과정을 간단하게 표현한다.

이때, C를 이동시키는 과정과 거래 후의 상태에 대한 검증에서 해당 트랜잭션이 불완전하게 이루어졌다면,

모든 이루어진 모든 작업을 취소하고 거래 전의 상태로 되돌리게 된다.

이 과정에서 트랜잭션은 다른 연산이 이루어질 수 없는 독립성(Isolation)

반영된 결과가 영구적이라는 영구성(Durability)의 특징을 갖는다고 볼 수 있다.

 

ACID

ACID 란, 앞서 트랜잭션을 소개하면서 나열한

원자성(Atomicity), Consistency(일관성), Isolation(독립성), Durability(영구성)의 성질을 가리키는 약어다.

  • 원자성은 그말마따나 하나의 단위로 보며, 트랜잭션 내 단계가 모두 실행 || 모두 실행되지 않음을 보장하는 능력이며,
  • 일관성은 트랜잭션이 성공적으로 수행될 경우, 그 결과가 일관성을 갖고 유지되는 능력을 말한다.
  • 독립성은 연산 중 다른 트랜잭션 요소가 개입하지 못하도록 하게 하는 능력을 말하며,
  • 영구성은 완료된 트랜잭션의 결과는 영구적으로 유지되어야 한다는 것을 의미한다. 

 

'개발 > 알쓸코잡' 카테고리의 다른 글

logout process 과정  (0) 2023.02.19
이미지 업로드 프로세스  (0) 2023.02.15
Redis  (0) 2023.02.13
CORS (Cross-Origin Resource Sharing)  (0) 2023.02.12
소셜 로그인 프로세스  (0) 2023.02.11
Comments