(결제/장바구니 프로젝트를 넣어서 설명하도록 하겠습니다)
🍀 트랜잭션 🍀
트랜잭션은 여러 작업을 하나로 묶어서, 전부 성공하거나 전부 실패하게 만드는 처리 단위 입니다
🍀 트랜잭션이 필요한가? 🍀
트랜잭션이 없으면 문제가 발생할 수 있다
▪ 재고는 줄었는데 주문은 생성 안 됨
▪ 주문은 생성됏는데 결제는 실패
▪ 동시에 여러 사람이 구매해서 재고가 음수가 됨
데이터가 꼬이게 되고 무결성이 붕괴됩니다
🍀 트랜잭션의 핵심 특징 🍀
🔹 Atomicity (원자성)
▪ 올 오어 낫싱
▪ 중간 실패 시 전부 취소(rollback)
🔹 Consistency (일관성)
▪ 처리 전·후 데이터 규칙 유지
▪ 재고는 0 이상, 주문 상태는 유효한 값만
🔹 Isolation (고립성)
▪ 동시에 실행돼도 서로 영향 최소화
▪ 다른 트랜잭션 중간 결과를 못 봄
🔹 Durability (지속성)
▪ 성공하면 결과는 영구 저장
▪ 서버 꺼져도 데이터 유지
🍀 결제 승인 시 재고 감소, 주문 상태 변경, 결제 정보 저장을 하나의 트랜잭션으로 묶어 중간 실패 시 모두 롤백해야 함
🍀 트랜잭션을 사용하지 않으면 일부만 반영되는 상태가 발생해, 데이터 신뢰성이 깨짐
🍀 트랜잭션은 데이터 무결성을 지키기 위해 여러 작업을 하나로 묶는 처리 단위
'🍏 개발일기' 카테고리의 다른 글
| 깃 배포 배포해보기 : 오너먼트 프로젝트 (0) | 2026.01.17 |
|---|---|
| 깃(Git) 배포에 대해 알아보자 (0) | 2026.01.13 |
| ready() 함수가 필요한 이유 (0) | 2025.12.21 |
| 이메일 API 찾아보고 정리해보기 (1) | 2025.12.18 |
| Hexagonal Architecture, 진짜 하실 건가요? 글을 읽으며.. (1) | 2025.12.16 |