882 lines
203 KiB
JSON
882 lines
203 KiB
JSON
{
|
|
"version": "1.0.0",
|
|
"exportedAt": "2026-10-08T00:00:00.000Z",
|
|
"id": "DAT10",
|
|
"title": "데이터 마이닝 기반 공급망 재난 식별 SaaS",
|
|
"category": "데이터·자동화·업무플랫폼",
|
|
"level": 3,
|
|
"durationDays": 5,
|
|
"requiredHours": 27.5,
|
|
"status": "COMPLETED",
|
|
"isRecommended": false,
|
|
"summary": "",
|
|
"objectives": "<h4>프로젝트 개요 및 핵심 목표</h4><p>전시 통신망 두절 상황에서 가상 보급소 5곳이 오프라인으로 재고를 기록·교환하고, 복구 후 발생할 수 있는 중복·누락·충돌·위변조를 해결하는 분산 동기화 SaaS를 구축합니다. 나아가 동기화된 데이터 마이닝을 통해 방산 공급망 재난 징후(업체 공급 감소, 재고 소진 임박)를 선제 식별하고, 군수관·지휘관의 최종 판단을 지원하는 인간 중심 의사결정(HITL) 체계를 완성합니다.</p><h4>도전 권장 학습 대상자 (페르소나 정의)</h4><ul><li><p><strong>[페르소나 1] 야전 군수·보급 관리자 및 실무자 (장교·부사관·군무원)</strong></p><ul><li><strong>현장 배경:</strong> 통신 단절 등 극한 전장 환경에서 야전 보급소 간 재고 불일치, 수불 기록 충돌, 공급선 마비 리스크를 체감하고 있는 실무자.</li><li><strong>도전 목표:</strong> AI 코파일럿을 활용해 전술적 요구사항을 데이터 스키마 및 동기화 룰로 구체화하고, AI 분석 결과에 대한 군사적 타당성 검토와 최종 승인(HITL) 역량을 체득하고자 하는 학습자.</li></ul></li><li><p><strong>[페르소나 2] 국방 ICT·데이터 분석 및 디지털 전환(DX) 담당자</strong></p><ul><li><strong>기술 배경:</strong> 열악한 야전 네트워크(DIL 환경)에 대응하는 엣지 동기화(CRDT), 데이터 무결성 검증(해시체인), 공급망 이상징후 마이닝 파이프라인 구축에 관심이 있는 개발자 및 분석가.</li><li><strong>도전 목표:</strong> AI와 협업하여 복잡한 분산 알고리즘과 스트레스 테스트 코드를 신속히 구현하고, 군사 소프트웨어의 신뢰도와 복원력을 엄격히 검증하는 실무 엔지니어링 역량을 확보하고자 하는 학습자.</li></ul></li><li><p><strong>[페르소나 3] AI 협업 기반 도메인 문제해결 역량을 강화하려는 도전자</strong></p><ul><li><strong>학습 배경:</strong> 단순한 코드 생성을 넘어 군수 도메인의 복잡한 제약조건(충돌 병합, 비잔틴 오류, 위변조 방지)을 AI와 함께 해결하는 End-to-End SaaS 구현을 경험하고 싶은 학습자.</li><li><strong>도전 목표:</strong> AI에게 정밀한 아키텍처를 지시하고, AI가 놓치기 쉬운 엣지 케이스 결함을 식별·디버깅하여 전술 임무에 즉시 투입 가능한 고신뢰 소프트웨어 산출물을 완성하고자 하는 학습자.</li></ul></li></ul><h4>선수 역량 및 도전 준비도</h4><p>기본적인 Python 프로그래밍 및 데이터 처리 지식을 갖추고 있으며, 생성형 AI 도구를 적극적으로 활용하여 전술적 제약과 기술적 난제를 주도적으로 풀어나갈 의지가 있는 학습자에게 최적화되어 있습니다.</p>",
|
|
"deliverables": [
|
|
"data/schema/dat10_input_schema.json (필수)",
|
|
"docs/dat10_data_spec.md (필수)",
|
|
"src/preprocess/dat10_preprocessor.py (필수)",
|
|
"전처리 전후 데이터셋 (필수)",
|
|
"src/models/dat10_baseline_model.py (필수)",
|
|
"기본 추론 결과 보고서 (필수)"
|
|
],
|
|
"constraints": "<h4>부대 보안 및 개인정보 보호</h4><ul><li><p>실제 부대 편성, 위치, 작전 일정, 군번·성명 등 민감 군사보안 및 개인식별정보는 절대 외부 AI에 입력하지 않는다.</p></li><li><p>모든 실습에는 제공된 교육용 가상 데이터셋 및 시뮬레이션 표본만을 활용한다.</p></li></ul><h4>AI 결과와 인간 최종 판단의 구분 (HITL 원칙)</h4><ul><li><p>AI 모델이 제안한 분석값이나 탐지 결과는 참고 지표이며, 최종 승인·보류·교전·배치 명령은 사람이 확정한다.</p></li><li><p>모든 보급소·업체·품목·재고 자료는 코드 안에서 만든 교육용 가상 자료이며 실제 부대, 업체, 품목, 재고, 장비 제원은 사용하지 않는다. 서명 키는 데모용 가상 값이며 실제 키 관리 체계는 다루지 않는다. 부대 자료의 외부 AI 서비스 입력과 부대 내 촬영은 금지한다. 병합 확정, 공급 징후에 대한 보급 조치, 업체 대응은 군수관·지휘관이 규정과 지휘계통에 따라 결정하며 본 도구의 경보와 신뢰도는 판단 보조 정보이다. 엑셀 미션이 오프라인 동기화 중심이어서 프로젝트명의 공급망 재난 식별은 동기화된 자료의 마이닝 단계(미션 6·7·10)로 연결해 다룬다. 미션별 정답 코드는 각각 한 파일로 독립 실행된다.</p></li></ul>",
|
|
"evalSummary": "<h4>공통 PASS/FAIL 판정 원칙</h4><ul><li><p><strong>수행 증거:</strong> 요구된 데이터 전처리, 모델 구현, 검증 지표 산출, HITL 워크플로우 증거가 명확한가?</p></li><li><p><strong>판단 근거:</strong> 오경보/미탐 방지, 신뢰도 등급화, 파라미터 튜닝의 군사적·논리적 근거가 타당한가?</p></li><li><p><strong>앞뒤 연결성:</strong> 앞 미션의 스키마·전처리가 뒤 미션의 예측·대시보드·AAR 재보정에 정상 연계되는가?</p></li><li><p><strong>안전성:</strong> 보안 규정 준수, 극단 과부하 상황에서의 Fail-safe 복원력이 확보되었는가?</p></li></ul><h4>프로젝트 완료 조건</h4><p>10개 미션 전체에서 요구되는 필수([필수]) 평가 기준을 모두 PASS해야 프로젝트 최종 PASS로 판정한다.</p>",
|
|
"prerequisites": "기본 프로그래밍 지식 및 데이터·자동화·업무플랫폼 데이터 분석 기초",
|
|
"refFiles": [
|
|
"/uploads/DAT10/DAT10_student.ipynb",
|
|
"/uploads/DAT10/DAT10_solution.ipynb"
|
|
],
|
|
"refText": "",
|
|
"projectSkills": [
|
|
{
|
|
"skillId": "competency_군특화문제해결_데이터·자동화·업무플랫폼_문제분석",
|
|
"level": 3,
|
|
"category": "군특화문제해결",
|
|
"subCategory": "데이터·자동화·업무플랫폼 문제분석"
|
|
},
|
|
{
|
|
"skillId": "competency_군특화문제해결_데이터·자동화·업무플랫폼_대안도출",
|
|
"level": 2,
|
|
"category": "군특화문제해결",
|
|
"subCategory": "데이터·자동화·업무플랫폼 대안도출"
|
|
},
|
|
{
|
|
"skillId": "competency_데이터분석검증_결과검증",
|
|
"level": 3,
|
|
"category": "데이터분석검증",
|
|
"subCategory": "AI 결과 검증"
|
|
},
|
|
{
|
|
"skillId": "competency_AI활용역량_도구활용",
|
|
"level": 2,
|
|
"category": "AI활용역량",
|
|
"subCategory": "AI 도구 및 모델 활용"
|
|
},
|
|
{
|
|
"skillId": "competency_전술의사결정_인간검토",
|
|
"level": 3,
|
|
"category": "전술의사결정",
|
|
"subCategory": "HITL 인간 검토 및 책임분계"
|
|
}
|
|
],
|
|
"prerequisiteVods": [],
|
|
"missions": [
|
|
{
|
|
"id": "DAT10_M01",
|
|
"sequence": 1,
|
|
"title": "전술 통신 두절 환경에서의 야전 군수 재고 관리 요구사항 분석 및 로컬 DB 스키마 설계",
|
|
"durationHours": 1.5,
|
|
"overview": "<p><strong>전술 통신 두절 환경에서 야전 군수 재고를 오프라인으로 기록·관리하기 위한 요구사항을 분석하고 로컬 DB 스키마를 설계합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 네트워크 단절 시 야전 보급소의 독자적 입고·불출 기록 누락 및 중복을 방지하고 무결성을 보장할 로컬 데이터베이스 기반 필요</p></li><li><p><strong>핵심 과업:</strong> 12대 운영 요구사항 도출, 멱등 키(ID) 및 12개 핵심 트랜잭션 필드 정의, SQLite 테이블 5개 및 무결성 제약조건(UNIQUE·FK·CHECK) 설계</p></li><li><p><strong>검증 및 산출물:</strong> 정상 데이터 2,100건 검증 오류 0건, 오류 8종 주입 테스트 100% 검출, JSON Schema(dat10_input_schema.json) 및 데이터 명세서(dat10_data_spec.md) 완성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 전술 통신 단절 환경에서 데이터 무결성을 보장하는 데이터베이스 설계 원리를 이해하고, 생성형 AI를 Co-pilot으로 활용하여 스키마를 신속히 모델링하고 오류를 검증하는 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 12대 야전 재고 관리 요구사항을 충족하는 SQLite 테이블 5개와 멱등 키 기반 트랜잭션 스키마를 구축하고 제약조건을 검증합니다.</p><ul><li><p><strong>AI 요구사항 지시 역량:</strong> 복잡한 전술 도메인 제약(12개 필드, 단위, 허용 범위)을 AI에게 명확히 구조화하여 프롬프팅하고 표준 JSON Schema 및 SQLite DDL 초안을 도출하는 능력을 익힙니다.</p></li><li><p><strong>AI 산출물 결함 검증 역량:</strong> AI가 쉽게 놓치는 군 특화 제약(노드 접두어 멱등 키, 외래 키, CHECK 제약)을 주입 오류 8종 테스트로 적발하고 완벽히 교정하는 디버깅 역량을 배양합니다.</p></li><li><p><strong>군수 데이터 적합성 평가 역량:</strong> 정상 2,100건 무오류를 확인하고 12개 운영 요구사항이 DB 구조로 온전히 충족되는지 추적 검증표를 완성하는 실무 평가 능력을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m01_db_schema.png\" alt=\"전술 통신 두절 환경 야전 군수 로컬 DB 스키마 및 멱등키 설계\" /></p><h4>미션 배경 및 당위성</h4><p>통신 두절 환경에서의 야전 재고 관리 요구사항을 분석하고 로컬 DB 스키마를 설계한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>통신이 끊긴 환경에서 보급소가 입고·불출·조정을 기록하는 오프라인 재고 관리의 요구사항 12개를 정리하고, 이를 만족하는 트랜잭션 스키마(필드 12개)와 로컬 DB 구조를 설계한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>가상 보급소 5곳과 품목 12종의 트랜잭션(ID·보급소·품목·구분·수량·시각·상황·업체·논리 시계·동기화 상태·체크섬·비고) 필드를 자료형·단위·허용 범위와 함께 정의하고, ID는 노드 접두어와 일련번호로 만들어 중복 입력을 막는 멱등 키로 쓴다 과정을 진행하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>data/schema/dat10_input_schema.json 및 docs/dat10_data_spec.md</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m01_dataset.json",
|
|
"/uploads/DAT10/dat10_m01_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m01_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m01_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[데이터베이스 무결성] SQLite 공식 문서 - 데이터 무결성 제약조건 (Foreign Keys & CHECK Constraints)</strong>: 오프라인 단말 환경에서 비정상 수량 입력 방지 및 테이블 간 참조 무결성을 보장하는 DDL 문법 학습 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.sqlite.org/foreignkeys.html\">SQLite Foreign Key Guide</a>)</li><li><strong>[데이터 검증 표준] JSON Schema Specification (Draft 7 / 2020-12)</strong>: 12개 핵심 트랜잭션 필드의 형식, 필수값, 허용 범위(Enum/Range) 유효성 검증 표준 스키마 작성법 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://json-schema.org/understanding-json-schema/\">Understanding JSON Schema</a>)</li><li><strong>[분산 시스템 아키텍처] 멱등성(Idempotency) 키 설계 패턴</strong>: 전술 통신 두절 및 재전송 환경에서 중복 입력을 원천 차단하기 위한 노드 접두어+일련번호 기반 멱등 키(Idempotent Key) 설계 원리</li><li><strong>[군사 통신 환경] DIL(Disconnected, Intermittent, Limited) 환경의 데이터 영속성 요구사항</strong>: 국방 전술망 통신 두절 시 야전 보급소 로컬 DB의 독립 운영 및 장애 복구(Fault-Tolerance) 아키텍처</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"data/schema/dat10_input_schema.json (필수)",
|
|
"docs/dat10_data_spec.md (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[야전 군수 로컬 DB 스키마 설계 및 무결성 검증] 요구된 핵심 성능 기준(스키마 필드 정의 완성도 100%, 정상 데이터 2,100건 검증 오류 0건, 주입 오류 8종 100% 검출, 제약조건 5/5 차단)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>스키마 필드 정의 완성도 100%, 정상 2,100건 검증 오류 0건, 인위적 오류 8종 전수 검출 및 SQLite 무결성 제약조건 5/5 차단 기준을 충족하고, AI가 생성한 스키마 DDL의 잠재 결함을 검증한 실행 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 지표가 기준치에 미달하거나 실행 로그에서 예외/결측 오류가 발생한 경우.</p><h4>보완 방법</h4><p>누락된 전술 파라미터(기상, 위치오차, 통신지연 등) 보완을 적용하여 파라미터를 보정하고 단위 테스트를 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 통신 두절(DIL) 환경의 멱등 키 및 무결성 제약조건을 AI에게 명확히 지시하고, AI 산출물의 군사 도메인 부합성을 논리적으로 검증하였는가?</strong></p><h4>PASS 증거</h4><p>중복 입력을 차단하는 멱등 키(노드 접두어+일련번호)와 음수 불출 방지 등 군사적 제약조건을 AI에게 구조화하여 질의한 프롬프트 기록과, 12대 운영 요구사항-테이블 추적 매트릭스(dat10_data_spec.md)를 통한 정합성 검증이 확인되었다.</p><h4>보완이 필요한 상태</h4><p>AI가 생성한 DDL을 비판적 검토 없이 적용하여 군수 제약조건(외래 키, CHECK)이 누락되었거나 정성적 설명 근거가 부족한 경우.</p><h4>보완 방법</h4><p>도메인 제약조건을 AI에게 재프롬프팅하고 요구사항-테이블 매핑 근거를 보강하여 재작성한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 통신 두절(DIL) 환경에서의 야전 재고 멱등성 및 로컬 DB 무결성 보장 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 스키마 필드 정의 완성도 100%, 정상 데이터 검증 오류 0건, 주입 오류 8/8종 검출, 제약조건 5/5 차단</p></li><li><p>진행 기준: 입력 데이터 유효성 검증 스크립트 통과, AI 프롬프트·디버깅 기록 및 명세서(dat10_data_spec.md) 문서화 완료</p></li><li><p>검증 방법: JSON Schema 검증 도구, 샘플 데이터 파싱 단위 테스트 및 요구사항 추적 매트릭스 검토</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>단순 코드 실행 여부뿐만 아니라 AI에게 군 특화 제약조건을 명확히 지시했는지, AI 생성물의 누락 결함을 단위 테스트로 비판적으로 검증했는지 면밀히 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M1 코드를 실행해 스키마 필드 12개의 정의 완성도와 정상 자료 2,100건의 검증 결과...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M1 코드를 실행해 스키마 필드 12개의 정의 완성도와 정상 자료 2,100건의 검증 결과를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>가상 보급소 5곳의 운영 시나리오 및 트랜잭션 12개 필드 요구사항을 분석한다.</p></li><li><p>AI 코파일럿과 협업하여 SQLite 스키마 DDL 및 데이터 검증 스크립트를 작성한다.</p></li><li><p>정상 데이터 2,100건을 대상으로 스크립트를 실행하고 무오류 검증 지표를 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"전술 통신 단절 환경에서 중복 입력을 차단하기 위한 멱등 키(노드 접두어+일련번호)와 트랜잭션 12개 필드를 포함하는 SQLite 테이블 DDL 및 JSON Schema 검증 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 생성한 스키마에서 외래 키(FK) 관계, CHECK 제약조건(수량 음수 방지 등), 멱등 키 고유성(UNIQUE)이 군수 규정에 맞게 누락 없이 반영되었는지 교차 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>필드 12개 정의 완성도 100%, 정상 2,100건 오류 0건, 개인 식별 필드 0개 주입 오류 8종 중 8종 검출, 제약 조건 5/5 차단, 요구사항 12/12 충족</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M1 코드를 실행해 스키마 필드 12개의 정의 완성도와 정상 자료 2,100건의 검증 결과를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M1 코드를 실행해 스키마 필드 12개의 정의 완성도와 정상 자료 2,100건의 검증 결과를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(필드 12개 정의 완성도 100%, 정상 2,100건 오류 0건, 개인 식별 필드 0개 주입 오류 8종 중 8종 검출, 제약 조건 5/5 차단, 요구사항 12/12 충족)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "주입 오류 8종의 검출 결과와 제약 조건 시험 5건(중복 ID·외래 키·CHECK)의 차단...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>주입 오류 8종의 검출 결과와 제약 조건 시험 5건(중복 ID·외래 키·CHECK)의 차단 결과를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>데이터 오염 시나리오를 반영한 8종의 인위적 오류 데이터 주입 케이스를 준비한다.</p></li><li><p>AI에게 스키마 제약조건(중복 ID, 외래 키, CHECK) 위반을 감지하는 단위 테스트 코드 생성을 요청한다.</p></li><li><p>단위 테스트를 실행하여 주입 오류 8종 100% 검출 및 제약조건 5/5 차단 로그를 검증한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"SQLite DB에 잘못된 품목 코드, 음수 수량, 중복 멱등 ID 등 8가지 비정상 트랜잭션이 유입되었을 때 이를 즉시 감지하고 예외 처리하는 파이썬 단위 테스트(pytest)를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제안한 테스트 케이스가 실제 DB 레벨의 무결성 에러(IntegrityError)를 유발하는지, 단순 애플리케이션 레벨 통과로 오판하지 않는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>필드 12개 정의 완성도 100%, 정상 2,100건 오류 0건, 개인 식별 필드 0개 주입 오류 8종 중 8종 검출, 제약 조건 5/5 차단, 요구사항 12/12 충족</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>주입 오류 8종의 검출 결과와 제약 조건 시험 5건(중복 ID·외래 키·CHECK)의 차단 결과를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>주입 오류 8종의 검출 결과와 제약 조건 시험 5건(중복 ID·외래 키·CHECK)의 차단 결과를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(필드 12개 정의 완성도 100%, 정상 2,100건 오류 0건, 개인 식별 필드 0개 주입 오류 8종 중 8종 검출, 제약 조건 5/5 차단, 요구사항 12/12 충족)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "요구사항 검증표 12개가 각각 어떤 구조(필드·제약·테이블)로 충족되는지 짚고 입출력 명세...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>요구사항 검증표 12개가 각각 어떤 구조(필드·제약·테이블)로 충족되는지 짚고 입출력 명세를 정리한다.</p><h4>해야 할 일</h4><ol><li><p>야전 보급소 운영 요구사항 12개 항목과 DB 테이블 구조(필드·제약) 간 매핑 관계를 도출한다.</p></li><li><p>AI를 활용하여 요구사항-테이블 추적 매트릭스 및 데이터 입출력 명세서(dat10_data_spec.md) 초안을 작성한다.</p></li><li><p>요구사항 12개 항목이 누락 없이 100% 충족되었는지 검증표를 대조 확정한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"야전 군수 12대 요구사항(오프라인 기록, 멱등성 보장, 위변조 방지 등)이 SQLite 5개 테이블과 어떻게 연결되는지 설명하는 추적성 매트릭스 마크다운 표를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 기술적 필드명만 나열하고 실제 전술적 요구사항(단절 시 무결성, 군수관 감사 추적 등)과의 연계 근거를 모호하게 작성하지 않았는지 검토하고 보완합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>필드 12개 정의 완성도 100%, 정상 2,100건 오류 0건, 개인 식별 필드 0개 주입 오류 8종 중 8종 검출, 제약 조건 5/5 차단, 요구사항 12/12 충족</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>요구사항 검증표 12개가 각각 어떤 구조(필드·제약·테이블)로 충족되는지 짚고 입출력 명세를 정리한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>요구사항 검증표 12개가 각각 어떤 구조(필드·제약·테이블)로 충족되는지 짚고 입출력 명세를 정리한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(필드 12개 정의 완성도 100%, 정상 2,100건 오류 0건, 개인 식별 필드 0개 주입 오류 8종 중 8종 검출, 제약 조건 5/5 차단, 요구사항 12/12 충족)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>전술 환경 변화를 고려하여 스키마에 기상(Weather) 및 위치오차(GPS Uncertainty) 필드를 추가 설계한다.</p></li><li><p>AI에게 신규 필드 추가 시 기존 2,100건 검증 파이프라인의 하위 호환성을 유지하기 위한 DDL 마이그레이션 방안을 질의한다.</p></li><li><p>스키마 확장 후 검증 오류 0건 유지 여부를 확인하고 추가 요구사항 분석 보고서를 작성한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"기존 SQLite 스키마에 기상 및 위치오차 필드를 추가하면서도 기존 2,100건 데이터 처리 파이프라인이 깨지지 않도록 DEFAULT 값과 NULL 제약을 어떻게 설정해야 하는지 코드로 제안해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제안한 마이그레이션 코드가 기존 데이터에 NULL 예외를 유발하지 않는지, 군사 지리/기상 데이터 포맷 표준에 적합한지 확인합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M02",
|
|
"sequence": 2,
|
|
"title": "오프라인 데이터 입력 유효성 검증 및 로컬 SQLite 트랜잭션 전처리 모듈 구현",
|
|
"durationHours": 2,
|
|
"overview": "<p><strong>형식이 혼재된 야전 오프라인 재고 입력 데이터를 파싱·검증하고 SQLite 트랜잭션으로 안전하게 적재하는 전처리 모듈을 구현합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 전술 현장 단말 및 수기 기록에서 발생하는 비정형 입력, 결측치, 형식 오류로 인한 시스템 오작동과 데이터 오염 방지</p></li><li><p><strong>핵심 과업:</strong> 8,250건 입력 로그 파싱, 중복 ID 및 허용값 유효성 검증기 개발, 동적 임계값 기반 이상치 필터링 및 SQLite 트랜잭션 롤백/격리 처리 구현</p></li><li><p><strong>검증 및 산출물:</strong> 데이터 처리 속도 1,000건/초 이상, 전처리 오류율 0.00% 달성, 전처리 모듈(dat10_preprocessor.py) 및 정제 데이터셋 산출</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 전장 환경의 비정형·노이즈 로그를 정제하는 데이터 파이프라인 아키텍처를 이해하고, AI를 활용해 파서와 이상치 탐지 코드를 신속히 구현한 뒤 트랜잭션 안전성을 디버깅하는 능력을 체득합니다.</p><p><strong>[핵심 과업]</strong> 8,250줄의 다중 포맷 오프라인 입력 로그를 파싱하고 동적 임계값으로 이상치를 걸러내어 SQLite에 트랜잭션 단위로 안전하게 적재합니다.</p><ul><li><p><strong>AI 기반 알고리즘 생성 역량:</strong> 복잡한 4종 정규표현식 파서와 상황별 동적 이상치 탐지(MAD) 알고리즘을 AI 프롬프팅을 통해 신속히 프로토타이핑하는 기술을 익힙니다.</p></li><li><p><strong>안전성 및 예외 디버깅 역량:</strong> AI 생성 코드의 트랜잭션 롤백 누락 및 배치 처리 취약점을 단위 테스트로 발견하고 행 단위 격리 로직으로 보완하는 디버깅 능력을 배양합니다.</p></li><li><p><strong>성능·멱등성 보증 역량:</strong> 대량 데이터 적재 시 1,000건/초 처리 성능과 중복 재입력 방지(멱등성)를 실증하여 전처리 파이프라인의 신뢰성을 확정하는 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m02_data_preprocessing.png\" alt=\"오프라인 데이터 입력 유효성 검증 및 3단계 전처리 파이프라인\" /></p><h4>미션 배경 및 당위성</h4><p>오프라인 데이터 입력 유효성 검증 및 로컬 트랜잭션 전처리 모듈을 구현한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>형식이 섞인 오프라인 입력 줄을 파싱·검증하고 SQLite 트랜잭션으로 안전하게 적재하는 전처리 모듈을 구현해 처리 속도 1,000건/초 이상, 전처리 오류율 0%를 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>ID\\ 과정을 진행하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/preprocess/dat10_preprocessor.py 및 전처리 전후 데이터셋</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m02_dataset.json",
|
|
"/uploads/DAT10/dat10_m02_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m02_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m02_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[텍스트 정제 및 파싱] Python 정규표현식(re 모듈) 및 비정형 로그 파서 구현</strong>: 혼재된 다중 포맷(JSON, CSV, 구분자 불일치) 로그를 안전하게 토큰화하고 비정상 레코드를 분기·격리하는 기법 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.python.org/ko/3/library/re.html\">Python re 공식 문서</a>)</li><li><strong>[로버스트 통계] 중위절대편차(MAD: Median Absolute Deviation) 이상치 탐지</strong>: 평균/표준편차 대비 극단치 왜곡에 강건한 비모수 이상치 탐지 알고리즘 및 전술 상황별 동적 임계값 적용 기법</li><li><strong>[트랜잭션 격리] SQLite 트랜잭션 제어 및 SAVEPOINT 활용 가이드</strong>: 대량 배치 적재 중 단일 행 무결성 에러 발생 시 전체 배치를 폐기하지 않고 비정상 레코드만 에러 큐로 격리하는 롤백 아키텍처 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.sqlite.org/lang_savepoint.html\">SQLite SAVEPOINT Guide</a>)</li><li><strong>[파이프라인 최적화] Python SQLite 배치 최적화(`executemany` & Commit 전략)</strong>: 디스크 I/O 병목을 해소하고 초당 1,000건 이상의 고속 적재 성능을 확보하는 트랜잭션 튜닝 기법</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/preprocess/dat10_preprocessor.py (필수)",
|
|
"전처리 전후 데이터셋 (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[오프라인 로그 전처리 및 SQLite 트랜잭션 적재] 요구된 핵심 성능 기준(데이터 정제 처리 속도 1,000건/초 이상, 전처리 오류율 0.00%, 동적 임계값 오탐 0건)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>8,250줄 중 통과 8,166줄, 중복 ID 198줄 제거, 오류 84줄 격리, 적재 7,933건, 오류율 0.00%, 처리 속도 1,000건/초 이상 기준을 충족하고 정제 파이프라인 자동화 및 단위 테스트 통과 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 지표가 기준치에 미달하거나 배치 적재 중 예외/트랜잭션 롤백 오류가 발생한 경우.</p><h4>보완 방법</h4><p>SAVEPOINT 행 단위 격리 로직을 보완하고 배치 크기(Batch Size)를 조정하여 단위 테스트를 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 야전 비정형 입력 노이즈와 급증 불출 이상치를 정상 보급과 분리하는 알고리즘을 AI와 협업하여 타당하게 구현하였는가?</strong></p><h4>PASS 증거</h4><p>고정 임계값의 한계를 극복하기 위해 중위절대편차(MAD) 기반 동적 임계값을 AI에게 지시하여 구현하고, 긴급 작전 불출이 단순 오류로 오탐 격리되지 않음을 논리적으로 입증한 분석 메모가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>전술 상황을 무시하고 기계적 필터링을 적용해 정상 긴급 보급을 대량 격리했거나 AI 알고리즘의 결함 검증이 결여된 경우.</p><h4>보완 방법</h4><p>전술 상황별(주간/야간/통신불량) 동적 임계값 보정 수식을 재검토하고 군수 실무자 관점의 해석 근거를 명시한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 야전 다중 포맷 노이즈 격리 및 동적 임계값(MAD) 기반 수불 이상치 판정 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 데이터 정제 처리 속도 1,000건/초 이상, 전처리 오류율 0.00%, 동적 임계값 오탐 0건(이상치 34/34 검출)</p></li><li><p>진행 기준: 정제 파이프라인 자동화, AI 프롬프트·디버깅 기록 및 단위 테스트 5종 통과</p></li><li><p>검증 방법: pytest 기반 전처리 정합성 테스트, 결측치 보정률 및 SAVEPOINT 롤백 격리 검증</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI가 작성한 정규식 파서가 비표준 구분자 데이터를 조용히 누락(Silent Drop)시키지 않고 명시적으로 격리 테이블에 기록하는지 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M2 코드를 실행해 입력 8,250줄의 파싱·검증 결과(통과·격리·중복 제거 건수)를 확인...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M2 코드를 실행해 입력 8,250줄의 파싱·검증 결과(통과·격리·중복 제거 건수)를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>비정형 오프라인 입력 로그 8,250줄의 다중 포맷 구성(JSON, CSV, 구분자 오류)을 분석한다.</p></li><li><p>AI 코파일럿에게 4종 복합 입력 로그를 파싱하고 정규화하는 파이프라인 모듈 작성을 요청한다.</p></li><li><p>파서를 실행하여 유효 통과, 오류 격리, 중복 제거 건수를 확인하고 정상 파싱 지표를 달성한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"형식이 혼재된 야전 오프라인 재고 로그 8,250줄을 파싱하여 정형 트랜잭션 딕셔너리로 변환하고, 포맷 오류 레코드는 격리 큐로 분기하는 견고한 Python 파서 함수를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 코드의 정규표현식이 비표준 구분자나 공백 누락 데이터를 조용히 누락(Silent Drop)시키지 않고 명시적으로 격리 테이블에 기록하는지 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>입력 8,250줄: 통과 8,166줄, 중복 ID 198줄 제거, 해석 실패·허용값 오류 84줄 격리 고정 임계값 오탐 105건 -> 동적 임계값 0건(이상 수량 34/34 검출), 적재 7,933건, 오류율 0.00%, 속도 1,000건/초 이상(실행 환경별 수만 건/초)</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M2 코드를 실행해 입력 8,250줄의 파싱·검증 결과(통과·격리·중복 제거 건수)를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M2 코드를 실행해 입력 8,250줄의 파싱·검증 결과(통과·격리·중복 제거 건수)를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(입력 8,250줄: 통과 8,166줄, 중복 ID 198줄 제거, 해석 실패·허용값 오류 84줄 격리 고정 임계값 오탐 105건 -> 동적 임계값 0건(이상 수량 34/34 검출), 적재 7,933건, 오류율 0.00%, 속도 1,000건/초 이상(실행 환경별 수만 건/초))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "고정 임계값과 구분별 동적 임계값의 이상 판정·오탐을 비교한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>고정 임계값과 구분별 동적 임계값의 이상 판정·오탐을 비교한다.</p><h4>해야 할 일</h4><ol><li><p>재고 수불량의 고정 임계값 필터와 품목 구분별 동적 이상치 탐지(MAD 알고리즘) 기준을 비교한다.</p></li><li><p>AI에게 중위절대편차(MAD) 기반의 동적 이상치 탐지 함수를 요청하여 비정상 수불 데이터를 필터링한다.</p></li><li><p>고정 임계값 대비 동적 임계값 적용 시의 이상 판정 정확도 및 오탐 감소율을 비교 분석한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"품목별 수불 패턴 편차를 반영하기 위해 Median Absolute Deviation (MAD) 알고리즘을 적용한 동적 수량 이상치 탐지 코드를 구현하고 고정 임계값 방식과의 오탐율 비교표를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 계산한 MAD 수식에서 제로 분모(Division by Zero) 예외 처리와 급증 불출(긴급 보급) 케이스에 대한 과도한 오탐 격리가 없는지 군수 실무 관점에서 검토합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>입력 8,250줄: 통과 8,166줄, 중복 ID 198줄 제거, 해석 실패·허용값 오류 84줄 격리 고정 임계값 오탐 105건 -> 동적 임계값 0건(이상 수량 34/34 검출), 적재 7,933건, 오류율 0.00%, 속도 1,000건/초 이상(실행 환경별 수만 건/초)</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>고정 임계값과 구분별 동적 임계값의 이상 판정·오탐을 비교한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>고정 임계값과 구분별 동적 임계값의 이상 판정·오탐을 비교한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(입력 8,250줄: 통과 8,166줄, 중복 ID 198줄 제거, 해석 실패·허용값 오류 84줄 격리 고정 임계값 오탐 105건 -> 동적 임계값 0건(이상 수량 34/34 검출), 적재 7,933건, 오류율 0.00%, 속도 1,000건/초 이상(실행 환경별 수만 건/초))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "SQLite 배치 적재의 롤백·행 단위 격리와 멱등 시험, 전처리 오류율·처리 속도를 읽는...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>SQLite 배치 적재의 롤백·행 단위 격리와 멱등 시험, 전처리 오류율·처리 속도를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>SQLite 대량 배치 적재 시 롤백 및 행 단위 격리(Savepoint) 처리 메커니즘을 점검한다.</p></li><li><p>AI와 협업하여 오류 발생 시 전체 배치를 폐기하지 않고 비정상 행만 격리하는 트랜잭션 래퍼를 구현한다.</p></li><li><p>전처리 파이프라인의 처리 속도(1,000건/초 이상) 및 오류율(0.00%) 달성 지표를 최종 검증한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"SQLite에서 500건 단위 배치 적재 중 단일 행 제약 위반 발생 시 전체 트랜잭션을 중단하지 않고 SAVEPOINT를 활용해 비정상 행만 에러 테이블로 격리하는 Python 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 코드가 트랜잭션 잠금(Lock) 충돌을 일으키지 않는지, 멱등성 보장을 위한 중복 키 INSERT 무시(ON CONFLICT DO NOTHING) 처리가 확실한지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>입력 8,250줄: 통과 8,166줄, 중복 ID 198줄 제거, 해석 실패·허용값 오류 84줄 격리 고정 임계값 오탐 105건 -> 동적 임계값 0건(이상 수량 34/34 검출), 적재 7,933건, 오류율 0.00%, 속도 1,000건/초 이상(실행 환경별 수만 건/초)</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>SQLite 배치 적재의 롤백·행 단위 격리와 멱등 시험, 전처리 오류율·처리 속도를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>SQLite 배치 적재의 롤백·행 단위 격리와 멱등 시험, 전처리 오류율·처리 속도를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(입력 8,250줄: 통과 8,166줄, 중복 ID 198줄 제거, 해석 실패·허용값 오류 84줄 격리 고정 임계값 오탐 105건 -> 동적 임계값 0건(이상 수량 34/34 검출), 적재 7,933건, 오류율 0.00%, 속도 1,000건/초 이상(실행 환경별 수만 건/초))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>BATCH 크기를 500에서 50으로 축소하여 롤백 격리 단위 및 트랜잭션 오버헤드를 시험한다.</p></li><li><p>AI에게 배치 크기 변경이 초당 처리 건수와 메모리 점유율에 미치는 영향을 수식과 벤치마크 코드로 질의한다.</p></li><li><p>배치 크기별 처리 속도와 격리 정밀도를 비교 분석하여 야전 단말에 최적화된 파라미터를 확정한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"SQLite 배치 적재 크기를 500건에서 50건으로 줄였을 때 I/O 지연, 트랜잭션 커밋 빈도, 격리 세분성이 어떻게 달라지는지 벤치마크 측정 스크립트를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI의 분석이 실제 로컬 디스크 I/O 병목을 올바르게 반영하는지 확인하고 전술 단말기의 저사양 환경에 적합한 최적 타협점을 도출합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M03",
|
|
"sequence": 3,
|
|
"title": "오프라인 단말 간 1차 피어투피어(P2P)/USB 재고 데이터 교환 Baseline 기능 구현",
|
|
"durationHours": 2.5,
|
|
"overview": "<p><strong>중앙 통신망 단절 시 보급소 단말 간 USB 및 P2P 접촉을 통해 재고 트랜잭션을 상호 교환하는 Baseline 동기화 기능을 구현합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 중앙 서버와의 통신이 불가한 고립 환경에서 인접 보급소 간 물리적 접촉(USB·단거리 무선)을 통한 전장 재고 가시성 확보 필요</p></li><li><p><strong>핵심 과업:</strong> 7일간 56회 접촉 시나리오 기반 전체 전송·ID 차집합 델타·우선순위 가중치 델타 전송 알고리즘 구현 및 비교 분석</p></li><li><p><strong>검증 및 산출물:</strong> 기본 시나리오 정보 공유 정확도 75% 이상(달성치 84.6%), 접촉 지연 및 완전 수렴 한계 분석 보고서, Baseline 모듈(dat10_baseline_model.py) 완성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 중앙망 두절 시 간헐적 물리 접촉(지연 허용 네트워크: DTN) 기반 데이터 동기화 메커니즘을 이해하고, AI를 활용해 분산 전송 알고리즘을 설계·비교·튜닝하는 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 7일간 56회 접촉 시나리오에서 전체 전송·ID 차집합 델타·우선순위 델타 등 3종의 재고 교환 알고리즘을 구현하고 수렴도를 분석합니다.</p><ul><li><p><strong>AI 기반 분산 알고리즘 모델링 역량:</strong> 단말 간 기회적 접촉 제약(손실 5%, 방향별 80건)을 AI에게 명시하여 3종 동기화 알고리즘의 뼈대 코드를 단시간에 구현하는 프롬프팅 능력을 익힙니다.</p></li><li><p><strong>휴리스틱 가중치 최적화 역량:</strong> AI가 제안한 전송 우선순위(기록 시점, 노드 가중치)의 논리적 맹점을 파악하고 시드 기반 교차 검증을 통해 최적 파라미터를 탐색·튜닝하는 역량을 배양합니다.</p></li><li><p><strong>전술 데이터 수렴 한계 분석 역량:</strong> 정보 공유 완전성(84.6%) 달성 여부를 정량 평가하고, 중앙 통신망 없이 오프라인 단말 간 접촉만으로 달성 가능한 전술 가시성의 한계를 분석·보고하는 능력을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m03_p2p_usb_sync.png\" alt=\"오프라인 단말 간 P2P 및 USB 데이터 교환 동기화\" /></p><h4>미션 배경 및 당위성</h4><p>오프라인 단말 간 피어투피어(P2P) 재고 데이터 교환 Baseline 기능을 구현한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>보급소 단말 5곳이 접촉할 때 USB·P2P로 재고 트랜잭션을 주고받는 Baseline 교환 기능을 만들고 7일 후 정보 공유 정확도 75% 이상을 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>7일간 접촉 56회(접촉당 방향별 최대 80건, 손실 5%)의 가상 일정에서 상대 상태를 모르는 전체 전송, ID 차집합 델타 전송, 델타에 우선순위(오래된 것 먼저)를 더한 방식을 비교 수행하고 검증하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/models/dat10_baseline_model.py 및 기본 추론 결과 보고서</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m03_dataset.json",
|
|
"/uploads/DAT10/dat10_m03_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m03_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m03_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[지연 허용 네트워크] DTN(Delay-Tolerant Networking) 및 기회적 라우팅(Opportunistic Routing)</strong>: 중앙 인프라 단절 시 간헐적 물리 접촉(USB/단거리 P2P)을 활용한 스토어-앤-포워드(Store-and-Forward) 데이터 전파 메커니즘</li><li><strong>[분산 데이터 교환] 차집합(Set Difference) 기반 델타(Delta) 동기화 프로토콜</strong>: 대역폭과 패킷 크기가 제한된 전술 환경에서 미보유 트랜잭션만 선별 교환하는 차집합 패킷 직렬화 기법</li><li><strong>[우선순위 큐 알고리즘] Python `heapq`를 활용한 가중치 기반 전송 큐잉</strong>: 전술 물자 중요도(탄약/의무 우선), 최신성, 노드 가중치를 결합해 대역폭 병목을 극복하는 우선순위 직렬화 구현 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.python.org/ko/3/library/heapq.html\">Python heapq 문서</a>)</li><li><strong>[네트워크 시뮬레이션] 패킷 유실(Packet Loss) 모델링 및 최종 수렴 한계 분석</strong>: 몬테카를로 시뮬레이션을 통한 P2P 수렴 지연 시간 측정 및 순수 분산 전파의 구조적 한계(분할 뇌 문제) 이해</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/models/dat10_baseline_model.py (필수)",
|
|
"기본 추론 결과 보고서 (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[오프라인 단말 간 P2P/USB 재고 교환 Baseline] 요구된 핵심 성능 기준(기본 데이터셋 대상 정보 공유 완전성/정확도 75% 이상 달성)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>7일간 56회 접촉 시뮬레이션 환경에서 우선순위 델타 전송 정확도 83.7% 이상(3회 평균 84.6%)을 달성하여 목표 기준(75%)을 초과 달성하고 단위 기능 동작 및 시뮬레이션 실행 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 지표가 기준치에 미달하거나 노드 간 패킷 직렬화 중 데이터 누락 오류가 발생한 경우.</p><h4>보완 방법</h4><p>전술 물자 우선순위 가중치 공식과 델타 패킷 큐잉 로직을 재보정하고 시뮬레이션을 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 간헐적 접촉 네트워크(DTN) 제약을 AI에게 명확히 지시하고, 순수 P2P 전파의 구조적 한계점을 군사 통신 관점에서 논리적으로 규명하였는가?</strong></p><h4>PASS 증거</h4><p>방향별 80건 용량 제한과 5% 유실률 제약을 반영한 교환 알고리즘을 AI와 협업하여 모델링하고, 7일 경과 후에도 완전 수렴에 도달하지 못하는 순수 분산 전파의 한계(분할 뇌 문제)를 명확히 분석한 보고서가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>비현실적인 무제한 대역폭을 가정했거나 중앙 서버 복구 시 동기화 필요성에 대한 논리적 설명이 부족한 경우.</p><h4>보완 방법</h4><p>접촉 지연 및 패킷 유실 모델링 근거를 보강하고 지휘관 관점의 전술 가시성 한계 분석을 추가한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 지연 허용 네트워크(DTN) 환경의 기회적 전송 효율 및 순수 P2P 수렴 한계 규명의 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 기본 데이터셋 대상 탐지/처리 정확도 75% 이상 달성 (실측 84.6%)</p></li><li><p>진행 기준: 3종 전송 방식 시뮬레이션 완료, AI 프롬프트·디버깅 기록 및 한계 분석 보고서 작성</p></li><li><p>검증 방법: 기준 벤치마크 데이터셋 대상 수렴 오차율 비교 및 다중 시드(Seed) 교차 검증</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI가 제안한 우선순위 큐 알고리즘에서 특정 보급품의 기아 현상(Starvation)이 발생하지 않는지, 수렴 한계 분석이 논리적인지 평가한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M3 코드를 실행해 접촉 56회의 조건(방향별 80건, 손실 5%)과 세 방식(전체·델타·...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M3 코드를 실행해 접촉 56회의 조건(방향별 80건, 손실 5%)과 세 방식(전체·델타·델타+우선순위)의 완전성·효율 표를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>야전 보급소 간 간헐적 접촉 환경(접촉 56회, 손실률 5%)의 P2P/USB 데이터 교환 시뮬레이션을 설정한다.</p></li><li><p>AI 코파일럿에게 전체 전송, 델타 전송, 우선순위 델타 전송의 3가지 패킷 교환 알고리즘 초안 작성을 요청한다.</p></li><li><p>시뮬레이션을 구동하여 패킷 전송 성공률과 데이터 교환 통계 지표를 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"간헐적 네트워크 및 USB 이동 매체 환경에서 두 노드가 접촉했을 때 누락된 트랜잭션만 교환하는 델타 패킷 생성 및 전송 시뮬레이션 클래스를 구현해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제안한 델타 계산 로직에서 양 노드의 논리 시계 차이로 인한 과거 데이터 누락이나 불필요한 전체 재전송이 발생하지 않는지 검토합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>완전성: 전체 전송 22.8%, 델타 82.5%, 델타+우선순위 83.7%(시험 3개 평균 24.0% / 82.1% / 84.6%) 기본 정확도 84.6%(목표 75% 달성), 7일 내 90% 도달 못함, 모든 트랜잭션을 가진 노드 0/5</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M3 코드를 실행해 접촉 56회의 조건(방향별 80건, 손실 5%)과 세 방식(전체·델타·델타+우선순위)의 완전성·효율 표를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M3 코드를 실행해 접촉 56회의 조건(방향별 80건, 손실 5%)과 세 방식(전체·델타·델타+우선순위)의 완전성·효율 표를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(완전성: 전체 전송 22.8%, 델타 82.5%, 델타+우선순위 83.7%(시험 3개 평균 24.0% / 82.1% / 84.6%) 기본 정확도 84.6%(목표 75% 달성), 7일 내 90% 도달 못함, 모든 트랜잭션을 가진 노드 0/5)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "우선순위 가중치 탐색 결과와 시험 시드 3개 평균을 확인한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>우선순위 가중치 탐색 결과와 시험 시드 3개 평균을 확인한다.</p><h4>해야 할 일</h4><ol><li><p>전술 중요도(탄약/의무 우선), 시급성, 데이터 용량을 결합한 우선순위 가중치 공식을 분석한다.</p></li><li><p>AI에게 우선순위 큐(Priority Queue) 기반의 대역폭 제약 대응 패킷 직렬화 코드를 요청한다.</p></li><li><p>시드 3개 환경에서 우선순위 가중치 적용 전후의 핵심 물자 동기화 성공률을 비교 평가한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"패킷 크기 제한(예: 80건) 상황에서 품목 우선도(탄약 1순위, 유류 2순위 등)와 트랜잭션 최신성을 가중합하여 전송 큐를 정렬하는 Python 알고리즘을 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 코드의 가중치 계산에서 특정 품목의 기아 현상(Starvation)이 발생하지 않는지, 음수 가중치 예외가 없는지 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>완전성: 전체 전송 22.8%, 델타 82.5%, 델타+우선순위 83.7%(시험 3개 평균 24.0% / 82.1% / 84.6%) 기본 정확도 84.6%(목표 75% 달성), 7일 내 90% 도달 못함, 모든 트랜잭션을 가진 노드 0/5</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>우선순위 가중치 탐색 결과와 시험 시드 3개 평균을 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>우선순위 가중치 탐색 결과와 시험 시드 3개 평균을 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(완전성: 전체 전송 22.8%, 델타 82.5%, 델타+우선순위 83.7%(시험 3개 평균 24.0% / 82.1% / 84.6%) 기본 정확도 84.6%(목표 75% 달성), 7일 내 90% 도달 못함, 모든 트랜잭션을 가진 노드 0/5)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "7일 내 완전 수렴 여부와 접촉 1회 지연을 확인하고 한계를 정리한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>7일 내 완전 수렴 여부와 접촉 1회 지연을 확인하고 한계를 정리한다.</p><h4>해야 할 일</h4><ol><li><p>간헐적 접촉 56회 경과 후 7일 시점의 노드 간 재고 데이터 완전 수렴 여부를 점검한다.</p></li><li><p>AI와 함께 접촉 1회당 발생하는 통신 지연과 패킷 유실이 최종 일관성에 미치는 한계점을 분석한다.</p></li><li><p>순수 P2P 방식의 한계(분할 뇌 문제, 지연 수렴)를 도출하고 중앙 서버 동기화 필요성을 보고서로 정리한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"5개 노드의 간헐적 P2P 교환 로그를 분석하여 7일 후 최종 재고 불일치 건수와 수렴 지연 시간을 계산하고, P2P 전파의 구조적 한계점을 3가지로 요약해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI의 수렴 분석이 네트워크 그래프 단절(Partition) 상황을 수학적·논리적으로 타당하게 설명하는지 군사 통신 관점에서 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>완전성: 전체 전송 22.8%, 델타 82.5%, 델타+우선순위 83.7%(시험 3개 평균 24.0% / 82.1% / 84.6%) 기본 정확도 84.6%(목표 75% 달성), 7일 내 90% 도달 못함, 모든 트랜잭션을 가진 노드 0/5</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>7일 내 완전 수렴 여부와 접촉 1회 지연을 확인하고 한계를 정리한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>7일 내 완전 수렴 여부와 접촉 1회 지연을 확인하고 한계를 정리한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(완전성: 전체 전송 22.8%, 델타 82.5%, 델타+우선순위 83.7%(시험 3개 평균 24.0% / 82.1% / 84.6%) 기본 정확도 84.6%(목표 75% 달성), 7일 내 90% 도달 못함, 모든 트랜잭션을 가진 노드 0/5)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>패킷 손실률을 5%에서 15%로 상향하고 USB 교환 용량 제한을 강화하여 극한 환경을 모의한다.</p></li><li><p>AI에게 손실률 급증 시 우선순위 패킷의 유실 방지를 위한 재전송 확인(ACK) 및 체크섬 보정 로직을 질의한다.</p></li><li><p>조건 변경 후 핵심 보급품 데이터의 최종 수렴율 변화를 비교 분석하여 파라미터를 튜닝한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"패킷 손실률 15% 환경에서 손실된 핵심 물자 패킷을 다음 접촉 시 최우선으로 재요청하는 네거티브 피드백(NACK) 메커니즘을 설계하고 시뮬레이션에 반영해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제시한 NACK 로직이 무한 재전송 루프나 패킷 폭풍(Storm)을 유발하지 않는지 Fail-safe 관점에서 확인합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M04",
|
|
"sequence": 4,
|
|
"title": "네트워크 복구 시 클라우드 중앙 서버와의 양방향 데이터 충돌 해결(CRDT) 동기화 고도화",
|
|
"durationHours": 3,
|
|
"overview": "<p><strong>통신 복구 시 야전 분산 노드와 중앙 서버 간의 데이터 불일치를 해소하는 충돌 없는 복제 데이터 타입(CRDT) 양방향 동기화를 구현합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 장기 단절 후 다수 보급소가 동일 품목을 동시 수정했을 때 발생하는 갱신 유실(Lost Update) 및 데이터 정합성 왜곡 방지</p></li><li><p><strong>핵심 과업:</strong> 품목별 PN-Counter 기반 양방향 병합 엔진 개발, 버전 벡터 및 값 비교 규칙을 결합한 충돌 탐지 알고리즘 구현</p></li><li><p><strong>검증 및 산출물:</strong> 충돌 탐지 재현율(Recall) 85% 이상, 동기화 처리 지연 200ms 이하 검증, 고급 충돌 탐지기(dat10_advanced_detector.py) 및 예외 테스트 결과서 제출</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 분산 컴퓨팅의 핵심 개념인 충돌 없는 복제 데이터 타입(CRDT)과 버전 벡터의 수학적 원리를 이해하고, AI를 활용해 양방향 병합 엔진 및 충돌 탐지기를 고도화하는 능력을 체득합니다.</p><p><strong>[핵심 과업]</strong> 품목별 PN-Counter 기반 양방향 병합 엔진을 구축하고, 버전 벡터와 값 비교 규칙을 결합해 동시 수정 충돌을 탐지합니다.</p><ul><li><p><strong>AI 활용 분산 아키텍처 설계 역량:</strong> CRDT(PN-Counter)의 분산 수학적 속성(멱등·교환·결합 법칙)을 구현하도록 AI를 체계적으로 프롬프팅하여 병합 엔진을 구축하는 능력을 익힙니다.</p></li><li><p><strong>동시성 결함 식별 및 교정 역량:</strong> 단순 타임스탬프(LWW) 방식에서 발생하는 갱신 유실(Lost Update) 문제를 파악하고, 복합 탐지 규칙(버전 벡터 + 값 비교)으로 AI 코드를 고도화하는 디버깅 역량을 배양합니다.</p></li><li><p><strong>실시간 동기화 성능 검증 역량:</strong> 충돌 탐지 재현율 85% 이상과 처리 지연 200ms 이하 성능을 입증하고, 분산 환경에서의 데이터 최종 일관성(Eventual Consistency)을 보증하는 실무 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m04_crdt_sync.png\" alt=\"네트워크 복구 시 CRDT 양방향 충돌 해결 동기화\" /></p><h4>미션 배경 및 당위성</h4><p>네트워크 복구 시 중앙 서버와의 양방향 데이터 충돌 해결(CRDT) 동기화를 고도화한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>통신 복구 후 노드와 중앙 서버가 양방향으로 병합하는 CRDT 동기화를 구현하고, 같은 품목 정보를 서로 모르게 고친 충돌의 탐지 재현율 85% 이상과 처리 지연 200ms 이하를 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>재고 수량은 품목별 PN-카운터(노드별 증가·감소 누적, 병합은 요소별 최댓값)로 만들어 노드 5곳과 서버를 2단계로 병합하고, 마지막 값이 이기는 방식(LWW)과 갱신 유실을 비교 수행하고 검증하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/models/dat10_advanced_detector.py 및 예외 탐지 테스트 결과</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m04_dataset.json",
|
|
"/uploads/DAT10/dat10_m04_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m04_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m04_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[분산 데이터 구조] CRDT(Conflict-free Replicated Data Types) 기초 및 PN-Counter 원리</strong>: 중앙 코디네이터 없이도 최종 일관성(Eventual Consistency)을 보장하는 교환법칙·결합법칙·멱등성 기반의 데이터 복제 이론 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://crdt.tech/\">CRDT.tech 리소스</a>)</li><li><strong>[동시성 인과 추적] 버전 벡터(Version Vectors) 및 램포트 논리 시계(Lamport Clocks)</strong>: 노드 간 하드웨어 시계 오차(Clock Drift) 상황에서 인과적 선행(Happened-Before) 관계와 동시 수정을 엄밀히 판별하는 알고리즘</li><li><strong>[동시성 결함 분석] Last-Write-Wins(LWW)의 갱신 유실(Lost Update) 분석</strong>: 단순 타임스탬프 덮어쓰기 방식이 군수 재고 데이터에서 유발하는 수량 누락 및 불일치 결함 사례 연구</li><li><strong>[소프트웨어 검증] 분산 불변식 검증(Invariants Property-based Testing)</strong>: 패킷 지연, 순서 역전, 중복 수신 환경에서 재고 일관성을 100% 입증하는 동시성 스트레스 테스트 기법</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/models/dat10_advanced_detector.py (필수)",
|
|
"예외 탐지 테스트 결과 (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[클라우드 중앙 서버와의 CRDT 양방향 동기화] 요구된 핵심 성능 기준(동시 수정 충돌 탐지 재현율 85% 이상, 처리 지연 200ms 이하, CRDT 갱신 유실 0건)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>CRDT 병합 후 갱신 유실 0건(LWW는 5,142개 유실), 대수적 성질 4종 200/200 통과, 버전 벡터+값 복합 규칙 충돌 탐지 재현율 100% 및 지연 200ms 이하를 만족하는 실행 결과 및 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>CRDT 병합 후 수량 불일치가 발생하거나 충돌 탐지 재현율이 기준치에 미달한 경우.</p><h4>보완 방법</h4><p>버전 벡터 비교 로직 및 PN-Counter 요소별 Max 병합 규칙을 보정하고 동시성 스트레스 테스트를 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] CRDT의 수학적 불변식을 AI에게 엄밀히 지시하고, LWW 방식의 덮어쓰기 결함 및 최종 일관성(Eventual Consistency) 달성을 논리적으로 입증하였는가?</strong></p><h4>PASS 증거</h4><p>멱등성·교환법칙·결합법칙 검증 코드를 AI와 협업하여 구현하고, 단순 타임스탬프(LWW)가 군수 재고 데이터에서 유발하는 수량 누락 결함을 실증 대조한 분석 결과서가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>AI가 제안한 병합 코드의 동시성 결함을 검증하지 못했거나 군사적 동시 작전(동일 탄약고 동시 불출)을 악성 충돌로 오판한 경우.</p><h4>보완 방법</h4><p>동시성(Concurrent)과 인과적 선행(Happened-Before) 관계를 명확히 구분하는 검증 케이스를 보강한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> CRDT(PN-Counter) 분산 불변식 무결성 및 버전 벡터 기반 동시성 충돌 탐지 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 동시 수정 충돌 탐지 재현율 85% 이상, 처리 지연 200ms 이하, CRDT 갱신 유실 0건</p></li><li><p>진행 기준: 200쌍 동시성 스트레스 테스트 통과, AI 프롬프트·디버깅 기록 및 예외 탐지 결과서 작성</p></li><li><p>검증 방법: 불변식(Invariants) 속성 기반 테스트 및 LWW 대조 벤치마크 검증</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI가 작성한 CRDT 병합 코드에서 타임스탬프 동률(Tie-breaker) 예외 처리가 결정론적으로 동작하는지 면밀히 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M4 코드를 실행해 노드 5곳과 서버의 병합 결과(수렴, 재고 차이, 병합 지연)를 확인한...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M4 코드를 실행해 노드 5곳과 서버의 병합 결과(수렴, 재고 차이, 병합 지연)를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>통신 복구 시 야전 노드 5곳과 클라우드 중앙 서버 간의 양방향 데이터 병합 시나리오를 설정한다.</p></li><li><p>AI 코파일럿과 협업하여 CRDT(PN-Counter 및 LWW-Element-Set) 기반 분산 병합 엔진을 구현한다.</p></li><li><p>병합 파이프라인을 실행하여 노드 간 최종 수렴 상태, 재고 차이, 병합 소요 지연을 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"분산 노드 간 재고 입출고(PN-Counter) 및 상태 변경을 수학적으로 안전하게 병합하기 위한 CRDT (Conflict-free Replicated Data Type) 클래스를 Python으로 구현해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 생성한 CRDT 알고리즘이 멱등성(Idempotence), 교환법칙(Commutativity), 결합법칙(Associativity)을 완벽히 만족하는지 수식과 코드를 대조 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>수렴 성공, 서버 재고와 정답 차이 0(갱신 유실 0건), LWW는 5,142개 유실, 성질 시험 4종 모두 200/200 충돌 탐지 재현율: 시간 근접 4.9%, 값 비교 100%(정밀도 67.9%), 버전 벡터 v1 100%(88.3%), 버전 벡터+값 v2 100%(100%)</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M4 코드를 실행해 노드 5곳과 서버의 병합 결과(수렴, 재고 차이, 병합 지연)를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M4 코드를 실행해 노드 5곳과 서버의 병합 결과(수렴, 재고 차이, 병합 지연)를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(수렴 성공, 서버 재고와 정답 차이 0(갱신 유실 0건), LWW는 5,142개 유실, 성질 시험 4종 모두 200/200 충돌 탐지 재현율: 시간 근접 4.9%, 값 비교 100%(정밀도 67.9%), 버전 벡터 v1 100%(88.3%), 버전 벡터+값 v2 100%(100%))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "LWW 병합과 CRDT의 유실량 차이, 멱등·교환·결합·재전송 시험 200쌍 결과를 읽는다...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>LWW 병합과 CRDT의 유실량 차이, 멱등·교환·결합·재전송 시험 200쌍 결과를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>단순 최종 작성자 승리(LWW) 방식과 CRDT 방식의 동시성 충돌 시 데이터 유실량을 비교한다.</p></li><li><p>AI에게 200쌍의 무작위 순서 뒤바뀜 및 중복 전송 패킷을 생성하는 동시성 스트레스 테스트 작성을 요청한다.</p></li><li><p>LWW의 덮어쓰기 유실 문제와 CRDT의 무유실 수렴 지표를 대조하여 안정성을 실증한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"동일 품목에 대해 두 보급소가 동시에 불출을 기록했을 때 LWW가 유실시키는 수량과 CRDT가 보존하는 수량을 비교하는 200회 무작위 패킷 시뮬레이션 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 테스트가 타임스탬프 동률(Tie-breaker) 상황에서 결정론적(Deterministic)으로 동작하는지, 데이터 누락이 0건인지 엄격히 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>수렴 성공, 서버 재고와 정답 차이 0(갱신 유실 0건), LWW는 5,142개 유실, 성질 시험 4종 모두 200/200 충돌 탐지 재현율: 시간 근접 4.9%, 값 비교 100%(정밀도 67.9%), 버전 벡터 v1 100%(88.3%), 버전 벡터+값 v2 100%(100%)</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>LWW 병합과 CRDT의 유실량 차이, 멱등·교환·결합·재전송 시험 200쌍 결과를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>LWW 병합과 CRDT의 유실량 차이, 멱등·교환·결합·재전송 시험 200쌍 결과를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(수렴 성공, 서버 재고와 정답 차이 0(갱신 유실 0건), LWW는 5,142개 유실, 성질 시험 4종 모두 200/200 충돌 탐지 재현율: 시간 근접 4.9%, 값 비교 100%(정밀도 67.9%), 버전 벡터 v1 100%(88.3%), 버전 벡터+값 v2 100%(100%))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "충돌 탐지 4개 규칙의 재현율·정밀도·오경보 패턴 표를 비교하고 마지막 규칙이 선택된 이유...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>충돌 탐지 4개 규칙의 재현율·정밀도·오경보 패턴 표를 비교하고 마지막 규칙이 선택된 이유를 적는다.</p><h4>해야 할 일</h4><ol><li><p>충돌 탐지 4개 규칙(버전 벡터 불일치, 동시 수정, 타임스탬프 역전, 수량 음수)의 성능 지표를 분석한다.</p></li><li><p>AI를 활용하여 규칙별 재현율, 정밀도, 오경보 패턴 분석 표를 생성하고 최종 규칙 선택 근거를 도출한다.</p></li><li><p>자동 병합 불가 충돌을 선별하여 인간 개입(HITL)으로 안전하게 이관하는 규칙 체계를 확정한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"동기화 충돌 탐지 규칙 4종의 정밀도·재현율을 계산하고, 정상적인 긴급 불출을 시스템 오류로 오경보하지 않기 위해 어떤 복합 규칙을 채택해야 하는지 비교 분석해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 도출한 충돌 탐지 규칙이 야전의 정상적 동시 작전(동일 탄약고 동시 불출)을 악성 충돌로 잘못 판정하지 않는지 도메인 타당성을 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>수렴 성공, 서버 재고와 정답 차이 0(갱신 유실 0건), LWW는 5,142개 유실, 성질 시험 4종 모두 200/200 충돌 탐지 재현율: 시간 근접 4.9%, 값 비교 100%(정밀도 67.9%), 버전 벡터 v1 100%(88.3%), 버전 벡터+값 v2 100%(100%)</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>충돌 탐지 4개 규칙의 재현율·정밀도·오경보 패턴 표를 비교하고 마지막 규칙이 선택된 이유를 적는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>충돌 탐지 4개 규칙의 재현율·정밀도·오경보 패턴 표를 비교하고 마지막 규칙이 선택된 이유를 적는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(수렴 성공, 서버 재고와 정답 차이 0(갱신 유실 0건), LWW는 5,142개 유실, 성질 시험 4종 모두 200/200 충돌 탐지 재현율: 시간 근접 4.9%, 값 비교 100%(정밀도 67.9%), 버전 벡터 v1 100%(88.3%), 버전 벡터+값 v2 100%(100%))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>시간 근접 충돌 판정 윈도우를 1시간에서 24시간으로 확장하여 시계 불일치 환경을 모의한다.</p></li><li><p>AI에게 단말 간 하드웨어 시계 오차(Clock Drift) 발생 시 논리 시계(Vector Clock)로 이를 극복하는 보정 방안을 질의한다.</p></li><li><p>시간 창 변경에 따른 충돌 탐지 재현율 및 오경보율 변화를 기록하고 최적 임계값을 도출한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"노드 간 시스템 시계가 최대 12시간 어긋나 있는 전술 상황에서 물리적 타임스탬프 대신 Lamport/Vector Clock을 활용해 인과 관계(Causality)를 추적하는 알고리즘을 제안해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제안한 논리 시계 구현체에서 동시성(Concurrent) 상태와 인과적 선행(Happened-Before) 상태를 정확히 구분하는지 확인합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M05",
|
|
"sequence": 5,
|
|
"title": "오프라인 위변조 방지 암호화 해시 및 데이터 무결성 검증 엔진 개발",
|
|
"durationHours": 3,
|
|
"overview": "<p><strong>오프라인 트랜잭션 로그의 위·변조 및 누락을 식별하는 블록체인형 해시 체인과 레코드 단위 HMAC 서명 검증 엔진을 개발합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 오프라인 분산 환경에서 발생할 수 있는 악의적 데이터 조작, 탈취, 비인가 수정으로부터 군수 데이터 무결성 및 감사 증적 확보</p></li><li><p><strong>핵심 과업:</strong> 악성 변형 6종 및 정상 변형 3종 식별 로직 구현, 다층 계층 검증을 통한 High/Med/Low 신뢰도 등급화 알고리즘 개발</p></li><li><p><strong>검증 및 산출물:</strong> 단순 전체 해시 대비 오경보율(FAR) 40% 이상 감축, 등급 산출 일관성 90% 이상(달성치 100%) 입증, 신뢰도 검증 엔진(dat10_confidence_engine.py) 완성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 블록체인형 해시 체인과 HMAC 암호화 서명의 동작 원리를 이해하고, AI를 활용해 계층형 무결성 검증 알고리즘을 구현하여 오경보를 줄이고 감사 신뢰도를 확보하는 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 악성 변형 6종과 정상 변형 3종을 정밀 식별하는 해시 체인 및 HMAC 검증 엔진을 개발하고 신뢰도 등급(High/Med/Low)을 산출합니다.</p><ul><li><p><strong>AI 암호화 무결성 로직 도출 역량:</strong> 해시 체인 연결 구조와 레코드 단위 HMAC 서명 검증, 6개 평가 항목 가중합 알고리즘을 AI에게 요청하여 개발 시간을 단축하는 프롬프팅 능력을 익힙니다.</p></li><li><p><strong>오탐 방지 및 정규화 엔지니어링 역량:</strong> 단순 전체 해시 방식이 정상 포맷 차이를 악성으로 오탐하는 결함을 파악하고, 전처리 정규화 파이프라인과 다층 검증 로직으로 AI 코드를 교정하는 능력을 배양합니다.</p></li><li><p><strong>감사 증적 신뢰도 평가 역량:</strong> 악성 변형 100% 탐지, 오경보율 40% 이상 감축, 등급 일관성 100%를 확인하여 법적·군사적 증적 능력을 갖춘 무결성 평가 체계를 확립하는 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m05_integrity_hashchain.png\" alt=\"오프라인 해시 체인 및 HMAC 데이터 무결성 검증 엔진\" /></p><h4>미션 배경 및 당위성</h4><p>오프라인 위변조 방지 암호화 해시 및 데이터 무결성 검증 엔진을 개발한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>보급소 로그의 해시 체인과 레코드별 HMAC 서명으로 위변조를 찾는 오프라인 무결성 검증 엔진을 만들고, 단순 전체 해시 비교 대비 오경보율을 40% 이상 줄이고 신뢰도 등급 산출의 일관성 90% 이상을 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>수량 수정·기록 삭제·순서 변경·위조 삽입·재전송 변조(같은 ID, 다른 수량)·꼬리 절단 6종의 악성 변형과 중복 전송·순서 뒤바뀜·공백 차이 3종의 정상 변형을 보급소 5곳에 6회씩 주입하여 처리 지연 및 복원력을 시험하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/verification/dat10_confidence_engine.py</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m05_dataset.json",
|
|
"/uploads/DAT10/dat10_m05_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m05_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m05_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[메시지 인증 및 암호화] Python `hmac` 및 `hashlib`을 활용한 HMAC-SHA256 구현</strong>: 대칭키 기반 레코드 단위 디지털 서명 생성 및 전송 중 데이터 변조 탐지 메커니즘 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.python.org/ko/3/library/hmac.html\">Python hmac 공식 문서</a>)</li><li><strong>[블록체인 무결성] 해시 체인(Hash Chain) 데이터 구조 및 감사 추적(Audit Trail)</strong>: 직전 트랜잭션의 체크섬을 연쇄 결합하여 트랜잭션의 무단 삭제, 삽입, 순서 조작을 적발하는 해시 체인 아키텍처</li><li><strong>[의사결정 보조] 다층 무결성 검증 및 신뢰도 등급화(Confidence Scoring) 모델</strong>: 기계적 해시 불일치로 인한 오경보를 줄이고, 정상 변형(단말 시계 오차 등)과 악성 조작을 분리하여 High/Med/Low 등급을 부여하는 평가 매트릭스</li><li><strong>[국방 정보보호] 전술 C4I 데이터 무결성 및 위변조 방지 지침</strong>: 적대적 기만(Spoofing) 공격과 비인가 데이터 접근에 대비하는 군사 감사 증적(Audit Log) 표준</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/verification/dat10_confidence_engine.py (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[암호화 해시 및 데이터 무결성 검증 엔진] 요구된 핵심 성능 기준(단순 전체 해시 대비 오경보율(FAR) 40% 이상 감축, 악성 6종 탐지율 100%, 신뢰도 등급 산출 일관성 90% 이상)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>전체 해시 오경보율 33.3% 대비 계층 검증 0.0%(100% 감축), 악성 변형 6종 탐지율 100%(미탐 0건), 20회 반복 점검 등급 일관성 100%를 충족하는 실행 결과 및 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 지표가 기준치에 미달하거나 악성 변형 중 미탐이 발생한 경우.</p><h4>보완 방법</h4><p>HMAC 검증 및 해시 체인 연쇄 추적 로직의 가중치를 재조정하고 단위 테스트를 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 다층 무결성 검증 구조를 AI에게 명확히 지시하고, 신뢰도 등급(High/Med/Low) 부여 기준의 군사적 타당성을 논리적으로 확보하였는가?</strong></p><h4>PASS 증거</h4><p>단말 시계 오차 등 무해한 정상 변형과 악성 수량 위조를 분리하는 다층 평가 모델을 AI와 협업하여 설계하고, 군사 감사 증적(Audit Trail) 관점의 등급화 근거가 명확히 기술되었다.</p><h4>보완이 필요한 상태</h4><p>단순 해시 불일치로 인해 야전의 경미한 정상 변형을 전부 악성 위조로 오경보하거나 신뢰도 판정 근거가 모호한 경우.</p><h4>보완 방법</h4><p>변형 유형별 가중치 매트릭스를 보강하고 실무자 관점의 오경보 방지 해석 근거를 명시한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 다층 암호화 무결성(HMAC/해시체인) 및 오경보 최소화 신뢰도 등급(High/Med/Low) 체계 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 오경보율(FAR) 40% 이상 감축 (실측 100% 감축), 악성 6종 탐지율 100%, 등급 일관성 90% 이상 (실측 100%)</p></li><li><p>진행 기준: 다층 검증 엔진 파이프라인 구축, AI 프롬프트·디버깅 기록 및 20회 반복 일관성 시험 통과</p></li><li><p>검증 방법: 합성 변조 데이터셋 주입 테스트 및 단순 전체 해시 방식과의 오경보율 비교</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI 생성 코드에서 시크릿 키 관리 및 해시 계산 바디(Body) 문자열 구성의 무결성이 올바르게 구현되었는지 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M5 코드를 실행해 악성 6종과 정상 변형 3종의 탐지·오경보 결과를 확인한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M5 코드를 실행해 악성 6종과 정상 변형 3종의 탐지·오경보 결과를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>오프라인 환경에서 생성된 트랜잭션의 악성 변조 6종 및 정상 변형 3종 시뮬레이션 표본을 준비한다.</p></li><li><p>AI 코파일럿과 협업하여 HMAC 서명 및 SHA-256 해시체인 기반 무결성 검증 엔진을 개발한다.</p></li><li><p>검증 엔진을 실행하여 악성 변조 6종 탐지율(100%)과 정상 변형 오경보율(0%) 지표를 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"야전 트랜잭션 레코드의 무결성을 보장하기 위해 SHA-256 해시체인 링크와 HMAC-SHA256 디지털 서명을 결합한 데이터 감사 클래스를 구현해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 코드에서 해시 계산 시 필드 정렬(Canonical Ordering) 및 직렬화 포맷이 고정되어 있어 플랫폼별 해시 불일치가 발생하지 않는지 검토합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>전체 해시 비교 오경보율 33.3% -> 계층 검증 0.0%(100% 감축), 악성 6종 탐지율 100%, 미탐 없음 등급 일관성 평균 100%(목표 90%), 정상 변형은 High, 악성은 Low</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M5 코드를 실행해 악성 6종과 정상 변형 3종의 탐지·오경보 결과를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M5 코드를 실행해 악성 6종과 정상 변형 3종의 탐지·오경보 결과를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(전체 해시 비교 오경보율 33.3% -> 계층 검증 0.0%(100% 감축), 악성 6종 탐지율 100%, 미탐 없음 등급 일관성 평균 100%(목표 90%), 정상 변형은 High, 악성은 Low)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "신뢰도 가중치 매트릭스와 변형별 등급 분포를 읽고 즉시 Low로 보는 항목의 이유를 적는다...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>신뢰도 가중치 매트릭스와 변형별 등급 분포를 읽고 즉시 Low로 보는 항목의 이유를 적는다.</p><h4>해야 할 일</h4><ol><li><p>변조 유형별(수량 조작, 서명 위조, 체인 파손, 타임스탬프 조작) 신뢰도 가중치 매트릭스를 분석한다.</p></li><li><p>AI에게 신뢰도 점수를 기반으로 트랜잭션을 High, Medium, Low 등급으로 분류하는 평가 로직을 요청한다.</p></li><li><p>서명 위조 및 체인 단절 트랜잭션이 즉시 Low 등급으로 격리되는 판정 규칙의 타당성을 정리한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"체인 해시 불일치, HMAC 서명 실패, 중복 ID 발생 등 위험 요인별 가중치를 합산하여 0~100점의 데이터 신뢰도 스코어와 보안 등급(High/Med/Low)을 산출하는 함수를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 설계한 가중치에서 군사 보안상 치명적인 서명 위조나 해시 조작이 중간 등급(Medium)으로 누락되지 않고 즉각 격리(Low)되는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>전체 해시 비교 오경보율 33.3% -> 계층 검증 0.0%(100% 감축), 악성 6종 탐지율 100%, 미탐 없음 등급 일관성 평균 100%(목표 90%), 정상 변형은 High, 악성은 Low</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>신뢰도 가중치 매트릭스와 변형별 등급 분포를 읽고 즉시 Low로 보는 항목의 이유를 적는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>신뢰도 가중치 매트릭스와 변형별 등급 분포를 읽고 즉시 Low로 보는 항목의 이유를 적는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(전체 해시 비교 오경보율 33.3% -> 계층 검증 0.0%(100% 감축), 악성 6종 탐지율 100%, 미탐 없음 등급 일관성 평균 100%(목표 90%), 정상 변형은 High, 악성은 Low)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "20회 반복 점검의 등급 일관성과 불확실성 표시 예를 확인한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>20회 반복 점검의 등급 일관성과 불확실성 표시 예를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>20회 반복 무작위 검증 시험을 통해 무결성 등급 판정의 일관성과 불확실성 지표를 점검한다.</p></li><li><p>AI와 함께 판정 경계선(Borderline)에 위치한 트랜잭션의 불확실성 플래그 표시 로직을 구성한다.</p></li><li><p>검증 결과의 감사 추적 로그(Audit Trail)가 위변조 방지 형태로 온전히 기록되는지 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"무결성 검증을 20회 반복 실행하여 점수 분산이 0임을 입증하고, 신뢰도 점수가 경계값(예: 70점) 근처일 때 '인간 검토 필요' 플래그를 부착하는 감사 로깅 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 생성한 감사 로그가 메모리에서 휘발되지 않고 부인 방지(Non-repudiation)를 위해 로컬 파일/DB에 Append-only로 영구 기록되는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>전체 해시 비교 오경보율 33.3% -> 계층 검증 0.0%(100% 감축), 악성 6종 탐지율 100%, 미탐 없음 등급 일관성 평균 100%(목표 90%), 정상 변형은 High, 악성은 Low</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>20회 반복 점검의 등급 일관성과 불확실성 표시 예를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>20회 반복 점검의 등급 일관성과 불확실성 표시 예를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(전체 해시 비교 오경보율 33.3% -> 계층 검증 0.0%(100% 감축), 악성 6종 탐지율 100%, 미탐 없음 등급 일관성 평균 100%(목표 90%), 정상 변형은 High, 악성은 Low)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>신뢰도 가중치 매트릭스 W에서 체인·서명 비중을 낮추고 중복 ID 충돌 비중을 상향 조정한다.</p></li><li><p>AI에게 보안 가중치 변경에 따른 등급 분포 왜곡과 악성 변조 미탐 리스크를 정량 분석하도록 요청한다.</p></li><li><p>가중치 변경 전후의 보안 탐지력 변화를 비교하고 전술 보안 원칙에 부합하는 가중치 균형을 확정한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"가중치 매트릭스에서 암호학적 검증(해시·서명) 가중치를 낮췄을 때 발생할 수 있는 보안 취약점 시나리오를 제시하고, 최적의 가중치 비율을 추천해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI의 추천이 국방 보안 가이드라인(무결성 훼손 즉시 차단)과 상충되지 않는지 평가하고 실무 기준을 고수합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M06",
|
|
"sequence": 6,
|
|
"title": "오프라인/온라인 전환 상태 및 재고 변동 내역 실시간 대시보드 UI 구현",
|
|
"durationHours": 2.5,
|
|
"overview": "<p><strong>보급소별 통신 접속 상태와 품목별 재고 변동 및 공급망 위험 경보를 가시화하는 전술 상황판 대시보드 UI를 구현합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 복잡한 분산 재고 데이터와 통신 두절 현황을 지휘관 및 군수 실무자가 한눈에 직관적으로 인지하고 신속히 대응할 수 있는 가시화 도구 필요</p></li><li><p><strong>핵심 과업:</strong> 보급소 상태판, 품목별 재고 게이지, 변동 내역, 긴급 경보 등 4개 핵심 패널 설계 및 야간 작전 모드(대비비 4.5 이상) 지원</p></li><li><p><strong>검증 및 산출물:</strong> 화면 갱신 주기 1초 이내, UI 조작 응답성 100ms 이내 달성, 대시보드 모듈(dat10_dashboard.py) 완성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 대용량 시계열 군수 데이터 스트림을 실시간으로 시각화하는 프론트엔드 아키텍처와 인간공학적 UI 설계 원리를 이해하고, AI를 통해 고성능 관제 대시보드를 구축하는 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 168회 데이터 스트림 환경에서 보급소 상태판, 재고 게이지, 변동 내역, 긴급 경보 패널과 야간 작전 모드를 구현합니다.</p><ul><li><p><strong>AI 기반 UI 컴포넌트 신속 생성 역량:</strong> 4개 관제 패널과 야간 작전 환경에 적합한 다크 모드(명암 대비비 4.5 이상) 테마 컴포넌트를 AI에게 프롬프팅하여 신속히 생성하는 능력을 익힙니다.</p></li><li><p><strong>렌더링 성능 최적화 역량:</strong> 168회 모의 스트림 갱신 시 AI 코드에서 발생하는 렌더링 지연과 인터랙션 병목을 프로파일링하고 반응형 상태 관리를 최적화하는 디버깅 역량을 배양합니다.</p></li><li><p><strong>상황인식(Situational Awareness) 평가 역량:</strong> 화면 갱신 1초 이내 및 조작 응답 100ms 이내를 확인하고, 재고 소진 임박과 고립 노드가 지휘관 관점에서 직관적으로 인지되는지 평가하는 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m06_realtime_dashboard.png\" alt=\"실시간 전술 상황판 대시보드 UI 화면 모델\" /></p><h4>미션 배경 및 당위성</h4><p>오프라인/온라인 상태 및 재고 변동 내역 실시간 대시보드 UI를 구현한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>보급소별 오프라인/온라인 상태와 품목별 재고 변동 내역, 공급 경보를 보여 주는 실시간 대시보드 화면 모델을 구현하고 갱신 1초 이내·조작 응답 100ms 이내를 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>7일치 트랜잭션 2,100건을 1시간 단위 168회 데이터 스트림으로 흘려 보급소 상태판(온라인·오프라인·미동기 건수·지연 시간), 품목별 재고 게이지(소진 예상 일수와 납기 비교), 변동 내역, 경보 목록 4개 패널의 화면 모델을 갱신 수행하고 검증하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/ui/dat10_dashboard.py (또는 웹 UI 컴포넌트)</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m06_dataset.json",
|
|
"/uploads/DAT10/dat10_m06_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m06_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m06_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[반응형 대시보드 프레임워크] Streamlit 실시간 상태 관제 및 캐싱 기법</strong>: `@st.cache_data` 및 세션 상태(`st.session_state`)를 활용하여 지연 없는 대용량 트랜잭션 시각화 및 대시보드 구축 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.streamlit.io/\">Streamlit 공식 가이드</a>)</li><li><strong>[인터랙티브 시각화] Plotly 시계열 차트 및 멀티패널 레이아웃</strong>: 5개 보급소별 재고 잔량 추이, 동기화 지연, 이상치 경보 패널을 반응형으로 구성하는 데이터 시각화 기술 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://plotly.com/python/\">Plotly Python 가이드</a>)</li><li><strong>[군사 작전 UX/UI 표준] 야전 전술 C2 상황판 UI 디자인 및 색상 대비 가이드</strong>: 주간/야간 모드 전환, WCAG 웹 접근성 대비비 충족, 경보 위계(긴급/주의/정상) 시각화 원칙</li><li><strong>[프론트엔드 성능 튜닝] 웹 렌더링 성능 최적화 및 이벤트 반응 속도 단축</strong>: 168회 실시간 갱신 환경에서 프레임 드랍 없이 4대 조작 응답 시간을 최적화하는 방법</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/ui/dat10_dashboard.py (또는 웹 UI 컴포넌트) (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[실시간 상황판 UI 구현 및 응답 성능] 요구된 핵심 성능 기준(화면 갱신 주기 1초 이내, UI 조작 응답성 100ms 이내)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>168시간 시계열 갱신 지연 최대 1ms 미만, 조작 4종 응답 1ms 안팎 기준을 충족하고 4대 패널(상태판·재고게이지·변동내역·경보) 정상 렌더링 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>화면 갱신 시 렉(지연)이 발생하거나 UI 응답 시간이 기준치를 초과한 경우.</p><h4>보완 방법</h4><p>데이터 스트림 캐싱 구조를 최적화하고 렌더링 파이프라인을 경량화하여 재측정한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 전술 상황판의 UI 레이아웃과 주·야간 대비비 디자인을 AI에게 명확히 지시하고, 인지 부하 감소 관점의 타당성을 확보하였는가?</strong></p><h4>PASS 증거</h4><p>빛 통제가 필요한 야간 전술 작전 환경을 고려한 다크 모드와 위험 품목(소진 임박) 색상 위계화를 AI와 협업하여 구현하고, C2 지휘관의 즉각적 위기 인지를 돕는 디자인 근거가 제시되었다.</p><h4>보완이 필요한 상태</h4><p>지나치게 복잡한 그래프로 지휘관 인지 부하를 가중시켰거나 주/야간 모드 전환의 군사적 타당성 설명이 부족한 경우.</p><h4>보완 방법</h4><p>경보 강조 위계를 재정렬하고 전술 작전 상황판 UI/UX 표준에 맞추어 보완한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 전술 작전 상황판으로서의 직관성, 주·야간 작전 대비비 및 인지 부하 감소도</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 화면 갱신 주기 1초 이내 (실측 < 1ms), UI 조작 응답성 100ms 이내 (실측 < 1ms)</p></li><li><p>진행 기준: 4개 관제 패널 구현, AI 프롬프트·디버깅 기록 및 성능 벤치마크 결과 제출</p></li><li><p>검증 방법: 168회 모의 스트림 갱신 레이턴시 측정 및 UI 컴포넌트 렌더링 정합성 확인</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI가 제안한 UI 컴포넌트 코드가 메모리 누수 없이 안정적으로 프레임을 유지하는지 검증한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M6 코드를 실행해 168회 갱신의 지연과 시점별(12·72·168시간) 오프라인·미동기·...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M6 코드를 실행해 168회 갱신의 지연과 시점별(12·72·168시간) 오프라인·미동기·경보 현황을 확인한다.</p><h4>해야 할 일</h4><ol><li><p>가상 전장 168시간(7일) 동안의 노드별 온라인/오프라인 상태 및 재고 변동 시뮬레이션 데이터를 준비한다.</p></li><li><p>AI 코파일럿과 협업하여 Streamlit 기반 실시간 상태 대시보드 UI 레이아웃 및 렌더링 코드를 작성한다.</p></li><li><p>시점별(12·72·168시간) 단절 현황, 미동기 트랜잭션 수, 재고 소진 경보 지표가 정상 렌더링되는지 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"야전 보급소 5곳의 오프라인 단절 시간, 미동기 잔여 건수, 재고 부족 경보를 한눈에 볼 수 있는 Streamlit 관제 대시보드 레이아웃 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 UI 코드가 대량 데이터 로드 시 브라우저 멈춤 없이 1초 이내에 반응형으로 갱신되는지, 캐싱(@st.cache_data)이 적용되었는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>갱신 지연 최대 1ms 미만(목표 1초), 조작 응답 최대 1ms 안팎(목표 100ms), 렌더링 4개 패널 수백 ms 168시간 시점 보급소 E 오프라인·미동기 400건, 긴급 6종·주의 3종, 경보 7건, 주간·야간 색상 대비 4.5 이상 달성</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M6 코드를 실행해 168회 갱신의 지연과 시점별(12·72·168시간) 오프라인·미동기·경보 현황을 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M6 코드를 실행해 168회 갱신의 지연과 시점별(12·72·168시간) 오프라인·미동기·경보 현황을 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(갱신 지연 최대 1ms 미만(목표 1초), 조작 응답 최대 1ms 안팎(목표 100ms), 렌더링 4개 패널 수백 ms 168시간 시점 보급소 E 오프라인·미동기 400건, 긴급 6종·주의 3종, 경보 7건, 주간·야간 색상 대비 4.5 이상 달성)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "상태판·재고 경보 품목·변동 내역 출력과 조작 4종의 응답 시간을 읽는다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>상태판·재고 경보 품목·변동 내역 출력과 조작 4종의 응답 시간을 읽는다.</p><h4>해야 할 일</h4><ol><li><p>종합 상태판, 긴급 경보 품목 리스트, 재고 변동 타임라인 출력 컴포넌트를 구현한다.</p></li><li><p>AI에게 노드 필터링, 기간 선택, 품목 검색 등 4종 인터랙션 조작 시의 응답 지연 최적화 코드를 요청한다.</p></li><li><p>조작 반응 속도(0.5초 이내) 및 실시간 이상 징후 알림 컴포넌트의 정확성을 점검한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"Streamlit 대시보드에서 보급소별/품목별 필터를 변경했을 때 데이터 재연산 지연을 최소화하고, 재고 위험 품목을 상단 배너에 강조 표시하는 함수를 구현해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 작성한 필터링 로직에서 데이터 인덱싱 누락으로 인한 렌더링 병목이 없는지 성능 프로파일러로 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>갱신 지연 최대 1ms 미만(목표 1초), 조작 응답 최대 1ms 안팎(목표 100ms), 렌더링 4개 패널 수백 ms 168시간 시점 보급소 E 오프라인·미동기 400건, 긴급 6종·주의 3종, 경보 7건, 주간·야간 색상 대비 4.5 이상 달성</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>상태판·재고 경보 품목·변동 내역 출력과 조작 4종의 응답 시간을 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>상태판·재고 경보 품목·변동 내역 출력과 조작 4종의 응답 시간을 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(갱신 지연 최대 1ms 미만(목표 1초), 조작 응답 최대 1ms 안팎(목표 100ms), 렌더링 4개 패널 수백 ms 168시간 시점 보급소 E 오프라인·미동기 400건, 긴급 6종·주의 3종, 경보 7건, 주간·야간 색상 대비 4.5 이상 달성)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "주간·야간 대비비와 렌더링 4개 패널 그래프를 확인하고 경보 강조가 직관적인지 평가한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>주간·야간 대비비와 렌더링 4개 패널 그래프를 확인하고 경보 강조가 직관적인지 평가한다.</p><h4>해야 할 일</h4><ol><li><p>야전 지휘통제실 환경을 고려한 주간/야간(Dark Mode) 고대비 UI 가시성과 4개 패널 차트를 점검한다.</p></li><li><p>AI를 활용하여 재고 추이, 공급업체 납품 주기, 충돌 발생 빈도 차트의 시각화 스타일을 개선한다.</p></li><li><p>경보 등급별(Red/Amber/Green) 색상 구분이 전술 디스플레이 가독성 기준을 충족하는지 평가한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"전술 환경(주간 직사광선 및 야간 저조도)에서 직관적으로 식별 가능한 고대비 컬러 팔레트를 적용한 Plotly 시계열 재고 차트 컴포넌트를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제안한 시각화 색상이 군사 표준 규격(적색: 위험/고갈, 황색: 경고, 녹색: 안전)과 일치하는지 가독성 측면에서 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>갱신 지연 최대 1ms 미만(목표 1초), 조작 응답 최대 1ms 안팎(목표 100ms), 렌더링 4개 패널 수백 ms 168시간 시점 보급소 E 오프라인·미동기 400건, 긴급 6종·주의 3종, 경보 7건, 주간·야간 색상 대비 4.5 이상 달성</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>주간·야간 대비비와 렌더링 4개 패널 그래프를 확인하고 경보 강조가 직관적인지 평가한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>주간·야간 대비비와 렌더링 4개 패널 그래프를 확인하고 경보 강조가 직관적인지 평가한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(갱신 지연 최대 1ms 미만(목표 1초), 조작 응답 최대 1ms 안팎(목표 100ms), 렌더링 4개 패널 수백 ms 168시간 시점 보급소 E 오프라인·미동기 400건, 긴급 6종·주의 3종, 경보 7건, 주간·야간 색상 대비 4.5 이상 달성)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>긴급 경보 기준(소진 예상 일수 < 조달 소요 시간의 50%) 임계값을 조정하여 조기 경보 민감도를 시험한다.</p></li><li><p>AI에게 경보 임계값 변경이 경보 발생 빈도와 지휘관 피로도(Alert Fatigue)에 미치는 영향을 분석하도록 질의한다.</p></li><li><p>오프라인 구간 설정 및 경보 임계값 최적화 전후의 관제 효율을 비교 분석한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"재고 소진 임박 기준을 조달 소요 기간의 50%에서 30%로 조정했을 때 경보 발생 건수 변화와 지휘관 조기 대응 시간 간의 트레이드오프를 분석하는 시각화 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 분석한 경보 기준이 실제 조달 납기 지연 리스크를 간과하지 않는 안전 마진을 유지하고 있는지 검토합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M07",
|
|
"sequence": 7,
|
|
"title": "동기화 충돌 발생 시 군수관 수동 병합(Conflict Resolution) HITL 워크플로우 설계",
|
|
"durationHours": 3,
|
|
"overview": "<p><strong>자동 해결이 불가능한 중요 동기화 충돌에 대해 군수관이 검토·병합하고 지휘관이 승인하는 인간 개입(HITL) 워크플로우를 설계합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 알고리즘의 성급한 자동 확정으로 인한 오판을 차단하고, 군수 작전 통제권과 최종 결심 책임을 명확히 규정하기 위함</p></li><li><p><strong>핵심 과업:</strong> 위험도 우선순위 검토 큐 개발, 허용 범위(±20%) 기반 수동 병합 및 반려 처리, 25% 이상 중대 변동 시 지휘관 승인 연계, 우회 시도 차단</p></li><li><p><strong>검증 및 산출물:</strong> 인간 검토 큐 대기시간 80% 이상 단축, 처리 및 감사 로깅 성공률 100% 입증, 승인 워크플로우 모듈(dat10_approval_workflow.py) 및 운영 가이드 완성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> AI 및 자동화 시스템의 한계를 보완하는 인간 개입(HITL: Human-In-The-Loop) 의사결정 체계와 책임 분계 원칙을 이해하고, 다단계 승인 워크플로우와 불변 감사 로그를 구축하는 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 자동 해결이 불가능한 재고 충돌 12건에 대해 군수관 수동 병합 및 지휘관 결재 라인을 연계하고 비인가 우회 시도를 차단합니다.</p><ul><li><p><strong>AI 거버넌스 워크플로우 설계 역량:</strong> 군사 지휘통제 원칙을 반영하여 위험도 우선순위 큐, 허용 범위(±20%) 기반 수동 병합, 지휘관 승인 연계 로직을 AI에게 프롬프팅하여 도출하는 능력을 익힙니다.</p></li><li><p><strong>보안 우회 결함 탐지 및 차단 역량:</strong> 시스템 자동 병합, 권한 없는 확정 등 14종의 보안 우회 시도를 모의 주입하여 AI가 작성한 권한 통제 로직의 결함을 검증·보완하는 능력을 배양합니다.</p></li><li><p><strong>지휘 책임성 및 감사 추적성 보증 역량:</strong> 고위험 대기시간 단축(0.8h)과 조치 로깅 성공률 100%를 달성하고, 모든 병합 사유와 근거가 해시 체인으로 보존되는지 검증하는 실무 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m07_hitl_workflow.png\" alt=\"동기화 충돌 해결 군수관 수동 병합 HITL 워크플로우\" /></p><h4>미션 배경 및 당위성</h4><p>동기화 충돌 발생 시 군수관 수동 병합(Conflict Resolution) HITL 워크플로우를 설계한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>동기화 충돌이 발생했을 때 시스템이 값을 자동 확정하지 않고 군수관이 수동 병합하며, 영향이 큰 건은 지휘관이 승인하는 HITL 워크플로우를 구현해 검토 큐 대기시간과 처리 로깅 성공률 100%를 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>충돌 12건(실사 수량·최소 보유 기준을 두 보급소가 다르게 수정)을 시스템 제안 - 보급담당 상신 - 군수관 검토와 수동 병합 - 확정(차이 25% 이상이면 지휘관 승인) 순서로 처리하고, 병합 전후 값과 사유·근거를 기록하며 반려 사유를 필수로 수행하고 검증하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/hitl/dat10_approval_workflow.py 및 docs/dat10_hitl_guide.md</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m07_dataset.json",
|
|
"/uploads/DAT10/dat10_m07_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m07_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m07_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[인간 중심 AI/시스템] HITL(Human-In-The-Loop) 시스템 설계 원칙</strong>: 알고리즘의 성급한 자동 확정(Over-automation)을 방지하고, 군수관과 지휘관의 권한 분계선에 맞춘 인간 개입 승인 루프 설계 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://en.wikipedia.org/wiki/Human-in-the-loop\">Human-in-the-loop Systems Overview</a>)</li><li><strong>[워크플로우 최적화] 리스크 가중치 기반 검토 큐(Risk-weighted Review Queue) 알고리즘</strong>: 충돌 건수 누적 시 작전 영향도(물자 우선순위, 불일치 수량, 노드 신뢰도)를 평가하여 긴급 안건을 최우선 배치하는 스케줄링</li><li><strong>[감사 및 보안] 불변 감사 로그(Tamper-evident Audit Logging) 및 책임성 보장</strong>: 승인/반려/조건부 수락의 사유, 시간, 군수관 서명을 해시 체인으로 봉인하여 사후 위변조 및 책임 회피를 차단하는 감사 아키텍처</li><li><strong>[지휘통제 절차] 국방 군수물자 수불 승인 및 예외 처리 규정 실무 가이드</strong>: 불일치 재고 조정 시 작전사 승인 한도 및 현장 군수관 재량 범위의 군사적 타당성 검토 가이드</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/hitl/dat10_approval_workflow.py (필수)",
|
|
"docs/dat10_hitl_guide.md (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[수동 병합 HITL 워크플로우 및 권한 통제] 요구된 핵심 성능 기준(고위험 안건 대기시간 대폭 단축, 비인가 우회 시도 차단율 100%, 감사 로깅 성공률 100%)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>고위험 안건 평균 대기시간을 선입선출 5.5h에서 위험도 우선 0.8h로 단축하고, 우회 시도 14건 100% 차단 및 해시 체인 감사 로그 무결성 100% 기준을 만족하는 실행 결과 및 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>권한 우회가 허용되었거나 감사 로그 기록이 누락/위조된 경우.</p><h4>보완 방법</h4><p>권한 검증 인터셉터와 해시 체인 감사 로거를 보강하고 단위 테스트를 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] AI의 성급한 자동 단정을 차단하고 지휘 책임 분계선(보급담당-군수관-지휘관)을 명확히 구현하도록 AI와 협업하였는가?</strong></p><h4>PASS 증거</h4><p>시스템의 독단적 재고 덮어쓰기를 금지하고, 수동 병합 전후 값과 사유 기록, 반려 절차, 지휘관 최종 승인 한도 규칙을 AI에게 프롬프팅하여 완성한 워크플로우 지침서(docs/dat10_hitl_guide.md)가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>AI/시스템 자동 확정에 의존하여 지휘관/군수관 승인 단계를 건너뛰거나 책임 분계선이 모호한 경우.</p><h4>보완 방법</h4><p>군수 수불 규정을 재검토하여 결재 단계별 권한과 승인 한도 기준을 명시적으로 재설계한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 지휘 책임 분계선 명확화, 성급한 자동 단정 방지 및 불변 감사 추적(Audit Trail) 신뢰성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 고위험 평균 대기시간 단축 (5.5h -> 0.8h), 비인가 우회 시도 차단율 100% (14/14), 감사 로깅 성공률 100%</p></li><li><p>진행 기준: HITL 상태머신 구현, AI 프롬프트·디버깅 기록 및 워크플로우 가이드(docs/dat10_hitl_guide.md) 완성</p></li><li><p>검증 방법: 모의 조작자 승인/반려 시뮬레이션 및 해시 체인 무결성 변조 검증</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI의 자동 의사결정 위험성을 인지하고 사람이 최종 책임을 지는 인간 중심 설계가 충실히 이루어졌는지 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M7 코드를 실행해 충돌 12건과 영향 큼 건수, 검토 큐의 선입선출·위험도 우선 대기시간...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M7 코드를 실행해 충돌 12건과 영향 큼 건수, 검토 큐의 선입선출·위험도 우선 대기시간을 확인한다.</p><h4>해야 할 일</h4><ol><li><p>자동 해결이 불가능한 복합 동기화 충돌 12건 시나리오 및 위험도 평가 지표를 설정한다.</p></li><li><p>AI 코파일럿에게 군수관 수동 검토 큐(FIFO vs Risk-based Priority) 정렬 및 관리 모듈을 작성하도록 요청한다.</p></li><li><p>시뮬레이션을 실행하여 고위험 충돌의 대기 시간 단축률과 우선순위 큐 정렬 결과를 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"자동 병합이 불가능한 재고 충돌 12건에 대해 전술적 위험도(영향 수량 x 품목 중요도)를 계산하고 고위험 건을 최우선 검토 큐로 배치하는 Python 클래스를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 설계한 큐 정렬 로직에서 동률 발생 시 생성 시각 기반의 공정한 정렬이 보장되는지, 큐 오버플로우 처리가 되어 있는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>충돌 12건(영향 큼 5건), 고위험 평균 대기 선입선출 5.5h -> 위험도 우선 0.8h, 병합 11건·반려 4건·피드백 5건 우회 시도 14/14 차단, 처리 요청 115건 = 감사 로그 115건(로깅 성공률 100%), 이력 무결성 100%, 임의 수정 탐지</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M7 코드를 실행해 충돌 12건과 영향 큼 건수, 검토 큐의 선입선출·위험도 우선 대기시간을 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M7 코드를 실행해 충돌 12건과 영향 큼 건수, 검토 큐의 선입선출·위험도 우선 대기시간을 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(충돌 12건(영향 큼 5건), 고위험 평균 대기 선입선출 5.5h -> 위험도 우선 0.8h, 병합 11건·반려 4건·피드백 5건 우회 시도 14/14 차단, 처리 요청 115건 = 감사 로그 115건(로깅 성공률 100%), 이력 무결성 100%, 임의 수정 탐지)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "처리 결과표에서 군수관 병합·지휘관 승인·반려 재기안·한도 초과 종결 건을 확인한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>처리 결과표에서 군수관 병합·지휘관 승인·반려 재기안·한도 초과 종결 건을 확인한다.</p><h4>해야 할 일</h4><ol><li><p>군수관 수동 병합, 지휘관 승인, 반려 재기안, 한도초과 강제 종결의 4단계 HITL 결재선 워크플로우를 분석한다.</p></li><li><p>AI와 협업하여 각 결재 단계별 권한 검증 및 상태 전이(State Machine) 엔진을 구현한다.</p></li><li><p>처리 결과표를 통해 각 충돌 건이 규정과 권한에 맞게 승인 또는 반려되었는지 검증한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"군수관의 수동 병합 수정안이 특정 금액/수량 한도를 초과할 경우 지휘관 승인 단계로 자동 에스컬레이션되는 HITL 승인 상태 전이 머신을 구현해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 코드에서 결재 권한 우회(Bypass) 취약점이 없는지, 단계별 상태 변경이 원자적(Atomic)으로 커밋되는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>충돌 12건(영향 큼 5건), 고위험 평균 대기 선입선출 5.5h -> 위험도 우선 0.8h, 병합 11건·반려 4건·피드백 5건 우회 시도 14/14 차단, 처리 요청 115건 = 감사 로그 115건(로깅 성공률 100%), 이력 무결성 100%, 임의 수정 탐지</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>처리 결과표에서 군수관 병합·지휘관 승인·반려 재기안·한도 초과 종결 건을 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>처리 결과표에서 군수관 병합·지휘관 승인·반려 재기안·한도 초과 종결 건을 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(충돌 12건(영향 큼 5건), 고위험 평균 대기 선입선출 5.5h -> 위험도 우선 0.8h, 병합 11건·반려 4건·피드백 5건 우회 시도 14/14 차단, 처리 요청 115건 = 감사 로그 115건(로깅 성공률 100%), 이력 무결성 100%, 임의 수정 탐지)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "우회 시도 14건의 차단 결과와 로깅 성공률, 해시 체인 검증, 변조 탐지를 읽는다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>우회 시도 14건의 차단 결과와 로깅 성공률, 해시 체인 검증, 변조 탐지를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>비인가자의 승인 우회 및 조작 시도 14건에 대한 보안 차단 테스트를 구성한다.</p></li><li><p>AI에게 모든 HITL 결정에 대한 감사 로그를 해시체인 형태로 영구 기록하는 감사 모듈 작성을 요청한다.</p></li><li><p>우회 시도 100% 차단, 로깅 성공률 100%, 감사 해시체인 무결성을 최종 검증한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"군수관 결재 결과 및 사유를 조작 불가능하게 보존하기 위해 이전 감사 로그의 해시를 참조하는 블록체인형 감사 로그 체인 클래스를 구현하고 우회 차단 테스트를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 작성한 감사 체인에서 로그 조작 시도 발생 시 즉각 탐지되는지, 권한 없는 사용자의 승인 API 호출이 엄격히 거부되는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>충돌 12건(영향 큼 5건), 고위험 평균 대기 선입선출 5.5h -> 위험도 우선 0.8h, 병합 11건·반려 4건·피드백 5건 우회 시도 14/14 차단, 처리 요청 115건 = 감사 로그 115건(로깅 성공률 100%), 이력 무결성 100%, 임의 수정 탐지</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>우회 시도 14건의 차단 결과와 로깅 성공률, 해시 체인 검증, 변조 탐지를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>우회 시도 14건의 차단 결과와 로깅 성공률, 해시 체인 검증, 변조 탐지를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(충돌 12건(영향 큼 5건), 고위험 평균 대기 선입선출 5.5h -> 위험도 우선 0.8h, 병합 11건·반려 4건·피드백 5건 우회 시도 14/14 차단, 처리 요청 115건 = 감사 로그 115건(로깅 성공률 100%), 이력 무결성 100%, 임의 수정 탐지)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>지휘관 승인 에스컬레이션 기준인 영향도 임계값(IMPACT_CUT)을 0.25에서 0.15로 하향 조정한다.</p></li><li><p>AI에게 임계값 조정 시 지휘관 결재 병목 건수 증가와 결재 대기 지연 시간에 미치는 영향을 시뮬레이션하도록 요청한다.</p></li><li><p>안전성과 작전 속도의 균형을 맞출 수 있는 최적의 지휘관 승인 임계값을 제안하고 보고서를 작성한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"지휘관 승인 대상 기준(IMPACT_CUT)을 엄격하게 낮췄을 때 일일 지휘관 결재 업무 부담 증가량과 평균 승인 지연 시간을 정량 분석하는 시뮬레이션 스크립트를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 도출한 업무 부하 분석이 실제 군 지휘 결심 지연으로 인한 보급 마비 리스크를 합리적으로 고려했는지 평가합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M08",
|
|
"sequence": 8,
|
|
"title": "7일간 통신 단절 후 대량 재고 트랜잭션 일괄 동기화 스트레스 테스트",
|
|
"durationHours": 3.5,
|
|
"overview": "<p><strong>7일간 통신 단절 후 복구 시 일시에 폭증하는 대량 트랜잭션 동기화 부하에 대비한 극한 스트레스 테스트를 수행합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 대규모 통신 복구 직후 병목 현상, 버퍼 오버플로, 동시성 오류로 인한 시스템 다운과 군수 데이터 유실 위험 선제 차단</p></li><li><p><strong>핵심 과업:</strong> 기준 100%·200%·500%(최대 10,500건) 트랜잭션 주입, 작업자 스레드 풀 및 큐잉 제어, 과부하 시 표본 검증으로의 기능 축소(Fail-safe) 구현</p></li><li><p><strong>검증 및 산출물:</strong> 극단적 부하 상황에서 시스템 다운 0건, 데이터 유실 0%, 메모리 누수 방지 입증, 스트레스 테스트 코드(tests/dat10_stress_test.py) 및 보고서 산출</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 대규모 분산 시스템의 동시성 부하 처리 메커니즘과 극단 상황에서의 안전 실패(Fail-safe) 설계 기법을 이해하고, AI를 활용해 스트레스 테스트 파이프라인을 구축·최적화하는 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 기준 대비 500%(최대 10,500건) 대량 트랜잭션 폭증 시나리오를 주입하여 멀티스레드 큐 제어와 표본 검증 기능 축소 복원력을 시험합니다.</p><ul><li><p><strong>AI 부하 테스트 모델링 역량:</strong> 멀티스레드 배치 큐, 과부하 시 표본 검증으로 전환하는 기능 축소 정책, 사후 정정 파이프라인의 구조 코드를 AI에게 생성하도록 유도하는 기술을 익힙니다.</p></li><li><p><strong>병목 프로파일링 및 알고리즘 최적화 역량:</strong> AI가 작성한 동시성 코드의 리스트 탐색 O(N) 병목을 해시셋 조회 O(1)로 개선하고 메모리 누수를 디버깅하여 처리 속도를 10배 이상 향상시키는 역량을 배양합니다.</p></li><li><p><strong>극한 가용성 검증 역량:</strong> 500% 부하 환경에서도 시스템 다운 0건, 데이터 유실 0.00%, 위조 데이터 전량 격리를 입증하여 통신 복구 시의 전술 SaaS 복원력을 보증하는 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m08_stress_test.png\" alt=\"대량 트랜잭션 동기화 스트레스 테스트 및 복원력 검증\" /></p><h4>미션 배경 및 당위성</h4><p>7일간 통신 단절 후 대량 재고 트랜잭션 일괄 동기화 스트레스 테스트를 수행한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>7일간 통신이 끊겼다가 복구된 직후 보급소 5곳의 누적 트랜잭션이 한꺼번에 서버로 몰리는 상황을 기준 100%·200%·500%로 시험해 시스템 다운 0건·데이터 유실 0%와 기능 축소 동작을 확인한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>트랜잭션 2,100건을 기준으로 4,200건·10,500건까지 늘려 배치 50건 단위로 큐와 작업자 스레드 4개가 처리하게 하고, 같은 배치 중복 재전송(5%)·서명 후 수량 변조(1%)·작업자 오류(37배치마다) 주입하여 처리 지연 및 복원력을 시험하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>tests/dat10_stress_test.py 및 스트레스 테스트 분석 보고서</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m08_dataset.json",
|
|
"/uploads/DAT10/dat10_m08_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m08_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m08_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[시스템 복원력] 고부하 환경의 우아한 성능 저하(Graceful Degradation) 및 회로 차단(Circuit Breaker)</strong>: 500% 과부하 인입 시 시스템 다운을 방지하기 위해 비필수 집계를 중단하고 핵심 트랜잭션을 선별 적재하는 Fail-safe 정책</li><li><strong>[흐름 제어 아키텍처] 생산자-소비자 배압 제어(Backpressure) 및 큐 버퍼링</strong>: 일괄 동기화 패킷 폭증 시 메모리 고갈을 막기 위한 세마포어 기반 인입 속도 조절 메커니즘</li><li><strong>[성능 분석 도구] Python `cProfile` 및 `tracemalloc`을 활용한 프로파일링</strong>: 대량 트랜잭션 병합 루프의 CPU 병목 구간 및 반복 실행 시 메모리 누수(Leak) 진단 기법 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.python.org/ko/3/library/profile.html\">cProfile 공식 문서</a>)</li><li><strong>[데이터베이스 동시성] SQLite 동시 쓰기 잠금(Lock Contention) 및 WAL 모드 최적화</strong>: Write-Ahead Logging(WAL) 모드 및 Busy Timeout 설정을 통한 다중 접속 충돌 최소화 가이드 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://www.sqlite.org/wal.html\">SQLite WAL Guide</a>)</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"tests/dat10_stress_test.py (필수)",
|
|
"스트레스 테스트 분석 보고서 (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[대량 동기화 스트레스 테스트 및 안정성] 요구된 핵심 성능 기준(500% 극한 과부하 시 시스템 다운 0건, 데이터 유실률 0%, 병목 최적화 달성)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>500%(최대 15,000건) 부하 및 이상치 혼입 상황에서 시스템 다운 0건, 유실 0건, 중복 검사 집합(Set) 전환으로 10배 이상 처리 시간 단축을 달성한 벤치마크 및 프로파일링 결과가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>과부하 시 데드락/충돌로 시스템이 멈추거나 메모리 누수가 발생한 경우.</p><h4>보완 방법</h4><p>스레드 큐 버퍼링 및 세마포어 배압 제어를 적용하여 파라미터를 보정하고 재시험한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 과부하 복구 시 안전 실패(Fail-safe) 및 기능 축소(Graceful Degradation) 정책을 AI에게 타당하게 지시하고 검증하였는가?</strong></p><h4>PASS 증거</h4><p>대기 큐 적체 시 비필수 분석을 지연하고 핵심 수불 트랜잭션을 선별 적재하는 기능 축소 정책을 AI와 협업하여 설계하고, 전술 통신 복구 시의 생존성을 논리적으로 입증한 분석 보고서가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>큐 버퍼 임계값 정책 없이 전체 프로세스가 강제 종료되거나 AI 성능 분석의 신뢰성이 부족한 경우.</p><h4>보완 방법</h4><p>우아한 성능 저하(Graceful Degradation) 정책의 트리거 조건과 회복 시나리오를 구체화한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 극한 과부하 상황에서의 안전 실패(Fail-safe) 및 우아한 기능 축소(Graceful Degradation) 작동 적절성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 동시 부하 500% 시 시스템 다운 0건, 데이터 유실 0건, 병목 해소(10배 단축)</p></li><li><p>진행 기준: 스트레스 테스트 스크립트 실행, AI 프롬프트·디버깅 기록 및 성능 프로파일링 보고서 작성</p></li><li><p>검증 방법: cProfile / tracemalloc 기반 처리량(Throughput) 및 메모리 누수 검증</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>AI가 작성한 멀티스레드 코드에서 락 경합(Lock Contention)이나 공유 자원 오염이 발생하지 않는지 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M8 코드를 실행해 100·200·500% 부하의 처리 시간·처리량·응답 시간을 최적화 전...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M8 코드를 실행해 100·200·500% 부하의 처리 시간·처리량·응답 시간을 최적화 전후로 비교한다.</p><h4>해야 할 일</h4><ol><li><p>7일간 완전 단절 후 복구 상황을 모의하기 위해 100%, 200%, 500% 과부하 트랜잭션 데이터셋을 생성한다.</p></li><li><p>AI 코파일럿과 협업하여 대량 동기화 스트레스 테스트 하네스 및 지연/처리량 측정기를 구축한다.</p></li><li><p>과부하 단계별 처리 시간, 초당 처리량(TPS), P99 응답 시간 지표를 최적화 전후로 비교 측정한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"7일간 적체된 수만 건의 오프라인 동기화 트랜잭션이 한꺼번에 유입될 때 시스템의 처리량(TPS), 메모리 사용량, 응답 지연을 측정하는 멀티스레드 부하 테스트 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 부하 발생기가 실제 서버 병목을 유발할 만큼 충분한 동시성을 발휘하는지, 측정 지표 수집 시 오버헤드로 인한 왜곡이 없는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>전체 6회 실행: 다운 0건, 유실 0건, 재고 차이 0, 위조 전부 격리 예 500%(10,500건)에서 중복 확인을 목록에서 집합으로 바꿔 약 10배 이상 단축, 사후 검증 되돌림으로 표본 점검 중 통과한 위조 반영분 정정, 메모리 증가 5MB 미만</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M8 코드를 실행해 100·200·500% 부하의 처리 시간·처리량·응답 시간을 최적화 전후로 비교한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M8 코드를 실행해 100·200·500% 부하의 처리 시간·처리량·응답 시간을 최적화 전후로 비교한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(전체 6회 실행: 다운 0건, 유실 0건, 재고 차이 0, 위조 전부 격리 예 500%(10,500건)에서 중복 확인을 목록에서 집합으로 바꿔 약 10배 이상 단축, 사후 검증 되돌림으로 표본 점검 중 통과한 위조 반영분 정정, 메모리 증가 5MB 미만)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "500% 상세표의 중복 거부, 위조 격리, 작업자 오류 재처리, 사후 검증 되돌림, 유실 ...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>500% 상세표의 중복 거부, 위조 격리, 작업자 오류 재처리, 사후 검증 되돌림, 유실 건수를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>500% 극한 부하 조건에서 중복 트랜잭션, 위조 패킷, 작업자 입력 오류 등이 대량 혼입된 상황을 시험한다.</p></li><li><p>AI에게 스트레스 환경에서도 데이터 유실 0건을 보장하는 메시지 큐 기반 격리 처리 로직을 요청한다.</p></li><li><p>500% 상세 결과표를 대조하여 중복 거부, 위조 격리, 사후 롤백 검증이 누락 없이 수행되었는지 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"극한 부하 상황에서 비정상 패킷(중복, 서명 위조, 형식 파손)이 쏟아져도 정상 트랜잭션 처리에 영향을 주지 않고 Dead Letter Queue로 격리하는 에러 핸들링 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 작성한 예외 처리 로직이 메모리 부족(OOM) 상황에서도 정상 데이터를 유실(Drop)시키지 않고 지속성을 유지하는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>전체 6회 실행: 다운 0건, 유실 0건, 재고 차이 0, 위조 전부 격리 예 500%(10,500건)에서 중복 확인을 목록에서 집합으로 바꿔 약 10배 이상 단축, 사후 검증 되돌림으로 표본 점검 중 통과한 위조 반영분 정정, 메모리 증가 5MB 미만</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>500% 상세표의 중복 거부, 위조 격리, 작업자 오류 재처리, 사후 검증 되돌림, 유실 건수를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>500% 상세표의 중복 거부, 위조 격리, 작업자 오류 재처리, 사후 검증 되돌림, 유실 건수를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(전체 6회 실행: 다운 0건, 유실 0건, 재고 차이 0, 위조 전부 격리 예 500%(10,500건)에서 중복 확인을 목록에서 집합으로 바꿔 약 10배 이상 단축, 사후 검증 되돌림으로 표본 점검 중 통과한 위조 반영분 정정, 메모리 증가 5MB 미만)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "병목 프로파일과 기능 축소 정책, 반복 실행 후 메모리 증가를 읽는다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>병목 프로파일과 기능 축소 정책, 반복 실행 후 메모리 증가를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>시스템 프로파일러를 구동하여 CPU, I/O, 메모리 병목 지점을 특정하고 기능 축소(Graceful Degradation) 정책을 점검한다.</p></li><li><p>AI와 함께 큐 적체 심화 시 비필수 분석을 일시 중단하고 핵심 재고 반영만 우선 처리하는 정책을 설계한다.</p></li><li><p>반복 스트레스 부하 실행 후 메모리 누수가 발생하지 않는지 안정성 지표를 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"동기화 큐 길이가 임계치를 초과할 경우 대시보드 갱신 및 복잡한 이상치 탐지를 일시 정지하고 순수 트랜잭션 적재만 집중하는 우아한 성능 저하(Graceful Degradation) 메커니즘을 구현해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제안한 부하 경감 정책이 정상 상태 복귀 시 자동으로 분석 기능을 재개하는지, 메모리 누수 지점이 없는지 프로파일링 로그를 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>전체 6회 실행: 다운 0건, 유실 0건, 재고 차이 0, 위조 전부 격리 예 500%(10,500건)에서 중복 확인을 목록에서 집합으로 바꿔 약 10배 이상 단축, 사후 검증 되돌림으로 표본 점검 중 통과한 위조 반영분 정정, 메모리 증가 5MB 미만</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>병목 프로파일과 기능 축소 정책, 반복 실행 후 메모리 증가를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>병목 프로파일과 기능 축소 정책, 반복 실행 후 메모리 증가를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(전체 6회 실행: 다운 0건, 유실 0건, 재고 차이 0, 위조 전부 격리 예 500%(10,500건)에서 중복 확인을 목록에서 집합으로 바꿔 약 10배 이상 단축, 사후 검증 되돌림으로 표본 점검 중 통과한 위조 반영분 정정, 메모리 증가 5MB 미만)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>기능 축소 전환 기준인 대기 큐 임계값(HIGH_WATER)을 8에서 2로 낮추어 조기 부하 제어를 시험한다.</p></li><li><p>AI에게 임계값 하향이 시스템 생존성과 전체 복구 시간에 미치는 영향을 비교 분석하도록 질의한다.</p></li><li><p>극단적 네트워크 복구 상황에 최적화된 백프레셔(Backpressure) 튜닝 보고서를 작성한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"백프레셔 임계값(HIGH_WATER)을 민감하게 설정했을 때 시스템 안정성 확보와 트랜잭션 처리 지연 간의 상관관계를 분석하는 시뮬레이션 코드를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI의 분석이 너무 잦은 기능 축소로 인해 정상 업무가 불필요하게 지연되는 부작용을 균형 있게 다루고 있는지 검토합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M09",
|
|
"sequence": 9,
|
|
"title": "AAR 기반 동기화 누락 및 데이터 충돌 사례 분석 및 동기화 룰셋 재튜닝",
|
|
"durationHours": 3,
|
|
"overview": "<p><strong>과거 동기화 누락 및 충돌 판정 오류 사례를 사후검토(AAR)하여 원인을 규명하고 동기화 규칙 파라미터를 최적화 재튜닝합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 전장 운영 과정에서 식별된 실전적 오류 유형(D1~D6)을 분석하여 시스템의 오판을 방지하고 지속적 학습/개선 체계 확립</p></li><li><p><strong>핵심 과업:</strong> 1,200건 오류 사례 원인 분석, 중복 판정 방식·충돌 임계값·재시도 횟수 재튜닝, 8개 단위 회귀 테스트 스위트 구축</p></li><li><p><strong>검증 및 산출물:</strong> 종합 정확도 10%p 이상 향상(44.7% ➔ 93.0% 달성), 회귀 테스트 8/8 통과, AAR 분석 보고서(docs/dat10_aar_report.md) 및 최적 파라미터(configs/dat10_tuned_params.yaml) 작성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 실전 운영 실패 사례(AAR)를 원인별로 체계화하는 사후검토 방법론과 데이터 기반 규칙 최적화 원리를 이해하고, AI를 활용해 파라미터를 재튜닝하고 회귀 테스트를 구축하는 능력을 체득합니다.</p><p><strong>[핵심 과업]</strong> 가상 AAR 사례 1,200건을 6대 원인(D1~D6)으로 분류하고, 동기화 규칙 파라미터를 재튜닝하여 8종의 회귀 테스트 스위트를 완성합니다.</p><ul><li><p><strong>AI 로그 마이닝 및 파라미터 탐색 역량:</strong> AAR 오류 로그를 다차원 분석하고 중복 판정 방식과 충돌 탐지 임계값 후보군을 AI에게 질의하여 도출하는 프롬프팅 능력을 익힙니다.</p></li><li><p><strong>과적합 방지 및 회귀 테스트 엔지니어링 역량:</strong> AI가 제안한 파라미터가 특정 오류에만 치우쳐 전반적 성능을 해치지 않는지 8종 단위 회귀 테스트로 검증하고 최적의 균형점을 도출하는 역량을 배양합니다.</p></li><li><p><strong>지속적 개선(Continual Learning) 수립 역량:</strong> 정확도 10%p 이상 향상(44.7% ➔ 93.0%)을 달성하고, 튜닝 결과를 표준 YAML 구성 파일 및 사례 은행에 축적하는 지속적 운영 개선 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m09_aar_rule_tuning.png\" alt=\"AAR 기반 오류 원인 분석 및 동기화 룰 파라미터 재튜닝\" /></p><h4>미션 배경 및 당위성</h4><p>AAR 기반 동기화 누락 및 데이터 충돌 사례를 분석하고 동기화 룰을 재튜닝한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>동기화 누락·충돌 판정 오류 사례를 AAR로 원인별로 분류하고 규칙 파라미터(중복 판정 방식, 충돌 탐지 규칙, 자동 병합 임계, 재시도 횟수)를 재튜닝해 종합 정확도 10%p 이상 향상과 재발 오류 0건을 시험한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>가상 사례 1,200건(중복 재전송·재입력, 같은 크기의 서로 다른 거래, 동시·후속 메타 수정과 시계 어긋남, 수량 차이, 통신불량 전송 실패)에 현행 규칙을 적용해 오류를 D1~D6 원인으로 분류 수행하고 검증하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>docs/dat10_aar_report.md 및 configs/dat10_tuned_params.yaml</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m09_dataset.json",
|
|
"/uploads/DAT10/dat10_m09_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m09_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m09_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[사후 검토 방법론] 국방 AAR(After Action Review) 기반 결함 분류 체계(RCA)</strong>: 훈련 및 실전 운용 로그에서 발생한 오류 패턴을 6종(D1~D6: 시계 역전, 중복 입력, 누락 등)으로 구조화하고 근본 원인을 도출하는 분석 기법</li><li><strong>[설정 관리 엔지니어링] PyYAML을 활용한 동기화 룰셋 외부화 및 형상 관리</strong>: 코드 수정 없이 탐지 시간창, 임계값, 가중치 파라미터를 YAML로 분리하여 유지보수성을 극대화하는 설정 아키텍처 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://pyyaml.org/wiki/PyYAMLDocumentation\">PyYAML 공식 문서</a>)</li><li><strong>[품질 보증] pytest를 활용한 전술 시스템 회귀 테스트(Regression Testing) 스위트</strong>: 파라미터 재튜닝 후 기존 정상 시나리오가 파괴되지 않음을 입증하는 8대 핵심 회귀 테스트 자동화 기법 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://docs.pytest.org/\">pytest 공식 문서</a>)</li><li><strong>[데이터 파이프라인] 지속적 개선(Continuous Improvement) 및 룰셋 피드백 루프</strong>: 오탐/미탐 사례를 피드백 데이터셋으로 축적하고 규칙을 재보정하는 머신러닝/규칙 기반 하이브리드 파이프라인 개념</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"docs/dat10_aar_report.md (필수)",
|
|
"configs/dat10_tuned_params.yaml (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[AAR 기반 룰셋 재튜닝 및 회귀 검증] 요구된 핵심 성능 기준(AAR 피드백 적용 후 종합 정확도 10%p 이상 향상, 8대 회귀 테스트 100% 통과)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>독립 3,000건 시험셋 정확도가 44.7%에서 93.0%(+48.3%p)로 대폭 향상되고, 8대 전술 회귀 테스트 케이스 8/8 통과 및 재발 오류 0건을 입증한 실행 결과 및 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>파라미터 튜닝 후 기존 정상 케이스가 실패(회귀 결함)하거나 정확도 개선폭이 미달한 경우.</p><h4>보완 방법</h4><p>동시 수정 탐지 윈도우 및 인과 시계 보정 파라미터를 재튜닝하고 회귀 테스트 스위트를 재수행한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 과거 실전 AAR 사례의 근본 원인(D1~D6)을 분석하고 설정 기반(YAML) 룰셋 외부화를 AI와 협업하여 타당하게 완수하였는가?</strong></p><h4>PASS 증거</h4><p>하드코딩을 배제하고 동기화 룰셋을 표준 YAML 설정으로 분리하는 구조를 AI에게 지시하여 구현하고, 지속적 개선(Continuous Improvement) 관점의 파라미터 보정 근거가 명시된 AAR 보고서가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>오류 원인 분석이 추상적이거나 룰셋 변경이 코드 수정으로 직결되어 설정 외부화가 미흡한 경우.</p><h4>보완 방법</h4><p>원인별(D1~D6) 오류 분포 분석을 보강하고 configs/dat10_tuned_params.yaml 구조를 정비한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> AAR 기반 오류 원인 규명(RCA)의 객관성 및 YAML 설정 외부화 기반 지속 개선 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: AAR 피드백 적용 후 종합 정확도 10%p 이상 향상 (실측 +48.3%p 향상, 93.0% 달성), 회귀 테스트 8/8 통과</p></li><li><p>진행 기준: AAR 분석 보고서(docs/dat10_aar_report.md) 작성, AI 프롬프트·디버깅 기록 및 튜닝 설정(configs/dat10_tuned_params.yaml) 도출</p></li><li><p>검증 방법: pytest 기반 8대 회귀 테스트 스위트 자동 실행 및 튜닝 전후 성능 지표 비교</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>규칙 변경 시 기존 정상 트랜잭션 판정에 부작용이 없는지 회귀 테스트 로그를 철저히 확인한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M9 코드를 실행해 AAR 사례 1,200건의 현행 정확도와 원인별(D1~D6) 오류 분포...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M9 코드를 실행해 AAR 사례 1,200건의 현행 정확도와 원인별(D1~D6) 오류 분포를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>과거 실전 훈련 및 스트레스 테스트에서 수집된 AAR(After Action Review) 충돌 사례 1,200건을 로드한다.</p></li><li><p>AI 코파일럿을 활용해 현행 동기화 규칙의 정확도(45.5%)와 원인별(D1~D6) 오류 분포를 분석한다.</p></li><li><p>가장 빈번한 오류 원인인 D4(동시 수정 누락), D3(인과 관계 역전), D1(멱등성 미비)의 세부 패턴을 식별한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"1,200건의 AAR 동기화 실패 로그를 분석하여 6가지 오류 원인 코드(D1~D6)별 발생 빈도와 비율을 계산하고, 현행 규칙의 주요 결함 지점을 요약해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 분류한 오류 원인이 실제 로그 데이터와 일치하는지 샘플 50건을 추출하여 교차 검증하고, 오분류된 에러가 없는지 확인합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>현행 규칙 정확도 45.5%, 오류 653건(D4 동시 수정 놓침 29.5%, D3 27.1%, D1 21.3% 순) 시험 3,000건 44.7% -> 93.0%(+48.3%p, 목표 10%p 달성), 같은 AAR 사례 재발 오류 49건(목표 0건 미달), 회귀 테스트 4/8 -> 8/8</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M9 코드를 실행해 AAR 사례 1,200건의 현행 정확도와 원인별(D1~D6) 오류 분포를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M9 코드를 실행해 AAR 사례 1,200건의 현행 정확도와 원인별(D1~D6) 오류 분포를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(현행 규칙 정확도 45.5%, 오류 653건(D4 동시 수정 놓침 29.5%, D3 27.1%, D1 21.3% 순) 시험 3,000건 44.7% -> 93.0%(+48.3%p, 목표 10%p 달성), 같은 AAR 사례 재발 오류 49건(목표 0건 미달), 회귀 테스트 4/8 -> 8/8)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "재튜닝된 파라미터와 AAR 사례 재실행 결과, 시험 3,000건 정확도 향상폭, 재발 오류...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>재튜닝된 파라미터와 AAR 사례 재실행 결과, 시험 3,000건 정확도 향상폭, 재발 오류를 읽는다.</p><h4>해야 할 일</h4><ol><li><p>AAR 분석 결과를 기반으로 동시 수정 탐지 창, 인과 시계 보정 등 동기화 룰셋 파라미터를 재튜닝한다.</p></li><li><p>AI에게 오류 패턴을 극복하기 위한 개선된 동기화 룰셋 함수를 요청하고 3,000건의 독립 검증셋에 적용한다.</p></li><li><p>정확도가 44.7%에서 93.0%로 대폭 향상되었는지 확인하고, 동일 AAR 사례의 재발 건수를 점검한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"D4(동시 수정 놓침) 및 D3(시계 역전) 오류를 해결하기 위해 벡터 클럭 비교 로직과 타임스탬프 슬랙(Slack)을 보정한 고도화된 동기화 판정 함수를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 수정한 규칙이 기존 정상 케이스를 깨뜨리는 부작용(Regression)을 일으키지 않는지 검증셋 지표로 엄격히 대조합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>현행 규칙 정확도 45.5%, 오류 653건(D4 동시 수정 놓침 29.5%, D3 27.1%, D1 21.3% 순) 시험 3,000건 44.7% -> 93.0%(+48.3%p, 목표 10%p 달성), 같은 AAR 사례 재발 오류 49건(목표 0건 미달), 회귀 테스트 4/8 -> 8/8</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>재튜닝된 파라미터와 AAR 사례 재실행 결과, 시험 3,000건 정확도 향상폭, 재발 오류를 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>재튜닝된 파라미터와 AAR 사례 재실행 결과, 시험 3,000건 정확도 향상폭, 재발 오류를 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(현행 규칙 정확도 45.5%, 오류 653건(D4 동시 수정 놓침 29.5%, D3 27.1%, D1 21.3% 순) 시험 3,000건 44.7% -> 93.0%(+48.3%p, 목표 10%p 달성), 같은 AAR 사례 재발 오류 49건(목표 0건 미달), 회귀 테스트 4/8 -> 8/8)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "회귀 테스트 8개 결과와 YAML 문자열, 지속 학습 연계를 확인한다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>회귀 테스트 8개 결과와 YAML 문자열, 지속 학습 연계를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>규칙 변경에 따른 회귀 방지를 위해 8종의 핵심 전술 회귀 테스트 케이스를 실행한다.</p></li><li><p>AI를 활용하여 재튜닝된 룰셋을 표준 YAML 설정 파일로 직렬화하고 버전 관리 체계를 수립한다.</p></li><li><p>회귀 테스트 8/8 전체 통과와 지속적 학습(Continuous Learning) 파이프라인 연계 방안을 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"재튜닝된 동기화 규칙 파라미터(시간 윈도우, 가중치, 임계값)를 구조화된 YAML 파일로 내보내고, 이를 동적으로 로드하는 룰 엔진 설정 관리 모듈을 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 생성한 YAML 파일의 필드 규격이 프로덕션 룰 엔진 스키마와 100% 호환되는지 유효성 검사기로 검증합니다.</p></li></ul><h4>핵심 확인 지표</h4><blockquote><p>현행 규칙 정확도 45.5%, 오류 653건(D4 동시 수정 놓침 29.5%, D3 27.1%, D1 21.3% 순) 시험 3,000건 44.7% -> 93.0%(+48.3%p, 목표 10%p 달성), 같은 AAR 사례 재발 오류 49건(목표 0건 미달), 회귀 테스트 4/8 -> 8/8</p></blockquote><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>회귀 테스트 8개 결과와 YAML 문자열, 지속 학습 연계를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>회귀 테스트 8개 결과와 YAML 문자열, 지속 학습 연계를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(현행 규칙 정확도 45.5%, 오류 653건(D4 동시 수정 놓침 29.5%, D3 27.1%, D1 21.3% 순) 시험 3,000건 44.7% -> 93.0%(+48.3%p, 목표 10%p 달성), 같은 AAR 사례 재발 오류 49건(목표 0건 미달), 회귀 테스트 4/8 -> 8/8)를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>버전 벡터가 누락된 구형 단말 기록 비율(8%)을 0%로 가정하여 시스템 현대화 효과를 시뮬레이션한다.</p></li><li><p>AI에게 수기 재입력으로 인한 중복(D2b) 오류를 원천 차단하기 위한 스마트 서식 입력 검증 규칙을 질의한다.</p></li><li><p>단말기 업그레이드 및 입력 인터페이스 개선 시 달성 가능한 추가 정확도 향상폭을 도출한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"버전 벡터가 없는 레거시 단말기 데이터 유입 시 인과 관계를 추론해내는 폴백(Fallback) 알고리즘을 설계하고 그 한계점과 대응 방안을 제시해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 제시한 폴백 로직이 추측에 의존하여 잘못된 병합을 초래하지 않는지 안전성 관점에서 검토합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "DAT10_M10",
|
|
"sequence": 10,
|
|
"title": "오프라인 동기화 야전 재고 관리 SaaS 최종 패키징 및 야전 배포 가이드 완성",
|
|
"durationHours": 3.5,
|
|
"overview": "<p><strong>전 미션의 단위 기능들을 단일 야전 군수 플랫폼으로 결합하고 공급망 재난 징후 마이닝 기능이 포함된 최종 패키지를 완성합니다.</strong></p><ul><li><p><strong>배경 및 필요성:</strong> 분산된 전처리·동기화·무결성·대시보드·HITL 모듈을 통합하여 야전 실무자가 즉각 운용할 수 있는 신뢰성 높은 단일 SaaS 체계 완성</p></li><li><p><strong>핵심 과업:</strong> End-to-End 파이프라인 통합, 입고 급감 업체를 탐지하는 공급망 재난 마이닝 구현, 5단계 설치 점검 스크립트 및 7개 장 운영 매뉴얼 작성</p></li><li><p><strong>검증 및 산출물:</strong> 통합 파이프라인 실행 성공률 100%, 테스트 커버리지 85% 이상 달성, 통합 실행 스크립트(src/main_dat10.py), 배포 가이드(README.md) 및 최종 보고서 작성</p></li></ul>",
|
|
"objectives": "<p><strong>[습득 역량]</strong> 모듈형 소프트웨어 아키텍처의 통합 패키징 기법과 공급망 이상 징후 데이터 마이닝 원리를 이해하고, AI를 활용해 종합 보고서와 운영 매뉴얼을 완성하는 실무 역량을 체득합니다.</p><p><strong>[핵심 과업]</strong> 단위 미션의 9개 핵심 모듈을 단일 SaaS로 통합하고, 공급망 재난 징후 마이닝 기능 구현 및 야전 배포 패키지와 운영 가이드를 완성합니다.</p><ul><li><p><strong>AI 통합 스크립트 및 마이닝 도출 역량:</strong> 모듈 통합 엔드포인트(main_dat10.py), 업체 입고 급감 탐지 마이닝 알고리즘, 배포 가이드 초안 작성을 AI에게 지시하여 완성하는 능력을 익힙니다.</p></li><li><p><strong>엔드투엔드 정합성 교차 점검 역량:</strong> 모듈 간 인터페이스 불일치와 오프라인 노드로 인한 공급망 이상 오경보를 시드 4종 E2E 시나리오로 점검하고 AI와 함께 디버깅하는 능력을 배양합니다.</p></li><li><p><strong>소프트웨어 품질 보증 및 야전 납품 역량:</strong> 통합 파이프라인 실행 성공률 100%, 커버리지 85% 이상을 달성하고, 지휘관/군수관 브리핑 요약과 야전 매뉴얼(7개 장)을 최종 검수·완성하는 실무 역량을 체득합니다.</p></li></ul>",
|
|
"scenario": "<p><img src=\"/uploads/common/DAT10_m10_final_saas_package.png\" alt=\"오프라인 동기화 야전 재고 관리 SaaS 최종 통합 아키텍처\" /></p><h4>미션 배경 및 당위성</h4><p>오프라인 동기화 야전 재고 관리 SaaS 패키징 및 배포 가이드를 완성한다. 실제 전술 현장에서는 단순 탐지에 그치지 않고 신속한 위협 판단과 신뢰도 높은 의사결정이 필수적이므로, <strong>입력 검증·서명 점검·중복 제거·PN-카운터 병합·충돌 탐지·공급망 재난 징후 마이닝·검토 큐·감사 로그·브리핑을 묶은 오프라인 동기화 야전 재고 관리 SaaS 패키지와 배포 가이드를 완성한다.</strong> 과업을 완수하여 오판을 방지하고 작전 대응력을 극대화해야 합니다.</p><p>이 문제를 해결하기 위해 본 미션에서는 <strong>앞 미션의 기능을 통합 파이프라인으로 묶어 설치 스크립트 5단계 점검, 시드 4종 End-to-End 실행(업체 1곳 공급 중단, 노드 1곳 3일치 미동기, 변조 20·깨진 줄 5·중복 60건 주입), 자체 점검 11항목과 함수 커버리지 수행하고 분석하는</strong> 실습을 체계적으로 수행합니다.</p><p>학습자는 실습가이드에 제시된 총 4개 세부 활동(기본 기능 구현 ➔ 결과 지표 검증 ➔ 파라미터 튜닝 및 도전과제)을 순차적으로 진행하며 핵심 판정 기준을 달성합니다.</p><p><strong>이번 결과물:</strong> <code>src/main_dat10.py, README.md, docs/dat10_final_report.pdf(md)</code> 형태의 결과물을 완성한다.</p>",
|
|
"attachments": [],
|
|
"materials": [
|
|
"/uploads/DAT10/dat10_m10_dataset.json",
|
|
"/uploads/DAT10/dat10_m10_sample.md"
|
|
],
|
|
"materialText": "<p><strong>미션 실습 자료</strong></p><ul><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m10_dataset.json\">가상 데이터셋 샘플 (JSON)</a></li><li><a target=\"_blank\" rel=\"noopener noreferrer\" href=\"/uploads/DAT10/dat10_m10_sample.md\">실습 및 검증 가이드 (MD)</a></li></ul><p><strong>권장 학습 자료 & 기술 레퍼런스</strong></p><ul><li><strong>[방산 공급망 분석] 방위산업기반(DIB) 공급망 재난 식별 및 데이터 마이닝</strong>: 동기화된 보급 트랜잭션 데이터를 기반으로 납품 비율 급감(supply_ratio_cut), 리드타임 지연, 특정 업체 공급 마비 징후를 선제 식별하는 마이닝 알고리즘</li><li><strong>[오프라인 소프트웨어 배포] 독립 실행형 패키징 및 오프라인 배포 자동화(PyInstaller / 배포 스크립트)</strong>: 외부 인터넷 연결이 차단된 야전 환경에서 단일 실행체계로 구동할 수 있도록 환경 점검, DB 초기화, 모듈 검증을 일괄 수행하는 자동화 스크립트 작성 가이드</li><li><strong>[통합 품질 검증] End-to-End 시스템 통합 테스트 및 코드 커버리지(`coverage.py`)</strong>: 전처리→동기화→무결성 검증→대시보드→HITL 전 파이프라인의 핵심 함수 커버리지 100% 달성 및 4대 시나리오 검증 기법 (<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://coverage.readthedocs.io/\">Coverage.py 공식 가이드</a>)</li><li><strong>[지휘보고 및 문서화] 국방 지휘관 브리핑 보고서 및 야전 운용자 표준행동절차(SOP) 작성법</strong>: 복잡한 알고리즘 결과를 직관적인 위험 등급(High/Med/Low)과 공급망 위기 지표로 요약하고 인적 승인 가이드를 체계화하는 문서화 실무</li></ul><p><strong>활용 주의</strong>: 제공된 교육용 가상 데이터만 사용하며 실제 군사 비밀 및 개인정보는 입력하지 않습니다.</p>",
|
|
"techStack": [
|
|
"데이터·자동화·업무플랫폼",
|
|
"코딩형",
|
|
"데이터 전처리",
|
|
"알고리즘 구현",
|
|
"HITL 검증"
|
|
],
|
|
"deliverables": [
|
|
"src/main_dat10.py, README.md, docs/dat10_final_report.pdf(md) (필수)"
|
|
],
|
|
"evaluationKeys": [
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[SaaS 최종 패키징 및 통합 파이프라인 검증] 요구된 핵심 성능 기준(5단계 설치 점검 통과, E2E 시나리오 4종 100% 성공, 핵심 함수 커버리지 85% 이상, 공급망 위기 후보 100% 식별)을 완벽히 달성하였는가?</strong></p><h4>PASS 증거</h4><p>5단계 설치 점검 5/5 통과, E2E 시나리오 4/4 성공, 공급망 재난 위험 후보 업체 4/4 탐지(오경보 0건), 자체 점검 11/11 통과 및 함수 커버리지 100%(15/15)를 만족하는 실행 결과 및 로그가 제출되었다.</p><h4>보완이 필요한 상태</h4><p>통합 파이프라인 중 일부 단계가 실패하거나 공급망 재난 후보 탐지에 오탐/미탐이 발생한 경우.</p><h4>보완 방법</h4><p>원클릭 배포 스크립트의 환경 점검 단계를 보정하고 공급망 마이닝 임계값을 재조정한다.</p>",
|
|
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 타당성 & AI 협업 역량] 전 파이프라인 통합 및 지휘관 브리핑 문서를 AI와 협업하여 완성하고, 야전 부대 즉시 운용 신뢰성을 확보하였는가?</strong></p><h4>PASS 증거</h4><p>복잡한 데이터 마이닝 결과를 지휘관이 직관적으로 판단할 수 있는 위험 등급 요약표로 집계하고, 인터넷이 차단된 야전 단말기에서 단일 명령으로 구동 가능한 운용자 매뉴얼(README.md)을 AI와 함께 완성한 산출물이 제출되었다.</p><h4>보완이 필요한 상태</h4><p>기술적 나열에 그쳐 비기술 지휘관의 의사결정을 돕지 못하거나 야전 배포 절차가 불완전한 경우.</p><h4>보완 방법</h4><p>지휘관 브리핑 문서의 전략적 시사점을 보강하고 야전 SOP 매뉴얼 서식을 완비한다.</p>"
|
|
],
|
|
"evaluationTypes": [
|
|
"REQUIRED",
|
|
"REQUIRED"
|
|
],
|
|
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>핵심 평가영역:</strong> 야전 환경 즉시 도입 가능성, 공급망 재난 선제 식별 신뢰도 및 지휘관 의사결정 브리핑 타당성</p><h4>미션 PASS 조건</h4><ul><li><p>정량 기준: 설치 점검 5/5 통과, E2E 시나리오 성공률 100%, 공급망 재난 후보 식별 4/4 (오경보 0건), 함수 커버리지 85% 이상 (실측 100%)</p></li><li><p>진행 기준: 단일 통합 파이프라인(src/main_dat10.py) 실행 성공, AI 프롬프트·디버깅 기록, 야전 운용 매뉴얼(README.md) 및 최종 보고서 완성</p></li><li><p>검증 방법: 통합 검증 파이프라인 자동 실행, E2E 단위 테스트 및 지휘관 브리핑 산출물 평가</p></li></ul><h4>채점자 판정 메모</h4><blockquote><p>학습자가 AI를 Co-pilot으로 활용하여 단절 환경 극복부터 공급망 위기 식별까지 End-to-End 전체 시스템을 주도적으로 통제하고 검증했는지 종합 평가한다.</p></blockquote>",
|
|
"aiGuidelines": {
|
|
"allow": [
|
|
"데이터 전처리 알고리즘 및 정규화 서식 추천받기",
|
|
"이상치 탐지 및 모델 파라미터 튜닝 아이디어 제안받기",
|
|
"대시보드 UI 컴포넌트 코드 및 시각화 서식 생성하기"
|
|
],
|
|
"rules": [
|
|
"최종 판정 및 지휘 결심은 학습자가 직접 수행한다.",
|
|
"실제 군사 비밀이나 개인 식별 정보는 입력하지 않는다.",
|
|
"AI의 출력 결과를 맹신하지 않고 반드시 단위 테스트로 검증한다."
|
|
],
|
|
"forbid": [
|
|
"실제 군사 작전/인사 비밀 데이터를 AI에 입력하기",
|
|
"검증 없이 AI가 생성한 코드를 그대로 제출하기",
|
|
"단정적인 자동 결심 결과를 인간 검토 없이 확정하기"
|
|
]
|
|
},
|
|
"guideSteps": [
|
|
{
|
|
"step": 1,
|
|
"problem": "M10 코드를 실행해 설치 스크립트 5단계 점검과 End-to-End 시나리오 4종 결과를...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>M10 코드를 실행해 설치 스크립트 5단계 점검과 End-to-End 시나리오 4종 결과를 확인한다.</p><h4>해야 할 일</h4><ol><li><p>야전 배포용 단일 실행 패키지와 5단계 자동 설치 스크립트(환경 점검, DB 초기화, 모듈 검증 등)를 준비한다.</p></li><li><p>AI 코파일럿과 협업하여 4종의 야전 시나리오(정상 수불, 단절 복구, 충돌 해결, 공급망 위기) End-to-End 시험을 수행한다.</p></li><li><p>5단계 설치 점검 및 4개 실전 시나리오의 무오류 완료 로그를 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"야전 오프라인 환경에서 의존성 패키지와 SQLite DB를 원클릭으로 설치·검증하고 4대 E2E 시나리오를 자동 실행하는 Bash/Python 배포 스크립트를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI 생성 배포 스크립트가 외부 인터넷 연결 없이 폐쇄망(Air-gap) 환경에서 온전히 실행될 수 있도록 로컬 휠/패키지 경로를 올바르게 참조하는지 확인합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>M10 코드를 실행해 설치 스크립트 5단계 점검과 End-to-End 시나리오 4종 결과를 확인한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>M10 코드를 실행해 설치 스크립트 5단계 점검과 End-to-End 시나리오 4종 결과를 확인한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(( ))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 2,
|
|
"problem": "자체 점검 11항목과 함수 커버리지, 매뉴얼 작성률을 읽는다.",
|
|
"activity": "<h4>이 단계의 역할</h4><p>자체 점검 11항목과 함수 커버리지, 매뉴얼 작성률을 읽는다.</p><h4>해야 할 일</h4><ol><li><p>시스템 배포 전 자체 점검 11개 체크리스트(보안, 성능, 무결성, 예외 처리 등)를 점검한다.</p></li><li><p>AI에게 핵심 모듈의 단위 함수 커버리지 측정 스크립트와 야전 운용자 매뉴얼 초안 작성을 요청한다.</p></li><li><p>함수 커버리지 기준 달성 및 매뉴얼 작성률 100% 달성 여부를 최종 확인한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"야전 군수 SaaS의 11대 필수 검증 항목(데이터 무결성, 멱등성, 장애 복구 등)을 자동으로 채점하는 종합 시스템 감사 스크립트와 운용자 가이드 목차를 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 생성한 매뉴얼에 비기술직 군수 실무자(보급관 등)가 이해하기 쉬운 장애 조치(Troubleshooting) 절차가 명확히 서술되어 있는지 검토합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>자체 점검 11항목과 함수 커버리지, 매뉴얼 작성률을 읽는다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>자체 점검 11항목과 함수 커버리지, 매뉴얼 작성률을 읽는다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(( ))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 3,
|
|
"problem": "브리핑 요약의 수치와 공급망 재난 징후 후보 업체가 앞선 출력과 일치하는지 확인하고 사람이...",
|
|
"activity": "<h4>이 단계의 역할</h4><p>브리핑 요약의 수치와 공급망 재난 징후 후보 업체가 앞선 출력과 일치하는지 확인하고 사람이 해야 할 일을 정리한다.</p><h4>해야 할 일</h4><ol><li><p>전체 시스템에서 산출된 최종 공급망 데이터 마이닝 결과를 종합 브리핑 문서로 집계한다.</p></li><li><p>AI와 함께 공급량 급감 및 납품 지연 패턴을 보이는 공급망 재난 위험 후보 업체를 식별한다.</p></li><li><p>AI가 추천한 이상 징후에 대해 군수관과 지휘관이 취해야 할 실질적인 조치 방안(대체선 확보, 비축 확대 등)을 정리한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"동기화된 전체 보급 데이터에서 공급 감소율과 재고 소진 속도를 마이닝하여 공급망 재난 징후를 보이는 고위험 납품 업체를 식별하고 지휘관 보고용 브리핑 요약을 작성해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI가 선별한 위험 업체 및 수치가 앞선 미션들의 데이터 분석 결과와 정확히 일치하는지 대조하고, 지휘 결심 근거의 타당성을 평가합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>브리핑 요약의 수치와 공급망 재난 징후 후보 업체가 앞선 출력과 일치하는지 확인하고 사람이 해야 할 일을 정리한다. 실행 결과 및 검증 로그</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>브리핑 요약의 수치와 공급망 재난 징후 후보 업체가 앞선 출력과 일치하는지 확인하고 사람이 해야 할 일을 정리한다. 과정이 정상적으로 수행되고 오류 없이 완료되었다.</p></li><li><p>요구된 핵심 성능 지표(( ))를 충족하였다.</p></li></ul><h4>보완이 필요한 경우</h4><ul><li><p>실행 중 오류가 발생했거나 필수 검증 지표가 누락된 경우 재실행하여 보완한다.</p></li></ul>",
|
|
"attachments": []
|
|
},
|
|
{
|
|
"step": 4,
|
|
"problem": "도전 과제 및 파라미터 튜닝 최적화",
|
|
"activity": "<h4>이 단계의 역할</h4><p>기본 파이프라인 수행 후 심화 튜닝 및 조건 변경을 통해 최적화 역량을 다진다.</p><h4>해야 할 일</h4><ol><li><p>공급망 재난 경보 판단 기준인 납품 비율 삭감 임계값(supply_ratio_cut)을 0.3에서 0.6으로 변경한다.</p></li><li><p>AI에게 임계값 변경 시 발생할 수 있는 공급 재난 조기 식별률과 허위 경보(False Alarm) 변화를 질의한다.</p></li><li><p>오프라인 노드 수 증가에 따른 시스템 확장성 분석과 함께 최종 튜닝 파라미터를 확정한다.</p></li></ol><h4>AI 협업 가이드 (프롬프트 & 검증 지침)</h4><ul><li><p><strong>프롬프트 질의 예시:</strong> \"공급망 이상 징후 탐지 임계값을 보수적으로 변경했을 때 실제 공급망 붕괴 조기 포착 능력에 미치는 영향을 분석하고 최적의 군사적 절충점을 제안해줘.\"</p></li><li><p><strong>AI 결과 검증 포인트:</strong> AI의 제안이 전시 비상 보급체계의 연속성을 해치지 않는지 전술적 공급망 회복력 관점에서 최종 검토합니다.</p></li></ul><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>파라미터 변경 전후 비교 분석 메모 및 최종 최적화 결과</p></li><li><p>AI 코파일럿 질의 프롬프트 및 산출물 디버깅·검증 기록</p></li></ul>",
|
|
"evalText": "<h4>PASS 기준</h4><ul><li><p>도전 과제 변경 사항이 논리적으로 타당하며 결과 변화 이유를 명확히 기술하였다.</p></li></ul>",
|
|
"attachments": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
} |