98 lines
16 KiB
Markdown
98 lines
16 KiB
Markdown
**결원·근무부하 추세 대시보드와 보충 필요량 예측**
|
|
|
|
난 이 도 **고급**
|
|
|
|
| **프로젝트 목표** | 병력 감소와 전출·파견·휴가·환자·교육이 겹치면 부대 직무별 결원이 갑자기 커지고 남은 인원의 초과근무와 피로가 누적되어 전투력 유지가 어려워지지만, 현재원 표만으로는 향후 결원과 보충 필요량을 미리 보기 어렵다. 본 프로젝트는 러시아-우크라이나 전쟁에서 드러난 인력 소모·피로 관리 문제의식을 교육용 가상 자료로 재구성해, 가상 대대 4곳의 직무 6종 주간 인력 집계 자료로 결원·근무부하 추세를 보고 향후 3개월 보충 필요량을 예측하는 과제이다. 인력 자료 스키마와 근무일지 전처리, 피로도 Baseline, 13주 결원 예측과 위험 지수·신뢰도, 현황 대시보드, 인사관·지휘관 검토 워크플로우, 대량 결원 스트레스 시험, AAR 재보정, 통합 패키지까지 단계별로 구현한다. 최종 목표는 인력 부족과 피로 위험을 근거와 불확실성과 함께 보여 주되, 보충 요청과 인원 이동 결정은 인사관·지휘관이 하도록 지원하는 시스템을 완성하는 것이다. |
|
|
| --- | --- |
|
|
|
|
| **유의사항** | 모든 부대·직무·인원·근무일지 자료는 코드 안에서 만든 교육용 가상 집계 자료이며 실제 부대, 편제, 병력, 개인 정보는 사용하지 않는다. 개인을 식별할 수 있는 자료(이름·군번 등)는 만들지도 입력하지도 않는다. 부대 인사 자료의 외부 AI 서비스 입력과 부대 내 촬영은 금지한다. 환자·휴가 등 건강·복무 관련 수치는 집계 인원 수일 뿐이며 개인의 진단이나 판단이 아니고, 건강 문제는 의무대·군의관과 연계한다. 피로도·위험 지수와 보충 필요량은 판단 보조 정보이며 보충 요청, 인원 이동, 휴식·교대 조정은 인사관·지휘관이 인사 규정과 지휘계통에 따라 결정한다. 미션별 정답 코드는 각각 한 파일로 독립 실행된다. |
|
|
| --- | --- |
|
|
|
|
**1단계. 인력 자료 스키마 정의 및 근무일지 전처리**
|
|
|
|
| **미션 1. 부대 인사/편제 데이터(현재원, 결원, 휴가, 환자, 교대주기) 데이터셋 스키마 설계** [초급 · 1.5시간] | **미션 1. 부대 인사/편제 데이터(현재원, 결원, 휴가, 환자, 교대주기) 데이터셋 스키마 설계** [초급 · 1.5시간] |
|
|
| --- | --- |
|
|
| **목표** | 가상 부대의 직무별 인력 현황(편제·현재원·결원·휴가·환자·교육·보충·전출·초과근무·교대주기) 자료의 구조를 JSON 스키마로 정의하고, 정상 표본 검증 오류 0건과 필드 정의 완성도 100%를 확인한다. |
|
|
| **수행** | 가상 대대 4곳과 직무 6종의 주간 집계 자료에서 필드 15개의 자료형·단위·허용 범위·설명·출처를 모두 정의하고 필드 간 논리 규칙(결원은 편제에서 현재원을 뺀 값, 휴가·환자·교육 합계는 현재원 이하)을 만든다. 2,496행 전체를 검증해 오류 0건을 확인하고, 자료형·허용값·범위·논리·누락·결측 오류 8종을 일부러 넣어 검출되는지 시험한다. 개인을 식별하는 필드가 없고 인원 수만 집계하는지 점검하고 입출력 명세를 정리한다. |
|
|
| **산출물** | data/schema/adm01_input_schema.json 및 docs/adm01_data_spec.md |
|
|
| **평가** | **[필수] 인력 자료 스키마 정의** — 스키마 필드 정의 완성도 100%, 샘플 데이터 검증 오류 0건, 주입 오류 검출, 개인 식별 필드 0개, 행정·인사 실무에 맞는 구조인가. |
|
|
|
|
| **미션 2. 비정형 근무일지 파싱, 결원 사유 분류 및 근무 시간 정규화 전처리 모듈 구현** [초급~중급 · 2시간] | **미션 2. 비정형 근무일지 파싱, 결원 사유 분류 및 근무 시간 정규화 전처리 모듈 구현** [초급~중급 · 2시간] |
|
|
| --- | --- |
|
|
| **목표** | 서식이 제각각인 비정형 근무일지를 파싱해 결원 사유를 분류하고 근무 시간을 시간 단위로 정규화하는 전처리 모듈을 구현한다. |
|
|
| **수행** | 시간 표기 5종('12시간 30분', '8h', '22:00~06:00', '오후 2시~익일 오전 6시', '총 9시간')이 섞인 가상 근무일지 6,000줄에서 부대·직무·근무 시간·상황·결원 사유(휴가·환자·교육·파견·전출·기타)를 정규식과 키워드로 뽑는다. 평시·야간·훈련주간별 임계값을 중앙값과 MAD로 조정해 99시간·0.5시간 같은 이상 값과 중복 줄을 걸러내고 고정 임계값과 비교한다. 정답과 대조해 오류율과 처리 속도를 측정한다. |
|
|
| **산출물** | src/preprocess/adm01_preprocessor.py 및 전처리 전후 데이터셋 |
|
|
| **평가** | **[필수] 근무일지 전처리** — 데이터 정제 처리 속도 1,000건/초 이상, 정답 대조 전처리 오류율 0%, 상황별(평시·야간·훈련주간) 임계값 조정의 타당성, 해석 실패 줄 격리를 확인했는가. |
|
|
|
|
**2단계. 피로도 Baseline 및 13주 결원 예측 모델**
|
|
|
|
| **미션 3. 직무별 결원율 및 초과근무 시간 기반 1차 피로도 산출 Baseline 모델 구현** [중급 · 2.5시간] | **미션 3. 직무별 결원율 및 초과근무 시간 기반 1차 피로도 산출 Baseline 모델 구현** [중급 · 2.5시간] |
|
|
| --- | --- |
|
|
| **목표** | 직무별 결원율과 초과근무 시간(야간 근무 비율 포함)으로 1차 피로도 점수를 계산하는 Baseline 모델을 만들고 가중치를 1차 튜닝해 정확도를 검증한다. |
|
|
| **수행** | 결원율·초과근무·야간 비율을 한도로 나누어 가중합한 피로도 점수(0~100)를 정의하고, 앞 52주로 가중치와 기준 점수를 격자 탐색한 뒤 뒤 52주로 정확도·정밀도·재현율·F1을 시험한다. 모두 정상이라고 답했을 때의 정확도와 단순 규칙도 함께 비교한다. 최근 12주 직무별·셀별 피로도 순위와 점수 기여 분해(판단 근거), 미탐 사례의 특징을 확인한다. |
|
|
| **산출물** | src/models/adm01_baseline_model.py 및 기본 추론 결과 보고서 |
|
|
| **평가** | **[필수] 피로도 Baseline** — 시험 기간 정확도 75% 이상(단순 기준선 대비 개선 확인), 판단 근거 기여 점수의 투명성, 판단 지연시간 측정과 가중치 1차 튜닝 결과를 확인했는가. |
|
|
|
|
| **미션 4. 시계열 분석 기반 부서별 향후 3개월 결원 추세 및 보충 필요 인력 예측 모델 고도화** [중급 · 3시간] | **미션 4. 시계열 분석 기반 부서별 향후 3개월 결원 추세 및 보충 필요 인력 예측 모델 고도화** [중급 · 3시간] |
|
|
| --- | --- |
|
|
| **목표** | 시계열 분석으로 부대·직무별 향후 3개월(13주) 결원 추세를 예측하고 보충 필요 인원을 산출하는 모델을 고도화해 보충 필요 셀 탐지 재현율을 검증한다. |
|
|
| **수행** | 24개 셀의 주간 결원율을 단순 예측, 릿지 회귀(특징 재설계 전후), 교대 보충·전출 집중기를 반영한 재고-흐름 모의(300경로)로 예측해 4개 시점 롤링 검증으로 오차를 비교한다. 향후 13주 중 결원율이 15% 이상이 되는 보충 필요 셀을 확률로 탐지해 재현율·정밀도 균형과 오경보 패턴을 분석하고 처리 지연을 측정한다. 마지막 시점의 보충 필요 인원을 실제와 비교한다. |
|
|
| **산출물** | src/models/adm01_advanced_detector.py 및 예외 탐지 테스트 결과 |
|
|
| **평가** | **[필수] 결원 추세 예측** — 보충 필요 셀 탐지 재현율 85% 이상(정밀도 trade-off 명시), 처리 지연 200ms 이하, 오경보 패턴 식별과 특징 재설계 효과를 확인했는가. |
|
|
|
|
**3단계. 위험 지수·신뢰도 엔진 및 근무부하 대시보드**
|
|
|
|
| **미션 5. 인력 부족 위험 지수 산출 및 인사 배치 추천 신뢰도 엔진 개발** [중급~고급 · 3시간] | **미션 5. 인력 부족 위험 지수 산출 및 인사 배치 추천 신뢰도 엔진 개발** [중급~고급 · 3시간] |
|
|
| --- | --- |
|
|
| **목표** | 인력 부족 위험 지수를 산출하고 신뢰도(High/Med/Low) 등급과 함께 인사 배치(인원 이동) 추천을 만드는 신뢰도 엔진을 개발한다. |
|
|
| **수행** | 보충 필요 확률·예상 최대 결원율·초과근무 부담으로 위험 지수를, 예측 경로 분산·모델 간 일치·자료 충분도로 신뢰도를 계산해 가중치 매트릭스로 보여 준다. 단순 경보와 신뢰도를 반영한 경보의 오경보율을 비교하고 같은 입력으로 시드를 바꿔 5회 산출했을 때 등급 일관성을 확인한다. 같은 직무의 여유 셀에서 부족 셀로 이동하는 배치 추천안과 불확실성 표시(막대·구간)를 만든다. |
|
|
| **산출물** | src/verification/adm01_confidence_engine.py |
|
|
| **평가** | **[필수] 위험 지수·신뢰도 엔진** — 오경보율 40% 이상 감축, 시드 반복 시 위험 등급 일관성 90% 이상, 신뢰도 등급(High/Med/Low) 기준의 타당성과 불확실성 표시를 확인했는가. |
|
|
|
|
| **미션 6. 지휘관/인사참모용 부대 근무부하 현황 및 결원 예측 가시화 대시보드 구현** [중급 · 2.5시간] | **미션 6. 지휘관/인사참모용 부대 근무부하 현황 및 결원 예측 가시화 대시보드 구현** [중급 · 2.5시간] |
|
|
| --- | --- |
|
|
| **목표** | 지휘관·인사참모가 부대 근무부하 현황과 결원 예측을 한눈에 볼 수 있는 가시화 대시보드를 구현하고 응답 성능을 측정한다. |
|
|
| **수행** | 부대 x 직무 24개 셀의 현재 결원율·13주 후 예측·초과근무·피로도·보충 필요 확률을 상태(긴급·주의·정상) 강조와 함께 표와 히트맵으로 만들고 위험 셀의 추세·예측 구간 그래프를 그린다. 전체 갱신 시간과 부대·직무 필터, 셀 드릴다운, 야간 모드 전환의 응답 시간을 각각 50회 측정한다. 야간 모드는 배경·글자·경보 색만 바꾸어 같은 수치를 보여 준다. |
|
|
| **산출물** | src/ui/adm01_dashboard.py (또는 웹 UI 컴포넌트) |
|
|
| **평가** | **[선택] 결원·근무부하 대시보드** — 화면 갱신 1초 이내, UI 응답 100ms 이내, 긴급 경보 강조와 야간 모드 제공, 작전 상황판으로서 직관적이고 인지 부하가 낮은가. |
|
|
|
|
**4단계. 인사관 HITL 워크플로우 및 대량 결원 스트레스 시험**
|
|
|
|
| **미션 7. 인사 보충 우선순위 결정 시 인사관 수동 조정 및 승인(HITL) 워크플로우 설계** [고급 · 3시간] | **미션 7. 인사 보충 우선순위 결정 시 인사관 수동 조정 및 승인(HITL) 워크플로우 설계** [고급 · 3시간] |
|
|
| --- | --- |
|
|
| **목표** | 인력 보충 우선순위 결정을 인사담당-인사관(수동 조정)-지휘관(승인)이 거치는 HITL 워크플로우로 설계하고 성급한 자동 확정을 막는 체계를 검증한다. |
|
|
| **수행** | 역할별 권한과 단계 순서를 정의하고 시스템은 제안만, 확정은 사람만 하도록 한다. 위험 상위 10건을 상신해 인사관이 인원을 수동 조정(전후 값·사유·근거 기록, 조정 폭 한도)하고 지휘관이 피드백과 함께 승인·반려하는 과정을 모의 실행하며 반려 사유를 필수로 한다. 위험도 우선 큐와 선입선출의 대기시간을 비교하고 권한 우회·절차 위반 14종과 로그 임의 수정을 시험한다. |
|
|
| **산출물** | src/hitl/adm01_approval_workflow.py 및 docs/adm01_hitl_guide.md |
|
|
| **평가** | **[필수] 인사관 HITL 워크플로우** — 인간 검토 큐 대기시간 측정과 승인·반려·조정 처리 로깅 성공률 100%, 권한 우회 차단 100%, 지휘 책임 분계선 명확화와 자동 단정 방지를 확인했는가. |
|
|
|
|
| **미션 8. 전시 동원 및 대량 결원 발생 상황 모의 인사 예측 스트레스 시뮬레이션** [고급 · 3.5시간] | **미션 8. 전시 동원 및 대량 결원 발생 상황 모의 인사 예측 스트레스 시뮬레이션** [고급 · 3.5시간] |
|
|
| --- | --- |
|
|
| **목표** | 특정 직무에서 대량 결원이 발생한 상황과 조회 요청 500% 증가 부하에서 시스템이 중단되거나 자료가 유실되지 않는지 스트레스 시뮬레이션으로 검증한다. |
|
|
| **수행** | 한 부대 통신 직무의 전출이 갑자기 늘어난 상황에서 보충 필요 확률과 필요 인원이 어떻게 바뀌는지 평시와 비교한다. 초당 150건 기준 요청을 100·200·500%로 늘려 큐와 작업자 스레드로 처리하고, 큐가 차거나 모델 오류가 나면 경량 예측으로 기능을 줄여 응답하며 잘못된 요청은 격리한다. 병목 함수(셀별 예측)를 캐시해 최적화 전후 응답 시간과 기능 축소 건수를 비교한다. |
|
|
| **산출물** | tests/adm01_stress_test.py 및 스트레스 테스트 분석 보고서 |
|
|
| **평가** | **[선택] 대량 결원·부하 스트레스** — 동시 트래픽 500% 증가 시 시스템 다운 0건·데이터 유실률 0%, 안전 실패(기능 축소) 적절성, 병목 함수 최적화와 큐 처리 개선 효과를 확인했는가. |
|
|
|
|
**5단계. AAR 재보정 및 통합 패키지 완성**
|
|
|
|
| **미션 9. AAR 기반 인사 예측 오차 원인 분석 및 인력 예측 가중치 파라미터 재보정** [고급 · 3시간] | **미션 9. AAR 기반 인사 예측 오차 원인 분석 및 인력 예측 가중치 파라미터 재보정** [고급 · 3시간] |
|
|
| --- | --- |
|
|
| **목표** | AAR로 인사 예측 오차의 원인을 분석하고 예측 가중 파라미터를 재보정해 종합 정확도 개선과 재발 오류 현황을 검증한다. |
|
|
| **수행** | 두 부대에서 전출이 늘어난 가상 세계 8개에서 91주 시점의 13주 예측을 실제와 비교해 편향과 원인(최근 전출 급증 미반영)을 분류한다. 튜닝 세계 4개에서 최근 전출 반영 비중(lam)과 판정 확률 기준을 격자 탐색하고 시험 세계 4개로 종합 정확도(보충 인원 +-2명 적중)·재현율·재발 오류를 검증한다. 재보정 파라미터를 YAML 문자열로 출력하고 지속 학습 트리거를 정리한다. |
|
|
| **산출물** | docs/adm01_aar_report.md 및 configs/adm01_tuned_params.yaml |
|
|
| **평가** | **[필수] AAR 재보정** — AAR 적용 후 종합 정확도 10%p 이상 향상 여부, 재발 오류 현황(목표 0건) 보고, 오류 원인 규명의 객관성과 조치의 타당성, 지속 학습 연계 방안을 확인했는가. |
|
|
|
|
| **미션 10. 결원·근무부하 추세 대시보드 및 인력 보충 예측 시스템 통합 패키지 완성** [최고급 · 3.5시간] | **미션 10. 결원·근무부하 추세 대시보드 및 인력 보충 예측 시스템 통합 패키지 완성** [최고급 · 3.5시간] |
|
|
| --- | --- |
|
|
| **목표** | 검증·전처리·피로도·결원 예측·위험 지수·검토 큐·감사 로그·브리핑을 묶은 결원·근무부하 대시보드 및 인력 보충 예측 시스템 패키지를 완성한다. |
|
|
| **수행** | 앞 미션의 기능을 통합 파이프라인으로 묶어 설치 스크립트 5단계 점검, 시드 4종 End-to-End 실행(각 2행 손상 주입), 자체 점검 9항목과 함수 커버리지를 수행한다. 모의 예측이 없을 때 규칙만으로 동작하는지, 손상 레코드를 격리하는지, 감사 로그 변조를 탐지하는지 확인한다. 매뉴얼 7개 장의 작성률과 인사참모 브리핑 요약을 출력한다. |
|
|
| **산출물** | src/main_adm01.py, README.md, docs/adm01_final_report.pdf(md) |
|
|
| **평가** | **[필수] 통합 패키지·배포** — End-to-End 통합 파이프라인 실행 성공률 100%, 테스트(함수) 커버리지 85% 이상, 군 실무 즉시 도입 가능성과 연동 인터페이스 확장 방안을 설명하는가. |
|
|
|
|
**최종 판정**
|
|
|
|
**판정 기준 :** 모든 필수 항목([필수])에서 PASS를 받아야 최종 PASS로 인정한다.
|
|
|
|
최종 판정 결과 : ( PASS / FAIL )
|
|
|
|
평가 의견 : (필수 항목 중 하나라도 FAIL인 경우 사유를 기재한다.)
|