3-02 · 검토 화면과 완료 상태 연결하기
1. 실습 목표
기존 표본·Agent 초안 화면의 디자인과 데이터 흐름을 유지하면서 최종 검토 결과 저장, 현재 결과·전체 이력, 완료 집계와 CSV 내보내기를 연결합니다.
2. 시작 지점
- 시작 체크포인트:
student/12-review-storage-ready - 서버는 권한과 입력을 확인해 담당자 검토 결과를 새 이력으로 저장합니다.
- 기존 앱 셸의 working-paper 12건과 검토 저장 API 응답을 확인합니다.
3. 구현 범위 및 요구사항
읽기·저장 화면
- 새 라우터·탭·사이드바·패키지 없이 기존
App.tsx와styles.css를 확장합니다. - 표본 목록, Agent 초안, 현재 검토 결과와 전체 이력을 제목으로 구분합니다.
- 기존 U701/U601 select를 검토자 선택에 사용하고 결론·필수 메모·저장 버튼을 추가합니다.
- 저장 성공·권한 거부·입력 오류를 텍스트로 구분하고 성공 뒤 서버 상태를 다시 읽습니다.
완료 상태
- 서버가 사례별 최신 결론으로
reviewed_count,pending_count와 결론별 건수를 계산합니다. reviewed_count + pending_count = 12이며 수정 이력 수는 진행률에 더하지 않습니다.- 현재 검토 자료 12건이 모두 검토된 경우에만
export_ready: true입니다.
CSV 내보내기
GET /api/day3/export.csv는 서버에서도 완료 조건과 U701 권한을 확인합니다.- CSV에는 지정 표본 12건의 최신 검토 결과·메모·검토자·시각과 source ID를 한 행씩 둡니다.
- 다운로드 CSV와 SQLite는 Git에 넣지 않습니다.
- 담당자 검토 결과와 Agent 초안을 화면에서 서로 다른 영역으로 표시합니다.
4. 실습 프롬프트
기존 앱 셸에 담당자 검토 화면을 연결하고 모든 검토가 끝난 뒤에만 CSV를 내보낼 수 있게 해 주세요.
현재 백엔드는 담당자의 검토 결과를 이력으로 저장하지만 화면에서 입력할 수 없고, 같은 요청의 재전송과 전체 검토 완료 여부도 처리하지 않습니다. 기존 React 화면과 검토 저장 API를 먼저 확인하고 담당자 검토 흐름을 연결해 주세요.
구현이 끝나면 담당자가 각 변경 요청의 결론과 메모를 저장하고 전체 이력을 확인할 수 있어야 합니다. 모든 검토가 끝난 경우에만 최신 결과를 CSV로 내려받을 수 있어야 합니다.
- 검토 대상, Agent 초안, 현재 결과와 전체 검토 이력 표시
- 검토자, 결론, 메모 입력과 저장 버튼 연결
- 요청 ID를 이용한 동일 요청 재전송 결과의 재사용
- 같은 요청 ID에 다른 내용이 전달된 경우 충돌 처리
- 사례별 최신 결과를 이용한 완료 상태와 결론별 집계 계산
- 미완료 상태에서 화면과 서버의 CSV 내보내기 거부
- 기존 대시보드·모집단·예외·검토 자료 화면 유지
- 새 패키지와 Agent 실행 기능 추가 금지
동일 요청 재전송과 미완료 CSV 요청을 한 번씩 확인하고 기존 검사 명령을 실행해 주세요. 구현 후에는 변경 파일, 실제 저장·집계·CSV 동작, 검사 통과 여부와 남은 위험만 간단히 알려 주세요.5. 예상 결과
Success
- 종료 체크포인트:
student/13-review-ui-ready- 초기
12 / 0 / 12, 저장 1건 뒤12 / 1 / 11- 수정 뒤 검토 건수는 같고 결론별 건수만 변경
- 12건 전 CSV 거부, 완료 뒤 데이터 행 12개
- Agent 초안과 최종 검토 결과·전체 이력 분리
- 기존 셸에서 담당자 검토·완료 집계·전체 이력·CSV 화면을 사용할 수 있음
6. 대표 실패 사례 및 복구
Failure
- 화면 선택만 바꾸고 서버 응답 전에 완료로 표시함
- 전체 이력 수를 검토 건수로 계산함
- 화면 버튼만 막고 미완료 CSV API는 허용함
Info
API의 현재 결론과 완료 집계를 단일 기준으로 다시 읽습니다. 계속 지연되면
student/13-review-ui-ready로 이동합니다.
직접 확인할 결과
- 기존 working-paper 화면에서 담당자·결론·메모 입력 영역을 활성화합니다.
- 한 건 저장 뒤 현재 검토 집계가
12 / 1 / 11로 서버 응답과 맞는지 확인합니다. - 같은 사례를 수정하면 현재 결론만 바뀌고 전체 이력은 누적되는지 확인합니다.
- 12건 완료 전 CSV 다운로드 거부와 12건 완료 후 데이터 행 12개를 확인합니다.
7. 다음 실습
student/13-review-ui-ready에서 Agent 권한과 실행 이력을 완성합니다.