🌿 중급 DB
트랜잭션(Transaction)이란?
쉽게 이해하기
ATM에서 계좌 이체를 할 때를 생각해보세요. 내 계좌에서 돈이 빠져나가고 상대 계좌로 입금되는 두 작업이 있는데, 중간에 하나라도 실패하면 둘 다 취소되어야 해요. 그게 바로 트랜잭션이에요.
핵심 정리
여러 데이터베이스 작업을 하나의 단위로 묶어서 전부 성공하거나 전부 실패하도록 하는 거예요.
자세히 알아보기
트랜잭션은 데이터베이스 작업의 안전성을 보장하는 핵심 개념이에요. 'All or Nothing' 원칙으로, 관련된 모든 작업이 성공하면 커밋(저장)하고, 하나라도 실패하면 전부 롤백(취소)합니다. 이렇게 해야 데이터의 일관성이 유지돼요.
실무에서 가장 흔한 예시는 결제 시스템이에요. 주문 데이터 생성, 재고 감소, 포인트 차감, 결제 기록 저장 같은 여러 작업이 있는데, 이 중 하나라도 실패하면 전체를 취소해야 해요. 재고만 줄어들고 결제는 안 되는 상황이 생기면 안 되니까요.
트랜잭션의 네 가지 특성을 ACID라고 불러요. Atomicity(원자성)는 전부 성공 또는 전부 실패, Consistency(일관성)는 데이터 규칙 유지, Isolation(격리성)은 동시 실행되는 트랜잭션 간 간섭 방지, Durability(지속성)는 커밋된 데이터는 영구 보존을 의미합니다.
코드에서는 'BEGIN TRANSACTION'으로 시작해서 'COMMIT' 또는 'ROLLBACK'으로 끝내요. 대부분의 ORM은 이걸 간단하게 처리할 수 있는 함수를 제공합니다. 금융, 전자상거래처럼 데이터 정확성이 중요한 시스템에서는 트랜잭션을 반드시 사용해야 해요.