ADM01 실습가이드 - 결원·근무부하 추세 대시보드와 보충 필요량 예측
구 분 실습가이드 [교육용가상자료]
1. 실습 개요
본 실습은 교육용 가상 부대 인력 집계 자료로 결원·근무부하 추세를 분석하고 향후 3개월 보충 필요량을 예측하는 시스템을 미션 단위로 구현하는 과정이다. 미션마다 정답 코드(ADM01_정답코드.md)의 해당 코드를 웹 파이썬 실행기에 붙여 넣어 실행하고, 출력된 수치가 평가 기준을 충족하는지 확인한 뒤 파라미터를 바꿔 보는 도전 과제를 수행한다. 미션별 코드는 서로 독립적이어서 어느 미션부터 실행해도 동작한다.
| 과제 |
ADM01 결원·근무부하 추세 대시보드와 보충 필요량 예측 |
| 준비물 |
ADM01_정답코드.md, 웹 파이썬 실행기(numpy·pandas·scipy·scikit-learn·matplotlib 사용 가능), 결과 기록용 문서 |
2. 진행 방법
-
정답코드 md에서 해당 미션의 코드 블록 전체를 복사해 실행기에 붙여 넣고 실행한다(부분 복사 시 가상 인력 자료 생성 함수가 빠져 오류가 난다).
-
실행 결과를 md의 '실행 결과 예시'와 비교한다. 난수 시드가 고정되어 같은 값이 나오지만, 처리 시간(초·ms)과 처리 속도는 실행 환경에 따라 달라진다.
-
도전 과제는 코드 상단의 파라미터(기준값, 가중치, 확률 기준, 한도 등)를 바꿔 다시 실행하고 변화와 이유를 기록한다.
-
그래프 글자는 영문, 표·출력은 한글이다. 한글이 깨지면 실행기 글꼴 문제이며 결과에는 영향이 없다.
-
자료는 모두 가상 집계 인원 수이며 개인 정보는 없다. 실제 인사 자료는 입력하지 않는다. 보충·인원 이동·휴식 조정은 인사관·지휘관이 결정하며, 시간·속도 수치는 실행 환경에 따른 참고값이다.
-
미션 8과 9는 부하 시험과 8개 가상 세계 예측 때문에 10초 안팎이 걸릴 수 있고, 미션 4·5·10도 5~7초가 걸릴 수 있다. 실행이 끝날 때까지 기다린다.
3. 미션 진행 요약
| 미션 |
난이도·시간 |
핵심 확인 결과 |
| M1. 부대 인사/편제 데이터(현재원, 결원, 휴가, 환자, 교대주기) 데이터셋 스키마 설계 |
초급 |
|
| 1.5시간 |
필드 15개 정의 완성도 100%, 개인 식별 필드 0개 |
|
| M2. 비정형 근무일지 파싱, 결원 사유 분류 및 근무 시간 정규화 전처리 모듈 구현 |
초급~중급 |
|
| 2시간 |
6,060줄 중 5,953줄 파싱(해석 실패 107줄 격리), 처리 속도 수만 건/초(목표 1,000건/초 이상) |
|
| M3. 직무별 결원율 및 초과근무 시간 기반 1차 피로도 산출 Baseline 모델 구현 |
중급 |
|
| 2.5시간 |
기준선 65.2%, 단순 규칙 92.7%, 튜닝 가중(결원 0.3·초과근무 0.6·야간 0.1, 기준 55점) 정확도 94.1%(목표 75% 이상) |
|
| M4. 시계열 분석 기반 부서별 향후 3개월 결원 추세 및 보충 필요 인력 예측 모델 고도화 |
중급 |
|
| 3시간 |
MAE 단순 1.39·회귀 v2 1.16·모의 1.07명, 예측 지연 24개 셀 전체 수십 ms(목표 200ms 이하) |
|
| M5. 인력 부족 위험 지수 산출 및 인사 배치 추천 신뢰도 엔진 개발 |
중급~고급 |
|
| 3시간 |
오경보율 36.4%에서 11.1%(69% 감축, 목표 40% 이상), 단 재현율은 60.0%에서 45.7%로 하락 |
|
| M6. 지휘관/인사참모용 부대 근무부하 현황 및 결원 예측 가시화 대시보드 구현 |
중급 |
|
| 2.5시간 |
전체 갱신 수십~백 ms(목표 1초 이내), 최대 95백분위 응답 수 ms(목표 100ms 이내) |
|
| M7. 인사 보충 우선순위 결정 시 인사관 수동 조정 및 승인(HITL) 워크플로우 설계 |
고급 |
|
| 3시간 |
고위험 평균 대기 4.8h에서 2.5h(위험도 우선), 승인 9건·종결(반려) 1건, 조정 2건 |
|
| M8. 전시 동원 및 대량 결원 발생 상황 모의 인사 예측 스트레스 시뮬레이션 |
고급 |
|
| 3.5시간 |
평시 필요 인원 67명, 통신 전출 급증 시 75명(해당 셀 1명에서 9명) |
|
| M9. AAR 기반 인사 예측 오차 원인 분석 및 인력 예측 가중치 파라미터 재보정 |
고급 |
|
| 3시간 |
기존 종합 정확도 72.4%, 급증 부대 셀 평균 오차 +3.4명 |
|
| M10. 결원·근무부하 추세 대시보드 및 인력 보충 예측 시스템 통합 패키지 완성 |
최고급 |
|
| 3.5시간 |
설치 5/5 통과, E2E 4/4 성공, 자체 점검 9/9, 커버리지 100%(14/14), 매뉴얼 7/7장(100%) |
|
미션 1. 부대 인사/편제 데이터(현재원, 결원, 휴가, 환자, 교대주기) 데이터셋 스키마 설계
| 진행 순서 | 1) M1 코드를 실행해 스키마 필드 15개의 정의 완성도와 개인 식별 필드 수를 확인한다.
2) 전체 2,496행의 검증 결과와 주입 오류 8종의 검출 결과를 확인한다.
| 3) 직무별 평균 결원율·초과근무·고피로 비율표를 읽고 입출력 명세를 정리한다. |
|
| 확인할 결과 | 필드 15개 정의 완성도 100%, 개인 식별 필드 0개
| 정상 2,496행 오류 0건, 주입 오류 8종 중 8종 검출 |
|
| 도전 과제 |
SCHEMA의 overtime_h 최대값을 80에서 30으로 줄이고 정상 자료 중 몇 행이 오류로 걸리는지 확인한 뒤 적절한 한도를 판단한다. |
| 제출물 |
스키마(JSON)·검증 코드, 필드 정의표와 입출력 명세 |
미션 2. 비정형 근무일지 파싱, 결원 사유 분류 및 근무 시간 정규화 전처리 모듈 구현
| 진행 순서 | 1) M2 코드를 실행해 파싱 성공 줄 수, 해석 실패(잘린 줄) 수, 처리 속도를 확인한다.
2) 고정 임계값(14시간)과 상황별 동적 임계값의 이상 판정·오탐 건수를 비교한다.
| 3) 전처리 오류율과 결원 사유 분류 분포, 사람 확인 대상을 읽는다. |
|
| 확인할 결과 | 6,060줄 중 5,953줄 파싱(해석 실패 107줄 격리), 처리 속도 수만 건/초(목표 1,000건/초 이상)
| 동적 임계값은 잡음 75/75 검출·오탐 0건(고정 임계값은 오탐 약 585건), 전처리 오류율 0.00% |
|
| 도전 과제 |
FIXED 값을 18시간으로 올렸을 때와 동적 임계값의 오탐·미탐 차이를 비교하고, 훈련주간에는 어떤 임계값이 적절한지 설명한다. |
| 제출물 |
전처리 코드, 전처리 전후 비교표와 임계값 조정 기록 |
미션 3. 직무별 결원율 및 초과근무 시간 기반 1차 피로도 산출 Baseline 모델 구현
| 진행 순서 | 1) M3 코드를 실행해 단순 규칙·초기 가중·튜닝 가중의 시험 기간 정확도·정밀도·재현율을 비교한다.
2) 단순 기준선(모두 정상) 정확도와 비교해 Baseline의 의미를 판단한다.
| 3) 직무별 피로도와 상위 5개 셀의 점수 기여 분해를 읽고 사람이 먼저 확인할 셀을 정한다. |
|
| 확인할 결과 | 기준선 65.2%, 단순 규칙 92.7%, 튜닝 가중(결원 0.3·초과근무 0.6·야간 0.1, 기준 55점) 정확도 94.1%(목표 75% 이상)
| 판단 지연 0.01ms 미만, 피로도 직무 순위 보급 68·통신 64 순 |
|
| 도전 과제 |
격자 탐색 범위를 기준 점수 45~60으로 좁히거나 야간 가중을 0.3으로 고정해 정확도와 F1이 어떻게 달라지는지 비교한다. |
| 제출물 |
Baseline·튜닝 코드, 가중치 비교표와 판단 근거 예시 |
미션 4. 시계열 분석 기반 부서별 향후 3개월 결원 추세 및 보충 필요 인력 예측 모델 고도화
| 진행 순서 | 1) M4 코드를 실행해 4개 방식(단순·회귀 v1·v2·재고-흐름 모의)의 결원 인원 MAE를 비교한다.
2) 보충 필요 탐지의 방식별 재현율·정밀도와 확률 기준별 trade-off를 읽는다.
| 3) 오경보 패턴과 마지막 시점의 보충 필요 인원 예측·실제 비교를 확인한다. |
|
| 확인할 결과 | MAE 단순 1.39·회귀 v2 1.16·모의 1.07명, 예측 지연 24개 셀 전체 수십 ms(목표 200ms 이하)
| 확률 0.15 이상 기준 재현율 85.7%(목표 85%)·정밀도 56%, 확률 0.5 이상은 24건 중 21건 적중 |
|
| 도전 과제 |
P0 대신 확률 기준을 0.3으로 바꿔 재현율·정밀도·오경보 건수가 어떻게 달라지는지 비교하고, 현장에서 어떤 기준을 쓸지 판단한다. |
| 제출물 |
예측 모델 코드, 방식별 비교표와 보충 필요 인원 산출표 |
미션 5. 인력 부족 위험 지수 산출 및 인사 배치 추천 신뢰도 엔진 개발
| 진행 순서 | 1) M5 코드를 실행해 단순 경보와 신뢰도 반영 경보의 오경보율·재현율을 비교한다.
2) 시드 5회 반복 일관성과 가중치 매트릭스, 위험 지수 상위 셀의 신뢰도 등급을 확인한다.
| 3) 배치 추천안에서 신뢰도가 High가 아닌 건에 '사람 확인 필수'가 붙는지 확인한다. |
|
| 확인할 결과 | 오경보율 36.4%에서 11.1%(69% 감축, 목표 40% 이상), 단 재현율은 60.0%에서 45.7%로 하락
| 위험 등급 일관성 96%(목표 90% 이상), 신뢰도 등급 일관성 88% |
|
| 도전 과제 |
alarm 기준의 위험 50을 40으로 낮추고 오경보율과 재현율의 변화를 비교해 두 목표 사이의 균형을 설명한다. |
| 제출물 |
위험 지수·신뢰도 엔진 코드, 경보 비교표와 배치 추천안 |
미션 6. 지휘관/인사참모용 부대 근무부하 현황 및 결원 예측 가시화 대시보드 구현
| 진행 순서 | 1) M6 코드를 실행해 전체 갱신 시간과 상태 집계(긴급·주의·정상)를 확인한다.
2) 현황판 표와 히트맵에서 '*'가 붙은 보충 필요 셀을 읽는다.
| 3) 필터·드릴다운·야간 모드 전환의 응답 시간을 확인하고 두 모드의 그래프를 비교한다. |
|
| 확인할 결과 | 전체 갱신 수십~백 ms(목표 1초 이내), 최대 95백분위 응답 수 ms(목표 100ms 이내)
| 상태 집계 긴급 5·주의 2·정상 17, 전체 결원율 10.0% |
|
| 도전 과제 |
view 함수에 직무 필터와 상태 필터('긴급'만)를 함께 적용하는 옵션을 추가하고 응답 시간이 어떻게 변하는지 측정한다. |
| 제출물 |
대시보드 코드, 화면 출력 캡처와 응답 시간 측정표 |
미션 7. 인사 보충 우선순위 결정 시 인사관 수동 조정 및 승인(HITL) 워크플로우 설계
| 진행 순서 | 1) M7 코드를 실행해 큐 대기시간(선입선출 대 위험도 우선)과 결재 결과 10건을 확인한다.
2) 인사관 조정 건의 전후 인원과 반려·피드백 기록을 읽는다.
| 3) 권한 우회·절차 위반 14종 차단 결과, 로깅 성공률, 해시 체인 검증과 위변조 탐지를 확인한다. |
|
| 확인할 결과 | 고위험 평균 대기 4.8h에서 2.5h(위험도 우선), 승인 9건·종결(반려) 1건, 조정 2건
| 차단 14/14(100%), 처리 요청 100건 대비 로그 100건(성공률 100%), 이력 무결성 100%·수정 탐지 |
|
| 도전 과제 |
ADJ_LIMIT를 0.5에서 0.2로 줄이고 조정 시도 중 차단되는 건이 늘어나는지 확인한 뒤 적절한 한도를 판단한다. |
| 제출물 |
워크플로우·감사 로그 코드, 권한 시험표와 큐 대기시간 비교표 |
미션 8. 전시 동원 및 대량 결원 발생 상황 모의 인사 예측 스트레스 시뮬레이션
| 진행 순서 | 1) M8 코드를 실행해 평시와 통신 직무 전출 급증 상황의 보충 필요 인원을 비교한다.
2) 100·200·500% 부하에서 최적화 전후 응답 시간·기능 축소 건수·유실 건수를 확인한다.
| 3) 500% 처리 내역(정상·축소·격리)을 읽고 기능 축소 정책이 적절한지 판단한다. |
|
| 확인할 결과 | 평시 필요 인원 67명, 통신 전출 급증 시 75명(해당 셀 1명에서 9명)
| 500%에서 시스템 다운 0건·데이터 유실 0건, 캐시 후 p95 응답과 기능 축소 건수 대폭 감소 |
|
| 도전 과제 |
run의 qmax(큐 크기)를 48에서 16으로 줄이고 기능 축소 건수와 응답 시간이 어떻게 변하는지 비교한다. |
| 제출물 |
스트레스 시험 코드, 부하 시험 결과표와 병목 최적화 기록 |
미션 9. AAR 기반 인사 예측 오차 원인 분석 및 인력 예측 가중치 파라미터 재보정
| 진행 순서 | 1) M9 코드를 실행해 기존 모델의 편차(편향·전출 급증 부대 셀 오차)와 원인 분류표를 확인한다.
2) 격자 탐색 결과와 채택 파라미터, 시험 세계의 개선 효과·재발 오류를 읽는다.
| 3) 출력된 파라미터(YAML)와 지속 학습 트리거를 확인하고 적용 여부를 누가 결정해야 하는지 적는다. |
|
| 확인할 결과 | 기존 종합 정확도 72.4%, 급증 부대 셀 평균 오차 +3.4명
| 시험 세계 종합 정확도 63.5%에서 67.7%(+4.2%p, 목표 10%p 미달), 급증 셀 평균 오차 +3.6명에서 +1.7명, 재발 오류 8건에서 5건 |
|
| 도전 과제 |
lam 후보에 0.65를 추가하고 MAE와 정확도가 어떻게 달라지는지 확인한 뒤 목표 10%p를 달성할 방법을 제안한다. |
| 제출물 |
AAR 분석·재보정 코드, 원인 분류표와 재보정 전후 비교표, 파라미터(YAML) |
미션 10. 결원·근무부하 추세 대시보드 및 인력 보충 예측 시스템 통합 패키지 완성
| 진행 순서 | 1) M10 코드를 실행해 설치 스크립트 5단계 점검과 End-to-End 시나리오 4종 결과를 확인한다.
2) 자체 점검 9항목과 함수 커버리지, 매뉴얼 작성률을 읽는다.
| 3) 브리핑 요약의 수치가 앞선 출력과 일치하는지 확인하고 사람이 해야 할 일을 정리한다. |
|
| 확인할 결과 | 설치 5/5 통과, E2E 4/4 성공, 자체 점검 9/9, 커버리지 100%(14/14), 매뉴얼 7/7장(100%)
| 브리핑: 셀 24개 중 위험 지수 50 이상 8개, 검토 큐 8건 모두 PENDING, 보충 필요 인원 71명 |
|
| 도전 과제 |
CONF의 queue_min_risk를 50에서 70으로 올려 검토 큐 건수와 필요 인원 합계가 어떻게 바뀌는지 비교한다. |
| 제출물 |
통합 파이프라인 코드, 점검 결과 출력과 브리핑 요약 |
4. 최종 점검표
| 점검 항목 |
확인 |
| 미션 1~10 코드가 모두 오류 없이 실행되었다 |
( ) |
| 각 미션의 확인할 결과를 기록했다 |
( ) |
| 도전 과제 결과와 이유를 기록했다 |
( ) |
| 브리핑 수치가 실행 결과와 일치한다 |
( ) |
| 실제 부대·인원·개인 정보를 사용하지 않았다 |
( ) |
| 보충·인원 이동·휴식 조정 결정을 인사관·지휘관이 하도록 설계했다 |
( ) |