# 온라인 강좌 개발 (08-course-builder)

> MoAI-Cowork v1.0.0 하네스 레퍼런스

## 개요

커리큘럼 설계부터 강의 계획, 퀴즈, 실습 환경까지 전체 온라인 강좌 개발을 하는 에이전트 팀 협업 하네스입니다.

## 전문가 역할

- **강의 콘텐츠 작성자**: 커리큘럼 기반으로 각 강의의 강의 계획서, 슬라이드 아웃라인, 강사용 노트, 학습자용 교재를 작성합니다.
  - 강의 계획 작성: 각 강의의 학습 흐름 설계 및 강의 계획서 작성
  - 슬라이드 구성: 프레젠테이션 슬라이드의 콘텐츠, 구조, 시각 자료 계획
  - 강사용 노트: 추가 설명, 사례, 질문 프롬프트 작성
  - 학습자 자료: 강의 중·후 참고할 요약 교재 작성
  - 사례 개발: 추상적 개념을 구체적으로 이해하도록 실제 사례 개발

- **강좌 검토자**: 커리큘럼, 강의 계획, 퀴즈, 실습 간의 학습목표 정렬, 난이도 일관성, 콘텐츠 커버리지를 검증합니다.
  - 학습목표 정렬성: 모든 강의·퀴즈·실습이 커리큘럼 학습목표와 매핑되어 있는가?
  - 난이도 일관성: 강의→퀴즈→실습의 난이도 곡선이 자연스럽게 진행되는가?
  - 커버리지 분석: 커리큘럼 목표 중 미흡한 부분이 있는가?
  - 학습 시간 검증: 예상 학습 시간이 현실적인가?
  - 교육학적 품질: 능동적 학습, 피드백, 스캐폴딩이 적절히 설계되어 있는가?

- **커리큘럼 설계자**: 학습목표 수립, 커리큘럼 구조 설계, 모듈/강의 분할, 선행조건 매핑을 담당합니다.
  - 학습목표 개발: Bloom 분류학(이해→적용→분석→평가→창작)에 따라 단계별 목표 정의
  - 커리큘럼 구조: 모듈→강의→주제 단계별 분할 및 논리적 순서 결정
  - 선행조건 매핑: 각 모듈의 선행 지식 요구사항 명시
  - 학습 시간 추정: 모듈별 학습 시간 추정(영상+실습+퀴즈)
  - 학습 경로 설계: 필수/선택 경로 구분 및 난이도별 분기(초급/중급/고급)

- **실습 설계자**: 각 강의와 모듈의 학습목표에 맞춘 실습, 미니 프로젝트, 최종 프로젝트를 설계합니다.
  - 강의별 실습: 핵심 개념 적용하는 단기 실습(15-30분)
  - 모듈별 미니프로젝트: 다양한 개념 통합(1-2시간)
  - 최종 프로젝트: 모든 학습 종합(4-8시간)
  - 루브릭: 탁월함/양호/개선필요 수준별 평가 기준
  - 스캐폴딩 설계: 난이도별 힌트, 템플릿, 스타터 코드 제공

- **퀴즈 제작자**: 형성평가(강의별 퀴즈)와 총괄평가(모듈/강좌 시험)를 설계합니다.
  - 형성평가: 강의별 3-5개 항목의 이해도 점검 퀴즈
  - 총괄평가: 모듈/강좌별 10-20개 항목의 역량 측정 시험
  - 문제 유형 다양화: 객관식, 단답형, 코드 작성, 빈칸 채우기, 매칭 등
  - 오답 피드백: 틀린 이유 설명 및 복습 방향 제시
  - 난이도 조정: 쉬움(60%)→중간(30%)→어려움(10%) 비율 유지

## 워크플로우

### 단계 1: 준비 (오케스트레이터 직접 수행)

1. 사용자 입력에서 추출:
   - **강좌 주제**: 다루는 분야/주제
   - **대상 학습자**: 초급/중급/고급, 배경 지식
   - **강좌 규모**: 총 학습 시간, 모듈 수
   - **실습 환경** (선택): 사용할 도구·언어·플랫폼
   - **기존 파일** (선택): 커리큘럼, 강의 계획 등

2. 프로젝트 루트에 `_workspace/` 디렉토리 생성
3. 입력 정보를 정리하여 `_workspace/00_input.md`로 저장
4. 기존 파일이 있으면 복사 후 해당 단계 스킵
5. 요청 범위에 따라 실행 모드 결정

### 단계 2: 팀 구성 및 실행

| 순서 | 작업 | 담당 | 의존성 | 산출물 |
|------|------|------|--------|--------|
| 1 | 커리큘럼 설계 | 커리큘럼 설계자 | 없음 | `01_curriculum.md` |
| 2a | 강의 계획 작성 | 강의 작성자 | 작업 1 | `02_lesson_plans.md` |
| 2b | 퀴즈 개발 | 퀴즈 제작자 | 작업 1 | `03_quizzes.md` |
| 2c | 실습 설계 | 실습 설계자 | 작업 1 | `04_labs.md` |
| 3 | 강좌 검토 | 검토자 | 작업 2a, 2b, 2c | `05_review_report.md` |

작업 2a, 2b, 2c는 **병렬 진행**되며 작업 1에만 의존합니다.

**에이전트 간 커뮤니케이션 흐름:**
- 설계자 완료 → 학습목표와 개념을 작성자에게, Bloom 비율을 퀴즈 제작자에게, 실습 환경을 설계자에게 전달
- 작성자 완료 → 핵심 개념을 퀴즈 제작자에게, 강의 내용을 실습 설계자에게 전달
- 검토자 → 모든 산출물 교차 검증, RED 항목 발견 시 수정 요청 → 재작업 → 재검증 (최대 2회)

### 단계 3: 통합 및 최종 산출물

1. `_workspace/` 내 모든 파일 확인
2. RED 항목 해결 여부 확인
3. 사용자에게 최종 요약 보고

## 산출물

- `00_input.md` — 정리된 사용자 입력
- `01_curriculum.md` — 커리큘럼/강좌 설계 문서
- `02_lesson_plans.md` — 강의 계획서/강사 노트
- `03_quizzes.md` — 퀴즈/평가 항목
- `04_labs.md` — 실습/프로젝트
- `05_review_report.md` — 검토 보고서

## 오류 처리

| 오류 유형 | 대응 전략 |
|---------|---------|
| 도메인 전문성 부족 | 웹 검색으로 보완, 보고서에 "외부 검증 권장" 기록 |
| 실습 환경 불명확 | 무료 클라우드 도구(Google Colab 등)로 기본 설정 |
| 에이전트 실패 | 1회 재시도 → 해당 산출물 없이 진행, 검토 보고서에 기록 |
| 검토 중 RED 발견 | 수정 요청 → 재작업 → 재검증 (최대 2회) |
| 학습목표 공백 발견 | 관련 에이전트에 추가 콘텐츠 요청 |
