Files
2026-10-08 16:43:48 +09:00

14 KiB

WEL03 실습가이드 - 가상 수질검사 데이터 위험 신호 대시보드

구 분 실습가이드 [교육용가상자료]

1. 실습 개요

본 실습은 교육용 가상 급수원 수질 센서 자료로 수질 위험 신호 대시보드를 미션 단위로 구현하는 과정이다. 미션마다 정답 코드(WEL03_정답코드.md)의 해당 코드를 웹 파이썬 실행기에 붙여 넣어 실행하고, 출력된 수치가 평가 기준을 충족하는지 확인한 뒤 파라미터를 바꿔 보는 도전 과제를 수행한다. 미션별 코드는 서로 독립적이어서 어느 미션부터 실행해도 동작한다. 코드의 기준치는 교육용 가정값이며 실제 음용 판정은 공식 기준과 의무(예방의학) 담당 확인에 따른다.

과제 WEL03 가상 수질검사 데이터 위험 신호 대시보드
난이도·유형 중급 / 코딩형
예상 소요시간 미션 10개, 총 27.5시간
준비물 WEL03_정답코드.md, 웹 파이썬 실행기(numpy·pandas·scipy·scikit-learn·matplotlib 사용 가능), 결과 기록용 문서

2. 진행 방법

  • 정답코드 md에서 해당 미션의 코드 블록 전체를 복사해 실행기에 붙여 넣고 실행한다(부분 복사 시 가상 데이터 생성 함수가 빠져 오류가 난다).

  • 실행 결과를 md의 '실행 결과 예시'와 비교한다. 난수 시드가 고정되어 같은 값이 나오지만, 처리 시간(초·ms)과 처리 속도는 실행 환경에 따라 달라진다.

  • 도전 과제는 코드 상단의 파라미터(LIMITS 기준치, 스파이크 배수, 신뢰도 임계값, 부하 배수 등)를 바꿔 다시 실행하고 변화와 이유를 기록한다.

  • 그래프 글자는 영문, 표·출력은 한글이다. 한글이 깨지면 실행기 글꼴 문제이며 결과에는 영향이 없다.

  • 실제 부대·급수 시설·검사 결과는 입력하지 않는다. 급수 중단·재개는 지휘관 결정 사항이며 도구의 판정은 판단 보조 정보다.

3. 미션 진행 요약

미션 난이도·시간 핵심 확인 결과
M1. 야전 급수원 가상 수질검사 항목(pH, 탁도, 잔류염소, 중금속, 대장균) 데이터셋 정의 초급
1.5시간 스키마 완성도 15/15(100%), 정상 샘플 20건 오류 0건
M2. 수질 센서 결측치 대체 및 시계열 센서 이상치 정제 전처리 모듈 구현 초급~중급
2시간 처리 속도 약 2만 건/초(목표 1,000건/초 이상), 오류율 0%, 결측 125건에서 0건
M3. 음용 적합/부적합 판정 1차 기준치 필터링 Baseline 알고리즘 구현 중급
2.5시간 정확도 97.9%(전처리 없음 96.8%, 목표 75% 이상), 위험 재현율 88.6%
M4. 복합 오염원 유입 징후 및 급수 안전도 위험 등급 분류 머신러닝 모델 고도화 중급
3시간 랜덤 포레스트 정확도 99.3%, 위험 재현율 97.2%(목표 85% 이상), 1건 지연 약 19ms(목표 200ms 이하)
M5. 센서 오류에 의한 단수 오경보 방지 및 수질 안전 신뢰도 지수 산출 모듈 개발 중급~고급
3시간 오경보율 8.4%에서 0.7%(91% 감축, 목표 40% 이상), 잡음 재현 일치율 93.6%(목표 90% 이상)
M6. 야전 급수차 및 정수 시설별 수질 상태 실시간 시각화 대시보드 구현 중급
2.5시간 갱신 1회 평균 약 120ms(목표 1초 이내), 상세 조회 평균 약 5ms(목표 100ms 이내)
M7. 수질 위험 경보 발생 시 급수관 긴급 채수 검사 및 급수 중단 HITL 결재선 설계 고급
3시간 경보 10건 큐 등록, 자동 급수 중단 0건, 급수 중단 9·유지 1
M8. 오염물질 대량 유입 가상 시나리오 부하 테스트 및 경보 반응 시간 검증 고급
3.5시간 시스템 중단 0건, 데이터 유실률 0%, 메모리 말기/초기 1.00, 경보 30/30 탐지
M9. AAR 기반 수질 이상 오판 사례 분석 및 수질 위험 판단 임계치 재조정 고급
3시간 검증 세트 정확도 향상 0.1%p(목표 10%p 미달), 재발 오류 1건(목표 0건 미달)
M10. 가상 수질검사 데이터 위험 신호 대시보드 시스템 통합 패키지 완성 최고급
3.5시간 E2E 성공률 100%(5종), 자체 점검 8/8, 함수 커버리지 100%(11/11)

미션 1. 야전 급수원 가상 수질검사 항목(pH, 탁도, 잔류염소, 중금속, 대장균) 데이터셋 정의

난이도·시간 초급 · 1.5시간

| 진행 순서 | 1) M1 코드를 실행해 스키마 필드 15개와 샘플 20건 검증 결과를 확인한다. 2) 오류 주입 5종이 각각 어떤 규칙에 걸렸는지 표로 정리한다.

3) 데이터 명세 요약표에서 단위와 허용 범위를 확인한다.

| 확인할 결과 | 스키마 완성도 15/15(100%), 정상 샘플 20건 오류 0건

주입 오류 5종 모두 검출
도전 과제 quality 묶음에 '수온(temp_c, 0~60)' 필드를 추가하고 범위 밖 값을 넣어 검출되는지 확인한다.
제출물 스키마·검증기 코드, 데이터 명세 요약(필드·단위·범위)

미션 2. 수질 센서 결측치 대체 및 시계열 센서 이상치 정제 전처리 모듈 구현

난이도·시간 초급~중급 · 2시간

| 진행 순서 | 1) M2 코드를 실행해 처리 속도, 오류율, 남은 결측 수를 확인한다. 2) 고장 유형별 처리 내역표에서 stuck·spike·dropout이 어떻게 표시되는지 본다.

3) 단위 테스트 5종과 동적 임계값 효과(오제거 건수)를 정리한다.

| 확인할 결과 | 처리 속도 약 2만 건/초(목표 1,000건/초 이상), 오류율 0%, 결측 125건에서 0건

보간 MAE 0.042 대 평균 대체 0.122, 단위 테스트 5/5
도전 과제 SPIKE_K의 주간 배수를 6.0에서 3.0으로 낮춰 정상 변동 오제거가 어떻게 늘어나는지 확인한다.
제출물 전처리 모듈 코드, 전처리 전후 비교표와 단위 테스트 결과

미션 3. 음용 적합/부적합 판정 1차 기준치 필터링 Baseline 알고리즘 구현

난이도·시간 중급 · 2.5시간

| 진행 순서 | 1) M3 코드를 실행해 전처리 유무에 따른 정확도와 혼동행렬을 확인한다. 2) 놓친 위험과 오경보의 원인(사건 유형, 센서 고장)을 정리한다.

3) 즉시 판정과 2시간 연속 확인의 차이를 비교한다.

| 확인할 결과 | 정확도 97.9%(전처리 없음 96.8%, 목표 75% 이상), 위험 재현율 88.6%

오경보 17건, 놓친 위험 중 중금속 완만 증가 22시간
도전 과제 LIMITS의 탁도 위험 기준을 2.0에서 1.5NTU로 낮춰 재현율과 오경보가 어떻게 달라지는지 확인한다.
제출물 Baseline 판정 코드, 혼동행렬·오차 분석 보고(가정 기준치 명시)

미션 4. 복합 오염원 유입 징후 및 급수 안전도 위험 등급 분류 머신러닝 모델 고도화

난이도·시간 중급 · 3시간

| 진행 순서 | 1) M4 코드를 실행해 Baseline과 랜덤 포레스트 성능을 비교한다. 2) 복합 위협 시나리오 10종의 PASS/FAIL 표를 확인한다.

3) FAIL인 시나리오의 원인과 다음 미션(신뢰도 지수)의 보완 방향을 적는다.

| 확인할 결과 | 랜덤 포레스트 정확도 99.3%, 위험 재현율 97.2%(목표 85% 이상), 1건 지연 약 19ms(목표 200ms 이하)

시나리오 9/10 통과(센서 드리프트 교란은 FAIL)
도전 과제 RandomForestClassifier의 max_depth를 10에서 4로 줄여 재현율과 오경보가 어떻게 달라지는지 비교한다.
제출물 분류 모델 코드, 시나리오별 시험 결과표와 한계 분석

미션 5. 센서 오류에 의한 단수 오경보 방지 및 수질 안전 신뢰도 지수 산출 모듈 개발

난이도·시간 중급~고급 · 3시간

| 진행 순서 | 1) M5 코드를 실행해 신뢰도 등급별 경보 수와 조치 표를 확인한다. 2) 신뢰도 적용 전후 오경보율을 비교한다.

3) 임계값 민감도 표와 잡음 재현 5회 일치율을 정리한다.

| 확인할 결과 | 오경보율 8.4%에서 0.7%(91% 감축, 목표 40% 이상), 잡음 재현 일치율 93.6%(목표 90% 이상)

High 137·Med 112·Low 13건, AUC 0.821
도전 과제 High 기준을 60점에서 80점으로 올려 상신 경보 수와 실제 위험 상신 비율이 어떻게 변하는지 확인하고 놓침 위험을 논의한다.
제출물 신뢰도 엔진 코드, 등급별 조치 기준표와 민감도 분석

미션 6. 야전 급수차 및 정수 시설별 수질 상태 실시간 시각화 대시보드 구현

난이도·시간 중급 · 2.5시간

| 진행 순서 | 1) M6 코드를 실행해 갱신 시간과 급수원 상태판을 확인한다. 2) 긴급 경보로 강조되는 급수원과 근거(초과 항목)를 읽는다.

3) 그래프 5종에서 경보 급수원을 한눈에 찾는 방법을 설명한다.

| 확인할 결과 | 갱신 1회 평균 약 120ms(목표 1초 이내), 상세 조회 평균 약 5ms(목표 100ms 이내)

긴급 경보 강조 3곳(W04, W07, W08), 컴포넌트 5종
도전 과제 야간 모드 색상을 바꾸거나 경보 강조 기준을 '주의 포함'으로 넓혀 인지 부하가 어떻게 달라지는지 비교한다.
제출물 대시보드 코드, 상황판 화면 캡처, 경보 강조 기준 설명

미션 7. 수질 위험 경보 발생 시 급수관 긴급 채수 검사 및 급수 중단 HITL 결재선 설계

난이도·시간 고급 · 3시간

| 진행 순서 | 1) M7 코드를 실행해 검토 큐와 결재 결과(급수 중단·유지)를 확인한다. 2) 우회·위반 시도 6종이 차단되는 이유를 정리한다.

3) 감사 로그 해시 체인과 임의 수정 탐지를 확인한다.

| 확인할 결과 | 경보 10건 큐 등록, 자동 급수 중단 0건, 급수 중단 9·유지 1

우회 시도 차단 6/6, 로깅 성공률 100%(49건), 변조 탐지
도전 과제 큐 우선순위 점수에서 '대장균' 가중치를 높여 상위 5건이 어떻게 바뀌는지 확인한다.
제출물 결재선 코드, 급수 중단 HITL 가이드(역할·순서·기록), 차단 시험 결과

미션 8. 오염물질 대량 유입 가상 시나리오 부하 테스트 및 경보 반응 시간 검증

난이도·시간 고급 · 3.5시간

| 진행 순서 | 1) M8 코드를 실행해 평시와 부하 500% 비교표를 확인한다. 2) 유실률·중단·메모리·경보 반응 시간을 읽는다.

3) 기능 축소 적용 전후 주기 처리 시간과 병목을 정리한다.

| 확인할 결과 | 시스템 중단 0건, 데이터 유실률 0%, 메모리 말기/초기 1.00, 경보 30/30 탐지

기능 축소 시 주기 평균 약 91ms 대 미적용 약 659ms(예산 300ms)
도전 과제 급수원 수를 48곳에서 96곳으로 늘려 기능 축소 전환 시점과 반응 시간이 어떻게 달라지는지 확인한다.
제출물 부하 시험 코드, 스트레스 시험 분석 보고(Fail-safe 동작 포함)

미션 9. AAR 기반 수질 이상 오판 사례 분석 및 수질 위험 판단 임계치 재조정

난이도·시간 고급 · 3시간

| 진행 순서 | 1) M9 코드를 실행해 오판 원인 분류표와 재조정 파라미터(YAML)를 확인한다. 2) 튜닝·검증·벤치마크 세트의 정확도 변화와 새로 틀린 건수를 비교한다.

3) 목표 미달 사유를 설명하고 남은 원인에 대한 운영 조치를 적는다.

| 확인할 결과 | 검증 세트 정확도 향상 0.1%p(목표 10%p 미달), 재발 오류 1건(목표 0건 미달)

오판 110건에서 102건, 남은 원인은 센서 고장·경계 혼동
도전 과제 ecoli_3h_min을 2에서 3으로 바꿔 놓침과 오경보가 어떻게 달라지는지 확인한다. 목표 미달이 임계치 문제가 아닌 이유를 설명한다.
제출물 AAR 분석 코드, AAR 보고서(원인·조치·회귀 테스트), 재조정 YAML

미션 10. 가상 수질검사 데이터 위험 신호 대시보드 시스템 통합 패키지 완성

난이도·시간 최고급 · 3.5시간

| 진행 순서 | 1) M10 코드를 실행해 End-to-End 5종 결과를 확인한다. 2) 자체 점검 8항목과 함수 커버리지, README 7개 장을 확인한다.

3) 브리핑 요약의 수치가 실행 결과와 맞는지 대조한다.

| 확인할 결과 | E2E 성공률 100%(5종), 자체 점검 8/8, 함수 커버리지 100%(11/11)

급수 중단 검토 상신 6곳 전부 PENDING, README 7개 장
도전 과제 CONFIG의 conf_high를 바꿔 검토 큐에 올라가는 급수원 수가 어떻게 달라지는지 확인한다.
제출물 통합 도구 코드, 운영 문서 요약, 지휘관 브리핑 요약

4. 최종 점검표

점검 항목 확인
미션 1~10 코드가 모두 오류 없이 실행되었다 ( )
각 미션의 확인할 결과를 기록했다 ( )
도전 과제 결과와 이유를 기록했다 ( )
브리핑 수치가 실행 결과와 일치한다 ( )
실제 부대·급수 시설·검사 결과를 사용하지 않았다 ( )
급수 중단·재개는 지휘관 결정으로 설계했고 실제 판정은 공식 기준과 담당 확인에 따른다고 명시했다 ( )