판단 기준
복구 방향은 "커밋됐는가"로 갈립니다.

같은 변경 기록도 커밋 완료면 Redo, 미커밋이면 Undo가 맡습니다.

ACID와의 연결
로그가 직접 보장하는 속성과 보조하는 속성

로그의 중심 축은 원자성(A)과 지속성(D)입니다.

AAtomicity

Undo가 미완료 변경을 시작 전 상태로 되돌립니다.

직접
CConsistency

Undo + Redo가 깨진 중간 상태를 최종 상태로 정리합니다.

보조
IIsolation

격리성은 주로 락·MVCC가 맡고 로그는 복구 때 관여합니다.

별도 중심
DDurability

Redo가 커밋 결과를 재적용해 장애 뒤에도 남깁니다.

직접
Redo vs Undo
같은 변경 기록을 보고도 복구 방향은 반대입니다.
예시 변경 기록
A: 500 → 400 / B: 200 → 300

커밋이면 살리고, 아니면 지웁니다.

Redo
Undo
언제
커밋 후 장애

커밋은 끝났지만 데이터 반영이 덜 끝난 경우

롤백 또는 미커밋 중단

끝나지 못했거나 취소되어 결과를 남기면 안 되는 경우

무엇을 하나
변경을 다시 적용

로그의 새 값을 따라 커밋 결과를 복원합니다.

이전 값으로 되돌림

로그의 이전 값으로 부분 실행 흔적을 제거합니다.

남는 상태
커밋된 최종 상태

최종 결과가 그대로 유지됩니다.

트랜잭션 시작 전 상태

커밋되지 않은 변경은 없었던 것처럼 정리됩니다.