🌿 중급 DB
데이터베이스 커밋과 롤백
쉽게 이해하기
은행 ATM에서 송금할 때를 생각해보세요. 금액을 입력하고 '확인' 버튼을 누르기 전까지는 아무 일도 일어나지 않습니다. '확인'이 커밋이고, '취소'가 롤백입니다. 최종 확인 전까지는 언제든 되돌릴 수 있죠.
핵심 정리
데이터베이스에서 변경사항을 확정하거나 취소하는 방법입니다.
자세히 알아보기
데이터베이스에서 커밋(Commit)은 변경사항을 최종 확정하는 명령입니다. INSERT, UPDATE, DELETE 같은 작업을 실행하면 임시로 저장되고, 커밋을 해야 실제로 데이터베이스에 반영됩니다. 반대로 롤백(Rollback)은 커밋하기 전에 변경사항을 모두 취소하는 것입니다.
실무에서는 여러 작업을 묶어서 처리할 때 자주 사용합니다. 예를 들어 온라인 쇼핑몰에서 결제가 완료되면 ① 주문 테이블에 주문 추가 ② 재고 테이블에서 수량 차감 ③ 포인트 테이블에 적립 이렇게 세 가지 작업이 동시에 일어납니다. 이 중 하나라도 실패하면 전체를 롤백해서 데이터 불일치를 막습니다.
대부분의 데이터베이스는 자동 커밋 모드가 기본이지만, 트랜잭션을 명시적으로 시작하면 개발자가 직접 커밋이나 롤백을 제어할 수 있습니다. ORM을 사용하면 session.commit()이나 session.rollback() 같은 메서드로 간단히 처리할 수 있습니다.
커밋과 롤백을 제대로 이해하지 못하면 데이터가 중간 상태로 남거나, 사용자가 결제했는데 재고가 빠지지 않는 등의 문제가 발생할 수 있습니다. 특히 금융, 결제, 재고 관리 같은 민감한 영역에서는 트랜잭션 관리가 필수입니다.