검토일: 2026-09-08. 원본 기준: da8888c, 원본 테스트 75개 통과. 범위는 코드·스키마·인수인계·표본 생성·지도 적재·실제 브라우저 작업 흐름입니다. 공식 인력풀 선발요건에 대한 자격 판정은 아닙니다.
현장 문제를 이해하고 데이터 흐름을 설계한 포트폴리오로는 강점이 있습니다. ‘거의 완성’이라는 판단은 핵심 기능의 존재에는 맞지만, 저장 실패·데이터 보존·재생의 정확성과 시연 준비까지 포함하면 보완이 필요했습니다.
가장 좋은 부분은 화려한 지도가 아니라, 보고와 확정을 분리하고 관측·접수·확정 시각 및 정정 근거를 남긴다는 점입니다. 자원의 도착과 가용, 임무의 발령과 수신확인을 구분하는 것도 현장 이해를 보여줍니다. 4유형 배치를 스키마로 표현하고 외부 계산 결과를 받아 쓰는 구조는 이 규모에 적절합니다. FastAPI·SQLite·정적 화면을 다른 대형 스택으로 교체할 이유는 없습니다.
소방청 AI 전문가 인력풀 지원 자료로 설명한다면 **‘AI에 들어갈 현장 데이터의 구조화와 사람 검토 체계’**가 정확한 강점입니다. 현재 코드에 학습·추론·OCR·LLM 또는 그 평가 실적은 없습니다. 이 프로그램만으로 AI 모델 개발 역량까지 입증했다고 주장하기는 어렵습니다. 기능 이름에 AI를 덧붙이는 대신, 실제 문제 정의·잘못된 정보의 통제·데이터 축적·외부 모형의 한계를 설명하는 편이 설득력 있습니다.
| 중요도 | 원본의 문제와 영향 | v2 결과 |
|---|---|---|
| 높음 | seed_sample.py가 같은 경로의 DB를 무조건 삭제. 실수 한 번으로 기록 손실 |
기존 파일 발견 시 중단. 기본 실행은 최초 1회만 표본 생성 |
| 높음 | import_fireline.py가 종류만으로 도형 삭제. 사람이 그린 같은 종류의 화선도 소실 |
가져오기 출처 표식이 있는 도형만 교체. 수동·구버전 미표식 도형 보존. 빈 결과는 기존 자료 보존 |
| 높음 | 모형 결과 숫자를 담당자 이름으로 자동 확정 | 보고됨으로 적재. 사람 확인 전 기존 확정값 유지 |
| 높음 | ‘잔여화선’이 이미 활성화선인 값에서 완료선을 다시 뺌 | 로컬 모형의 필드 정의를 확인해 전체=활성+완료, 잔여=활성으로 정리 |
| 높음 | 정본 화면이 fetch 실패를 빈 catch로 숨김 | 요청 제한시간·연결 실패 표시·마지막 수신 시각·조회본 유지·편집 중지·재연결 표시 |
| 높음 | 저장 API 오류를 성공처럼 반환해 입력을 지우거나 편집창 닫음. 삭제도 상태코드 미확인 | 오류를 전파하고 실패 표시. 보고·정정 입력 및 편집창 보존 |
| 높음 | 확정 버튼 재호출이 최초 확정시각·확인자를 덮어씀 | 중복 호출 시 최초 근거 유지. 과거 재생에서 확정 전 상태도 보고됨으로 복원 |
| 높음 | 입력·공동화면 및 일부 지도 라벨에 사용자 문자열을 HTML로 삽입 | 텍스트·속성용 이스케이프 적용 |
| 중간 | 잘못된 JSON·필수값 누락·시각·상태가 500 또는 화면 전체 장애로 이어짐 | 주요 요청 경계에서 400으로 안내. 구 DB의 잘못된 관측시각은 경과 미표시로 처리 |
| 중간 | 자원이 다른 사고의 방면을 참조할 수 있음. 참조 중 방면 삭제는 FK 오류 | 같은 사고인지 저장 전 확인. 방면 삭제 시 자원 보존·배속 해제 |
| 중간 | 첫 지도 로딩 당시 권한을 click 핸들러가 계속 사용 | 현재 편집권을 클릭마다 확인. 읽기전용→편집 전환 후 도구 작동 검증 |
| 중간 | 입력 화면이 작전도에서 넘긴 사고 ID를 무시. 항목명 오타로 값이 작전도에 안 보임 | 사고 ID 유지, 유형별 항목 후보, 관측시각·정정 입력 제공 |
| 중간 | 위험 슬롯이 비어 있지 않으면 모두 ‘즉시 위험’으로 표현 | ‘위험 관련 보고 · 기준 확인 대기’로 표시. 위험 임계값을 임의로 만들지 않음 |
| 중간 | 첨부 해외 지도와 한국 상황값을 같은 모델 결과로 오해할 가능성 | 이미지는 시각 참고에만 사용. 실제 지도에 최신 Pyretechnics 합성 민감도 3개 도형을 표시 |
| 중간 | 사진 테이블은 있으나 촬영·업로드·값 연결 입력이 없음 | 로컬 이미지 업로드, 미리보기, 촬영·원본 기준시각, 보고값 연결, 작전도 썸네일·원본 조회, 안전한 삭제 추가 |
| 낮음 | 강한 원색·두꺼운 경계·지도 옆 넓은 도구함이 읽기를 방해 | 색과 테두리 정리, 지도 도구를 아래로 이동, 탐색 링크·태블릿 폭 대응·키보드 상세 열기 추가 |
- 원본: pytest 75 passed. 원본 Git 작업 트리 변경 없음.
- v2: pytest 86 passed. 사진 파일·경로·사고 연결과 최초 확정시각·과거 재생·입력 오류·사고 참조·삭제 보존·모형 갱신 및 중도 종료 차단 회귀 검증 포함.
- 런타임 의존성의 deprecation 경고 2건은 남아 있습니다. 테스트 실패는 아닙니다.
- 브라우저 검증: 결과는 핸드오프의 최종 검증 항목에 기록했습니다. 대표 화면은
v2-start.png,v2-wildfire.png,v2-structure.png,v2-input-photo.png,v2-tablet.png입니다.
- 현장 유효성은 사람의 검증이 필요합니다. 체크리스트·위험 기준의 현직 확정, 태블릿·장갑·야간 판독, PPT/수기 대비 소요시간과 수정 오류 실측은 코드 테스트로 대체할 수 없습니다. 지원 자료에 효과를 수치로 쓰려면 실제 측정값을 쓰십시오.
- AI 성과는 아직 없습니다. 기존 규칙대로 OCR은 총 작업시간 이득이 입증될 때만 착수하십시오. 현재 v2에 생성형 AI 호출을 추가하지 않았습니다.
- 제공 이미지는 공간자료가 아닙니다. 화면에는 넣지 않고 선 표현만 참고했습니다. 현재 도형은 별도 Pyretechnics 합성 민감도이며 실제 화재경계로 해석할 수 없습니다.
- 완전한 무서버 앱은 아닙니다. 인터넷 없이 로컬 서버로 사용하고, 서버 단절 시 이미 열린 화면의 수신본을 유지합니다. 서버가 죽은 상태의 신규 접속·강제 새로고침까지 보장하는 Service Worker 설치는 구현하지 않았습니다.
- 기록은 아직 완전한 감사 시스템이 아닙니다. 사실 정정과 자원·임무 상태 전이는 남지만 지도 좌표·방면 이름·일부 체크리스트의 모든 변경을 과거 시점까지 복원하지는 못합니다. 정본 편집권도 이름 기반 협업 장치입니다. 이 시제품 범위에서는 제한을 명시하면 됩니다.
- 모형 스크립트는 별도 프로젝트에 의존합니다. 기본 시연은 그 프로젝트 없이 됩니다. 기존 미표식 모형 도형은 수동 도형과 구분할 수 없어 보존되며, 구 DB를 옮기면 중복을 사람이 검토해야 합니다.
- 대규모 운영 최적화는 보류합니다. DB 연결 수명 정리, 포괄적인 입력 타입/공간 형상 검증, 다중 편집 충돌 제어, 인증·배포 자동화는 후속 범위입니다. 국가적·기업적 수준의 운영 체계를 이번 목적에 억지로 추가하지 않았습니다.
제출물에는 이 화면 자체와 함께, ‘무엇이 확인되지 않았는지 화면이 숨기지 않는다’는 사례와 보고→정정→복구 시연을 제시하는 것이 좋습니다.