본문 바로가기

IT 세상

ACID

ACID는 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하기 위한 네 가지 속성을 나타내는 약어입니다.

 

ACID는 다음과 같은 네 가지 요소로 구성됩니다:

1. 원자성 (Atomicity)

  • 정의: 트랜잭션 내의 모든 작업이 완료되거나 전혀 완료되지 않아야 함을 의미합니다. 즉, 트랜잭션이 성공적으로 완료되면 모든 변경 사항이 데이터베이스에 반영되고, 실패하면 모든 변경 사항이 롤백되어 데이터베이스가 이전 상태로 복원됩니다.
  • 예시: 은행에서 A 계좌에서 B 계좌로 돈을 이체할 때, 이체 작업이 모두 성공해야만 잔액이 변경됩니다. 중간에 오류가 발생하면 아무 것도 변경되지 않아야 합니다.

2. 일관성 (Consistency)

  • 정의: 트랜잭션이 데이터베이스의 일관성을 유지해야 함을 의미합니다. 즉, 트랜잭션이 완료되면 데이터베이스는 유효한 상태를 유지해야 하며, 모든 제약 조건이 충족되어야 합니다.
  • 예시: 재고 관리 시스템에서 상품의 재고 수량은 음수가 될 수 없습니다. 트랜잭션이 실행될 때, 모든 데이터 무결성 제약 조건이 지켜져야 합니다.

3. 독립성 (Isolation)

  • 정의: 동시에 실행되는 트랜잭션들이 서로에게 영향을 주지 않아야 함을 의미합니다. 즉, 각 트랜잭션은 다른 트랜잭션이 완료될 때까지 독립적으로 실행되어야 합니다.
  • 예시: 두 사용자가 동시에 같은 자원에 접근하더라도, 각자의 트랜잭션은 서로의 작업에 영향을 받지 않아야 합니다. 이를 통해 데이터 일관성을 유지할 수 있습니다.

4. 지속성 (Durability)

  • 정의: 트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 데이터베이스에 저장되어야 하며, 시스템 장애가 발생하더라도 사라지지 않아야 함을 의미합니다.
  • 예시: 사용자가 은행에서 돈을 이체한 후 시스템 장애가 발생하더라도, 이체된 금액은 데이터베이스에 안전하게 저장되어 있어야 합니다.

ACID의 중요성

ACID 속성은 데이터베이스 관리 시스템(DBMS)이 데이터의 무결성을 보장하는 데 필수적입니다. 이러한 속성들은 특히 은행 시스템, 재고 관리 시스템, 예약 시스템 등에서 필수적이며, 데이터 손실이나 부정확성을 방지하는 데 중요한 역할을 합니다.

비판 및 대안

ACID 모델은 강력한 데이터 일관성을 제공하지만, 높은 성능이나 확장성이 필요한 시스템에서는 비효율적일 수 있습니다. 이런 이유로 BASE(Basically Available, Soft state, Eventually consistent)와 같은 대안 모델이 등장하여, 특히 분산 시스템에서 일관성을 유연하게 처리할 수 있는 방법을 제시하고 있습니다.

'IT 세상' 카테고리의 다른 글

Application Architect 심층 서술형 예상 질문  (0) 2024.08.11
Application Architect 직무 면접, 채용 예상 질문  (0) 2024.08.11
2단계 커밋(2-Phase Commit, 2PC)  (0) 2024.08.11
Saga 패턴  (0) 2024.08.07
Event Sourcing  (0) 2024.08.07