은행 현장의 언어 · 일마감과 계정일자 · 퀴즈
퀴즈: 일마감과 계정일자
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
일마감 배치가 처리할 거래를 고를 때 기준이 되어야 하는 값은?
- 거래가 들어온 시스템 시각(posted_at)
- 거래가 속한 계정일자(biz_date)
- 배치가 시작된 시각
- 거래를 만든 채널의 로컬 시각
마감 컷오프가 22:10 인데 22:15 에 들어온 거래의 계정일자는 어떻게 되어야 하는가?
- 마감일 그대로. 아직 자정이 지나지 않았기 때문이다
- 익영업일. 컷오프 이후 유입분은 다음 장부에 속한다
- 마감이 끝난 시각에 따라 달라진다
- 거래 금액에 따라 달라진다
마감 배치가 절반쯤 돌다 죽었다. 산출물의 closing_balance 합이 0 이 아니라면 무엇을 뜻하는가?
- 계정과목표에 없는 계정이 섞여 있다
- 이자 계산이 아직 안 끝났다
- 전표의 한쪽 줄만 반영되고 반대쪽은 반영되기 전에 배치가 끊겼다
- 전날 마감 산출물이 남아 있다
이미 절반이 반영된 상태에서 증분 재수행(아직 반영 안 된 것만 더하기)이 위험한 이유는?
- 증분 방식은 트랜잭션을 쓸 수 없기 때문에
- 이미 반영된 것이 전부 옳다고 전제하는데, 잘못 들어간 것을 빼낼 수단이 없기 때문에
- 증분 방식이 전량 재계산보다 항상 느리기 때문에
- 증분 방식은 계정일자를 읽지 않기 때문에
재수행 스크립트를 멱등하게 만드는 가장 확실한 구조는?
- 해당 계정일자의 산출물을 지우고 처음부터 다시 만든다
- 실행 전에 산출물을 백업해 두고 실패하면 되돌린다
- 이미 반영된 거래에 표식을 남겨 두 번 더하지 않게 한다
- 배치가 동시에 두 번 뜨지 않도록 잠금을 건다
마감 배치가 22:10 에 시작했는데 22:12 에 들어온 거래가 산출물에 들어가 있었다. 원인으로 가장 가능성이 높은 것은?
- 배치가 대상을 시작 시점에 고정하지 않고 실행 중 조회로 잡았다
- 온라인 채널이 거래 시각을 잘못 기록했다
- 데이터베이스 복제 지연으로 시각이 밀렸다
- 배치가 컷오프 값을 하드코딩하고 있었다