270 lines
16 KiB
Markdown
270 lines
16 KiB
Markdown
**ADM01 실습가이드 - 결원·근무부하 추세 대시보드와 보충 필요량 예측**
|
|
|
|
구 분 **실습가이드 [교육용가상자료]**
|
|
|
|
**1. 실습 개요**
|
|
|
|
본 실습은 교육용 가상 부대 인력 집계 자료로 결원·근무부하 추세를 분석하고 향후 3개월 보충 필요량을 예측하는 시스템을 미션 단위로 구현하는 과정이다. 미션마다 정답 코드(ADM01_정답코드.md)의 해당 코드를 웹 파이썬 실행기에 붙여 넣어 실행하고, 출력된 수치가 평가 기준을 충족하는지 확인한 뒤 파라미터를 바꿔 보는 도전 과제를 수행한다. 미션별 코드는 서로 독립적이어서 어느 미션부터 실행해도 동작한다.
|
|
|
|
| **과제** | ADM01 결원·근무부하 추세 대시보드와 보충 필요량 예측 |
|
|
| --- | --- |
|
|
|
|
| **난이도·유형** | 고급 / 코딩형 |
|
|
| --- | --- |
|
|
|
|
| **예상 소요시간** | 미션 10개, 총 27.5시간 |
|
|
| --- | --- |
|
|
|
|
| **준비물** | 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.5시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 1) M1 코드를 실행해 스키마 필드 15개의 정의 완성도와 개인 식별 필드 수를 확인한다.
|
|
2) 전체 2,496행의 검증 결과와 주입 오류 8종의 검출 결과를 확인한다.
|
|
3) 직무별 평균 결원율·초과근무·고피로 비율표를 읽고 입출력 명세를 정리한다. |
|
|
| --- | --- |
|
|
|
|
| **확인할 결과** | 필드 15개 정의 완성도 100%, 개인 식별 필드 0개
|
|
정상 2,496행 오류 0건, 주입 오류 8종 중 8종 검출 |
|
|
| --- | --- |
|
|
|
|
| **도전 과제** | SCHEMA의 overtime_h 최대값을 80에서 30으로 줄이고 정상 자료 중 몇 행이 오류로 걸리는지 확인한 뒤 적절한 한도를 판단한다. |
|
|
| --- | --- |
|
|
|
|
| **제출물** | 스키마(JSON)·검증 코드, 필드 정의표와 입출력 명세 |
|
|
| --- | --- |
|
|
|
|
**미션 2. 비정형 근무일지 파싱, 결원 사유 분류 및 근무 시간 정규화 전처리 모듈 구현**
|
|
|
|
| **난이도·시간** | 초급~중급 · 2시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 1) M2 코드를 실행해 파싱 성공 줄 수, 해석 실패(잘린 줄) 수, 처리 속도를 확인한다.
|
|
2) 고정 임계값(14시간)과 상황별 동적 임계값의 이상 판정·오탐 건수를 비교한다.
|
|
3) 전처리 오류율과 결원 사유 분류 분포, 사람 확인 대상을 읽는다. |
|
|
| --- | --- |
|
|
|
|
| **확인할 결과** | 6,060줄 중 5,953줄 파싱(해석 실패 107줄 격리), 처리 속도 수만 건/초(목표 1,000건/초 이상)
|
|
동적 임계값은 잡음 75/75 검출·오탐 0건(고정 임계값은 오탐 약 585건), 전처리 오류율 0.00% |
|
|
| --- | --- |
|
|
|
|
| **도전 과제** | FIXED 값을 18시간으로 올렸을 때와 동적 임계값의 오탐·미탐 차이를 비교하고, 훈련주간에는 어떤 임계값이 적절한지 설명한다. |
|
|
| --- | --- |
|
|
|
|
| **제출물** | 전처리 코드, 전처리 전후 비교표와 임계값 조정 기록 |
|
|
| --- | --- |
|
|
|
|
**미션 3. 직무별 결원율 및 초과근무 시간 기반 1차 피로도 산출 Baseline 모델 구현**
|
|
|
|
| **난이도·시간** | 중급 · 2.5시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 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개월 결원 추세 및 보충 필요 인력 예측 모델 고도화**
|
|
|
|
| **난이도·시간** | 중급 · 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. 인력 부족 위험 지수 산출 및 인사 배치 추천 신뢰도 엔진 개발**
|
|
|
|
| **난이도·시간** | 중급~고급 · 3시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 1) M5 코드를 실행해 단순 경보와 신뢰도 반영 경보의 오경보율·재현율을 비교한다.
|
|
2) 시드 5회 반복 일관성과 가중치 매트릭스, 위험 지수 상위 셀의 신뢰도 등급을 확인한다.
|
|
3) 배치 추천안에서 신뢰도가 High가 아닌 건에 '사람 확인 필수'가 붙는지 확인한다. |
|
|
| --- | --- |
|
|
|
|
| **확인할 결과** | 오경보율 36.4%에서 11.1%(69% 감축, 목표 40% 이상), 단 재현율은 60.0%에서 45.7%로 하락
|
|
위험 등급 일관성 96%(목표 90% 이상), 신뢰도 등급 일관성 88% |
|
|
| --- | --- |
|
|
|
|
| **도전 과제** | alarm 기준의 위험 50을 40으로 낮추고 오경보율과 재현율의 변화를 비교해 두 목표 사이의 균형을 설명한다. |
|
|
| --- | --- |
|
|
|
|
| **제출물** | 위험 지수·신뢰도 엔진 코드, 경보 비교표와 배치 추천안 |
|
|
| --- | --- |
|
|
|
|
**미션 6. 지휘관/인사참모용 부대 근무부하 현황 및 결원 예측 가시화 대시보드 구현**
|
|
|
|
| **난이도·시간** | 중급 · 2.5시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 1) M6 코드를 실행해 전체 갱신 시간과 상태 집계(긴급·주의·정상)를 확인한다.
|
|
2) 현황판 표와 히트맵에서 '*'가 붙은 보충 필요 셀을 읽는다.
|
|
3) 필터·드릴다운·야간 모드 전환의 응답 시간을 확인하고 두 모드의 그래프를 비교한다. |
|
|
| --- | --- |
|
|
|
|
| **확인할 결과** | 전체 갱신 수십~백 ms(목표 1초 이내), 최대 95백분위 응답 수 ms(목표 100ms 이내)
|
|
상태 집계 긴급 5·주의 2·정상 17, 전체 결원율 10.0% |
|
|
| --- | --- |
|
|
|
|
| **도전 과제** | view 함수에 직무 필터와 상태 필터('긴급'만)를 함께 적용하는 옵션을 추가하고 응답 시간이 어떻게 변하는지 측정한다. |
|
|
| --- | --- |
|
|
|
|
| **제출물** | 대시보드 코드, 화면 출력 캡처와 응답 시간 측정표 |
|
|
| --- | --- |
|
|
|
|
**미션 7. 인사 보충 우선순위 결정 시 인사관 수동 조정 및 승인(HITL) 워크플로우 설계**
|
|
|
|
| **난이도·시간** | 고급 · 3시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 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. 전시 동원 및 대량 결원 발생 상황 모의 인사 예측 스트레스 시뮬레이션**
|
|
|
|
| **난이도·시간** | 고급 · 3.5시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 1) M8 코드를 실행해 평시와 통신 직무 전출 급증 상황의 보충 필요 인원을 비교한다.
|
|
2) 100·200·500% 부하에서 최적화 전후 응답 시간·기능 축소 건수·유실 건수를 확인한다.
|
|
3) 500% 처리 내역(정상·축소·격리)을 읽고 기능 축소 정책이 적절한지 판단한다. |
|
|
| --- | --- |
|
|
|
|
| **확인할 결과** | 평시 필요 인원 67명, 통신 전출 급증 시 75명(해당 셀 1명에서 9명)
|
|
500%에서 시스템 다운 0건·데이터 유실 0건, 캐시 후 p95 응답과 기능 축소 건수 대폭 감소 |
|
|
| --- | --- |
|
|
|
|
| **도전 과제** | run의 qmax(큐 크기)를 48에서 16으로 줄이고 기능 축소 건수와 응답 시간이 어떻게 변하는지 비교한다. |
|
|
| --- | --- |
|
|
|
|
| **제출물** | 스트레스 시험 코드, 부하 시험 결과표와 병목 최적화 기록 |
|
|
| --- | --- |
|
|
|
|
**미션 9. AAR 기반 인사 예측 오차 원인 분석 및 인력 예측 가중치 파라미터 재보정**
|
|
|
|
| **난이도·시간** | 고급 · 3시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 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. 결원·근무부하 추세 대시보드 및 인력 보충 예측 시스템 통합 패키지 완성**
|
|
|
|
| **난이도·시간** | 최고급 · 3.5시간 |
|
|
| --- | --- |
|
|
|
|
| **진행 순서** | 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 코드가 모두 오류 없이 실행되었다 | ( ) |
|
|
| 각 미션의 확인할 결과를 기록했다 | ( ) |
|
|
| 도전 과제 결과와 이유를 기록했다 | ( ) |
|
|
| 브리핑 수치가 실행 결과와 일치한다 | ( ) |
|
|
| 실제 부대·인원·개인 정보를 사용하지 않았다 | ( ) |
|
|
| 보충·인원 이동·휴식 조정 결정을 인사관·지휘관이 하도록 설계했다 | ( ) |
|