9.6 KiB
9.6 KiB
시나리오 코드(MD) ➔ Jupyter/Colab Notebook(.ipynb) 일괄 변환 및 Colab 배포 계획서
1. 개요 및 목적
본 계획은 scenario_md 하위 60개 프로젝트 디렉토리에 수록된 *_정답코드.md 파일과 scenario_json의 미션 메타데이터를 결합하여, Google Colab(구글 코랩) 및 로컬 Jupyter 환경에서 즉시 실행 가능한 Jupyter Notebook (.ipynb) 파일들을 일괄 생성하고 원클릭 실습 환경을 구축하는 것을 목표로 합니다.
2. 데이터 소스 및 산출물 구조
2.1 소스 데이터 자산
| 데이터 자산 | 위치 / 경로 | 주요 내용 및 역할 |
|---|---|---|
| 정답 코드 MD | scenario_md/{Project_Dir}/*_정답코드.md |
60개 프로젝트(총 600개 미션)의 미션별 독립 실행 파이썬 코드 및 설명 |
| 프로젝트 JSON | scenario_json/{ID}.json |
프로젝트 및 10개 미션별 상세 메타데이터 (목표, 시나리오, 실습가이드, 평가기준) |
| 학생 코드 생성기 | scripts/student_generator.py |
정답 코드에서 핵심 로직을 추출하여 학생용 실습 스켈레톤(TODO 빈칸/힌트) 자동 생성기 |
2.2 최종 산출물 체계
생성되는 노트북은 프로젝트별 독립 디렉토리(uploads/{ProjectID}/) 하위에 분류하여 강사용/참고용 정답 노트북, 학습자용 학생 실습 노트북, 그리고 SOP/모의훈련형 실습 워크북 노트북으로 체계적으로 관리합니다.
uploads/
├── ADM01/
│ ├── ADM01_solution.ipynb # 정답 및 완전 실행 노트북
│ └── ADM01_student.ipynb # 학생 실습용 빈칸/힌트 노트북
├── C207/
│ └── C207_workbook.ipynb # 작전절차(SOP) 및 모의훈련 워크북 노트북
├── OPS01/
│ ├── OPS01_solution.ipynb
│ └── OPS01_student.ipynb
└── ... (총 60개 프로젝트 디렉토리)
3. Jupyter / Colab 노트북 셀 구조 설계
각 .ipynb 파일은 Colab 환경에서 가장 쾌적하게 실행될 수 있도록 아래와 같은 표준 셀 시퀀스로 구성됩니다.
flowchart TD
Cell1[셀 1: 프로젝트 타이틀 & Colab 뱃지<br>Markdown 셀] --> Cell2[셀 2: Colab 환경 설정 & 패키지 설치<br>Code 셀]
Cell2 --> M01[미션 1: 설명 및 가이드 MD ➔ 코드 셀]
M01 --> M02[미션 2: 설명 및 가이드 MD ➔ 코드 셀]
M02 --> MDot[...]
MDot --> M10[미션 10: AAR 종합 분석 MD ➔ 코드 셀]
3.1 셀별 상세 구성
-
Cell 1 (Header & Colab Badge) [Markdown]:
- 프로젝트 ID, 제목, 도메인 분야, 학습 목표 요약
Open In Colab뱃지: 클릭 시 본 노트북이 Colab에서 즉시 열리는 원클릭 링크 제공
# [ADM01] 결원·근무부하 추세 대시보드와 보충 필요량 예측 [](https://colab.research.google.com/github/edunlab/milicontent2/blob/main/uploads/ADM01/ADM01_solution.ipynb) > **[안내]** 본 실습의 모든 데이터는 코드 내부에서 난수로 자동 생성되는 교육용 가상 데이터입니다. -
Cell 2 (Environment Setup) [Code]:
- 코랩 환경 필수 패키지 자동 설치 및 폰트/경고 설정
# Colab 환경 설정 및 필수 라이브러리 확인 !pip install -q numpy pandas matplotlib scipy scikit-learn import sys import numpy as np import pandas as pd import matplotlib.pyplot as plt import warnings warnings.filterwarnings('ignore') print("실행 환경 준비 완료: Python", sys.version.split()[0]) -
Mission Cells (M01 ~ M10 반복 구성):
- Mission Intro [Markdown]: 미션 순번, 제목, 난이도, 소요시간, 문제 배경 및 수행 지침, 검증 기준
- Mission Code [Code]:
- 정답 노트북 (
solution): 완성된 파이썬 실행 코드 및 시각화/검증 로직 - 학생 실습 노트북 (
student): 핵심 알고리즘 및 데이터 가공 부위에### TODO: 코드 작성 ###및 힌트 주석 적용
- 정답 노트북 (
- Mission Output/Check [Markdown]: 예상 실행 콘솔 출력 및 PASS/FAIL 확인 지침
4. 학생 실습용 코드(Student Code) 자동화 규칙
scripts/student_generator.py의 지능형 변환 규칙을 적용하여 실습 몰입도를 높입니다:
- 데이터 생성 및 유틸리티 함수: 기초 가상 데이터 생성 로직은 그대로 유지하여 즉시 실습 착수 가능하도록 구성
- 핵심 분석 / 모델링 / 계산 로직:
- 주요 수식, Scikit-learn 모델 훈련/예측, 판정 로직을
### TODO: [미션 지침에 맞게 구현] ###으로 블록 처리 - 주석으로 파라미터 힌트 및 반환값 규격 명시
- 주요 수식, Scikit-learn 모델 훈련/예측, 판정 로직을
- 평가 및 검증 Assert 로직: 실습자가 작성한 코드가 올바른지 스스로 검증할 수 있도록 테스트 코드는 활성화 상태로 유지
5. 단계별 실행 계획 (Implementation Phases)
flowchart TD
P1[Phase 1: 통합 빌더 스크립트 개발<br>scripts/build_all_notebooks.py] --> P2[Phase 2: 60개 시나리오 일괄 빌드<br>uploads/{ProjectID}/ 에 생성]
P2 --> P3[Phase 3: 무결성 및 구문 검증<br>nbformat 스키마 & AST 문법 검사]
P3 --> P4[Phase 4: Colab 배포 URL 매핑 & 문서화]
[단계 1] 통합 빌더 스크립트 개발 (scripts/build_all_notebooks.py)
scenario_md내*_정답코드.md및*_실습자료*.md파싱 모듈scenario_json/*.json메타데이터 연동 모듈 (미션 설명 및 가이드 삽입)student_generator.py를 활용한 학생용 코드 변환 모듈 결합- 표준
.ipynb(v4 format) JSON 구조 생성 및 파일 저장
[단계 2] 60개 시나리오 일괄 빌드 실행
- 총 60개 프로젝트 폴더 생성 (
uploads/{ProjectID}/) - 코드형 35개 과제:
solution.ipynb+student.ipynb(70개 파일) - 워크북형 25개 과제:
workbook.ipynb(25개 파일) - 총 95개
.ipynb노트북 생성 완료
[단계 3] 노트북 스키마 및 문법 검증 (QA)
nbformat을 통한 Jupyter Notebook 표준 포맷 검증- 파이썬
ast.parse()를 통한 정답 코드 구문 오류 0건 검증
[단계 4] Google Colab 배포 및 활용 가이드
- GitHub 저장소 배포 시 일괄 동작하는 Colab 링크 생성
scenario_json에 노트북 경로 또는 Colab URL 메타데이터 연계 지원
6. 변환 실행 및 검증 결과 (Execution Results)
- 변환 실행 일시: 2026-10-08
- 빌드 실행 스크립트:
scripts/build_all_notebooks.py - 산출물 저장 위치:
uploads/{ProjectID}/(총 60개 폴더)
6.1 산출물 생성 통계
| 실습 유형 | 프로젝트 수 | 생성 파일 유형 | 생성 파일 수 | 대표 프로젝트 |
|---|---|---|---|---|
| 코드 기반 실습 | 35개 | {ID}_solution.ipynb{ID}_student.ipynb |
70개 | ADM01, OPS01, ISR01, DAT06, MNT02 등 |
| SOP/모의훈련 실습 | 25개 | {ID}_workbook.ipynb |
25개 | C207, C210, ISR05, LOG04, TRN04 등 |
| 합계 | 60개 | - | 95개 | 전 분야 60개 프로젝트 100% 완료 |
6.2 품질 검증 (QA) 결과
| 검증 항목 | 검증 대상 | 검증 기준 | 결과 |
|---|---|---|---|
| JSON/스키마 규격 | 95개 노트북 전체 | nbformat (v4) 표준 JSON 포맷 준수 여부 |
PASS (100%) |
| 파이썬 문법성 검증 | 35개 솔루션 코드 셀 | ast.parse() 구문 분석 시 SyntaxError 여부 |
PASS (0건) |
| Colab 호환성 | 95개 노트북 전체 | Open In Colab 뱃지 및 환경설정 셀 포함 여부 |
PASS (100%) |
| 미션 완결성 | 600개 미션 전체 | 미션 1~10 메타데이터 및 지침 바인딩 여부 | PASS (100%) |
6.3 Colab 원클릭 실행 URL 형식
# 정답 노트북 (Solution)
https://colab.research.google.com/github/edunlab/milicontent2/blob/main/uploads/{ProjectID}/{ProjectID}_solution.ipynb
# 학생 실습용 노트북 (Student)
https://colab.research.google.com/github/edunlab/milicontent2/blob/main/uploads/{ProjectID}/{ProjectID}_student.ipynb
# 작전절차/모의훈련 워크북 (Workbook)
https://colab.research.google.com/github/edunlab/milicontent2/blob/main/uploads/{ProjectID}/{ProjectID}_workbook.ipynb