본문 바로가기
IT개발/Tech Notes

트랜잭션 회복 기법: Undo, Redo, Checkpoint 개념과 차이

by 시간기억자 2025. 5. 15.
반응형

트랜잭션은 데이터베이스에서 연산의 최소 단위이며,

원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 보장해야 한다.
이런 특성(ACID)을 지키기 위해, 장애 발생 시 데이터를 복구하는 회복 기법이 필요하다.

이때 사용되는 핵심 개념이 Undo, Redo, Checkpoint이다.


✅ Undo란?

Undo는 트랜잭션이 실패했을 때 변경된 데이터를 이전 상태로 되돌리는 작업이다.
예를 들어, 계좌에서 잘못 출금된 금액을 원래 상태로 돌리는 것이 Undo다.

  • 실패한 트랜잭션의 변경 사항을 롤백한다.
  • 로그에 기록된 정보를 바탕으로 이전 상태로 복원한다.
  • 데이터 손상 방지 목적이다.

✅ Redo란?

Redo는 트랜잭션이 성공했지만, 장애로 인해 디스크에 반영되지 않은 경우, 해당 내용을 다시 적용하는 작업이다.
예를 들어, 입금이 완료됐지만 디스크에 저장되지 않았을 때, 다시 반영하는 것이 Redo다.

  • 완료된 트랜잭션의 변경 사항을 재적용한다.
  • 로그를 보고 데이터를 다시 반영한다.
  • 지속성(Durability)을 보장한다.

✅ Checkpoint란?

Checkpoint데이터베이스가 현재의 상태를 저장하는 지점이다.
Undo와 Redo의 기준점으로, 장애 발생 시 회복 범위를 좁혀준다.

  • 일정 주기로 Checkpoint를 기록한다.
  • 이후의 트랜잭션은 Undo 또는 Redo 대상이 될 수 있다.
  • 복구 성능을 높인다.

📌 예시 시나리오

[로그 기록 예시]
T1: 시작 → 데이터 변경 → 완료
T2: 시작 → 데이터 변경 → 장애 발생
Checkpoint

복구 시나리오:
- T1은 Redo: 완료된 트랜잭션을 다시 반영
- T2는 Undo: 실패한 트랜잭션을 원래대로 되돌림

📎 요약 정리

개념 역할 적용 시점 예시 설명
Undo 변경사항 취소 트랜잭션 실패 시 잘못된 출금 취소
Redo 변경사항 재적용 트랜잭션 성공 시 완료된 입금 다시 반영
Checkpoint 상태 저장 기준점 주기적 장애 발생 시 회복 기준이 되는 시점
 

📌 매일 간단히 IT 관련 개념을 익히고 싶다면 구독하세요!👇👇👇

http://www.youtube.com/@itbite_daily

 

오늘의 IT한입

👋 하루 한 입, 쉽게 배우는 IT & 개발 개념! 프로그래밍, 데이터베이스, 운영체제, 네트워크, 보안, 코딩테스트까지! 취업 준비부터 실무 감각까지 매일 짧고 강력하게 정리해드립니다. 📍 매일

www.youtube.com

 

반응형

댓글