데이터베이스를 다루는 애플리케이션을 개발할 때 트랜잭션(Transaction) 관리는 매우 중요합니다. Python에서 데이터베이스 작업을 수행한 후에는 변경 사항을 확정하거나 취소해야 하는데, 이때 사용되는 핵심 메서드가 바로 commit()과 rollback()입니다.
COMMIT(커밋)이란?
COMMIT은 데이터베이스에 변경 사항을 최종 확정하도록 지시하는 연산입니다. INSERT, UPDATE, DELETE 등의 작업을 수행한 후 commit() 메서드를 호출하면 해당 변경 사항이 영구적으로 저장되며, 이후에는 되돌릴 수 없습니다.
즉, 커밋은 데이터베이스에 "변경을 확정하라"는 신호를 보내는 것과 같습니다.
commit() 호출 예제
db.commit()
ROLLBACK(롤백)이란?
작업 도중 하나 이상의 변경 사항이 마음에 들지 않거나 오류가 발생하여 모든 변경을 원래 상태로 되돌리고 싶다면 rollback() 메서드를 사용하세요.
롤백을 실행하면 마지막 커밋 시점 이후의 모든 변경 사항이 취소되고 데이터베이스는 이전 상태로 복원됩니다.
rollback() 호출 예제
db.rollback()
커밋과 롤백 활용 팁
실무에서는 트랜잭션 안정성을 위해 try-except 구문과 함께 사용하는 것이 일반적입니다.
try:
cursor.execute("INSERT INTO users (name) VALUES (%s)", ("홍길동",))
db.commit() # 성공 시 변경 사항 확정
except Exception as e:
db.rollback() # 오류 발생 시 변경 사항 취소
print(f"오류 발생: {e}")
이처럼 commit()과 rollback()을 적절히 조합하면 데이터 무결성을 유지하면서 안전하게 데이터베이스를 운영할 수 있습니다.