트랜잭션 & 롤백

heeyoung_1023·2026년 3월 12일

헷갈리는 부분 정리

목록 보기
10/40

트랜잭션 & 롤백


일상 비유로 먼저 이해하기

은행 송금 상황을 생각해보세요.

김철수가 이영희에게 10만원 송금

1. 김철수 통장 -10만원  ✅
2. 이영희 통장 +10만원  💀 오류 발생!

이 상태로 끝나면 김철수 돈만 사라지는 대참사 발생!


트랜잭션이란?

"이 작업들은 전부 성공하거나, 전부 실패해야 해!" 라고 묶는 것

START TRANSACTION;  -- 묶음 시작

UPDATE accounts SET balance = balance - 100000 WHERE name = '김철수';
UPDATE accounts SET balance = balance + 100000 WHERE name = '이영희';

COMMIT;    -- 둘 다 성공 → 최종 저장 ✅
ROLLBACK;  -- 하나라도 실패 → 전부 없던 일로 ↩️

COMMIT vs ROLLBACK

START TRANSACTION
        ↓
   작업 실행
        ↓
   성공? ───── YES ──→ COMMIT   (저장 확정 ✅)
        │
        └────── NO  ──→ ROLLBACK (되돌리기 ↩️)

엑셀로 비유하면

엑셀  →  Ctrl+Z (실행 취소)랑 비슷한데

차이점:
엑셀    = 내가 수동으로 Ctrl+Z 눌러야 함
롤백    = 오류 생기면 자동으로 되돌아감

트랜잭션의 4가지 성질 (ACID)

성질의미비유
Atomicity (원자성)전부 성공 or 전부 실패택배는 보내거나 안 보내거나
Consistency (일관성)데이터가 항상 올바른 상태송금 후 총액은 그대로
Isolation (격리성)동시 작업이 서로 방해 안 함각자 다른 창구에서 처리
Durability (지속성)COMMIT 하면 영구 저장저장 후 전원 꺼져도 유지

핵심 한 줄

트랜잭션 = 작업을 하나로 묶는 것 롤백 = 묶인 작업 중 하나라도 실패하면 전부 없던 일로 되돌리는 것 ↩️

profile
개발언어를 배우는 과정 기록

0개의 댓글