📖 WIPIVERSE

🔍 현재 등록된 정보: 31,110건

트랜잭션

트랜잭션 (Transaction)은 데이터베이스 또는 분산 시스템에서 작업의 논리적 단위를 나타내는 용어이다. 하나의 트랜잭션은 여러 개의 작업(예: 데이터베이스 레코드의 삽입, 수정, 삭제)을 포함할 수 있으며, 이러한 작업들은 모두 성공하거나 모두 실패하는 원자성(Atomicity)을 갖는다. 즉, 트랜잭션의 일부만 성공하고 나머지는 실패하는 경우는 발생하지 않는다. 이러한 원자성을 보장하기 위해 데이터베이스 시스템은 트랜잭션의 시작부터 종료까지 데이터의 일관성을 유지하는 다양한 메커니즘을 제공한다.

트랜잭션은 일반적으로 ACID 속성을 만족하도록 설계된다. ACID 속성은 다음과 같다:

  • 원자성(Atomicity): 트랜잭션은 하나의 논리적 작업 단위로 간주되며, 전체적으로 성공하거나 실패한다. 부분적인 성공은 허용되지 않는다.
  • 일관성(Consistency): 트랜잭션이 완료된 후 데이터베이스의 일관성이 유지되어야 한다. 즉, 트랜잭션이 실행되기 전의 데이터베이스 상태가 유효한 상태였다면, 트랜잭션이 실행된 후에도 유효한 상태여야 한다.
  • 격리성(Isolation): 여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 다른 트랜잭션의 영향을 받지 않고 독립적으로 실행되는 것처럼 동작해야 한다. 이는 다양한 격리 수준(예: 읽기 커밋, 직렬화 가능)을 통해 관리된다.
  • 영속성(Durability): 트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 저장되어 시스템 장애가 발생하더라도 손실되지 않아야 한다.

트랜잭션 관리 시스템은 트랜잭션의 시작과 종료, 그리고 실패 시 롤백(Rollback)을 담당한다. 롤백은 트랜잭션이 실패했을 때 트랜잭션의 모든 변경 사항을 취소하는 과정이다.

트랜잭션은 데이터베이스 시스템뿐만 아니라, 분산 시스템, 분산 트랜잭션, 마이크로서비스 아키텍처 등에서도 데이터의 일관성과 신뢰성을 보장하는 중요한 개념이다. 다양한 트랜잭션 관리 프로토콜(예: 두 단계 커밋 프로토콜)이 분산 환경에서의 트랜잭션 관리를 위한 다양한 문제를 해결하는 데 사용된다.