31장. Skip은 기술 옵션이 아니라 업무 정책이다
파싱할 수 없는 날짜, 존재하지 않는 seller, 음수 금액, 일시 DB timeout은 같은 실패가 아니다. 날짜·금액 형식 오류는 입력 계약 위반이고, DB timeout은 재시도 후보이며, seller 미존재는 기준정보 시점과 업무 승인이 필요하다.
skip table에는 run ID, source ID, line number, masked business key, error code, rule version, payload hash, detected_at, disposition을 둔다. 원문 전체를 무기한 저장하지 않는다. 재처리 파일을 손으로 고쳐 원본 checksum과 분리하지 않는 실수를 막는다.
skip limit은 “몇 건까지 버릴 수 있다”는 허가가 아니다. 1건이라도 금전 합계에 영향을 주면 job은 COMPLETED_WITH_REVIEW 같은 명시 상태와 재무 승인으로 넘어가야 한다. Spring Batch 기술 status와 업무 release status를 분리한다.