트렌젝션의 정의는 이렇다
트랜잭션(transaction)은 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스에서 논리적인 작업의 단위가 된다.
딱 봐도 무슨소리인지 모르겠다..
예시를 들어 설명하면 조금 쉽다
A씨가 스타벅스 카드에 돈을 충전하려고 5만원을 결제한다고 생각해보자
두 가지의 작업을 하게 된다
하지만 5만원이 빠져나간뒤에 오류가 난다면?
A씨의 통장에는 5만원이 사라졌지만 스타벅스는 돈을 안 받은것으로 처리할 것이다.
이렇게 하나 이상의 작업을 하다 오류가 났을 때를 방지하기 위해
트랜잭션이 등장한다!
하나 이상의 작업을 하나로 묶어서 취급하는 것이다!
여기서 등장하는 ACID!
트렌잭션은 하나 이상의 작업을 하나로 묶는다고 했다
그런 트렌잭션이 가진 특징을 ACID라고 한다
원자성 (Atomicity): 트랜잭션 내의 모든 작업은 중간에 멈추지 않는다.
전부 성공하거나 (커밋), 하나라도 실패하면 시작지점으로 돌린다(롤백)
일관성 (Consistency): 트랜잭션이 완료되면 데이터의 일관성이 보장된다.
고립성 (Isolation): 여러 개의 트랜잭션이 동시에 실행되더라도, 각 트랜잭션은 서로에게 영향을 주지 않고 독립적으로 실행한다.
지속성 (Durability): 트랜잭션이 성공적으로 완료된 후에는(커밋) 그 결과가 영구적으로 데이터베이스에 저장되어야 한다.
각각의 앞글자를 따서 ACID라고 부른다 중요한 개념이니 기억해두자!