트랜잭션(Transaction) & ACID 본문
트랜잭션
트랜잭션은 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 |