원자성이란?

공부용·2025년 8월 26일

원자성(Atomicity)이란 트랜잭션에 포함된 모든 작업들이 전부 성공하거나,아니면 전부 실패하도록 보장하는 성질을 말한다.

"전부 아니면 전무 (All or Notiong)" 원칙으로 요약할 수 있다.


원자성의 규칙

  • 트랜잭션 내의 모든 쿼리는 반드시 성공해야한다.
  • 만약 쿼리 중 하나라도 실패하면, 그전에 성공했떤 모든 쿼리들이 롤백(Rollback), 즉 원래 상태로 되돌려져야 한다.
  • 트랜잭션이 완료(커밋)되기 전에 데이터베이스에 충돌이 발생하면, 재시작되었을 때 해당 트랜잭션의 모든 작업이 롤백되어야한다.

예시: 계좌 이체

예를 들어, 1번 계좌에서 2번 계좌로 돈을 이체하는 상황을 생각해보자. 이 작업은 두 단계로 이루어진다.
1. 1번 계좌에서 돈을 출금 (UPDATE)
2. 2번 계좌에 돈을 입금 (UPDATE)

만약 1번 단계(출금)는 성공했지만, 2번 단계(입금)를 처리하기 직전에 시스템이 멈춘다면 어떻게 될가?

원자성이 없다면 1번 계좌에서 돈은 빠져나갔지만 2번 계좌에는 들어오지 않아 돈이 사라지는 심각한 문제가 발생한다.

하지만 원자성이 보장되면, 데이터베이스는 이 트랜잭션이 완전히 성공하지 못했다는 것을 인지하고 재시작 시 1번 단계의 출금 작업까지 모두 없었던 일로 되돌려 데이터의 일관성을 지킨다.

profile
공부 내용을 가볍게 적어놓는 블로그.

0개의 댓글