본문으로 건너뛰기
실습하기

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는 애플리케이션이 안전하고 예측 가능하게 동작하도록 보장합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!