본문 바로가기
카테고리 없음

트랜잭션이란 무엇인가?

by sftt 2023. 12. 27.

트랜잭션이란 무엇인가?

프로그래밍에서 트랜잭션(transaction)은 데이터베이스 관리 시스템(DBMS) 또는 다른 자원 관리 시스템에서 수행되는 하나 이상의 작업을 의미합니다. 이 작업들은 하나의 논리적 단위로 묶여 있으며, 일련의 연산을 순차적으로 수행하는 과정에서 원자성, 일관성, 격리성, 지속성과 같은 ACID 특성을 보장받기 위해 사용됩니다.

ACID는 Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성)의 약어로서, 트랜잭션이 안전하고 신뢰할 수 있는 방식으로 수행될 수 있도록 보장합니다.

  • 원자성 (Atomicity): 트랜잭션의 모든 작업들은 일관된 상태로 수행되거나, 전혀 수행되지 않아야 합니다. 작업 중 어느 하나라도 실패하면 트랜잭션은 롤백되어 이전 상태로 복원됩니다.
  • 일관성 (Consistency): 트랜잭션 수행 전후에 데이터베이스는 일관된 상태를 유지해야 합니다. 트랜잭션이 수행되어도 일관성이 깨진다면 해당 트랜잭션은 롤백됩니다.
  • 격리성 (Isolation): 동시에 여러 트랜잭션이 수행되더라도, 각 트랜잭션은 서로 영향을 주지 않고 독립적으로 동작함을 보장해야 합니다. 하나의 트랜잭션이 수행하는 과정은 다른 트랜잭션에게 보이지 않습니다.
  • 지속성 (Durability): 트랜잭션이 성공적으로 수행되고 커밋된 경우, 해당 트랜잭션에 의한 변경 사항은 영구적으로 유지되어야 합니다. 시스템이 중단되거나 장애가 발생해도 데이터는 지속되어야 합니다.

트랜잭션은 보통 다음과 같은 단계로 이루어집니다:

  1. 시작 (Begin): 트랜잭션을 시작합니다.
  2. 작업 수행 (Execute): 데이터베이스 조작 작업 등이 수행됩니다.
  3. 확인 (Commit): 모든 작업이 성공적으로 수행되었을 경우, 변경 사항이 영구적으로 반영되도록 트랜잭션을 커밋합니다.
  4. 롤백 (Rollback): 작업 중 실패가 발생했을 경우, 모든 작업을 취소하고 트랜잭션을 롤백합니다.

트랜잭션은 데이터베이스의 일관성과 안전성을 보장하기 위해 꼭 필요한 개념입니다. 많은 응용 프로그램과 데이터베이스 시스템에서 트랜잭션을 사용하여 데이터의 정합성과 신뢰성을 유지할 수 있습니다.

댓글