
트랜잭션(Transaction)이란? 데이터베이스에서 여러 작업을 하나의 작업 단위로 묶어 처리하는 기능이다. 모든 작업이 전부 성공해야만 실제로 적용되고, 하나라도 실패하면 전체가 취소(rollback)된다.
회원가입 로직에서
1. 회원정보 member를 DB에 저장
2. 회원 선호 preferences를 DB에 저장
-> 2번에서 실패했을 때 1번이 이미 저장돼버리면 데이터가 불완전하게 남는다.
이를 막기 위해 1번과 2번 모두가 성공한 후, 실제로 적용되게 해야한다. 바로 그걸 트랜잭션이 해준다.
Atomicity(원자성): 모두 성공하거나, 모두 실패
Consistency(일관성): 데이터는 항상 유효한 상태를 유지
Isolation(고립성): 동시에 실행되어도 서로 간섭하지 않음
Durability(지속성): 트랜잭션이 완료되면 DB에 영구 반영됨