ACID
Atomicity 원자성, Consistency 일관성, Isolation 격리성, Durability 지속성
데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 의미함
각 속성의 의미
1. Acomicity 원자성
트랜잭션 내부 연산들이 부분적으로 실행되고, 중단되지 않는 것을 보장함
트랜잭션은 전체 성공과 전체 실패 중 한 가지만 수행함
계좌이체 트랜잭션은 A계좌 출금->B계좌 입금 연산으로 이루어져 있고, 입금이 실패하면 출금을 취소해야 함
2. Consistency 일관성
트랜잭션이 성공적으로 완료되면 일관성 있는 데이터베이스 상태로 유지되는 것을 보장함
데이터베이스에 정의된 규칙을 트랜잭션이 위반하는 경우(제약조건 위반) 해당 트랜잭션은 취소되어야 함
3. Isolation 격리성
동시에 실행되는 여러 트랜잭션이 서로 독립적임을 보장함
트랜잭션 사이에 다른 트랜잭션이 끼어들지 않는 것을 보장함
트랜잭션 밖에서 연산 중간 단계의 데이터를 볼 수 없음을 의미함
계좌 이체 작업에서 A 계좌의 잔고와 B 계좌 잔고 총합이 10,000원이면 특정 순간에는 총합이 10,000원이 아닐 수 있음
하지만, 다른 트랜잭션에서 볼 때는 잔고의 총합이 항상 10,000원이도록 보장해야함
4. Durability 지속성
성공적으로 수행된 트랜잭션은 영원히 반영됨을 보장함
시스템에 장애가 발생해도 성공적으로 트랜잭션의 결과는 항상 데이터베이스에 반영되어 있어야 함
전형적으로 트랜잭션은 로그로 남고, 로그가 저장되어야 트랜잭션이 성공되었다고 간주함
추후 장애가 발생한다면 로그를 활용해 데이터베이스를 회복함
출처
[1] 매일메일. ACID에 대해서 설명해주세요. 250207. 123번. https://maeil-mail.kr
'개발자 강화 > 백엔드' 카테고리의 다른 글
🌟[공부, 개발] NestJS의 Pipes란? (0) | 2025.02.08 |
---|---|
[매일메일] 캐싱 전략 (BE.250205) (0) | 2025.02.08 |
[매일메일] 동시성 제어(BE.250114/250115/250205/250106 통합) (0) | 2025.02.06 |
[매일메일] CORS란? (BE.250116) + (FE.250205) (0) | 2025.02.05 |
[매일메일] 로드 밸런싱이란? (BE.250203) (0) | 2025.02.03 |