🍏 개발일기

트랜잭션에 대해 알아보자 ( + 결제와 장바구니)

보배 진 2026. 1. 8. 17:11

(결제/장바구니 프로젝트를 넣어서 설명하도록 하겠습니다)

 

🍀 트랜잭션 🍀

트랜잭션은 여러 작업을 하나로 묶어서, 전부 성공하거나 전부 실패하게 만드는 처리 단위 입니다

 

🍀 트랜잭션이 필요한가? 🍀

트랜잭션이 없으면 문제가 발생할 수 있다

▪ 재고는 줄었는데 주문은 생성 안 됨

▪ 주문은 생성됏는데 결제는 실패

▪ 동시에 여러 사람이 구매해서 재고가 음수가 됨

데이터가 꼬이게 되고 무결성이 붕괴됩니다

 

🍀 트랜잭션의 핵심 특징 🍀

🔹 Atomicity (원자성)
  올 오어 낫싱
중간 실패 시 전부 취소(rollback)

🔹 Consistency (일관성)
처리 전·후 데이터 규칙 유지
재고는 0 이상, 주문 상태는 유효한 값만

🔹 Isolation (고립성)
동시에 실행돼도 서로 영향 최소화
다른 트랜잭션 중간 결과를 못 봄

🔹 Durability (지속성)
성공하면 결과는 영구 저장
서버 꺼져도 데이터 유지

 

🍀 결제 승인 시 재고 감소, 주문 상태 변경, 결제 정보 저장을 하나의 트랜잭션으로 묶어 중간 실패 시 모두 롤백해야 함

🍀 트랜잭션을 사용하지 않으면 일부만 반영되는 상태가 발생해, 데이터 신뢰성이 깨짐

🍀 트랜잭션은 데이터 무결성을 지키기 위해 여러 작업을 하나로 묶는 처리 단위