K
KRYFT Problem Bank
데이터베이스 어려움 코딩

계좌 이체 트랜잭션

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 보장
  • 동시성 처리
  • 에러 핸들링
실행 버튼을 눌러 코드를 실행하세요.