1-02 · 입력 오류와 통제 결과 구분하기

1. 실습 목표

모집단 30건에서 입력 오류 1건을 분리하고 유효 29건에 R-02–R-04를 적용해 정상 21건과 검토 필요 8건을 만듭니다. 동시에 기존 앱 셸에 지표·상태 필터·예외 목록·규칙 상세를 채워, 입력 품질 실패와 업무 통제 예외가 화면에서도 섞이지 않게 합니다.

2. 시작 지점

student/01-population-ready에서 앱 셸과 모집단 30건 화면이 연결되어 있습니다. vendor_changes.csvCHG-2608-001030을 원본 순서로 읽는 API가 있습니다.

3. 구현 범위 및 요구사항

R-01 입력 오류 분리

  • 필수 식별자·사용자·계좌 토큰, 실제 달력의 YYYY-MM-DD HH:mm:ss, 중복 change_id를 검사합니다.
  • 오류 행은 전체 모집단에는 남기되 이후 업무 규칙에서는 제외합니다.
  • CHG-2608-030vendor_id 누락과 잘못된 changed_at으로 입력 오류입니다.

R-02–R-04 통제 규칙

  • R-02: 최종 승인이 있고 승인 시각이 ERP 반영보다 빠르거나 같음
  • R-03: 요청자와 최종 승인자가 다름
  • R-04: 승인 계좌 토큰과 ERP 현재 계좌 토큰이 같음
  • 승인이 없으면 R-03·R-04는 실패가 아니라 not_applicable입니다.
  • 유효 사례에서 R-02–R-04 중 하나라도 실패하면 검토 필요로 분류합니다.

기존 앱 셸에 결과 채우기

  • 전체·유효·정상·검토 필요·입력 오류를 지표 카드로 표시합니다.
  • 입력 오류 1건과 통제 예외 8건을 서로 다른 상태·설명으로 표시합니다.
  • 예외 목록에서 사례를 선택하면 R-01–R-04 상태, 사유와 근거 ID를 확인할 수 있습니다.
  • 화면에서 입력 오류와 통제 예외의 상태·사유를 구분합니다.

4. 실습 프롬프트

Claude Code에 붙여 넣을 프롬프트
입력 오류와 통제 예외가 섞이지 않도록 판정 API와 기존 화면을 확장해 주세요.
 
현재 모집단 API와 목록 화면은 동작하지만 입력 오류와 통제 규칙 결과는 구분되어 있지 않습니다. 모집단 로더, CSV 열과 승인·거래처 마스터의 연결 구조를 먼저 확인해 주세요.
 
구현이 끝나면 입력 자체에 문제가 있는 요청과 정상적으로 읽혔지만 통제 검토가 필요한 요청을 API와 화면에서 따로 확인할 수 있어야 합니다.
 
- R-01에서 필수값, 시각 형식과 중복 ID 검사
- 입력 오류 행의 모집단 유지와 후속 규칙 판정 제외
- 연결 키를 이용한 R-02–R-04 판정과 `pass`, `fail`, `not_applicable` 상태 반환
- 각 규칙 결과에 실제 승인·증빙 근거 ID 포함
- 집계, 상태 필터, 오류·예외 목록과 선택 사례 상세의 동일 API 연결
- 입력 원본과 기존 모집단 화면 유지 및 저장 기능 추가 금지
 
관련 테스트와 기존 검사 명령만 실행해 주세요. 구현 후에는 변경 파일, 실제 판정 결과와 근거, 검사 통과 여부와 남은 위험만 간단히 알려 주세요.

5. 예상 결과

Success

  • 체크포인트: student/02-controls-ready

    전체유효정상검토 필요입력 오류
    30292181
  • 023: R-02 실패, R-03·R-04 평가 불가

  • 024·025: R-03, 026·027: R-04

  • 028: R-02·R-03, 029: R-02·R-04, 030: 입력 오류

  • 화면에서 입력 오류 1건과 통제 예외 8건이 별도 상태로 보이고, 사례를 선택하면 규칙 상세가 바뀜

6. 대표 실패 사례 및 복구

Failure

  • 오류 행을 모집단에서 삭제하거나 통제 예외로 계산함
  • 승인 없는 사례를 계좌 불일치로 판정함
  • 총계를 맞추는 보정값을 넣고 연결 오류를 숨김

Info

첫 불일치 사례의 규칙 상태와 연결 ID부터 출력해 고칩니다. 입력 원본은 수정하지 않습니다.

직접 확인할 결과

  1. 모집단 화면이 지표 카드와 상태별 목록으로 채워집니다.
  2. CHG-2608-023을 선택해 승인 없음, R-02 실패, R-03·R-04 평가 불가를 확인합니다.
  3. 입력 오류 표에서 CHG-2608-030을 확인해 통제 예외와 다른 상태임을 확인합니다.
  4. 새로고침 뒤에도 30 / 29 / 21 / 8 / 1 집계와 선택 사례 상세가 동일한지 확인합니다.

7. 다음 실습

판정 결과를 검토 결과 저장 단계로 넘깁니다.