데이터베이스
어려움
코딩
계좌 이체 트랜잭션
ACID를 보장하는 계좌 이체 시스템
40분
95점
#3715
문제 설명
은행 계좌 간 이체를 ACID 속성을 보장하며 구현하세요.
ACID 속성
- Atomicity: 이체는 전부 성공하거나 전부 실패
- Consistency: 이체 전후 총액 불변
- Isolation: 동시 이체가 서로 영향 없음
- Durability: 성공한 이체는 영구 저장
요구사항
- 출금 계좌 잔액 확인
- 데드락 방지
- 동시성 제어 (비관적/낙관적 락)
- 이체 내역 기록
테이블 구조
accounts (id, balance, version)
transfers (id, from_account, to_account, amount, status, created_at)
구현할 함수
def transfer(from_id, to_id, amount) -> TransferResult:
# success: bool
# message: str
# transfer_id: str
평가 기준
- ACID 보장
- 동시성 처리
- 에러 핸들링
실행 버튼을 눌러 코드를 실행하세요.