본문 바로가기
오라클

[오라클] 트랜잭션(Transaction) COMMIT / ROLLBACK 완벽 정리

by devlog93 2026. 1. 5.

데이터베이스를 다루다 보면 데이터가 정말 저장이 된 건지 혹시 실수했는데 되돌릴 순 없는지라는 고민을 한 번쯤은 해보게 된다. 이 모든 것을 책임지는 개념이 바로 트랜잭션(Transaction)이다.

 

오늘은 오라클에서 트랜잭션이 무엇인지 그리고 COMMIT / ROLLBACK이 어떤 역할을 하는지 알아보자...!

 

1. 트랜잭션(Transaction)이란?

트랜잭션이란 하나의 논리적인 작업 단위를 의미한다.
  • 여러 SQL 문이 하나의 묶음으로 처리되고
  • 모두 성공하거나, 모두 실패해야 하는 작업

※ 예시로 이해해 보자

아래 두 SQL은 A 계좌에서 돈을 빼고 B 계좌에 넣는 하나의 작업이다.
UPDATE ACCOUNT
   SET BALANCE = BALANCE - 10000
 WHERE USER_ID = 'KIM';
 
 UPDATE ACCOUNT
    SET BALANCE = BALANCE + 10000
  WHERE USER_ID = 'KIM';
  • 첫 번째 SQL만 성공하고
  • 두 번째 SQL이 실패한다면...?
더보기

X 데이터가 꼬이게 된다.

그래서 두 SQL을 하나의 트랜잭션으로 묶어 관리해야 한다.

 

2. 오라클에서 트랜잭션의 시작과 종료

√ 트랜잭션은 언제 시작될까?

오라클에서는 별도의 선언 없이 자동으로 시작된다.
INSERT
  INTO MEMBER (
                ENGLISH
              , KOREAN
              )
        VALUES( 
                'HONG'
              , '홍길동'
              );

☞ 이 순간 트랜잭션이 시작됨

√ 트랜잭션이 종료되는 시점

트랜잭션은 다음 중 하나가 실행될 때 종료된다.
구분 설명
COMMIT 변경 내용을 확정
ROLLBACK 변경 내용을 취소
DDL 실행 CREATE / DROP /  ALTER 실행 시 자동 COMMIT
세션 종료 접속 종료 시 자동 COMMIT

 

3. COMMIT 이란?

지금까지 수행한 변경 작업을 데이터베이스에 확장 저장
COMMIT;
  • INSERT / UPDATE / DELETE 결과가 영구 저장
  • 다른 세션에서도 변경 내용 확인 가능
  • 이후 ROLLBACK 불가능

4. ROLLBACK 이란?

마지막 COMMIT 이후 수행한 작업을 모두 취소
ROLLBACK;
  • 변경 전 상태로 되돌림
  • 실수했을 때 매우 중요
  • 아직 COMMIT 하지 않았다면 언제든 가능

5. COMMIT vs ROLLBACK 한눈에 비교

구분 COMMIT ROLLBACK
의미 변경 확정 변경 취소
데이터 반영 영구 저장 원상 복구
되돌리기 불가능 가능
사용 시점 작업 완료 후 실수 발생 시

 

마무리

트랜잭션COMMIT / ROLLBACK은 단순한 문법이 아니라 데이터 안정성을 지키는 핵심 개념이다. 실무에서는 단 한 번의 실수로 데이터가 날아갈 수 있기 때문에 주의하자. 보통 DB 툴에서 AUTO 커밋을 해지 한 후에 사용자가 직접 COMMIT 또는 ROLLBACK을 하는 것을 추천한다...! COMMIT 하기전에는 꼭 검증을 하는 습관을 들이자! 오늘은 트랜잭션에 대해 알아보았습니다. 감사합니다. (_ _)