update
This commit is contained in:
1 parent
83278b2998
commit
b38ceec784
128 files changed
+51554
No files matched your search
@@ -0,0 +1,912 @@
|
||||
{
|
||||
"version": "1.0.0",
|
||||
"exportedAt": "2026-09-30T14:10:00.000Z",
|
||||
"id": "DAT10",
|
||||
"title": "데이터 마이닝 기반 공급망 재난 식별 SaaS",
|
||||
"category": "군수업무/공급망 모니터링",
|
||||
"level": 3,
|
||||
"durationDays": 5,
|
||||
"requiredHours": 27.5,
|
||||
"status": "COMPLETED",
|
||||
"isRecommended": false,
|
||||
"summary": "<h4>프로젝트에서 해결해야 하는 문제</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 분석하여 데이터 마이닝 기반 공급망 재난 식별 SaaS을(를) 위한 핵심 데이터와 분석 모델/절차를 구축하고, 실전 운용 시 발생할 수 있는 오류·불확실성 및 실무 병목을 검증·보정하여 효과적인 의사결정 및 업무 효율화를 달성하는 체계를 구현한다.</p><h4>학습 목표</h4><p>전술 통신 두절 환경에서의 야전 군수 재고 관리 요구사항 분석 및 로컬 DB 스키마 설계부터 데이터 수집/전처리, 핵심 알고리즘 및 분석 모델 구현, 신뢰도 평가 엔진, 전술/업무 대시보드 및 지휘 통제 인터페이스, 인간 개입(HITL) 의사결정 워크플로우, 가상 스트레스/부하 검증 및 AAR 사후검토 피드백까지 전 과정을 아우르는 실전형 End-to-End 파이프라인을 완성한다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 등 실무 환경에서 요구되는 데이터 마이닝 기반 공급망 재난 식별 SaaS 과제를 수행하여, 실시간 데이터 수집부터 분석, 검증, 시각화 및 의사결정 지원에 이르는 전 과정을 체계적으로 학습하고 개발한다.</p><h4>필요한 상황</h4><ul><li><p><strong>전술 통신 두절 및 극한 작전 환경:</strong> 적의 전자전(EW)이나 전장 네트워크 단절 상황에서 중앙 군수 시스템과의 통신이 차단되어 실시간 재고 파악과 보급 관리가 마비되는 문제 해결 필요</p></li><li><p><strong>데이터 충돌 및 무결성 훼손 위험:</strong> 오프라인 환경에서 단말별로 기록된 데이터가 네트워크 복구 후 동기화될 때 대규모 데이터 충돌, 중복 입력, 위변조 위험 발생</p></li><li><p><strong>공급망 재난 조기 식별 체계 부재:</strong> 원자재 수급 불안정, 조달 병목, 부품 단종 등 방산 공급망의 돌발 위기 및 재난 상황을 선제적으로 예측하고 대응할 모니터링 체계 필요</p></li></ul><h4>해결방안</h4><ul><li><p><strong>로컬 경량 DB 및 P2P 데이터 교환:</strong> 오프라인 단말용 경량 SQLite 스키마를 설계하고 단말 간 P2P/USB 기반 오프라인 재고 교환 Baseline 파이프라인 구현</p></li><li><p><strong>CRDT 기반 무충돌 동기화 및 무결성 검증:</strong> 네트워크 복구 시 양방향 데이터 충돌을 자동 해결(CRDT)하고 해시 암호화로 데이터 위변조를 방지하는 검증 엔진 개발</p></li><li><p><strong>공급망 재난 식별 데이터 마이닝 모델:</strong> 다차원 공급망 및 군수 트랜잭션 데이터를 분석하여 이상 징후와 재난 위험도를 탐지하는 분석 알고리즘 구축</p></li><li><p><strong>실시간 관제 대시보드 및 HITL 워크플로우:</strong> 온·오프라인 상태와 재고 변동을 실시간 가시화하고, 동기화 충돌 시 군수관이 개입하는 수동 병합(Conflict Resolution) 승인 체계 연계</p></li><li><p><strong>스트레스 검증 및 피드백 튜닝:</strong> 장기간 통신 단절 모의 스트레스 테스트와 AAR(사후검토) 분석을 통한 동기화 규칙 최적화</p></li></ul><h4>기대효과</h4><ul><li><p><strong>작전 지속성 및 전술적 자립성 극대화:</strong> 통신 단절 상황에서도 야전 부대의 무중단 군수 재고 관리 및 신속한 보급 작전 보장</p></li><li><p><strong>데이터 무결성 및 신뢰도 100% 확보:</strong> 중앙 서버 동기화 시 데이터 유실·왜곡·충돌을 원천 차단하여 국방 자산 데이터의 신뢰성 확보</p></li><li><p><strong>공급망 회복력(Resilience) 강화:</strong> 조달/보급 병목 및 공급망 재난 발생 시 조기 경보를 통해 지휘관의 신속하고 정확한 결심 지원</p></li><li><p><strong>현장 군수 실무자 인지 부하 경감:</strong> 자동화된 충돌 해결 및 직관적인 HITL 승인 절차를 통해 야전 군수 행정 업무 효율 대폭 향상</p></li></ul><h4>활용분야</h4><ul><li><p><strong>전방 야전부대 및 격오지 부대 군수 관리:</strong> 통신망이 불안정한 최전방 부대, 도서·격오지 부대의 독립형 군수 재고 관리 및 자산 추적</p></li><li><p><strong>해군 함정 및 원거리 파병 부대 보급 관제:</strong> 장기간 위성 통신 제약 환경에서 운용되는 함정 및 파병 부대의 물자 관리 및 귀항 시 자동 동기화</p></li><li><p><strong>국방 조달 및 방산 공급망 회복력 모니터링:</strong> 군수사령부 및 방위사업청 차원의 방산 공급망 이상 징후 식별, 부품 수급 위험 분석 및 정책 연구</p></li><li><p><strong>국가 재난/재해 긴급 구호 물류 체계:</strong> 통신 인프라가 마비된 대형 재난 현장에서 구호 물자 수불 관리 및 사후 통합 결산 플랫폼으로 확장</p></li></ul><h4>학습자가 수행할 핵심 과정</h4><ul><li><p>전술 통신 두절 환경에서의 야전 군수 재고 관리 요구사항 분석 및 로컬 DB 스키마 설계</p></li><li><p>오프라인 데이터 입력 유효성 검증 및 로컬 SQLite 트랜잭션 전처리 모듈 구현</p></li><li><p>오프라인 단말 간 1차 피어투피어(P2P)/USB 재고 데이터 교환 Baseline 기능 구현</p></li><li><p>네트워크 복구 시 클라우드 중앙 서버와의 양방향 데이터 충돌 해결(CRDT) 동기화 고도화</p></li><li><p>오프라인 위변조 방지 암호화 해시 및 데이터 무결성 검증 엔진 개발</p></li><li><p>오프라인/온라인 전환 상태 및 재고 변동 내역 실시간 대시보드 UI 구현</p></li><li><p>동기화 충돌 발생 시 군수관 Line truncated
|
||||
"deliverables": [
|
||||
"data/schema/dat10_input_schema.json (필수)",
|
||||
"docs/dat10_data_spec.md (필수)",
|
||||
"src/preprocess/dat10_preprocessor.py (필수)",
|
||||
"src/models/dat10_baseline_model.py (필수)",
|
||||
"src/models/dat10_advanced_detector.py (필수)",
|
||||
"src/verification/dat10_confidence_engine.py (필수)",
|
||||
"src/ui/dat10_dashboard.py (필수)",
|
||||
"src/hitl/dat10_approval_workflow.py (필수)",
|
||||
"docs/dat10_hitl_guide.md (필수)",
|
||||
"tests/dat10_stress_test.py (필수)",
|
||||
"docs/dat10_aar_report.md (필수)",
|
||||
"configs/dat10_tuned_params.yaml (필수)",
|
||||
"src/main_dat10.py (필수)",
|
||||
"README.md (필수)",
|
||||
"docs/dat10_final_report.pdf(md) (필수)"
|
||||
],
|
||||
"constraints": "<h4>AI 분석 결과와 인간 의사결정자 판단의 구분</h4><ul><li><p>AI 모델의 단독 판단만으로 최종 결심을 내리지 않으며, 반드시 인간 개입(HITL) 승인 및 검토 절차를 거친다.</p></li><li><p>오탐 및 미탐 가능성을 고려하여 다차원 신뢰도 점수(Confidence Score)와 불확실성 지표를 함께 제공한다.</p></li></ul><h4>군사 보안 및 실전 데이터 취급 원칙</h4><ul><li><p>실제 작전 기밀 및 아군 부대/장비의 민감 정보는 사용하지 않으며, 가상 시뮬레이션 및 공개 교육용 데이터셋을 활용한다.</p></li><li><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 공개 사례를 기반으로 환경을 모의하되 비인가 장비 제원은 사용하지 않는다.</p></li></ul><h4>시스템 신뢰성 및 안전 실패(Fail-safe) 보장</h4><ul><li><p>통신 장애나 데이터 결손 등 극한 환경에서도 시스템 다운 없이 안전 실패(Fail-safe) 기준을 만족해야 한다.</p></li><li><p>오경보율(FAR) 및 데이터 왜곡을 통제하여 실무자의 인지 부하를 최소화한다.</p></li></ul>",
|
||||
"evalSummary": "<h4>공통 PASS/FAIL 판정 원칙</h4><ul><li><p><strong>수행 증거:</strong> 요구된 데이터 스키마, 전처리 파이프라인, 분석/탐지 모델, UI/문서, HITL 워크플로우, 테스트 코드가 정상 동작하는가?</p></li><li><p><strong>판단 근거:</strong> 오류 필터링 및 신뢰도/우선순위 산출 기준이 전술적/실무적/수학적 근거와 부합하는가?</p></li><li><p><strong>앞뒤 연결성:</strong> 데이터 스키마부터 전처리, 분석, UI, HITL, AAR 피드백까지 파이프라인이 유기적으로 연동되는가?</p></li><li><p><strong>완성도:</strong> 정량적 평가 지표와 정성적 평가 기준을 충족하는가?</p></li></ul><h4>프로젝트 완료 조건</h4><p>10개 필수 미션을 순차적으로 완수하여 최종 End-to-End 통합 파이프라인과 브리핑 패키지를 완성하고 회귀/통합 테스트를 통과해야 최종 PASS이다.</p>",
|
||||
"prerequisites": "Google Colab 환경 활용 기초, Python 프로그래밍 기초, 데이터 처리 및 알고리즘 구현 기본 지식, 군수업무 및 공급망 모니터링 분야에 대한 기본 이해",
|
||||
"refFiles": [],
|
||||
"refText": "",
|
||||
"projectSkills": [
|
||||
{
|
||||
"skillId": "competency_AI_문제해결역량_1._문제_분석",
|
||||
"level": 3,
|
||||
"category": "AI 문제해결역량",
|
||||
"subCategory": "1. 문제 분석"
|
||||
},
|
||||
{
|
||||
"skillId": "competency_AI_문제해결역량_2._대안_도출",
|
||||
"level": 3,
|
||||
"category": "AI 문제해결역량",
|
||||
"subCategory": "2. 대안 도출"
|
||||
},
|
||||
{
|
||||
"skillId": "competency_AI_비판적사고역량_1._결과_검증",
|
||||
"level": 3,
|
||||
"category": "AI 비판적사고역량",
|
||||
"subCategory": "1. 결과 검증"
|
||||
},
|
||||
{
|
||||
"skillId": "competency_AI활용역량_1._AI_도구_활용",
|
||||
"level": 3,
|
||||
"category": "AI활용역량",
|
||||
"subCategory": "1. AI 도구 활용"
|
||||
},
|
||||
{
|
||||
"skillId": "competency_AI활용역량_2._프롬프트_설계",
|
||||
"level": 2,
|
||||
"category": "AI활용역량",
|
||||
"subCategory": "2. 프롬프트 설계"
|
||||
}
|
||||
],
|
||||
"prerequisiteVods": [],
|
||||
"missions": [
|
||||
{
|
||||
"id": "DAT10_M01",
|
||||
"sequence": 1,
|
||||
"title": "전술 통신 두절 환경에서의 야전 군수 재고 관리 요구사항 분석 및 로컬 DB 스키마 설계",
|
||||
"durationHours": 1.5,
|
||||
"overview": "<p><strong>전술 통신 두절 환경에서의 야전 군수 재고 관리 요구사항 분석 및 로컬 DB 스키마 설계</strong></p><p>미국 방위산업기반(DIB) 정책연구 및 전술 작전 환경을 분석하여 전자전(EW)이나 네트워크 차단 상황에서도 중단 없이 운용 가능한 야전 군수 재고 관리 시스템의 입출력 데이터 규격을 정의합니다. 물자/탄약/수리부속 식별자, 수불 트랜잭션, 오프라인 상태 메타데이터를 포함하는 표준 JSON 스키마를 수립하고, 향후 P2P 교환 및 중앙 클라우드 동기화의 기준이 되는 데이터 명세서를 작성합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 전술 통신 두절 환경에서의 야전 군수 재고 관리 요구사항 분석 및 로컬 DB 스키마 설계 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>야전 군수 재고 데이터 요구사항 분석:</strong> 통신 단절 상황에서 발생하는 물자 수불, 긴급 불출, 부속 전환 등 핵심 야전 트랜잭션 데이터 항목 도출</p></li><li><p><strong>오프라인 표준 스키마 설계:</strong> 고유 트랜잭션 ID(UUID), 타임스탬프, 부대 식별자, 군수 품목 식별자, 단말 상태 등을 포함한 JSON Schema 정의</p></li><li><p><strong>로컬 DB 테이블 구조 수립:</strong> SQLite 및 로컬 캐싱에 최적화된 테이블 스키마와 인덱스 설계</p></li><li><p><strong>산출물 작성:</strong> data/schema/dat10_input_schema.json 및 docs/dat10_data_spec.md 작성</p></li><li><p><strong>검증 및 완료:</strong> JSON Schema 유효성 검증 도구 및 샘플 데이터 파싱 단위 테스트 통과</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>미국 방위산업기반(Defense Industrial Base) 정책연구 및 전술 작전 환경에서는 적의 전자전(EW)이나 산악·지하·해상 등 극한의 작전 여건으로 인해 중앙 군수 서버와의 통신이 빈번히 차단됩니다. 이러한 통신 두절 환경에서도 야전 부대의 물자·탄약·수리부속 불출과 수불 관리가 마비되지 않으려면 단말 단위의 자립적 데이터 관리가 필수적입니다. 본 미션에서는 오프라인 단말이 독립적으로 트랜잭션을 기록하면서도 향후 네트워크 복구 시 중앙 시스템 및 인접 단말과 충돌 없이 연동될 수 있도록 군수 재고 데이터 요구사항을 분석하고, 표준화된 JSON 스키마(dat10_input_schema.json)와 데이터 명세서(docs/dat10_data_spec.md)를 설계합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 초급, 복잡도: 낮음, 진행률: 10%)</p><p><strong>산출물 및 저장 위치:</strong> data/schema/dat10_input_schema.json 및 docs/dat10_data_spec.md</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"data/schema/dat10_input_schema.json",
|
||||
"docs/dat10_data_spec.md",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p data/schema docs</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile data/schema/dat10_input_schema.json</code> 및 <code>%%writefile docs/dat10_data_spec.md</code>를 선언하여 저장</p></li><li><p><strong>검증 실행:</strong> <code>!python -m jsonschema -i sample.json data/schema/dat10_input_schema.json</code></p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`data/schema/dat10_input_schema.json` 및 `docs/dat10_data_spec.md`</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: JSON Schema 검증 도구 및 샘플 데이터 파싱 단위 테스트</p></li><li><p>개선 및 피드백 방안: 누락된 전술 파라미터(기상, 위치오차, 통신지연 등) 보완</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>군수 데이터 표준 규격(MIL-STD-129 / NATO NSN):</strong> 국가재고번호(National Stock Number, 13자리) 체계, 군수 품목 식별 코드, 4대 수불 트랜잭션 유형(불출 ISSUE, 수령 RECEIPT, 반납 RETURN, 전용 TRANSFER) 명세</p></li><li><p><strong>JSON Schema Draft-07 명세 및 유효성 검증:</strong> <code>jsonschema</code> 라이브러리 활용법, 필수 필드(required), UUID v4 정규식 패턴(<code>^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$</code>), ISO-8601 일시 제약조건 정의 가이드</p></li><li><p><strong>경량 로컬 DB 물리 스키마 설계:</strong> SQLite3 재고 현황(inventory), 트랜잭션 원장(tx_log), 동기화 큐(sync_queue) 테이블 DDL 및 B-Tree 복합 인덱스(item_id, unit_id, timestamp) 설계 원칙</p></li><li><p><strong>DIB(미국 방위산업기반) 공급망 회복력 연구:</strong> 전자전(EW) 및 전술 통신 단절(Denial of Communications) 환경에서의 오프라인 자산 분산 관리 아키텍처 사례</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"JSON Schema",
|
||||
"SQLite3",
|
||||
"MIL-STD Data Spec"
|
||||
],
|
||||
"deliverables": [
|
||||
"data/schema/dat10_input_schema.json (필수)",
|
||||
"docs/dat10_data_spec.md (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 스키마 필드 정의 완성도 100%, 샘플 데이터 검증 오류 0건</strong></p><h4>PASS 증거</h4><p>정량적 지표(스키마 필드 정의 완성도 100%, 샘플 데이터 검증 오류 0건)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>누락된 전술 파라미터(기상, 위치오차, 통신지연 등) 보완을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 데이터·자동화·업무플랫폼 실무 및 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 전장 환경과의 군사적 부합성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 입력 데이터 유효성 검증 스크립트 통과 및 명세서 문서화 완료을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`data/schema/dat10_input_schema.json` 및 `docs/dat10_data_spec.md`)이 지정된 경로에 생성되고 JSON Schema 검증 도구 및 샘플 데이터 파싱 단위 테스트를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>JSON Schema 검증 도구 및 샘플 데이터 파싱 단위 테스트 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 초급 / 낮음 (진행률: 10%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 스키마 필드 정의 완성도 100%, 샘플 데이터 검증 오류 0건</p></li><li><p>정성적 기준: 데이터·자동화·업무플랫폼 실무 및 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 전장 환경과의 군사적 부합성</p></li><li><p>진행 추적 및 완료: 입력 데이터 유효성 검증 스크립트 통과 및 명세서 문서화 완료</p></li><li><p>검증 방법 통과: JSON Schema 검증 도구 및 샘플 데이터 파싱 단위 테스트</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"JSON Schema Draft-07 유효성 검증 규칙(정규식, 제약조건) 작성 보조",
|
||||
"SQLite3 테이블 DDL 및 B-Tree 인덱스 최적화 쿼리 검토",
|
||||
"야전 군수 수불 트랜잭션 유형 및 NSN 체계 매핑 가이드 요청"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"주어진 가상 시뮬레이션 데이터 규격과 Draft-07 표준을 준수한다.",
|
||||
"오프라인 환경을 고려한 로컬 DB 무결성 제약조건을 명시한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"오프라인 환경 제약을 무시한 클라우드 전용 스키마 설계",
|
||||
"검증되지 않은 임의의 데이터 필드 누락"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "전술 통신 두절 환경의 야전 군수 트랜잭션 핵심 데이터 항목 및 요구사항 분석하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>통신망이 차단된 극한 환경에서도 야전 부대의 물자·탄약·수리부속 수불 관리가 중단되지 않도록 필수 야전 군수 트랜잭션 데이터 항목과 오프라인 제약 조건을 분석합니다.</p><h4>해야 할 일</h4><ol><li><p>야전 환경에서 발생하는 긴급 불출, 수령, 반납, 부속 전용(轉用) 등 핵심 군수 트랜잭션의 입력 필드를 도출한다.</p></li><li><p>오프라인 단말 식별자, 군수 품목 식별자(NSN/부품번호), 타임스탬프, 수량, 단위, 작업자 서명 등 필수 메타데이터를 정의한다.</p></li><li><p>통신 두절 및 복구 시 데이터 일관성을 유지하기 위한 고유 식별자(UUID) 및 상태 플래그 요구사항을 정립한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>야전 군수 트랜잭션 요구사항 분석표 및 핵심 필드 정의서</p></li><li><p>오프라인 단말 상태 전이 다이어그램</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>야전 군수 핵심 트랜잭션 유형과 필수 필드가 누락 없이 체계적으로 도출되었는가?</p></li><li><p>통신 두절 환경의 특수성(오프라인 기록, UUID, 상태 플래그)이 요구사항에 충실히 반영되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>필수 군수 필드가 누락되었거나 오프라인 환경에 대한 고려가 미흡한 경우 분석 내용을 보강한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "오프라인 군수 재고 트랜잭션 표준 JSON 스키마(`data/schema/dat10_input_schema.json`) 설계하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>도출된 요구사항을 바탕으로 단말 간 P2P 교환과 중앙 클라우드 동기화의 기준이 되는 표준 JSON Schema를 정의합니다.</p><h4>해야 할 일</h4><ol><li><p>JSON Schema Draft-07 규격에 맞춰 `data/schema/dat10_input_schema.json` 파일을 작성한다.</p></li><li><p>트랜잭션 ID(UUID), 부대 코드, 품목 코드, 수량 범위, 일시 포맷(ISO-8601), 동기화 상태 등 각 필드의 유효성 검증 규칙(type, minimum, pattern, required)을 선언한다.</p></li><li><p>정상 및 비정상 샘플 데이터를 활용하여 스키마 유효성 검증 도구(jsonschema 라이브러리)로 정합성을 테스트한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `data/schema/dat10_input_schema.json` 파일</p></li><li><p>정상/비정상 샘플 데이터 대상 스키마 검증 실행 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>스키마 필드 정의 완성도 100%를 달성하고 샘플 데이터 검증에서 오류가 발생하지 않는가?</p></li><li><p>필수 필드 및 데이터 타입 제약 조건이 명확히 선언되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>스키마 문법 오류가 있거나 유효성 검증 제약 조건이 미비한 경우 스키마 정의를 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "로컬 SQLite 경량 DB 테이블 및 인덱스 구조 설계하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>단말 장비의 제한된 하드웨어 자원에서도 빠른 쓰기/조회 성능과 무결성을 보장하는 로컬 SQLite DB 물리 스키마를 설계합니다.</p><h4>해야 할 일</h4><ol><li><p>재고 테이블(inventory), 트랜잭션 로그 테이블(tx_log), 동기화 큐 테이블(sync_queue) DDL을 작성한다.</p></li><li><p>조회 빈도가 높은 품목코드, 부대코드, 생성일시, 동기화 플래그 컬럼에 적절한 인덱스를 설정한다.</p></li><li><p>트랜잭션 원자성 및 외래키 제약조건을 정의하여 로컬 데이터 무결성을 확보한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>로컬 SQLite DDL 스크립트 및 테이블 명세서</p></li><li><p>인덱스 구성 전략 및 ERD 다이어그램</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>로컬 DB 테이블 간의 관계와 제약조건이 정합성을 만족하며 인덱스가 적절히 구성되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>테이블 설계에 필수 트랜잭션 이력 컬럼이 누락되었거나 인덱스 최적화가 누락된 경우 보완한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "군수 데이터 명세서(`docs/dat10_data_spec.md`) 작성 및 단위 검증 완료하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>스키마와 로컬 DB 구조를 총괄하는 데이터 명세 문서를 완성하고 후속 모듈 개발과의 인터페이스 규격을 확정합니다.</p><h4>해야 할 일</h4><ol><li><p>입출력 데이터 규격, 필드별 설명, 제약사항, 오류 코드 정의를 포함하는 `docs/dat10_data_spec.md`를 작성한다.</p></li><li><p>오프라인 단말과 중앙 서버 간 데이터 교환 명세 및 인터페이스 프로토콜을 명문화한다.</p></li><li><p>데이터 스키마 검증 단위 테스트를 실행하여 최종 결함이 없음을 확인한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `docs/dat10_data_spec.md` 문서</p></li><li><p>단위 검증 테스트 통과 결과 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>지정된 산출물 경로에 파일이 생성되었으며 데이터 명세서가 표준 규격에 부합하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>문서 내용이 부실하거나 단위 테스트가 실패한 경우 내용을 보완하고 재검증한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M02",
|
||||
"sequence": 2,
|
||||
"title": "오프라인 데이터 입력 유효성 검증 및 로컬 SQLite 트랜잭션 전처리 모듈 구현",
|
||||
"durationHours": 2.0,
|
||||
"overview": "<p><strong>오프라인 데이터 입력 유효성 검증 및 로컬 SQLite 트랜잭션 전처리 모듈 구현</strong></p><p>통신이 차단된 야전 단말에서 발생하는 오입력, 중복 등록, 음수 재고 오류, 비표준 포맷을 실시간으로 차단하고 정제하는 로컬 전처리 엔진을 구축합니다. SQLite 트랜잭션 격리 수준을 활용하여 원자성(Atomicity)을 보장하고, 결측치 자동 보정 및 스키마 검증 파이프라인을 구현하여 오프라인 환경에서의 데이터 신뢰성을 확보합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 오프라인 데이터 입력 유효성 검증 및 로컬 SQLite 트랜잭션 전처리 모듈 구현 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>입력 유효성 검증 규칙 정의:</strong> 품목 코드 유효성, 수량 범위, 필수 필드 누락, 중복 트랜잭션 유입 차단 로직 구현</p></li><li><p><strong>로컬 SQLite 트랜잭션 처리:</strong> 오프라인 수불 내역을 안전하게 기록하고 원자성을 보장하는 로컬 DB 트랜잭션 매니저 개발</p></li><li><p><strong>데이터 정제 및 결측치 보정:</strong> 비정상 포맷 변환, 시계열 결측치 대체, 데이터 타입 정규화 파이프라인 구축</p></li><li><p><strong>산출물 작성:</strong> src/preprocess/dat10_preprocessor.py 및 전처리 전후 검증 데이터셋 생성</p></li><li><p><strong>검증 및 완료:</strong> pytest 기반 전처리 정합성 테스트 및 단위 테스트 케이스 5종 100% 통과</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>통신망이 두절된 긴박한 전장 상황에서는 야전 요원의 키보드 오입력, 비인가 군수 코드 입력, 음수 재고 발생 등 다양한 비정상 데이터가 유입될 가능성이 매우 높습니다. 로컬 단말 단계에서 이러한 불량 데이터를 즉각 차단하고 정합성을 검증하지 못하면, 향후 네트워크 복구 시 중앙 서버로 오염된 데이터가 전파되어 공급망 전체에 혼선을 야기합니다. 본 미션에서는 경량 SQLite 데이터베이스를 기반으로 트랜잭션의 원자성과 유효성을 실시간 검증하고, 결측치 보정 및 이상 데이터 필터링을 수행하는 전처리 파이프라인(dat10_preprocessor.py)을 구축합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 초급~중급, 복잡도: 보통, 진행률: 20%)</p><p><strong>산출물 및 저장 위치:</strong> src/preprocess/dat10_preprocessor.py 및 전처리 전후 데이터셋</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/preprocess/dat10_preprocessor.py",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src/preprocess tests</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile src/preprocess/dat10_preprocessor.py</code>를 선언하여 저장</p></li><li><p><strong>검증 실행:</strong> <code>!pytest tests/test_preprocessor.py -v</code></p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/preprocess/dat10_preprocessor.py` 및 전처리 전후 데이터셋</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: pytest 기반 전처리 정합성 테스트 및 결측치 보정율 확인</p></li><li><p>개선 및 피드백 방안: 전술 상황별(주간/야간/악천후) 맞춤형 노이즈 제거 임계값 동적 조정</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>SQLite 원자성 및 WAL 모드 최적화:</strong> <code>PRAGMA journal_mode=WAL;</code>, <code>PRAGMA synchronous=NORMAL;</code> 설정 및 Python <code>sqlite3</code> 컨텍스트 매니저를 통한 트랜잭션 All-or-Nothing 무결성 보장</p></li><li><p><strong>멱등성(Idempotency) 및 중복 트랜잭션 차단:</strong> 단말 메모리 LRU 캐시 및 로컬 DB 고유 인덱스(UNIQUE)를 활용한 재시도 패킷 중복 삽입 방지 패턴</p></li><li><p><strong>야전 결함 데이터 정제 알고리즘:</strong> 음수 재고 방지 제약조건(<code>qty > 0</code>, <code>current_stock - issue_qty >= 0</code>), 비표준 타임스탬프 UTC 정규화 및 결측값 안전 대체 로직</p></li><li><p><strong>pytest 단위 테스트 스위트 작성법:</strong> <code>@pytest.fixture</code>를 활용한 가상 메모리 DB 셋업, 5종 결함 데이터(결측치, 음수량, 규격 불일치, 중복 UUID, 경계값) 검증 테스트 코드 템플릿</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"SQLite3 (WAL)",
|
||||
"Data Preprocessing",
|
||||
"pytest"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/preprocess/dat10_preprocessor.py (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 데이터 정제 처리 속도 1,000건/초 이상, 전처리 오류율 0%</strong></p><h4>PASS 증거</h4><p>정량적 지표(데이터 정제 처리 속도 1,000건/초 이상, 전처리 오류율 0%)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>전술 상황별(주간/야간/악천후) 맞춤형 노이즈 제거 임계값 동적 조정을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 전술 환경 특유의 노이즈(스푸핑, 반사파, 센서 단절 등) 제거 타당성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 정제 파이프라인 자동화 및 단위 테스트 케이스 5종 통과을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/preprocess/dat10_preprocessor.py` 및 전처리 전후 데이터셋)이 지정된 경로에 생성되고 pytest 기반 전처리 정합성 테스트 및 결측치 보정율 확인를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>pytest 기반 전처리 정합성 테스트 및 결측치 보정율 확인 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 초급~중급 / 보통 (진행률: 20%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 데이터 정제 처리 속도 1,000건/초 이상, 전처리 오류율 0%</p></li><li><p>정성적 기준: 전술 환경 특유의 노이즈(스푸핑, 반사파, 센서 단절 등) 제거 타당성</p></li><li><p>진행 추적 및 완료: 정제 파이프라인 자동화 및 단위 테스트 케이스 5종 통과</p></li><li><p>검증 방법 통과: pytest 기반 전처리 정합성 테스트 및 결측치 보정율 확인</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"SQLite 컨텍스트 매니저 및 WAL 모드 롤백 처리 로직 가이드 요청",
|
||||
"음수 재고 방지 및 중복 트랜잭션 차단 알고리즘 작성 보조",
|
||||
"pytest 단위 테스트 케이스(5종 결함 주입) 픽스처 구성 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"모든 트랜잭션은 All-or-Nothing 원자성을 만족하도록 구현한다.",
|
||||
"전처리 오류율 0%와 1,000건/초 이상의 처리 성능 기준을 준수한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"예외 발생 시 롤백 없이 데이터를 강제 커밋하는 로직 구현",
|
||||
"단위 테스트 검증 없는 임의의 데이터 필터링"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "오프라인 입력 데이터 유효성 검증 규칙 및 오류 차단 로직 정의하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>야전 요원의 오입력, 비인가 군수 코드 입력, 음수 재고 발생 등 비정상 데이터를 단말 입력 단계에서 실시간 차단하는 검증 룰셋을 수립합니다.</p><h4>해야 할 일</h4><ol><li><p>품목 코드 형식 검증, 수량 양수 제약, 필수 필드 누락 검사 등 1차 검증 함수를 설계한다.</p></li><li><p>현재 보유 재고를 초과하는 과다 불출로 인한 음수 재고 발생 방지 로직을 구현한다.</p></li><li><p>동일한 트랜잭션의 중복 유입(Idempotency) 방지를 위한 UUID 캐시 검사 로직을 작성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>입력 유효성 검증 규칙 정의서 및 오류 코드 매핑표</p></li><li><p>음수 재고 및 중복 입력 차단 로직 코드</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>음수 재고, 필수값 결손, 중복 트랜잭션이 100% 차단되는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>예외 입력에 대한 필터링이 누락된 경우 검증 룰셋을 보강한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "로컬 SQLite 트랜잭션 원자성 보장 매니저 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>단말 급작스런 전원 차단이나 충돌 발생 시에도 데이터베이스가 깨지지 않고 원자성(ACID)을 유지하도록 로컬 트랜잭션 처리기를 구현합니다.</p><h4>해야 할 일</h4><ol><li><p>Python sqlite3의 트랜잭션 컨텍스트 매니저(Context Manager)를 구현한다.</p></li><li><p>재고 차감 및 트랜잭션 로그 기록을 단일 트랜잭션으로 묶어 All-or-Nothing 처리를 보장한다.</p></li><li><p>WAL(Write-Ahead Logging) 모드를 활성화하여 동시 읽기/쓰기 성능과 장애 복구력을 극대화한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>트랜잭션 매니저 클래스 코드 및 WAL 설정 스크립트</p></li><li><p>비정상 종료 모의 테스트 및 롤백 검증 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>트랜잭션 처리 중 오류 발생 시 롤백이 완벽히 수행되며 WAL 모드가 정상 동작하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>원자성이 깨지거나 롤백 처리에 결함이 있는 경우 트랜잭션 래퍼 코드를 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "결측치 보정 및 포맷 정규화 전처리 모듈(`src/preprocess/dat10_preprocessor.py`) 구축하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>수집된 군수 트랜잭션 데이터의 결측치를 전술 규칙에 따라 안전하게 보정하고 데이터 타입을 정규화하는 파이프라인을 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/preprocess/dat10_preprocessor.py`에 DataPreprocessor 클래스를 구현한다.</p></li><li><p>비표준 일시 포맷 변환, 텍스트 트림, 단위(EA, BOX, SET 등) 표준화 기능을 구현한다.</p></li><li><p>시계열 결측치 대체 및 전술 환경 특유의 노이즈 필터링 로직을 추가한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/preprocess/dat10_preprocessor.py` 소스 코드</p></li><li><p>전처리 전후 데이터셋 비교 샘플 파일</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>데이터 정제 처리 속도가 1,000건/초 이상이며 전처리 오류율 0%를 달성하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>처리 속도가 기준에 미달하거나 데이터 정규화에 오류가 있는 경우 최적화한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "pytest 기반 전처리 정합성 단위 테스트 케이스 5종 검증하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>다양한 결함 데이터 주입 시나리오를 바탕으로 전처리 모듈의 내구성과 정합성을 단위 테스트로 입증합니다.</p><h4>해야 할 일</h4><ol><li><p>정상 데이터, 결측치 포함 데이터, 음수 재고 데이터, 중복 트랜잭션, 잘못된 포맷 등 5종의 테스트 케이스를 작성한다.</p></li><li><p>pytest 명령어로 테스트 스위트를 실행하고 100% 통과 여부를 검증한다.</p></li><li><p>테스트 커버리지 및 성능 벤치마크 결과를 정리한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>단위 테스트 코드(`tests/test_preprocessor.py`)</p></li><li><p>pytest 실행 결과 출력 로그 및 커버리지 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>5종 이상의 단위 테스트 케이스가 100% 성공하며 예외 처리가 완벽히 검증되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>단위 테스트 실패 항목이 발생한 경우 전처리 로직을 디버깅하고 재수행한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M03",
|
||||
"sequence": 3,
|
||||
"title": "오프라인 단말 간 1차 피어투피어(P2P)/USB 재고 데이터 교환 Baseline 기능 구현",
|
||||
"durationHours": 2.5,
|
||||
"overview": "<p><strong>오프라인 단말 간 1차 피어투피어(P2P)/USB 재고 데이터 교환 Baseline 기능 구현</strong></p><p>중앙 서버 연결이 불가능한 격오지 및 기동 부대 간 전술 와이파이, 블루투스 P2P, 전술 보안 USB 매체를 통해 상호 재고 상태를 교환하는 베이스라인 동기화 모듈을 개발합니다. 단말 간 버전 벡터(Version Vector)와 델타(Delta) 패킷 전송 방식을 적용하여 최소 전송 대역폭으로도 인접 부대 간 잉여 물자 현황을 신속히 공유할 수 있는 프로토콜을 구현합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 오프라인 단말 간 1차 피어투피어(P2P)/USB 재고 데이터 교환 Baseline 기능 구현 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>P2P/오프라인 전송 프로토콜 설계:</strong> 단말 간 변경분(Delta) 추출, 패킷 직렬화(JSON/Binary), 전송 무결성 체크섬 생성</p></li><li><p><strong>오프라인 매체 교환 모듈 구현:</strong> 보안 USB 내보내기/가져오기 및 로컬 ad-hoc 네트워크 기반 P2P 수신 처리기 개발</p></li><li><p><strong>베이스라인 동기화 알고리즘 구현:</strong> 버전 벡터 기반의 변경 이력 추적 및 1차 단순 병합(Baseline Merge) 로직 구현</p></li><li><p><strong>산출물 작성:</strong> src/models/dat10_baseline_model.py 및 기본 추론/교환 결과 보고서 작성</p></li><li><p><strong>검증 및 완료:</strong> 기준 벤치마크 데이터셋 대상 동기화 정확도 75% 이상 달성 및 실행 로그 검증 완료</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>중앙 통신망이 단절된 격오지 기지나 분산 작전 중인 기동 부대 간에는 상호 보유 중인 수리부속과 전투 물자 현황을 공유해야만 긴급 전용(轉用)이나 상호 보급 지원이 가능합니다. 중앙 클라우드가 부재한 상태에서 근거리 ad-hoc 무선망이나 암호화된 전술 USB 매체를 통해 단말 간 직접 데이터를 안전하게 교환하는 기제가 필요합니다. 본 미션에서는 단말 간 변경 이력(Delta)을 패키징하고 상호 수신하여 로컬 재고를 갱신하는 1차 P2P/USB 교환 베이스라인 엔진(dat10_baseline_model.py)을 구축하고 전송 정확도를 검증합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 중급, 복잡도: 보통, 진행률: 30%)</p><p><strong>산출물 및 저장 위치:</strong> src/models/dat10_baseline_model.py 및 기본 추론 결과 보고서</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/models/dat10_baseline_model.py",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src/models tests</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile src/models/dat10_baseline_model.py</code>를 선언하여 저장</p></li><li><p><strong>검증 실행:</strong> <code>!python src/models/dat10_baseline_model.py</code> 및 벤치마크 오차율 검증</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/models/dat10_baseline_model.py` 및 기본 추론 결과 보고서</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 기준 벤치마크 데이터셋 대상 추론 결과 오차율 비교</p></li><li><p>개선 및 피드백 방안: 판단 지연시간 최적화 및 휴리스틱 가중치 1차 튜닝</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>버전 벡터(Version Vector) 분산 변경 추적:</strong> 단말별 논리 시계(Logical Clock)를 통해 분산 노드 간 트랜잭션의 선후 인과관계(Causality) 및 동시성(Concurrency) 식별 알고리즘</p></li><li><p><strong>Delta(증분) 패킷 직렬화 및 경량 전송:</strong> 마지막 동기화 시점 이후의 차분 데이터만 JSON/MessagePack으로 직렬화하고 gzip 압축하여 무선 대역폭 사용량 최소화 기법</p></li><li><p><strong>에어갭(Air-Gapped) 보안 USB 및 P2P 교환 프로토콜:</strong> 전술 보안 매체 파일 익스포트/임포트 구조, SHA-256 체크섬을 통한 데이터 전송 무결성 검증 절차</p></li><li><p><strong>휴리스틱 베이스라인 병합 규칙:</strong> 단순 타임스탬프 최신 우선(Last-Write-Wins)과 부대 제대별 지휘 우선순위 가중치를 결합한 1차 분산 재고 수렴 로직</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"P2P Data Sync",
|
||||
"Version Vector",
|
||||
"Benchmarking"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/models/dat10_baseline_model.py (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 기본 데이터셋 대상 탐지/처리 정확도 75% 이상 달성</strong></p><h4>PASS 증거</h4><p>정량적 지표(기본 데이터셋 대상 탐지/처리 정확도 75% 이상 달성)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>판단 지연시간 최적화 및 휴리스틱 가중치 1차 튜닝을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 알고리즘의 논리적 흐름 및 군사적 판단 기준의 투명성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 단위 기능 동작 확인 및 기본 시나리오 실행 로그 생성을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/models/dat10_baseline_model.py` 및 기본 추론 결과 보고서)이 지정된 경로에 생성되고 기준 벤치마크 데이터셋 대상 추론 결과 오차율 비교를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>기준 벤치마크 데이터셋 대상 추론 결과 오차율 비교 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 중급 / 보통 (진행률: 30%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 기본 데이터셋 대상 탐지/처리 정확도 75% 이상 달성</p></li><li><p>정성적 기준: 알고리즘의 논리적 흐름 및 군사적 판단 기준의 투명성</p></li><li><p>진행 추적 및 완료: 단위 기능 동작 확인 및 기본 시나리오 실행 로그 생성</p></li><li><p>검증 방법 통과: 기준 벤치마크 데이터셋 대상 추론 결과 오차율 비교</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"버전 벡터 기반의 분산 변경 이력(Causality) 추적 알고리즘 설계 보조",
|
||||
"Delta 패킷 직렬화 및 SHA-256 체크섬 무결성 검증 코드 가이드",
|
||||
"에어갭(Air-Gapped) 보안 매체 교환 프로토콜 구현 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"저대역폭 전술 통신 환경을 고려하여 전송 패킷 크기를 최소화한다.",
|
||||
"기준 벤치마크 데이터셋 대상 동기화 정확도 75% 이상을 달성한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"체크섬 검증 없는 신뢰할 수 없는 패킷 자동 병합",
|
||||
"중앙 서버 연결을 전제로 한 동기화 로직 구현"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "단말 간 변경분(Delta) 추출 및 패킷 직렬화 프로토콜 설계하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>제한된 전술 대역폭 및 오프라인 매체 환경에서 최소한의 데이터만 신속히 교환할 수 있도록 변경분(Delta) 추출 프로토콜을 수립합니다.</p><h4>해야 할 일</h4><ol><li><p>마지막 동기화 시점 이후 변경된 트랜잭션만 추출하는 Delta 쿼리 로직을 설계한다.</p></li><li><p>경량 JSON 및 바이너리 직렬화 형식을 정의하고 패킷 헤더(발신단말, 수신단말, 시퀀스, 타임스탬프)를 구성한다.</p></li><li><p>전송 중 데이터 훼손을 감지하기 위한 CRC32 또는 SHA-256 체크섬 생성 알고리즘을 연동한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>Delta 패킷 구조 명세서</p></li><li><p>패킷 직렬화/역직렬화 및 체크섬 검증 모듈 코드</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>Delta 패킷 구조가 효율적이며 체크섬을 통한 전송 무결성 검증이 정상 동작하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>패킷 크기가 비대하거나 직렬화 오류가 발생하는 경우 프로토콜을 보완한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "보안 USB 내보내기/가져오기 및 Ad-hoc P2P 수신 처리기 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>통신망 부재 시 전술 보안 USB 및 근거리 P2P ad-hoc 망을 통해 인접 부대와 데이터를 교환하는 매체 핸들러를 개발합니다.</p><h4>해야 할 일</h4><ol><li><p>로컬 DB의 미동기화 트랜잭션을 암호화된 번들 파일로 USB에 내보내는(Export) 기능을 구현한다.</p></li><li><p>인접 단말에서 생성된 번들 파일을 로컬 DB로 가져오는(Import) 검증 처리기를 작성한다.</p></li><li><p>소켓 기반의 로컬 P2P 리스너를 구성하여 근거리 ad-hoc 연결 시 자동 수신하는 기능을 추가한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>오프라인 매체 입출력 핸들러 코드</p></li><li><p>P2P 패킷 교환 시뮬레이션 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>USB 내보내기/가져오기 및 P2P 수신 시 데이터 유실 없이 정상 파일이 전달되는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>파일 입출력 예외나 소켓 통신 오류가 발생할 경우 핸들러 코드를 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "버전 벡터 기반 베이스라인 단순 병합 모델(`src/models/dat10_baseline_model.py`) 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>단말 간 교환된 수불 데이터를 버전 벡터(Version Vector)와 타임스탬프를 기준으로 1차 단순 병합(Baseline Merge)하는 엔진을 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/models/dat10_baseline_model.py`에 BaselineMergeModel 클래스를 구현한다.</p></li><li><p>단말별 버전 벡터를 비교하여 인과 관계(Causality)를 판별하고 신규 트랜잭션을 로컬 재고에 반영한다.</p></li><li><p>동일 품목에 대한 단순 불일치 시 최종 작성자 승리(LWW) 규칙을 1차 적용하는 기본 병합 로직을 완성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/models/dat10_baseline_model.py` 소스 코드</p></li><li><p>버전 벡터 비교 및 병합 알고리즘 설명서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>기본 벤치마크 데이터셋 대상 동기화/처리 정확도 75% 이상을 달성하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>정확도가 75% 미만이거나 인과 관계 판별 오류가 발생하는 경우 병합 로직을 튜닝한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "단말 간 P2P 동기화 시나리오 벤치마크 테스트 및 결과 보고서 작성하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>가상의 3개 야전 단말 간 P2P 교환 시나리오를 시뮬레이션하고 베이스라인 엔진의 성능 및 처리 로그를 검증합니다.</p><h4>해야 할 일</h4><ol><li><p>3개 단말에서 독립적으로 발생한 100건의 수불 데이터를 P2P로 상호 교환하는 테스트 스크립트를 실행한다.</p></li><li><p>교환 전후 재고 일치율, 처리 지연 시간, 충돌 발생 건수를 측정한다.</p></li><li><p>기본 추론 결과 및 한계점(동시 충돌 미해결 등)을 정리한 베이스라인 결과 보고서를 작성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>P2P 동기화 시뮬레이션 실행 결과 로그</p></li><li><p>기본 추론 결과 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>기본 시나리오 실행 로그가 정상 생성되고 벤치마크 목표를 달성하였는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>시뮬레이션 중 예외가 발생하거나 보고서가 미비한 경우 보완한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M04",
|
||||
"sequence": 4,
|
||||
"title": "네트워크 복구 시 클라우드 중앙 서버와의 양방향 데이터 충돌 해결(CRDT) 동기화 고도화",
|
||||
"durationHours": 3.0,
|
||||
"overview": "<p><strong>네트워크 복구 시 클라우드 중앙 서버와의 양방향 데이터 충돌 해결(CRDT) 동기화 고도화</strong></p><p>통신망 복구 시 수많은 분산 단말에서 동시에 쏟아지는 대규모 수불 트랜잭션 간의 동시성 충돌을 수학적으로 무충돌 해결하는 CRDT(State-based / Operation-based) 동기화 엔진을 구축합니다. 나아가 다차원 군수 트랜잭션 시계열 데이터를 분석하여 비정상 급증 소모나 조달 병목 등 공급망 재난 이상 징후를 실시간 탐지하는 고도화 탐지기를 구현합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 네트워크 복구 시 클라우드 중앙 서버와의 양방향 데이터 충돌 해결(CRDT) 동기화 고도화 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>CRDT 무충돌 병합 알고리즘 구현:</strong> PN-Counter, LWW-Element-Set 및 논리적 타임스탬프(Lamport/Vector Clock) 기반 양방향 자동 병합 엔진 개발</p></li><li><p><strong>공급망 이상치 및 충돌 패턴 마이닝:</strong> 다차원 트랜잭션 통계 분석을 통한 재고 급감, 중복 청구, 위협적 불일치 이상 패턴 탐지</p></li><li><p><strong>고급 탐지 파이프라인 통합:</strong> 실시간 병합 처리 속도 최적화 및 복합 위협 탐지 알고리즘 연동</p></li><li><p><strong>산출물 작성:</strong> src/models/dat10_advanced_detector.py 및 예외 탐지 테스트 결과 보고서</p></li><li><p><strong>검증 및 완료:</strong> 복합 위협 시나리오 10종 대상 이상치 탐지 재현율 85% 이상 및 지연시간 200ms 이하 달성</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>장기간의 통신 두절 후 광역 전술망이 복구되면, 각 야전 부대 단말에서 독립적으로 기록되었던 수천 건의 재고 변경 트랜잭션이 중앙 서버로 일시에 쏟아져 들어오며 심각한 동시성 충돌(Concurrent Edit Conflict)이 발생합니다. 단순한 덮어쓰기(LWW)는 실제 현장의 소모·불출 내역을 유실시켜 전장 군수 판단에 치명적인 오류를 초래합니다. 본 미션에서는 CRDT(Conflict-free Replicated Data Types) 무충돌 동기화 알고리즘을 도입하여 중앙과 단말 간 양방향 데이터 일관성을 보장하고, 데이터 마이닝 기법으로 공급망 재난 이상 징후를 정밀 탐지하는 고급 엔진(dat10_advanced_detector.py)을 구축합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 중급, 복잡도: 높음, 진행률: 40%)</p><p><strong>산출물 및 저장 위치:</strong> src/models/dat10_advanced_detector.py 및 예외 탐지 테스트 결과</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/models/dat10_advanced_detector.py",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src/models tests</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile src/models/dat10_advanced_detector.py</code>를 선언하여 저장</p></li><li><p><strong>검증 실행:</strong> <code>!pytest tests/test_detector.py -v</code> (10종 위협 시나리오 탐지 재현율 검증)</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/models/dat10_advanced_detector.py` 및 심화 탐지 테스트 보고서</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 합성 동기화 데이터셋 대상 다중 이상치 탐지 정확도 검증</p></li><li><p>개선 및 피드백 방안: 오경보(False Alarm) 억제를 위한 앙상블 가중치 및 특징 공간(Feature Space) 재설계</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>무충돌 복제 데이터 타입(CRDT, Conflict-free Replicated Data Types):</strong> State-based CRDT(CvRDT)의 Semi-lattice 수학적 특성 및 PN-Counter(Positive-Negative Counter)를 이용한 분산 재고 증감 무충돌 병합 원리</p></li><li><p><strong>LWW-Element-Set 및 Vector Clock 동기화:</strong> 분산 단말 간 충돌 발생 시 Lamport Timestamp와 타이브레이커(Tie-breaker)를 결합한 자동 충돌 해소 메커니즘</p></li><li><p><strong>공급망 이상 징후 머신러닝 탐지:</strong> Scikit-learn의 Isolation Forest 및 LOF(Local Outlier Factor)를 이용한 비정상 대량 불출 및 돌발 재고 급감 패턴 다차원 이상치 탐지 파이프라인</p></li><li><p><strong>대규모 분산 트랜잭션 일괄 처리:</strong> 제너레이터(Generator) 기반 배치 청크(Batch Chunk) 분할 처리 및 중앙 클라우드 DB 병합 최적화 패턴</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"CRDT Algorithms",
|
||||
"Anomaly Detection",
|
||||
"Threat Simulation"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/models/dat10_advanced_detector.py (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 복합 위협 탐지 재현율(Recall) 85% 이상, 처리 지연 200ms 이하</strong></p><h4>PASS 증거</h4><p>정량적 지표(복합 위협 탐지 재현율(Recall) 85% 이상, 처리 지연 200ms 이하)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>오경보(False Alarm) 유발 패턴 식별 및 특징 공간(Feature Space) 재설계을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 기만/교란 공격에 대한 방어 로직의 현실성 및 신뢰성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 복합 위협 시나리오 10종에 대한 탐지 테스트 통과을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/models/dat10_advanced_detector.py` 및 예외 탐지 테스트 결과)이 지정된 경로에 생성되고 합성 위협 데이터셋 주입 시 이상치 탐지 정확도 검증를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>합성 위협 데이터셋 주입 시 이상치 탐지 정확도 검증 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 중급 / 높음 (진행률: 40%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 복합 위협 탐지 재현율(Recall) 85% 이상, 처리 지연 200ms 이하</p></li><li><p>정성적 기준: 기만/교란 공격에 대한 방어 로직의 현실성 및 신뢰성</p></li><li><p>진행 추적 및 완료: 복합 위협 시나리오 10종에 대한 탐지 테스트 통과</p></li><li><p>검증 방법 통과: 합성 위협 데이터셋 주입 시 이상치 탐지 정확도 검증</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"State-based CRDT(CvRDT) 및 PN-Counter 무충돌 합의 수학적 모델 검토",
|
||||
"Isolation Forest / LOF 기반 공급망 이상 징후 탐지 파이프라인 가이드",
|
||||
"대규모 트랜잭션 배치 청킹(Batch Chunking) 최적화 코드 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"CRDT 충돌 해결 시 데이터 손실 없는 수학적 수렴성을 보장한다.",
|
||||
"이상치 탐지 시 오경보율(False Alarm)을 통제하도록 가중치를 튜닝한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"충돌 발생 시 최신 데이터 무조건 덮어쓰기로 인한 데이터 유실",
|
||||
"검증되지 않은 머신러닝 모델의 단독 결심 처리"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "CRDT(Conflict-free Replicated Data Types) 무충돌 데이터 구조 설계하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>네트워크 복구 시 중앙 서버와 다수 분산 단말 간 동시 발생한 재고 수불 트랜잭션을 수학적으로 무충돌 병합할 수 있는 CRDT 구조를 설계합니다.</p><h4>해야 할 일</h4><ol><li><p>재고 증가(입고)와 감소(불출)를 분리 관리하는 PN-Counter(Positive-Negative Counter) 모델을 설계한다.</p></li><li><p>품목별 속성 변경에 대해 논리적 타임스탬프 기반 LWW-Element-Set(Last-Write-Wins Element Set) 구조를 수립한다.</p></li><li><p>단말별 Lamport Clock 및 Vector Clock 동기화 프로토콜을 정의한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>CRDT 재고 모델 수학적 명세서</p></li><li><p>PN-Counter 및 LWW-Element-Set 데이터 구조 정의 코드</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>CRDT 수학적 구조가 가환성(Commutative), 결합성(Associative), 멱등성(Idempotent)을 만족하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>동시성 충돌 해결 논리에 모순이 있거나 구조가 불완전한 경우 설계를 보강한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "양방향 자동 병합 엔진 및 충돌 패턴 마이닝 모듈 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>중앙 서버와 오프라인 단말 간 트랜잭션을 실시간 양방향 병합하고, 공급망 재난으로 이어질 수 있는 이상 충돌 패턴을 마이닝합니다.</p><h4>해야 할 일</h4><ol><li><p>다중 단말에서 동시에 전달된 트랜잭션들을 순서 무관하게 안전 병합하는 Merge Engine을 구현한다.</p></li><li><p>단시간 내 특정 품목 재고 급감, 다수 부대의 동일 부속 중복 청구 등 공급망 병목 징후를 탐지하는 통계 마이닝 알고리즘을 작성한다.</p></li><li><p>병합 처리 파이프라인의 메모리 및 처리 속도를 최적화한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>양방향 CRDT 병합 엔진 코드</p></li><li><p>공급망 충돌 패턴 마이닝 알고리즘 명세</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>동시성 병합이 데이터 유실 없이 완료되며 이상 패턴이 정상 분류되는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>병합 시 수량 오차가 발생하거나 마이닝 로직에 오류가 있는 경우 코드를 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "고급 공급망 이상 탐지기(`src/models/dat10_advanced_detector.py`) 완성하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>CRDT 병합 결과와 시계열 트랜잭션을 결합하여 전장 공급망 재난 및 위협 징후를 실시간 감지하는 고도화 탐지기를 구현합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/models/dat10_advanced_detector.py`에 AdvancedSupplyChainDetector 클래스를 완성한다.</p></li><li><p>Z-score, 이동평균 기반 소비 급증 탐지 및 가용 재고 소진 위험일(Days of Supply) 예측 모델을 통합한다.</p></li><li><p>탐지 결과를 위협 수준(Critical, Warning, Normal)으로 라벨링하여 출력하는 파이프라인을 구축한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/models/dat10_advanced_detector.py` 소스 코드</p></li><li><p>공급망 위협 탐지 알고리즘 흐름도</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>위협 탐지 처리 지연이 200ms 이하이며 복합 위협 분류가 정상 작동하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>처리 지연이 200ms를 초과하거나 탐지 모델에 결함이 있는 경우 최적화한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "복합 위협 시나리오 10종 대상 이상치 탐지 성능(Recall 85% 이상) 검증하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>가상으로 주입된 10종의 복합 공급망 위협 시나리오(급작스런 조달 단절, 적 전자전 공격 모의, 대규모 허위 청구 등)를 대상으로 탐지 성능을 검증합니다.</p><h4>해야 할 일</h4><ol><li><p>합성 위협 데이터셋 10종을 생성하여 고급 탐지기 입력으로 주입한다.</p></li><li><p>재현율(Recall), 정밀도(Precision), F1-Score를 측정하고 오경보 발생 사례를 분석한다.</p></li><li><p>예외 탐지 테스트 결과 보고서를 작성하고 성능 기준 충족 여부를 확인한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>10종 위협 시나리오 검증 결과표</p></li><li><p>예외 탐지 테스트 결과 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>복합 위협 탐지 재현율(Recall) 85% 이상, 처리 지연 200ms 이하를 달성하였는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>재현율이 85% 미만인 경우 특징 공간(Feature Space)을 재설계하고 모델 파라미터를 보정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M05",
|
||||
"sequence": 5,
|
||||
"title": "오프라인 위변조 방지 암호화 해시 및 데이터 무결성 검증 엔진 개발",
|
||||
"durationHours": 3.0,
|
||||
"overview": "<p><strong>오프라인 위변조 방지 암호화 해시 및 데이터 무결성 검증 엔진 개발</strong></p><p>오프라인 단말이 적에게 노출되거나 악의적 내부자에 의해 재고 수량이 임의 조작되는 보안 위협을 방지하기 위해 SHA-256 해시 체인 및 머클 트리(Merkle Tree) 기반의 트랜잭션 무결성 검증 엔진을 개발합니다. 동기화 데이터의 위변조 여부를 100% 감별하고 오탐을 정밀 필터링하여 3단계(High/Med/Low) 신뢰도 지표를 산출하는 검증 모듈을 완성합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 오프라인 위변조 방지 암호화 해시 및 데이터 무결성 검증 엔진 개발 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>암호화 해시 체인 및 무결성 구조 설계:</strong> 트랜잭션별 이전 블록 해시 연쇄 및 머클 루트 검증 알고리즘 구현</p></li><li><p><strong>위변조 및 이상 트랜잭션 탐지:</strong> 해시 불일치, 서명 변조, 비인가 시간대 역전 등 데이터 무결성 침해 탐지 로직 개발</p></li><li><p><strong>다차원 신뢰도 평가 엔진 구축:</strong> 데이터 완전성, 출처 신뢰성, 시계열 연속성을 종합한 신뢰도 점수(Confidence Score) 산출</p></li><li><p><strong>산출물 작성:</strong> src/verification/dat10_confidence_engine.py 작성</p></li><li><p><strong>검증 및 완료:</strong> ROC-AUC 분석, 임계값 민감도 테스트 및 오경보율(FAR) 40% 이상 감축 검증</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>통신이 차단된 상태의 야전 단말은 적의 물리적 노획, 사이버 침투 및 악성코드 주입, 혹은 비인가자에 의한 허위 수불 기록 조작 위험에 상시 노출되어 있습니다. 네트워크가 연결되지 않은 상태에서 작성된 트랜잭션이라도 사후 중앙 서버에서 그 무결성을 수학적으로 입증할 수 있어야 국방 군수 데이터의 신뢰를 담보할 수 있습니다. 본 미션에서는 SHA-256 해시 체인 기반의 위변조 방지 알고리즘을 적용하고, 데이터의 정합성과 신뢰 수준을 3단계로 정밀 평가하는 무결성 검증 엔진(dat10_confidence_engine.py)을 개발합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 중급~고급, 복잡도: 높음, 진행률: 50%)</p><p><strong>산출물 및 저장 위치:</strong> src/verification/dat10_confidence_engine.py</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/verification/dat10_confidence_engine.py",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src/verification tests</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile src/verification/dat10_confidence_engine.py</code>를 선언하여 저장</p></li><li><p><strong>검증 실행:</strong> <code>!python src/verification/dat10_confidence_engine.py</code> (ROC-AUC 및 FAR 지표 산출)</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/verification/dat10_confidence_engine.py`</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: ROC-AUC 곡선 분석 및 임계값 민감도 테스트</p></li><li><p>개선 및 피드백 방안: 신뢰도 수치 매트릭스 보완 및 불확실성 지표 시각화 연계</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>암호학적 해시 체인(Hash Chain) 및 머클 트리(Merkle Tree):</strong> SHA-256을 활용한 로컬 트랜잭션 연속 연결 구조(<code>hash_n = SHA256(hash_{n-1} + payload_n)</code>)를 통해 과거 데이터 위변조 및 누락 검증</p></li><li><p><strong>HMAC-SHA256 디지털 서명 및 단말 인증:</strong> 사전 공유 키(Pre-Shared Key) 기반 단말 인증 및 메시지 무결성 코드(MAC) 검증 파이프라인 구현 기법</p></li><li><p><strong>다차원 신뢰도 점수(Confidence Score) 산출 공식:</strong> 데이터 무결성($c_1$), 타임스탬프 신뢰성($c_2$), 재고 논리 정합성($c_3$), 통신 경로 품질($c_4$) 가중합 공식($S = \\sum w_i c_i, \\sum w_i = 1.0$) 및 불확실성 지수 산출</p></li><li><p><strong>ROC-AUC 및 혼동 행렬(Confusion Matrix) 평가:</strong> Scikit-learn의 <code>roc_curve</code>, <code>roc_auc_score</code>를 활용한 위변조/오염 데이터 탐지 모델의 정밀도, 재현율, 최적 결정 임계값 산출</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"Cryptography (SHA-256)",
|
||||
"Data Integrity",
|
||||
"Confidence Engine"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/verification/dat10_confidence_engine.py (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 오경보율(FAR) 40% 이상 감축, 신뢰도 스코어 산출 일관성 90% 이상</strong></p><h4>PASS 증거</h4><p>정량적 지표(오경보율(FAR) 40% 이상 감축, 신뢰도 스코어 산출 일관성 90% 이상)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>신뢰도 가중치 매트릭스 재조정 및 불확실성 지표 시각화 지원을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 신뢰도 등급(High/Med/Low) 부여 기준의 군사적 타당성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 오경보 필터링 전후 비교 지표 산출 및 통합 테스트 완료을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/verification/dat10_confidence_engine.py`)이 지정된 경로에 생성되고 ROC-AUC 곡선 분석 및 임계값 민감도 테스트를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>ROC-AUC 곡선 분석 및 임계값 민감도 테스트 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 중급~고급 / 높음 (진행률: 50%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 오경보율(FAR) 40% 이상 감축, 신뢰도 스코어 산출 일관성 90% 이상</p></li><li><p>정성적 기준: 신뢰도 등급(High/Med/Low) 부여 기준의 군사적 타당성</p></li><li><p>진행 추적 및 완료: 오경보 필터링 전후 비교 지표 산출 및 통합 테스트 완료</p></li><li><p>검증 방법 통과: ROC-AUC 곡선 분석 및 임계값 민감도 테스트</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"SHA-256 기반 트랜잭션 해시 체인 및 머클 트리 검증 알고리즘 가이드",
|
||||
"HMAC-SHA256 서명 검증 및 단말 인증 파이프라인 작성 보조",
|
||||
"다차원 가중합 신뢰도 점수 산출 수식 및 ROC-AUC 분석 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"암호학적 해시 검증 실패 시 즉각 격리 및 경보 플래그를 발생시킨다.",
|
||||
"신뢰도 점수 산출 기준과 가중치의 수학적 타당성을 확보한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"취약한 암호 알고리즘(MD5, SHA-1 등) 사용",
|
||||
"무결성 위변조 징후를 묵과하고 정상 처리하는 로직"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "SHA-256 해시 체인 및 머클 트리(Merkle Tree) 무결성 아키텍처 설계하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>통신 단절 중 오프라인 단말에 기록된 트랜잭션이 물리적 노획이나 비인가자에 의해 위변조되지 않도록 암호학적 무결성 체계를 수립합니다.</p><h4>해야 할 일</h4><ol><li><p>각 트랜잭션이 직전 트랜잭션의 해시를 참조하는 SHA-256 해시 체인 데이터 구조를 설계한다.</p></li><li><p>단말별 일일 트랜잭션 묶음의 머클 루트(Merkle Root)를 생성하고 검증하는 알고리즘을 정의한다.</p></li><li><p>전자서명(Digital Signature)을 이용한 단말 및 작성자 신원 인증 방식을 수립한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>해시 체인 및 머클 트리 구조 설계서</p></li><li><p>무결성 검증 아키텍처 다이어그램</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>해시 연쇄 구조와 머클 루트 계산 방식이 암호학적 무결성 표준을 충족하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>해시 계산 방식에 빈틈이 있거나 연쇄 구조가 불완전한 경우 설계를 보강한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "트랜잭션 위변조 및 데이터 조작 탐지 로직 개발하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>임의의 수량 조작, 타임스탬프 역전, 과거 내역 삭제 등 데이터 무결성 훼손 시도를 실시간 식별하는 탐지기를 개발합니다.</p><h4>해야 할 일</h4><ol><li><p>트랜잭션 수신 시 해시 체인 연속성과 머클 증명(Merkle Proof)을 대조하는 검증 함수를 구현한다.</p></li><li><p>단말 시간 왜곡(Time Spoofing) 및 비인가 트랜잭션 삽입 시도를 차단하는 규칙을 작성한다.</p></li><li><p>훼손된 트랜잭션을 즉시 격리(Quarantine) 처리하고 보안 알람을 발생시키는 핸들러를 연동한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>무결성 검증 및 위변조 탐지 함수 소스 코드</p></li><li><p>가상 조작 데이터 주입 시 탐지 성공 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>인위적으로 변조된 트랜잭션(수량 변경, 해시 불일치 등)을 100% 탐지하고 격리하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>변조 데이터가 검증을 통과하는 미탐이 발생할 경우 검증 로직을 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "다차원 신뢰도 평가 엔진(`src/verification/dat10_confidence_engine.py`) 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>데이터 완전성, 출처 신뢰성, 시계열 연속성을 종합 평가하여 3단계(High/Med/Low) 신뢰도 등급과 수치 점수를 산출하는 엔진을 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/verification/dat10_confidence_engine.py`에 ConfidenceEngine 클래스를 작성한다.</p></li><li><p>해시 무결성(40%), 단말 신원 인증(30%), 트랜잭션 패턴 일관성(30%)의 가중치 기반 신뢰도 점수(0~100점) 산출 공식을 구현한다.</p></li><li><p>점수 구간별 3단계 신뢰도 등급(High: 85점 이상, Med: 60~84점, Low: 60점 미만) 매핑 로직을 작성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/verification/dat10_confidence_engine.py` 소스 코드</p></li><li><p>신뢰도 점수 산출 수식 및 등급 판정 기준표</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>신뢰도 점수 산출 일관성이 90% 이상이며 3단계 등급이 군사적 타당성을 갖추었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>점수 산출 편차가 심하거나 등급 구분이 모호한 경우 가중치 매트릭스를 재조정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "ROC-AUC 곡선 분석, 오경보율(FAR) 40% 감축 및 통합 검증 완료하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>정상 데이터와 위변조/오류 데이터를 혼합한 검증 데이터셋을 통해 신뢰도 엔진의 변별력과 오경보 억제 성능을 최종 검증합니다.</p><h4>해야 할 일</h4><ol><li><p>검증 데이터셋 대상 ROC-AUC 곡선 및 최적 임계값(Threshold) 민감도 분석을 수행한다.</p></li><li><p>오경보 필터링 전후의 오경보율(FAR)을 비교하여 40% 이상 감축되었음을 입증한다.</p></li><li><p>단위 및 통합 테스트를 실행하여 검증 엔진의 전체 기능 통과를 확인한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>ROC-AUC 곡선 그래프 및 임계값 민감도 분석표</p></li><li><p>오경보율 감축 성과 비교 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>오경보율(FAR) 40% 이상 감축 및 통합 테스트 전체 항목 통과를 달성하였는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>FAR 감축률이 미달하거나 임계값 설정에 결함이 있는 경우 필터링 파라미터를 보정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M06",
|
||||
"sequence": 6,
|
||||
"title": "오프라인/온라인 전환 상태 및 재고 변동 내역 실시간 대시보드 UI 구현",
|
||||
"durationHours": 2.5,
|
||||
"overview": "<p><strong>오프라인/온라인 전환 상태 및 재고 변동 내역 실시간 대시보드 UI 구현</strong></p><p>통신 상태 변화(온라인/오프라인/동기화 중), 단말 간 P2P 연결 현황, 수리부속 및 핵심 물자 재고 변동 추이를 한눈에 직관적으로 관제할 수 있는 실시간 전술 대시보드 UI를 구현합니다. 1초 이내 화면 갱신 주기와 100ms 이내 UI 응답성을 보장하며, 공급망 위기 및 결품 위험 품목에 대한 시각적 경보 체계를 구축합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 오프라인/온라인 전환 상태 및 재고 변동 내역 실시간 대시보드 UI 구현 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>전술 관제 UI 컴포넌트 설계:</strong> 통신 상태 인디케이터, 재고 흐름 차트, 동기화 대기 큐 게이지, 긴급 경보 위젯 등 4종 핵심 컴포넌트 구성</p></li><li><p><strong>실시간 데이터 스트림 연동:</strong> WebSocket/Polling 기반 로컬 및 중앙 DB 상태 이벤트 실시간 렌더링</p></li><li><p><strong>전술 모드 및 시인성 최적화:</strong> 야간 작전(Dark Mode) 대비 고대비 시각화 및 지휘관 인지 부하 저감 UI/UX 적용</p></li><li><p><strong>산출물 작성:</strong> src/ui/dat10_dashboard.py (또는 웹 UI 컴포넌트) 작성</p></li><li><p><strong>검증 및 완료:</strong> 모의 데이터 스트림 렌더링 검증, 화면 갱신 주기 1초 이내 및 UI 응답성 100ms 이내 달성</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>격변하는 전장 환경에서 지휘관과 군수 실무자는 현재 시스템이 오프라인 단독 모드인지, 중앙 서버와 동기화 중인지, 혹은 인접 부대와 P2P로 연결되었는지를 즉각 식별할 수 있어야 합니다. 또한 주요 탄약 및 수리부속의 재고가 위험 임계치 이하로 떨어지거나 동기화 오류가 발생했을 때 즉각적인 상황 인식이 요구됩니다. 본 미션에서는 1초 이내 초고속 화면 갱신과 야간 작전 시인성을 갖춘 실시간 재고 모니터링 전술 대시보드(dat10_dashboard.py)를 구현하여 지휘 결심을 지원합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 중급, 복잡도: 보통, 진행률: 60%)</p><p><strong>산출물 및 저장 위치:</strong> src/ui/dat10_dashboard.py (또는 웹 UI 컴포넌트)</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/ui/dat10_dashboard.py",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src/ui</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile src/ui/dat10_dashboard.py</code>를 선언하여 저장</p></li><li><p><strong>검증 및 시각화:</strong> <code>from IPython.display import display, HTML</code> 또는 Plotly를 활용해 Colab 노트북 셀에서 대시보드 인터페이스 직접 렌더링 확인</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/ui/dat10_dashboard.py` (또는 웹 UI 컴포넌트)</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 모의 데이터 스트림 주입을 통한 렌더링 레이턴시 측정</p></li><li><p>개선 및 피드백 방안: 야간 모드(Dark mode) 지원 및 핵심 경보 하이라이트 UI 개선</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>Streamlit / Plotly 기반 군수 지휘 통제 대시보드:</strong> <code>st.columns</code>, <code>st.metric</code>, <code>plotly.graph_objects</code>를 활용한 실시간 게이지 차트, 시계열 재고 추이, 네트워크 상태 인디케이터 구축 기법</p></li><li><p><strong>전술 작전 상황 가시화(MIL-STD-2525 색상 기준):</strong> 네트워크 연결 상태(온라인 녹색, 오프라인 적색, P2P 연동 황색), 안전 재고 미달 품목 경보 하이라이트 UI 설계</p></li><li><p><strong>야간 전술 작전 모드(Tactical Dark Mode):</strong> 야전 지휘소 저조도 환경 눈부심 방지를 위한 고대비 다크 테마(배경 #121212, 카드 #1E1E1E, 포인트 컬러) CSS 커스텀 스타일링</p></li><li><p><strong>실시간 데이터 스트리밍 및 저지연 갱신:</strong> 모의 소켓/파일 폴링 기반 자동 화면 갱신(Auto-refresh) 및 렌더링 지연시간 500ms 이내 유지 최적화 패턴</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"Tactical Dashboard",
|
||||
"IPython/Plotly",
|
||||
"Real-time Streaming"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/ui/dat10_dashboard.py (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 화면 갱신 주기 1초 이내, UI 응답성 100ms 이내</strong></p><h4>PASS 증거</h4><p>정량적 지표(화면 갱신 주기 1초 이내, UI 응답성 100ms 이내)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>야간 작전 모드(Dark mode) 및 긴급 경보 하이라이트 UI 개선을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 전술 작전 상황판으로서의 직관성 및 인지 부하 감소도 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 주요 지표 시각화 컴포넌트 4종 이상 렌더링 및 실시간 데이터 연동을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/ui/dat10_dashboard.py` (또는 웹 UI 컴포넌트))이 지정된 경로에 생성되고 사용자 인터랙션 테스트 및 모의 데이터 스트림 렌더링 검증를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>사용자 인터랙션 테스트 및 모의 데이터 스트림 렌더링 검증 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 중급 / 보통 (진행률: 60%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 화면 갱신 주기 1초 이내, UI 응답성 100ms 이내</p></li><li><p>정성적 기준: 전술 작전 상황판으로서의 직관성 및 인지 부하 감소도</p></li><li><p>진행 추적 및 완료: 주요 지표 시각화 컴포넌트 4종 이상 렌더링 및 실시간 데이터 연동</p></li><li><p>검증 방법 통과: 사용자 인터랙션 테스트 및 모의 데이터 스트림 렌더링 검증</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"Streamlit 및 Plotly 기반 반응형 전술 대시보드 레이아웃 설계 보조",
|
||||
"MIL-STD-2525 기반 군수 관제 상태(온·오프라인, 안전재고) 색상 체계 가이드",
|
||||
"야간 작전용 고대비 다크 테마(CSS) 및 저지연 자동 갱신 코드 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"야전 지휘관 및 군수관의 시각적 인지 부하를 최소화하도록 직관적으로 구성한다.",
|
||||
"화면 렌더링 지연시간 500ms 이내를 유지하도록 데이터를 경량화한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"전술 상황 식별을 방해하는 가독성 낮은 UI 요소 사용",
|
||||
"대량 데이터 전체 동기 렌더링으로 인한 화면 멈춤 현상 방치"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "전술 관제 핵심 컴포넌트 4종 UI 레이아웃 및 반응형 그리드 설계하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>지휘관과 군수 실무자가 시스템 상태와 보급 현황을 한눈에 파악할 수 있도록 대시보드 화면 구성과 핵심 컴포넌트 레이아웃을 설계합니다.</p><h4>해야 할 일</h4><ol><li><p>통신 연결 상태(온/오프라인/동기화 중), 재고 변동 시계열 차트, 동기화 대기 큐 게이지, 긴급 결품 경보 위젯 등 4대 컴포넌트를 정의한다.</p></li><li><p>전술 단말 화면 크기에 최적화된 반응형 그리드 및 컴포넌트 배치 구조를 설계한다.</p></li><li><p>UI 상태 전이(State Machine) 및 사용자 인터랙션 흐름도를 작성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>대시보드 와이어프레임 및 컴포넌트 레이아웃 명세서</p></li><li><p>UI 이벤트 핸들링 설계서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>4종 핵심 컴포넌트가 체계적으로 배치되고 전술 관제 목적에 부합하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>컴포넌트 배치가 난잡하거나 필수 관제 항목이 누락된 경우 레이아웃을 재설계한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "실시간 데이터 스트림 연동 및 비동기 상태 갱신 파이프라인 구축하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>로컬 DB 및 백엔드 동기화 엔진에서 발생하는 트랜잭션 이벤트를 지연 없이 UI에 반영하는 데이터 스트림 파이프라인을 구현합니다.</p><h4>해야 할 일</h4><ol><li><p>WebSocket 또는 경량 주기적 폴링(Polling) 기반의 실시간 데이터 수신기를 구현한다.</p></li><li><p>백엔드 이벤트 발생 시 UI 전체 리로드 없이 해당 위젯만 부분 갱신(Partial Rendering)하는 최적화를 적용한다.</p></li><li><p>데이터 유입 급증 시에도 UI가 멈추지 않도록 스로틀링(Throttling) 및 디바운싱(Debouncing)을 구성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>실시간 데이터 커넥터 및 이벤트 수신기 코드</p></li><li><p>부분 렌더링 및 스로틀링 적용 결과 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>실시간 이벤트 수신이 끊김 없이 동작하며 화면 갱신 주기가 1초 이내를 유지하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>갱신 지연이 발생하거나 UI 프리징 현상이 있는 경우 비동기 파이프라인을 튜닝한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "야간 작전(Dark Mode) 및 전술 시인성 최적화 대시보드(`src/ui/dat10_dashboard.py`) 완성하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>야간 작전 환경에서 빛 노출을 최소화하면서도 긴급 경보와 중요 재고 수치를 신속히 인지할 수 있는 고대비 전술 UI를 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/ui/dat10_dashboard.py`에 전술 대시보드 메인 클래스를 완성한다.</p></li><li><p>저조도 야간 작전 모드(Dark Mode) 테마와 고대비 색상 팔레트(경보: 적색/황색, 정상: 녹색/청색)를 적용한다.</p></li><li><p>위험 재고 도달 시 시각적 깜빡임 및 하이라이트 경보 애니메이션 효과를 구현한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/ui/dat10_dashboard.py` 소스 코드</p></li><li><p>주간/야간 모드 화면 캡처 및 UI 스타일시트 정의서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>야간 모드 시인성이 우수하며 긴급 경보 하이라이트가 직관적으로 작동하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>색상 대비가 낮거나 야간 모드 전환 시 시인성에 문제가 있는 경우 스타일을 보정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "모의 스트림 렌더링 성능(응답 100ms 이내) 및 사용자 인터랙션 검증하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>대량의 모의 트랜잭션 스트림을 주입하며 화면 갱신 속도와 사용자 클릭 반응 속도를 정량 검증합니다.</p><h4>해야 할 일</h4><ol><li><p>초당 50건의 모의 재고 변동 이벤트를 전송하며 렌더링 벤치마크를 수행한다.</p></li><li><p>화면 갱신 주기 1초 이내 및 버튼/필터 조작 시 UI 응답시간 100ms 이내 달성 여부를 측정한다.</p></li><li><p>사용자 인터랙션 테스트 보고서를 작성하고 성능 기준 통과를 확인한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>UI 응답시간 및 렌더링 벤치마크 측정 결과표</p></li><li><p>인터랙션 테스트 결과 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>화면 갱신 주기 1초 이내, UI 응답성 100ms 이내 정량 기준을 100% 충족하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>응답 지연이 발생할 경우 렌더링 알고리즘 및 위젯 구조를 최적화한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M07",
|
||||
"sequence": 7,
|
||||
"title": "동기화 충돌 발생 시 군수관 수동 병합(Conflict Resolution) HITL 워크플로우 설계",
|
||||
"durationHours": 3.0,
|
||||
"overview": "<p><strong>동기화 충돌 발생 시 군수관 수동 병합(Conflict Resolution) HITL 워크플로우 설계</strong></p><p>CRDT 자동 병합으로 해결되지 않거나 신뢰도 점수가 낮은 복합 충돌 트랜잭션에 대해 인간 군수관이 직접 개입하여 검토·승인·수동 병합(Manual Merge)하는 HITL(Human-In-The-Loop) 인터페이스 및 감사 추적 체계를 설계합니다. 군사적 지휘 책임 분계선을 명확히 하고 모든 의사결정 이력을 감사 로그(Audit Log)로 보존하는 표준 운영 절차를 수립합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 동기화 충돌 발생 시 군수관 수동 병합(Conflict Resolution) HITL 워크플로우 설계 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>충돌 격리 및 우선순위 큐 설계:</strong> 자동 병합 불가 트랜잭션을 격리하고 중요도/긴급도 기반 검토 큐(Review Queue) 구현</p></li><li><p><strong>수동 병합 및 승인/반려 인터페이스 구현:</strong> 충돌 항목 간 필드 단위 Diff 뷰, 군수관 권한 검증, 승인/반려/수정 병합 로직 개발</p></li><li><p><strong>감사 로그(Audit Trail) 보존 체계 구축:</strong> 군수관의 모든 수동 조작 및 판단 사유를 위변조 불가 로그로 기록하는 감사 모듈 구현</p></li><li><p><strong>산출물 작성:</strong> src/hitl/dat10_approval_workflow.py 및 docs/dat10_hitl_guide.md 작성</p></li><li><p><strong>검증 및 완료:</strong> 모의 조작자 승인/반려 시뮬레이션 및 감사 로그 생성 검증 100% 완료</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>동일한 전술 장비 수리부속에 대해 상위 사단 군수처와 예하 대대의 오프라인 기록이 상충할 경우, 알고리즘이 임의로 한쪽 데이터를 삭제하거나 덮어쓰면 심각한 보급 실패를 초래할 수 있습니다. 시스템 오류 가능성과 전술적 맥락을 고려할 때, 모호한 충돌에 대한 최종 결정권은 반드시 인간 군수관(Human-In-The-Loop)에게 부여되어야 합니다. 본 미션에서는 충돌 트랜잭션을 안전하게 격리하여 군수관에게 직관적인 차이점(Diff)을 제시하고, 승인/반려/수정 병합을 수행하며 법적·군사적 책임 추적이 가능한 감사 로그를 남기는 HITL 워크플로우(dat10_approval_workflow.py)를 구축합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 고급, 복잡도: 높음, 진행률: 70%)</p><p><strong>산출물 및 저장 위치:</strong> src/hitl/dat10_approval_workflow.py 및 docs/dat10_hitl_guide.md</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/hitl/dat10_approval_workflow.py",
|
||||
"docs/dat10_hitl_guide.md",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src/hitl docs</code></p></li><li><p><strong>파일 저장:</strong> <code>%%writefile src/hitl/dat10_approval_workflow.py</code> 및 <code>%%writefile docs/dat10_hitl_guide.md</code> 선언</p></li><li><p><strong>검증 실행:</strong> <code>!python src/hitl/dat10_approval_workflow.py</code> (승인/반려 대화형 시뮬레이션 및 감사로그 검증)</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/hitl/dat10_approval_workflow.py` 및 `docs/dat10_hitl_guide.md`</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 모의 승인/반려 시뮬레이션을 통한 상태 무결성 검증</p></li><li><p>개선 및 피드백 방안: 긴급 우선순위 큐잉 알고리즘 추가 및 지휘관 피드백 입력 폼 확장</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>3-Way Diff 및 충돌 분기 비교 알고리즘:</strong> 공통 조상(Base), 로컬 단말(Local), 중앙 원격(Remote) 간의 필드 단위 차이 분석 및 JSON Patch(RFC 6902) 기반 병합 알고리즘</p></li><li><p><strong>HITL(Human-In-The-Loop) 군수관 개입 워크플로우:</strong> CRDT 자동 해결 불가 충돌 건에 대한 군수관 검토/승인/반려 상태 머신(Pending -> Approved/Rejected) 구현</p></li><li><p><strong>작전 우선순위 기반 충돌 큐 정렬:</strong> 전투 필수 품목(탄약, 핵심 수리부속) 및 재고 고갈 위험도에 따른 우선순위 큐(Priority Queue) 가중치 정렬 공식</p></li><li><p><strong>감사 추적(Audit Trail) 및 지휘관 결심 기록:</strong> 수동 병합 내역, 승인자 군번/서명, 승인 사유, 타임스탬프를 불변 감사 로그(Immutable Audit Log) 테이블에 기록하는 규정 준수 설계</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"HITL Workflow",
|
||||
"Audit Trail",
|
||||
"Conflict Resolution"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/hitl/dat10_approval_workflow.py (필수)",
|
||||
"docs/dat10_hitl_guide.md (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 인간 검토 큐(Queue) 대기시간 및 승인/반려 처리 로깅 성공률 100%</strong></p><h4>PASS 증거</h4><p>정량적 지표(인간 검토 큐(Queue) 대기시간 및 승인/반려 처리 로깅 성공률 100%)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>검토 우선순위 큐잉 알고리즘 개선 및 지휘관 피드백 입력 폼 추가을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 지휘 책임 분계선 명확화 및 성급한 자동 단정 방지 체계 부합성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 승인/반려 인터페이스 동작 및 감사 로그(Audit Log) 생성 검증을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/hitl/dat10_approval_workflow.py` 및 `docs/dat10_hitl_guide.md`)이 지정된 경로에 생성되고 모의 조작자 승인/반려 시뮬레이션 및 데이터 무결성 검증를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>모의 조작자 승인/반려 시뮬레이션 및 데이터 무결성 검증 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 고급 / 높음 (진행률: 70%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 인간 검토 큐(Queue) 대기시간 및 승인/반려 처리 로깅 성공률 100%</p></li><li><p>정성적 기준: 지휘 책임 분계선 명확화 및 성급한 자동 단정 방지 체계 부합성</p></li><li><p>진행 추적 및 완료: 승인/반려 인터페이스 동작 및 감사 로그(Audit Log) 생성 검증</p></li><li><p>검증 방법 통과: 모의 조작자 승인/반려 시뮬레이션 및 데이터 무결성 검증</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"3-Way Diff 및 필드 단위 충돌 시각화 알고리즘 구현 보조",
|
||||
"전투 필수 품목 위험도 기반 우선순위 큐 정렬 로직 자문",
|
||||
"불변 감사 로그(Audit Trail) 및 군수관 승인 상태 머신 설계 가이드"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"충돌 데이터는 AI 임의 결정 없이 반드시 군수관 승인(HITL)을 거친다.",
|
||||
"모든 승인/반려/수정 내역은 감사 추적이 가능하도록 불변 로그에 보존한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"인간 검토 없는 무조건적인 자동 결심 로직 구현",
|
||||
"감사 로그 누락 및 승인 이력 변조"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "자동 병합 불가 충돌 트랜잭션 격리 및 우선순위 검토 큐(Review Queue) 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>CRDT 자동 병합으로 해결되지 않거나 신뢰도 등급이 Low인 복합 충돌 트랜잭션을 안전하게 격리하고 긴급도 순으로 정렬하는 큐를 설계합니다.</p><h4>해야 할 일</h4><ol><li><p>충돌 발생 트랜잭션을 메인 DB와 분리된 격리 테이블(conflict_quarantine)에 적재하는 로직을 작성한다.</p></li><li><p>군수 품목의 중요도(전투 핵심 물자/일반 소모품)와 충돌 수량 규모를 기반으로 우선순위 점수(Priority Score)를 계산한다.</p></li><li><p>군수관이 즉각 조치할 수 있도록 우선순위 큐(Priority Queue) 정렬 알고리즘을 구현한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>충돌 격리 및 우선순위 산출 알고리즘 코드</p></li><li><p>검토 큐 데이터 구조 명세서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>충돌 트랜잭션이 누락 없이 격리되고 중요도 기반 우선순위 정렬이 정확히 이루어지는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>격리 처리에 누락이 있거나 우선순위 정렬 기준이 부적절한 경우 로직을 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "필드 단위 Diff 뷰 및 군수관 승인/반려/수정 병합 워크플로우(`src/hitl/dat10_approval_workflow.py`) 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>군수관이 충돌된 단말 간 데이터를 직관적으로 비교(Diff)하고 승인, 반려, 수동 수정을 내릴 수 있는 HITL 의사결정 모듈을 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/hitl/dat10_approval_workflow.py`에 HITLApprovalWorkflow 클래스를 구현한다.</p></li><li><p>중앙 서버 데이터와 오프라인 단말 데이터 간의 필드별 불일치(수량, 시간, 담당자 등)를 시각적으로 보여주는 Diff 생성기를 작성한다.</p></li><li><p>군수관 권한 검증 후 3가지 조치(A: 원격 단말 채택 승인, B: 중앙 데이터 유지 반려, C: 군수관 수기 수정 병합)를 수행하는 워크플로우를 완성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/hitl/dat10_approval_workflow.py` 소스 코드</p></li><li><p>Diff 뷰 생성 및 승인/반려/수정 처리 예제 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>필드별 Diff 비교가 명확하며 승인/반려/수정 3가지 액션이 완벽히 분기 처리되는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>Diff 파싱에 오류가 있거나 병합 처리가 비정상적인 경우 코드를 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "지휘 책임 추적을 위한 위변조 방지 감사 로그(Audit Trail) 보존 모듈 개발하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>군수관이 내린 모든 수동 결정에 대해 법적·군사적 책임을 명확히 하고 사후 감사가 가능하도록 위변조 불가 감사 로그를 기록합니다.</p><h4>해야 할 일</h4><ol><li><p>결정 일시, 군수관 군번/성명, 판단 사유, 원본 충돌 데이터, 최종 병합 결과, 전자서명을 포함하는 감사 로그 스키마를 수립한다.</p></li><li><p>감사 로그 테이블에 Append-Only(추가 전용) 정책을 적용하고 해시 체인을 연결하여 사후 수정 및 삭제를 원천 차단한다.</p></li><li><p>감사 로그 조회 및 검증 API를 구현한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>감사 로그 매니저 소스 코드</p></li><li><p>감사 로그 위변조 방지 체인 검증 테스트 결과</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>승인/반려 처리 로깅 성공률 100%를 달성하고 감사 로그 수정 시도가 즉각 감지되는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>로그 기록이 누락되거나 위변조 방지 검증에 결함이 있는 경우 보완한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "군수관 HITL 운용 가이드(`docs/dat10_hitl_guide.md`) 작성 및 모의 승인 시뮬레이션 검증하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>야전 군수관이 실제 상황에서 충돌을 처리할 수 있는 표준 운영 매뉴얼을 작성하고 모의 시뮬레이션을 통해 워크플로우를 종합 검증합니다.</p><h4>해야 할 일</h4><ol><li><p>충돌 유형별 판단 기준, 승인/반려 절차, 비상 시 대처 요령을 기술한 `docs/dat10_hitl_guide.md`를 작성한다.</p></li><li><p>가상 조작자 역할을 부여하여 20건의 모의 충돌 건에 대한 승인/반려/수정 시뮬레이션을 수행한다.</p></li><li><p>시뮬레이션 전후의 데이터 무결성과 큐 대기시간을 최종 점검한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `docs/dat10_hitl_guide.md` 매뉴얼</p></li><li><p>모의 조작자 승인 시뮬레이션 결과 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>가이드 문서가 실무에 즉시 적용 가능하며 시뮬레이션 결과 데이터 정합성이 완벽한가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>가이드 내용이 부실하거나 시뮬레이션 중 예외가 발생한 경우 내용을 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M08",
|
||||
"sequence": 8,
|
||||
"title": "7일간 통신 단절 후 대량 재고 트랜잭션 일괄 동기화 스트레스 테스트",
|
||||
"durationHours": 3.5,
|
||||
"overview": "<p><strong>7일간 통신 단절 후 대량 재고 트랜잭션 일괄 동기화 스트레스 테스트</strong></p><p>7일간 통신이 완전히 두절된 극한 상황을 가상 모의하여 수십 개 야전 단말에서 발생한 수만 건의 누적 트랜잭션이 네트워크 복구 시 동시 유입되는 상황을 검증합니다. 동시 트래픽 500% 급증 조건에서 메모리 누수, CPU 병목, DB 락(Lock) 경합 및 데이터 유실 여부를 정밀 프로파일링하고 안전 실패(Fail-safe) 성능을 입증합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 7일간 통신 단절 후 대량 재고 트랜잭션 일괄 동기화 스트레스 테스트 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>대규모 가상 전술 트랜잭션 생성:</strong> 7일간의 불출, 입고, 긴급 이동 등 다부대 수만 건의 모의 트랜잭션 데이터셋 구축</p></li><li><p><strong>동시성 부하 주입 및 비동기 처리 테스트:</strong> 다중 스레드/비동기 클라이언트를 통한 500% 급증 동시 트래픽 주입 시험 환경 구성</p></li><li><p><strong>시스템 자원 및 병목 프로파일링:</strong> 처리량(TPS), 지연시간, 메모리 누수, DB 커넥션 경합 구간 진단 및 최적화</p></li><li><p><strong>산출물 작성:</strong> \tests/dat10_stress_test.py 및 스트레스 테스트 분석 보고서 작성</p></li><li><p><strong>검증 및 완료:</strong> 대규모 부하 주입 하에서 시스템 다운 0건 및 데이터 유실률 0% 달성</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>국지전이나 적의 광역 전자전 공격으로 인해 전방 부대 전체의 통신망이 7일 이상 두절되었다가 일시에 복구되는 시나리오에서는, 분산된 수십 개 단말에서 누적된 방대한 수불 트랜잭션이 중앙 동기화 서버로 폭발적으로 쏟아져 들어옵니다. 이때 커넥션 풀 고갈이나 데드락, 메모리 누수로 인해 시스템이 다운되면 전방 공급망 전체가 마비됩니다. 본 미션에서는 7일간의 누적 데이터를 가상 생성하여 시스템 한계 상황(트래픽 500% 급증)을 시뮬레이션하고, 단 1건의 데이터 유실 없이 대량 동기화를 완수할 수 있는 복원력을 검증하는 스트레스 테스트(tests/dat10_stress_test.py)를 수행합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 고급, 복잡도: 매우 높음, 진행률: 80%)</p><p><strong>산출물 및 저장 위치:</strong> \tests/dat10_stress_test.py 및 스트레스 테스트 분석 보고서</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"tests/dat10_stress_test.py",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p tests</code></p></li><li><p><strong>파일 저장:</strong> Colab 코드 셀 첫 줄에 <code>%%writefile tests/dat10_stress_test.py</code>를 선언하여 저장</p></li><li><p><strong>검증 실행:</strong> <code>!python tests/dat10_stress_test.py</code> (500% 부하 동시성 시뮬레이션 실행 로그 확인)</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`tests/dat10_stress_test.py` 및 스트레스 테스트 분석 보고서</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 동시 스트레스 주입 시 초당 처리량(Throughput) 및 메모리 누수 점검</p></li><li><p>개선 및 피드백 방안: 락 함수 최적화, 비동기 큐 처리 도입 및 메모리 자원 할당 개선</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>7일간 통신 두절 대량 합성 데이터 생성:</strong> Faker 및 NumPy를 이용해 50개 이상 야전 단말에서 발생한 10만 건 이상의 누적 수불 트랜잭션(결측치, 지연 패킷, 동시 충돌 5% 포함) 모의 생성 기법</p></li><li><p><strong>Python 동시성 부하 테스트 기법:</strong> <code>concurrent.futures.ThreadPoolExecutor</code> 및 <code>multiprocessing</code>을 활용한 다중 단말 동시 대량 동기화 트랜잭션 주입 시뮬레이션</p></li><li><p><strong>시스템 자원 프로파일링 및 벤치마킹:</strong> <code>psutil</code>, <code>memory_profiler</code>, <code>time.perf_counter()</code>를 활용한 CPU 사용률, RSS 메모리 누수 감지, 초당 처리 트랜잭션(TPS) 측정</p></li><li><p><strong>SQLite 대량 쓰기(Bulk Insert) 최적화:</strong> <code>executemany()</code> 배치 처리, 트랜잭션 청크 크기(Chunk Size: 1,000~5,000건) 튜닝 및 인덱스 관리 최적화 전략</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"Stress Testing",
|
||||
"Concurrency (Asyncio)",
|
||||
"Fail-safe"
|
||||
],
|
||||
"deliverables": [
|
||||
"tests/dat10_stress_test.py (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] 동시 트래픽 500% 증가 시 시스템 다운 0건, 데이터 유실률 0%</strong></p><h4>PASS 증거</h4><p>정량적 지표(동시 트래픽 500% 증가 시 시스템 다운 0건, 데이터 유실률 0%)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>병목 함수 최적화, 비동기 큐 처리 적용 및 자원 할당 개선을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 극단 상황에서의 안전 실패(Fail-safe) 및 기능 축소 작동 적절성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 대량 시뮬레이션 부하 주입 테스트 통과 및 병목 구간 프로파일링 완료을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`tests/dat10_stress_test.py` 및 스트레스 테스트 분석 보고서)이 지정된 경로에 생성되고 부하 테스트 도구를 통한 처리량(Throughput) 및 메모리 누수 검증를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>부하 테스트 도구를 통한 처리량(Throughput) 및 메모리 누수 검증 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 고급 / 매우 높음 (진행률: 80%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: 동시 트래픽 500% 증가 시 시스템 다운 0건, 데이터 유실률 0%</p></li><li><p>정성적 기준: 극단 상황에서의 안전 실패(Fail-safe) 및 기능 축소 작동 적절성</p></li><li><p>진행 추적 및 완료: 대량 시뮬레이션 부하 주입 테스트 통과 및 병목 구간 프로파일링 완료</p></li><li><p>검증 방법 통과: 부하 테스트 도구를 통한 처리량(Throughput) 및 메모리 누수 검증</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"7일 통신 두절 모의 10만 건 대량 수불 트랜잭션 생성 스크립트 작성 보조",
|
||||
"다중 단말 동시 동기화 부하 테스트 및 멀티프로세싱 코드 가이드",
|
||||
"psutil 기반 메모리 누수 감지 및 TPS 벤치마크 측정 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"극한 부하 상황에서도 시스템 비정상 종료(Crash) 없이 안정성을 유지한다.",
|
||||
"메모리 점유율 및 DB 락 경합을 최소화하도록 배치 청크를 최적화한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"테스트 편의를 위한 부하 데이터 임의 축소 및 결함 케이스 누락",
|
||||
"자원 정리(Close/Rollback) 없는 무한 루프 부하 생성"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "7일간 통신 두절 상황 가상 대량 트랜잭션 시뮬레이션 데이터셋 구축하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>7일간 통신이 완전히 두절된 전황을 모의하여 수십 개 야전 단말에서 누적 발생한 수만 건의 불출·입고·이동 트랜잭션을 가상 생성합니다.</p><h4>해야 할 일</h4><ol><li><p>10개 야전 대대 및 50개 중대 단말의 7일간 군수 소비 패턴(전투 격화/평시 교대)을 반영한 시나리오 생성기를 작성한다.</p></li><li><p>총 50,000건 이상의 대용량 트랜잭션 데이터셋(타임스탬프 왜곡, 동시 변경 품목 포함)을 생성한다.</p></li><li><p>생성된 데이터셋의 통계적 분포와 현실성을 점검한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>대용량 시뮬레이션 데이터셋 생성 스크립트</p></li><li><p>생성된 7일간 군수 트랜잭션 데이터셋 통계 요약표</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>50,000건 이상의 대규모 시뮬레이션 트랜잭션이 전술 시나리오에 부합하게 생성되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>데이터 규모가 부족하거나 패턴이 비현실적인 경우 생성 파라미터를 보정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "동시 트래픽 500% 급증 비동기 부하 주입 테스트 도구(`tests/dat10_stress_test.py`) 구축하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>통신 복구 순간 수십 개 단말이 일시에 동기화를 시도하는 폭발적 트래픽(동시 부하 500% 급증) 상황을 재현하는 테스트 스위트를 개발합니다.</p><h4>해야 할 일</h4><ol><li><p>`tests/dat10_stress_test.py`에 멀티프로세싱/비동기 asyncio 기반 부하 주입 클라이언트를 작성한다.</p></li><li><p>동시 접속 단말 수 50개, 초당 요청 수(RPS) 500% 급증 조건을 단계적으로 상승시키는 스트레스 프로파일을 구성한다.</p></li><li><p>타임아웃, 재시도, 연결 실패 모니터링 훅(Hook)을 장착한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `tests/dat10_stress_test.py` 소스 코드</p></li><li><p>부하 주입 시나리오 설정 명세</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>동시 부하 주입기가 설정된 RPS와 동시 접속자 수를 안정적으로 발생시키는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>부하 주입기 자체에 병목이 있거나 설정된 부하를 달성하지 못하는 경우 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "시스템 자원 프로파일링, 병목 진단 및 Fail-safe 복원력 검증하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>대규모 부하 환경에서 CPU, 메모리 누수, DB 커넥션 풀 경합, 락(Lock) 대기시간을 정밀 프로파일링하고 안전 실패 성능을 입증합니다.</p><h4>해야 할 일</h4><ol><li><p>부하 실행 중 cProfile 및 memory_profiler를 사용하여 자원 소모 추이를 기록한다.</p></li><li><p>DB 락 경합 및 커넥션 풀 고갈 병목 함수를 식별하고 비동기 배치 처리 및 쿼리 최적화를 적용한다.</p></li><li><p>극단 상황(메모리 90% 이상)에서도 시스템 다운 0건 및 데이터 유실 0%가 유지되는지 검증한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>CPU/메모리 프로파일링 차트 및 병목 분석표</p></li><li><p>Fail-safe 복원력 검증 로그</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>동시 트래픽 500% 급증 조건에서 시스템 다운 0건 및 데이터 유실률 0%를 달성하였는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>데이터 유실이나 크래시가 발생할 경우 비동기 큐 및 DB 락킹 전략을 최적화한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "스트레스 테스트 종합 분석 보고서 작성 및 최적화 완료하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>스트레스 테스트에서 도출된 최대 처리량(TPS), 평균 지연시간, 한계 용량 지표를 체계적으로 정리하고 후속 AAR 피드백을 준비합니다.</p><h4>해야 할 일</h4><ol><li><p>초기 상태와 최적화 후의 Throughput(TPS), Latency(p95, p99) 개선 결과를 비교 분석한다.</p></li><li><p>스트레스 테스트 종합 분석 보고서를 작성하여 취약점과 개선 권고사항을 정리한다.</p></li><li><p>테스트 스위트 실행을 자동화하고 산출물 저장 위치를 확인한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>스트레스 테스트 종합 분석 보고서</p></li><li><p>테스트 자동화 실행 결과 요약본</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>종합 분석 보고서가 완비되고 정량적 성능 개선 지표가 명확히 입증되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>보고서 분석 내용이 미흡하거나 지표 산출 근거가 불명확한 경우 보강한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M09",
|
||||
"sequence": 9,
|
||||
"title": "AAR 기반 동기화 누락 및 데이터 충돌 사례 분석 및 동기화 룰셋 재튜닝",
|
||||
"durationHours": 3.0,
|
||||
"overview": "<p><strong>AAR 기반 동기화 누락 및 데이터 충돌 사례 분석 및 동기화 룰셋 재튜닝</strong></p><p>스트레스 테스트 및 모의 운용 과정에서 발생한 동기화 누락, 지연, 미탐/오탐 충돌 사례를 AAR(After Action Review, 사후검토) 기법으로 심층 분석합니다. 실패 원인을 정밀 규명하여 동기화 룰셋, 신뢰도 가중치 임계값, 타임아웃 파라미터를 재튜닝하고, 전체 회귀 테스트(Regression Test) 스위트를 통해 종합 정확도를 10%p 이상 개선합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 AAR 기반 동기화 누락 및 데이터 충돌 사례 분석 및 동기화 룰셋 재튜닝 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>AAR 기반 결함 사례 심층 분석:</strong> 스트레스 테스트 및 모의 환경에서 발생한 동기화 실패, 패킷 유실, 충돌 오판 사례 원인 분석</p></li><li><p><strong>동기화 룰셋 및 임계 파라미터 최적화:</strong> 타임아웃, 재시도 백오프, 신뢰도 판정 기준 가중치 매트릭스 재튜닝</p></li><li><p><strong>회귀 테스트 스위트 자동화:</strong> 파라미터 변경 후 전체 파이프라인 기능 및 성능 안정성을 검증하는 회귀 테스트 실행</p></li><li><p><strong>산출물 작성:</strong> docs/dat10_aar_report.md 및 configs/dat10_tuned_params.yaml 작성</p></li><li><p><strong>검증 및 완료:</strong> 튜닝 후 종합 탐지/동기화 정확도 10%p 향상 및 기존 버그 재발 0건 확인</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>군사 작전과 대규모 시스템 검증 후에는 반드시 AAR(사후검토) 절차를 거쳐 의도했던 바와 실제로 발생한 결과의 차이를 분석하고 교훈을 도출해야 합니다. 극한의 스트레스 테스트에서 드러난 동기화 누락, 경합 지연, 이상치 미탐 사례들은 전술 환경의 특수 파라미터가 정밀하게 튜닝되지 않았기 때문에 발생합니다. 본 미션에서는 발견된 실패 사례들을 객관적으로 분석하여 체계적인 AAR 보고서(docs/dat10_aar_report.md)를 작성하고, 동기화 규칙과 신뢰도 임계값을 최적화한 파라미터 설정 파일(configs/dat10_tuned_params.yaml)을 도출하여 성능을 한 단계 도약시킵니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 고급, 복잡도: 높음, 진행률: 90%)</p><p><strong>산출물 및 저장 위치:</strong> docs/dat10_aar_report.md 및 configs/dat10_tuned_params.yaml</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"docs/dat10_aar_report.md",
|
||||
"configs/dat10_tuned_params.yaml",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p docs configs</code></p></li><li><p><strong>파일 저장:</strong> <code>%%writefile docs/dat10_aar_report.md</code> 및 <code>%%writefile configs/dat10_tuned_params.yaml</code> 선언</p></li><li><p><strong>검증 실행:</strong> <code>!pytest tests/ -v</code> (튜닝된 파라미터 적용 후 전체 회귀 테스트 스위트 자동 실행)</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`docs/dat10_aar_report.md` 및 `configs/dat10_tuned_params.yaml`</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 회귀 테스트(Regression Test) 스위트 전체 자동 실행 및 지표 검증</p></li><li><p>개선 및 피드백 방안: 지속적 학습(Continual Learning) 파이프라인 연계 방안 수립</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>미 육군 사후검토(AAR, After Action Review) 기법:</strong> 계획된 목표(What was supposed to happen), 실제 결과(What happened), 원인 분석(Why), 향후 개선책(How to sustain/improve) 4단계 분석 프레임워크 기반 보고서 작성법</p></li><li><p><strong>근본 원인 분석(RCA, Root Cause Analysis):</strong> 스트레스 테스트 중 발생한 동기화 누락, DB 락 경합, 타임아웃 오류에 대한 5-Whys 및 특성요인도(Fishbone Diagram) 분석 기법</p></li><li><p><strong>YAML 기반 시스템 파라미터 최적화:</strong> 배치 청크 크기(<code>batch_size</code>), 네트워크 타임아웃(<code>timeout_sec</code>), 재시도 백오프(<code>exponential_backoff</code>), CRDT 수렴 임계값 튜닝 및 설정 파일 구조화</p></li><li><p><strong>Pytest 회귀 테스트(Regression Test) 자동화:</strong> 파라미터 튜닝 전후 성능 비교 및 기존 5대 핵심 기능에 대한 무결성을 보장하는 회귀 테스트 스위트 파이프라인 구축</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"AAR Analysis",
|
||||
"Parameter Tuning",
|
||||
"Regression Testing"
|
||||
],
|
||||
"deliverables": [
|
||||
"docs/dat10_aar_report.md (필수)",
|
||||
"configs/dat10_tuned_params.yaml (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] AAR 피드백 적용 후 종합 정확도 10%p 이상 향상, 재발 오류 0건</strong></p><h4>PASS 증거</h4><p>정량적 지표(AAR 피드백 적용 후 종합 정확도 10%p 이상 향상, 재발 오류 0건)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>지속적 학습(Continual Learning) 파이프라인 연계 방안 수립을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 오류 원인 규명의 객관성 및 개선 조치의 논리적 타당성 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] AAR 보고서 작성 및 파라미터 튜닝 전후 회귀 테스트 통과을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`docs/dat10_aar_report.md` 및 `configs/dat10_tuned_params.yaml`)이 지정된 경로에 생성되고 회귀 테스트(Regression Test) 스위트 전체 자동 실행 및 비교를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>회귀 테스트(Regression Test) 스위트 전체 자동 실행 및 비교 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 고급 / 높음 (진행률: 90%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: AAR 피드백 적용 후 종합 정확도 10%p 이상 향상, 재발 오류 0건</p></li><li><p>정성적 기준: 오류 원인 규명의 객관성 및 개선 조치의 논리적 타당성</p></li><li><p>진행 추적 및 완료: AAR 보고서 작성 및 파라미터 튜닝 전후 회귀 테스트 통과</p></li><li><p>검증 방법 통과: 회귀 테스트(Regression Test) 스위트 전체 자동 실행 및 비교</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"미 육군 AAR 4단계 프레임워크 기반 사후검토 보고서 구조화 가이드",
|
||||
"스트레스 테스트 결함에 대한 5-Whys 및 특성요인도 분석 보조",
|
||||
"YAML 설정 파일 기반 동기화 파라미터 최적화 및 회귀 테스트 코드 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"파라미터 튜닝 시 기존 정상 트랜잭션 처리 기능에 부작용이 없도록 회귀 검증한다.",
|
||||
"AAR 분석 결과와 개선 대책 간의 논리적 인과관계를 명확히 서술한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"원인 규명 없는 임의의 파라미터 값 변경",
|
||||
"회귀 테스트 미통과 상태에서의 튜닝 완료 판정"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "스트레스 테스트 결함 사례 수집 및 AAR(사후검토) 실패 원인 분석하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>스트레스 테스트 및 복합 시나리오 검증 중 발생한 동기화 누락, 지연, 미탐/오탐 충돌 사례를 AAR 4대 핵심 질문에 따라 체계적으로 분석합니다.</p><h4>해야 할 일</h4><ol><li><p>원래 목표했던 의도(AS-PLANNED)와 실제 발생한 결과(AS-IS) 간의 차이를 정량적으로 정리한다.</p></li><li><p>네트워크 타임아웃, 동시 락 경합, 신뢰도 임계값 과민 반응 등 실패 유발 근본 원인(Root Cause)을 도출한다.</p></li><li><p>AAR 분석 워크시트에 원인별 개선 방향과 교훈(Lessons Learned)을 작성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>AAR 결함 사례 분석표 및 근본 원인 트리 다이어그램</p></li><li><p>동기화 실패 및 충돌 오판 사례 상세 내역서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>실패 원인 분석이 객관적이며 AAR 방법론에 입각하여 논리적으로 도출되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>원인 분석이 표면적이거나 기술적 근거가 부족한 경우 재분석한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "동기화 룰셋 및 임계 파라미터 최적화 설정 파일(`configs/dat10_tuned_params.yaml`) 도출하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>AAR 교훈을 바탕으로 타임아웃, 재시도 백오프(Exponential Backoff), 신뢰도 가중치 매트릭스를 최적화한 설정 파일을 작성합니다.</p><h4>해야 할 일</h4><ol><li><p>`configs/dat10_tuned_params.yaml`에 네트워크 타임아웃, 배치 동기화 크기, 재시도 주기 파라미터를 정의한다.</p></li><li><p>신뢰도 판정 점수 임계값(High/Med/Low 분계선) 및 오경보 필터링 민감도 파라미터를 튜닝한다.</p></li><li><p>설정 파일 변경만으로 파이프라인 전체에 동적 반영될 수 있도록 Config 로더를 연동한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `configs/dat10_tuned_params.yaml` 설정 파일</p></li><li><p>파라미터 튜닝 근거 및 수치 계산 명세서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>설정 파일이 유효한 YAML 포맷이며 최적화된 파라미터 값이 실전 전술 환경에 부합하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>설정 파일 문법 오류나 비합리적인 파라미터 값이 존재하는 경우 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "전체 파이프라인 자동화 회귀 테스트(Regression Test) 스위트 실행 및 성능 비교하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>튜닝된 파라미터를 적용한 후 전체 기능의 안정성을 확인하고 기존 결함의 재발(Regression) 여부 및 정확도 향상률을 측정합니다.</p><h4>해야 할 일</h4><ol><li><p>1~8단계의 모든 단위/통합 테스트를 일괄 실행하는 회귀 테스트 스크립트를 작성한다.</p></li><li><p>튜닝 전후의 종합 동기화/탐지 정확도, 오경보율, 처리 지연시간을 대조 측정한다.</p></li><li><p>기존에 발견되었던 버그 및 동기화 누락 사례가 100% 해소되었는지 검증한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>회귀 테스트 스크립트 및 일괄 실행 로그</p></li><li><p>파라미터 튜닝 전후 성능 비교 데이터표</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>튜닝 후 종합 정확도가 10%p 이상 향상되고 기존 결함 재발 0건을 달성하였는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>정확도 향상이 10%p 미만이거나 회귀 오류가 발생한 경우 파라미터를 재튜닝한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "AAR 종합 보고서(`docs/dat10_aar_report.md`) 작성 및 검증 완료하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>AAR 분석 과정, 튜닝 내역, 회귀 테스트 성과를 총괄하는 공식 사후검토 보고서를 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>초기 목표, 실패 분석, 개선 조치, 검증 결과, 실무 배포 권고사항을 구조화하여 `docs/dat10_aar_report.md`를 작성한다.</p></li><li><p>지속적 학습(Continual Learning) 및 향후 국방 공급망 시스템 확장을 위한 가이드라인을 수록한다.</p></li><li><p>산출물 규격 충족 여부를 최종 점검한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `docs/dat10_aar_report.md` 보고서</p></li><li><p>AAR 산출물 검증 완료 확인서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>보고서가 논리적 타당성을 갖추고 요구된 산출물 경로에 정상 저장되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>문서 항목이 누락되었거나 내용이 미흡한 경우 보완하여 재작성한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "DAT10_M10",
|
||||
"sequence": 10,
|
||||
"title": "오프라인 동기화 야전 재고 관리 SaaS 최종 패키징 및 야전 배포 가이드 완성",
|
||||
"durationHours": 3.5,
|
||||
"overview": "<p><strong>오프라인 동기화 야전 재고 관리 SaaS 최종 패키징 및 야전 배포 가이드 완성</strong></p><p>스키마 정의부터 전처리, P2P 교환, CRDT 동기화, 무결성 검증, 대시보드, HITL 워크플로우, 튜닝 파라미터까지 전체 1~9단계 모듈을 단일 엔드투엔드(End-to-End) 파이프라인으로 통합 패키징합니다. 원클릭 실행 스크립트(main_dat10.py)와 야전 설치/운용 매뉴얼(README.md), 최종 성과 보고서(docs/dat10_final_report.md)를 완성하여 야전 군수 현장에 즉시 전력화 가능한 SaaS 체계를 납품합니다.</p>",
|
||||
"objectives": "<h3>소개</h3><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경을 바탕으로 오프라인 동기화 야전 재고 관리 SaaS 최종 패키징 및 야전 배포 가이드 완성 과제를 수행합니다.</p><h4>학습자가 수행할 핵심 과정</h4><ul><li><p><strong>전체 E2E 파이프라인 통합 패키징:</strong> 데이터 수집부터 CRDT 동기화, 무결성 검증, 대시보드 연동까지 전 과정을 총괄 실행하는 진입점 구축</p></li><li><p><strong>야전 배포 및 설치 자동화:</strong> 오프라인 단말 및 중앙 서버 환경별 원클릭 설치·실행 스크립트 및 환경설정 체계화</p></li><li><p><strong>최종 성과 보고서 및 매뉴얼 작성:</strong> 시스템 아키텍처, 성능 지표, 야전 운용 절차, 향후 타 부대 확장 방안을 포괄하는 보고서 작성</p></li><li><p><strong>산출물 작성:</strong> src/main_dat10.py, README.md, docs/dat10_final_report.pdf(md) 작성</p></li><li><p><strong>검증 및 완료:</strong> 최종 검증 위원회(평가관) 모의 시연 통과, E2E 실행 성공률 100% 및 테스트 커버리지 85% 이상 달성</p></li></ul>",
|
||||
"scenario": "<h4>미션 배경</h4><p>데이터 마이닝 기반 공급망 재난 식별 및 야전 군수 재고 관리 시스템의 모든 단위 모듈 개발과 튜닝이 완료되었으므로, 이제 실제 야전 군수 실무자와 지휘관이 현장에서 즉각 설치하고 운용할 수 있도록 상용 소프트웨어(SaaS) 수준의 완성도 높은 패키징이 요구됩니다. 개발된 개별 스크립트들을 유기적으로 결합하여 단 한 번의 실행으로 전 파이프라인이 동작하도록 구성하고, 비전문가도 쉽게 따라 할 수 있는 설치·배포 가이드와 최종 성과 보고서를 완성하여 성공적인 군수 실무 전력화 검증을 완료합니다.</p><p><strong>전쟁/사례 구분:</strong> 공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구</p><p><strong>학습 유형 및 복잡도:</strong> 코딩형 (난이도: 최고급, 복잡도: 종합, 진행률: 10%)</p><p><strong>산출물 및 저장 위치:</strong> src/main_dat10.py, README.md, docs/dat10_final_report.pdf(md)</p>",
|
||||
"attachments": [],
|
||||
"materials": [
|
||||
"src/main_dat10.py",
|
||||
"README.md",
|
||||
"docs/dat10_final_report.pdf(md)",
|
||||
"uploads/DAT10/DAT10_colab_starter.ipynb"
|
||||
],
|
||||
"materialText": "<p><strong>[Google Colab 실습 및 환경 가이드]</strong></p><ul><li><p><strong>디렉터리 생성:</strong> <code>!mkdir -p src docs</code></p></li><li><p><strong>파일 저장:</strong> <code>%%writefile src/main_dat10.py</code>, <code>%%writefile README.md</code>, <code>%%writefile docs/dat10_final_report.md</code> 선언</p></li><li><p><strong>검증 실행:</strong> <code>!python src/main_dat10.py</code> (전체 End-to-End 통합 파이프라인 일괄 실행 및 종합 결과 확인)</p></li></ul>\n<p><strong>미션 산출물 및 저장 위치</strong></p><ul><li><p><code>`src/main_dat10.py`, `README.md`, `docs/dat10_final_report.pdf(md)`</code></p></li></ul><p><strong>검증 및 개선 방안</strong></p><ul><li><p>검증 방법: 최종 시연회(평가관) 대상 원스톱 전체 파이프라인 구동 검증</p></li><li><p>개선 및 피드백 방안: 타 군수/작전 체계 연동 인터페이스(API) 확장 로드맵 제시</p></li></ul><p><strong>수행 및 풀이 참고자료</strong></p><ul><li><p><strong>통합 파이프라인 CLI 엔트리포인트 설계:</strong> <code>argparse</code>/<code>click</code>을 활용한 원스톱 실행 스크립트(<code>--mode {generate,preprocess,sync,dashboard,stress,hitl}</code>) 구조화 및 로깅 체계 구축</p></li><li><p><strong>경량 패키징 및 컨테이너화(Docker):</strong> 야전 단말 및 엣지 서버 환경을 위한 Alpine 기반 경량 Python Dockerfile 작성 및 오프라인 종속성 휠(Wheel) 패키징 가이드</p></li><li><p><strong>야전 배포 가이드 및 긴급 복구 SOP:</strong> 단말 전원 차단 시 WAL 복구, 오프라인 USB 동기화 실패 시 수동 병합 절차, 보안 암호키 갱신 매뉴얼 작성법</p></li><li><p><strong>DIB 국방 정책 연구 최종 보고서 작성 표준:</strong> 전술 통신 단절 공급망 회복력 분석 결과, 파이프라인 아키텍처 다이어그램, 정량적 성능 지표 요약 및 기대효과 정리 템플릿</p></li></ul>",
|
||||
"techStack": [
|
||||
"Python",
|
||||
"Google Colab",
|
||||
"E2E Pipeline",
|
||||
"Packaging",
|
||||
"Deployment Guide"
|
||||
],
|
||||
"deliverables": [
|
||||
"src/main_dat10.py (필수)",
|
||||
"README.md (필수)",
|
||||
"docs/dat10_final_report.pdf(md) (필수)"
|
||||
],
|
||||
"evaluationKeys": [
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정량적 평가] End-to-End 통합 파이프라인 실행 성공률 100%, 테스트 커버리지 85% 이상</strong></p><h4>PASS 증거</h4><p>정량적 지표(End-to-End 통합 파이프라인 실행 성공률 100%, 테스트 커버리지 85% 이상)를 달성하고 단위 테스트 및 실행 결과가 성공적으로 확인되었다.</p><h4>보완이 필요한 상태</h4><p>정량적 성능 지표가 기준에 미달하거나 실행 중 에러가 발생하는 경우.</p><h4>보완 방법</h4><p>타 부대/인접 체계와의 연동 인터페이스(API) 확장 로드맵 제시을(를) 적용하여 성능 및 파라미터를 보정한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[정성적 평가] 군 실무 즉시 도입 가능성, 운용 신뢰도 및 전략적 기대효과 기준을 충족하였는가?</strong></p><h4>PASS 증거</h4><p>공급망 재난 식별 데이터마이닝 SaaS(방산 공급망 회복력 연구) — 미국 방위산업기반(Defense Industrial Base) 정책연구 환경 및 작전/군수 실무 요구사항에 부합하는 알고리즘 논리와 타당성이 확보되었다.</p><h4>보완이 필요한 상태</h4><p>실무 환경에 대한 고려가 부족하거나 판단 기준이 모호한 경우.</p><h4>보완 방법</h4><p>실무 환경 변수와 판단 기준을 명세서 및 코드에 보강한다.</p>",
|
||||
"<h4>평가 질문 (PASS/FAIL)</h4><p><strong>[진행 추적 및 완료 기준] 원클릭 실행 스크립트 동작 확인 및 최종 발표 산출물 작성 완료을 완수하였는가?</strong></p><h4>PASS 증거</h4><p>요구된 산출물(`src/main_dat10.py`, `README.md`, `docs/dat10_final_report.pdf(md)`)이 지정된 경로에 생성되고 최종 검증 위원회(평가관) 모의 시연 및 전체 기능 통합 검증를 통과하였다.</p><h4>보완이 필요한 상태</h4><p>산출물이 미완성이거나 검증 절차를 통과하지 못한 경우.</p><h4>보완 방법</h4><p>최종 검증 위원회(평가관) 모의 시연 및 전체 기능 통합 검증 절차를 재수행하여 발견된 결함을 수정하고 문서를 완성한다.</p>"
|
||||
],
|
||||
"evaluationTypes": [
|
||||
"REQUIRED",
|
||||
"REQUIRED",
|
||||
"REQUIRED"
|
||||
],
|
||||
"evaluationText": "<h4>미션 판정</h4><p><strong>평가 구분:</strong> 필수</p><p><strong>난이도 / 복잡도:</strong> 최고급 / 종합 (진행률: 100%)</p><h4>미션 PASS 조건</h4><ul><li><p>정량적 기준: End-to-End 통합 파이프라인 실행 성공률 100%, 테스트 커버리지 85% 이상</p></li><li><p>정성적 기준: 군 실무 즉시 도입 가능성, 운용 신뢰도 및 전략적 기대효과</p></li><li><p>진행 추적 및 완료: 원클릭 실행 스크립트 동작 확인 및 최종 발표 산출물 작성 완료</p></li><li><p>검증 방법 통과: 최종 검증 위원회(평가관) 모의 시연 및 전체 기능 통합 검증</p></li></ul>",
|
||||
"aiGuidelines": {
|
||||
"allow": [
|
||||
"원스톱 파이프라인 통합 CLI(main_dat10.py) 아규먼트 구조화 보조",
|
||||
"Alpine 기반 오프라인 배포용 경량 Dockerfile 및 환경 설정 가이드",
|
||||
"야전 운용자 매뉴얼(SOP) 및 긴급 장애 복구 절차서 작성 자문"
|
||||
],
|
||||
"rules": [
|
||||
"군사 기밀 및 실제 부대/기관 민감 정보는 절대 입력하지 않는다.",
|
||||
"전체 10개 미션의 모듈이 유기적으로 연동되는 End-to-End 무결성을 확인한다.",
|
||||
"오프라인 환경에서도 원활히 구동될 수 있도록 종속성을 완비한다."
|
||||
],
|
||||
"forbid": [
|
||||
"실제 작전/행정 기밀 데이터 입력",
|
||||
"단독 실행 불가한 불완전 스크립트 패키징",
|
||||
"검증되지 않은 외부 비인가 라이브러리 추가"
|
||||
]
|
||||
},
|
||||
"guideSteps": [
|
||||
{
|
||||
"step": 1,
|
||||
"problem": "1~9단계 전 모듈 통합 엔드투엔드(End-to-End) 파이프라인(`src/main_dat10.py`) 구현하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>스키마, 전처리, P2P 교환, CRDT 동기화, 무결성 검증, 대시보드 UI, HITL 승인, 최적화 파라미터까지 전 모듈을 유기적으로 결합하는 단일 진입점을 구축합니다.</p><h4>해야 할 일</h4><ol><li><p>`src/main_dat10.py`에 CLI 인자(모드: 단말 오프라인, 중앙 서버, 시뮬레이션, 대시보드) 기반 통합 실행기를 작성한다.</p></li><li><p>모듈 간 데이터 파이프라인의 입출력을 매끄럽게 연결하고 전역 예외 처리(Global Exception Handler)를 적용한다.</p></li><li><p>단일 명령어로 전체 파이프라인이 자동 구동되는 원클릭 실행 플로우를 완성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `src/main_dat10.py` 메인 소스 코드</p></li><li><p>E2E 통합 파이프라인 아키텍처 다이어그램</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>단일 진입점에서 모든 모듈이 유기적으로 실행되며 E2E 실행 성공률 100%를 달성하는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>모듈 간 인터페이스 불일치나 런타임 오류가 발생할 경우 진입점 코드를 수정한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"problem": "야전 배포 자동화 스크립트 및 운용 환경설정 체계화하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>네트워크가 단절된 야전 단말에서도 비전문가 군수 요원이 손쉽게 시스템을 설치하고 구동할 수 있도록 배포 패키지를 패키징합니다.</p><h4>해야 할 일</h4><ol><li><p>의존성 라이브러리(requirements.txt / wheel 패키지)를 오프라인 설치 가능하도록 번들링한다.</p></li><li><p>Windows PowerShell 및 Linux 환경 지원 원클릭 설치/실행 쉘 스크립트(install.bat, run.sh)를 작성한다.</p></li><li><p>오프라인 단말용 초기 DB 셋업 및 기본 설정 초기화 루틴을 구성한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>원클릭 설치/실행 스크립트 파일</p></li><li><p>오프라인 배포 패키지 구성 명세서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>오프라인 환경에서 추가 인터넷 연결 없이 원클릭으로 시스템 설치 및 기동이 완료되는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>설치 스크립트 에러나 의존성 결손이 발생할 경우 패키징 구성을 보강한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"problem": "야전 설치 및 운용 매뉴얼(`README.md`) 작성하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>야전 군수 실무자와 전산 담당자가 시스템 설치, 일상 수불 관리, 동기화 오류 처리, HITL 승인을 직관적으로 수행할 수 있는 매뉴얼을 완성합니다.</p><h4>해야 할 일</h4><ol><li><p>프로젝트 개요, 시스템 요구사양, 오프라인 설치법, 모드별 실행 명령어를 상세히 기술한 `README.md`를 작성한다.</p></li><li><p>P2P 교환, 중앙 동기화, 대시보드 관제, 충돌 시 수동 승인 등 실무 시나리오별 단계별 가이드를 수록한다.</p></li><li><p>자주 묻는 질문(FAQ) 및 긴급 장애 복구(Troubleshooting) 절차를 포함한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `README.md` 문서</p></li><li><p>운용 시나리오별 명령어 가이드</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>매뉴얼이 명확하고 비전문가도 따라 할 수 있을 정도로 충실히 작성되었는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>필수 실행 명령어 설명이나 문제 해결 가이드가 누락된 경우 문서를 보완한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"problem": "최종 성과 보고서(`docs/dat10_final_report.md`) 작성 및 모의 시연 최종 통과하기",
|
||||
"activity": "<h4>이 단계의 역할</h4><p>1~10단계 전체 개발 성과, 정량적 성능 지표, 군사적 기대효과를 집대성한 최종 성과 보고서를 완성하고 종합 검증 시연을 완수합니다.</p><h4>해야 할 일</h4><ol><li><p>아키텍처, 성능 벤치마크, AAR 교훈, 향후 타 군 확장 계획을 총괄하는 `docs/dat10_final_report.md`를 작성한다.</p></li><li><p>전체 회귀 테스트 커버리지 85% 이상 달성 여부를 최종 확인한다.</p></li><li><p>오프라인 단독 운용 -> P2P 교환 -> 중앙 CRDT 동기화 -> 위협 탐지 -> HITL 승인 -> 대시보드 관제로 이어지는 E2E 모의 시연을 성공적으로 완료한다.</p></li><li><p><strong>Google Colab 환경 실행:</strong> Colab 코드 셀 상단에 <code>%%writefile [파일경로]</code> 매직 커맨드를 작성하여 소스코드를 생성하고, <code>!python</code> 또는 <code>!pytest</code> 쉘 명령어로 단위 동작을 즉시 검증한다.</p></li></ol><h4>학습자가 제출해야 하는 내용</h4><ul><li><p>Google Colab 실행 셀 결과 출력 로그 및 생성된 산출물 파일</p></li><li><p>완성된 `docs/dat10_final_report.md` 보고서</p></li><li><p>E2E 모의 시연 통과 증적 및 테스트 커버리지 보고서</p></li></ul>",
|
||||
"evalText": "<h4>PASS 기준</h4><ul><li><p>Google Colab 환경에서 스크립트 및 테스트 코드가 에러 없이 정상 실행되고 요구 지표를 충족하는가?</p></li><li><p>최종 성과 보고서가 완성되고 E2E 시연 성공률 100% 및 테스트 커버리지 85% 이상을 달성하였는가?</p></li></ul><h4>보완이 필요한 상태</h4><ul><li><p>Colab 실행 시 문법 오류, 모듈 경로 누락, 쉘 커맨드 실행 실패가 발생하는 경우 코드를 디버깅한다.</p></li><li><p>보고서 내용이 미비하거나 시연 중 결함이 발생한 경우 수정하여 최종 PASS를 획득한다.</p></li></ul>",
|
||||
"attachments": []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"attachments": []
|
||||
}
|
||||
Reference in new issue
Block a user