학습 자료

ACID 트랜잭션

SQL 데이터베이스에서 트랜잭션은 하나의 단위로 처리되어야 하는 일련의 작업입니다.

데이터의 신뢰성과 무결성을 유지하기 위해 모든 트랜잭션은 ACID라고 불리는 네 가지 핵심 원칙을 따릅니다.


ACID는 무엇의 약자인가?

ACID는 다음 네 가지 핵심 원칙을 의미합니다.

1. 원자성(Atomicity)

  • 트랜잭션의 모든 작업은 함께 성공하거나 함께 실패합니다.
  • 한 부분이라도 실패하면 전체 트랜잭션이 롤백됨.

2. 일관성(Consistency)

  • 데이터베이스는 한 유효한 상태에서 다른 유효한 상태로 전이합니다.
  • 여러 변경이 동시에 일어나도 모든 데이터 규칙과 제약 조건을 준수합니다.

3. 격리성(Isolation)

  • 트랜잭션끼리 서로 간섭하지 않습니다.
  • 트랜잭션이 완료되기 전까지 그 중간 단계는 다른 트랜잭션에는 보이지 않음.

4. 지속성(Durability)

  • 트랜잭션이 커밋되면 변경 내용은 영구적임.
  • 커밋 직후 시스템이 장애가 나더라도 변경 사항은 사라지지 않습니다.

예시: 송금

사용자끼리 서로 돈을 이체할 수 있다고 가정해 봅시다.

accounts

user_idnamebalance
1지영500
2민수300

지영에게서 민수에게 100원을 안전하게 보내려면, 다음과 같이 트랜잭션을 사용할 수 있습니다.

ACID 준수 이체
BEGIN; UPDATE accounts SET balance = balance - 100 WHERE name = '지영'; UPDATE accounts SET balance = balance + 100 WHERE name = '민수'; COMMIT;
  • 두 업데이트가 모두 성공하면 → 변경 사항이 저장됩니다.
  • 하나라도 실패하면 → ROLLBACK으로 되돌릴 수 있습니다.

왜 중요한가

ACID 보장이 없다면 다음과 같은 위험이 있습니다.

  • 실패한 이체 중에 사용자의 돈이 사라짐
  • 일관성 없거나 손상된 데이터
  • 여러 사용자가 같은 데이터에 접근할 때 발생하는 경쟁 상태

ACID는 애플리케이션이 안전하고 예측 가능하게 동작하도록 보장합니다.

Quiz
0 / 1

SQL 데이터베이스에서 ACID 트랜잭션의 '지속성(Durability)' 속성은 트랜잭션이 한 번 커밋되면, 그 직후 시스템이 다운되더라도 해당 트랜잭션이 손실될 수 있음을 보장한다.

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말

코드 에디터

코드 실행
코드 생성

DB 테이블 구조

실행 결과