Files
kui-vault/content/03.Note/ACID.md
T
2026-05-04 10:30:04 +09:00

1.7 KiB

id, created, tags, aliases
id created tags aliases
ACID 20260420 2026-04-20 08:44

📑 개념

DB에서 하나의 논리적 작업 단위를 '트랜잭션'이라고 합니다. RDBMS는 이 트랜잭션이 안전하게 처리됨을 보장하기 위해 ACID 특성을 가집니다.

📌 상세

  • Atomicity (원자성): 전부 성공하거나, 전부 실패하거나. - "All or Nothing" 트랜잭션 내의 모든 연산은 반드시 한꺼번에 완료되어야 하며, 그렇지 못할 경우 모두 취소되어야 합니다. 예: 계좌 이체 시 '내 계좌 출금'은 성공했는데 '상대 계좌 입금'에서 오류가 나면, 내 계좌의 출금 내역도 취소되어야 합니다.

  • Consistency (일관성): 완료 후 DB 상태가 규칙을 위반하지 않음. 트랜잭션 수행 전후의 데이터베이스 상태는 항상 논리적으로 올바른 상태여야 합니다. 예: 모든 계좌의 잔액은 0원 이상이어야 한다는 제약 조건이 있다면, 트랜잭션 후 잔액이 마이너스가 되는 결과는 허용되지 않습니다.

  • Isolation (고립성): 동시에 실행되는 트랜잭션들이 서로 방해하지 않음. 동시에 여러 트랜잭션이 실행될 때, 각 트랜잭션은 서로의 작업에 간섭할 수 없습니다. 하나의 트랜잭션이 끝나기 전까지는 다른 트랜잭션에서 그 중간 결과를 볼 수 없습니다.

  • Durability (지속성): 성공한 결과는 영구적으로 저장됨. 성공적으로 완료된 트랜잭션의 결과는 시스템 장애가 발생하더라도 영구적으로 기록되어야 합니다. 로그 파일 등을 통해 복구가 가능한 상태를 말합니다.