1. 학습
  2. /
  3. 강의
  4. /
  5. Java에서 PostgreSQL 데이터베이스 질의하기

Connected

연습 문제

Book Club Saturdays

Metropolitan Public Library에서는 30~40명의 회원이 오전 10시에 모여 매월 선택한 도서를 대출하는 "Book Club Saturdays" 행사를 진행해요. 현재 시스템은 auto-commit이 활성화된 상태에서 각 대출을 개별적으로 처리하고 있어, 다음과 같은 두 가지 심각한 문제가 발생합니다:

  1. 데이터 불일치: 지난달에는 한 회원이 책 4권을 대출하는 중 시스템이 다운되었어요. 그중 2권만 대출로 기록되고 나머지 2권은 기록되지 않아, 재고가 맞지 않고 이용자 불만이 생겼습니다.
  2. 성능 병목: 각 대출을 별도의 데이터베이스 트랜잭션으로 처리하다 보니 15~20분이 소요되어 긴 대기열이 생기고 직원들의 업무 부담이 커집니다.

여러분의 과제는 트랜잭션 제어를 적용한 배치 처리를 구현하는 것입니다.

지침

100 XP
  • 32행에서 autoCommit을 false로 설정해 수동 트랜잭션 제어를 활성화하세요.
  • 43행에서 여러 건의 대출을 배치에 추가하세요.
  • 49행에서 모든 작업이 성공하면 트랜잭션을 커밋하세요.