선생님 기능 개요
K-Lounge는 선생님들이 효과적으로 한국어 수업을 관리할 수 있도록 다양한 기능을 제공합니다.
📋 목차
🎓 강의 관리
선생님은 커뮤니티 내에서 여러 강의를 생성하고 관리할 수 있습니다.
주요 기능
- ✅ 강의 생성, 수정, 삭제
- ✅ 강의 제목 (영어/한국어)
- ✅ 강의 설명
- ✅ 공개/비공개 설정
- ✅ 강의별 챕터/레슨 구조화
접근 경로
/c/{slug}/settings → 강의 관리 섹션
자세한 내용: 강의 관리 문서
📚 챕터/레슨 관리
각 강의는 챕터로 구성되고, 각 챕터는 여러 레슨을 포함할 수 있습니다.
주요 기능
- ✅ 챕터 생성, 수정, 삭제
- ✅ 레슨 생성, 수정, 삭제
- ✅ 순서 관리 (orderIndex)
- ✅ 레슨 콘텐츠 (텍스트, 비디오)
- ✅ 레슨 완료 추적
구조
강의 (Course)
└── 챕터 1 (Chapter)
├── 레슨 1-1 (Lesson)
├── 레슨 1-2 (Lesson)
└── 레슨 1-3 (Lesson)
└── 챕터 2 (Chapter)
├── 레슨 2-1 (Lesson)
└── 레슨 2-2 (Lesson)
자세한 내용: 챕터/레슨 관리 문서
📝 과제 관리
선생님은 학생들에게 과제를 배정하고 자동으로 채점받을 수 있습니다.
주요 기능
- ✅ 과제 생성, 수정, 삭제
- ✅ 마감일 설정
- ✅ 만점 설정 (기본 100점)
- ✅ 특정 강의와 연결
- ✅ AI 자동 채점 (GPT-4o-mini)
- ✅ BlockNote 에디터 (마크다운, 이미지 첨부)
- ✅ 제출 현황 확인
과제 생성 흐름
/c/{slug}/settings에서 "새 과제 추가" 클릭- 과제 제목, 설명, 안내사항 작성 (BlockNote 에디터 사용)
- 마감일 및 만점 설정
- (선택) 연결할 강의 선택
- 저장
AI 자동 채점
학생이 과제를 제출하면 AI가 자동으로:
- 점수 산출 (0-100점)
- 상세 피드백 제공
- 잘한 점 3가지 제시
- 개선할 점 3가지 제시
평가 기준:
- 과제 지시사항 준수 여부
- 한국어 문법과 표현 정확성
- 내용 충실성 및 논리성
- 창의성과 노력도
자세한 내용: 과제 관리 문서
📢 공지사항 관리
커뮤니티 멤버들에게 중요한 소식을 공지할 수 있습니다.
주요 기능
- ✅ 공지사항 생성, 수정, 삭제
- ✅ 상단 고정 (Pin) 기능
- ✅ BlockNote 에디터 (마크다운, 이미지 첨부)
- ✅ 커뮤니티 페이지에 자동 표시
접근 경로
- 작성:
/c/{slug}/settings→ 공지사항 관리 섹션 - 확인:
/c/{slug}/community(고정된 공지사항 상단 표시)
자세한 내용: 공지사항 관리 문서
📊 학생 진도 추적
선생님은 각 학생의 학습 진행 상황을 확인할 수 있습니다.
추적 항목
- ✅ 레슨별 완료 여부
- ✅ 전체 진행률 (퍼센트)
- ✅ 과제 제출 현황
- ✅ 과제 점수 및 피드백
- ✅ 포인트 및 레벨
확인 방법
-
강의실 페이지:
/c/{slug}/classroom/{courseId}- 각 학생의 레슨 완료 현황 확인
- 체크마크(✓)로 완료 표시
-
과제 페이지:
/c/{slug}/assignments- 전체 과제 목록
- 제출/미제출/채점 완료 통계
-
리더보드:
/c/{slug}/leaderboard- 학생별 포인트 랭킹
- 레벨 및 Streak 확인
🤖 AI 자동 채점
K-Lounge의 핵심 기능 중 하나는 AI를 활용한 자동 채점 시스템입니다.
작동 방식
-
학생 과제 제출
- 학생이
/c/{slug}/assignments/{id}페이지에서 과제 제출 - 최소 10자 이상 필수
- 학생이
-
AI 채점 시작
- OpenAI GPT-4o-mini 모델 사용
- 과제 제목, 지시사항, 제출 내용 분석
-
채점 결과 생성
- 점수 (0-100점, 만점에 맞게 스케일링)
- 종합 피드백
- 잘한 점 3가지
- 개선할 점 3가지
-
자동 저장
- DB에 채점 결과 저장
gradedBy필드가 null (AI 채점 표시)- 즉시 학생에게 결과 표시
-
포인트 지급
- 과제 제출 시 20 포인트 자동 지급
- Streak 업데이트
코드 위치
- AI 채점 로직:
/lib/ai-grading.ts - API 엔드포인트:
/api/assignments/[id]/route.ts(POST 메서드)
예시 피드백
전반적으로 한국 문화에 대한 이해가 잘 드러나는 에세이입니다.
문법적으로 큰 오류 없이 자연스럽게 작성하셨습니다.
✅ 잘한 점:
• 한국의 전통 문화와 현대 문화를 균형있게 다루었습니다
• 문단 구성이 논리적이며 흐름이 자연스럽습니다
• 다양한 어휘를 활용하여 표현력이 풍부합니다
💡 개선할 점:
• 일부 조사 사용이 부정확합니다 (예: "에서"와 "에게" 혼동)
• 구체적인 예시를 더 추가하면 설득력이 높아집니다
• 결론 부분을 좀 더 강하게 마무리하면 좋겠습니다
✅ 출석 체크 시스템
선생님은 실시간으로 출석 코드를 생성하고, 학생들은 해당 코드를 입력하여 출석 체크를 할 수 있습니다.
주요 기능
- ✅ 8자리 고유 출석 코드 자동 생성
- ✅ 시간 제한 세션 (기본 5분, 설정 가능)
- ✅ 실시간 카운트다운 타이머
- ✅ 코드 복사 기능
- ✅ 학생별 출석 체크 (+5 포인트 자동 지급)
- ✅ 중복 출석 방지
- ✅ 출석 통계 및 히스토리
접근 경로
- 선생님 (세션 생성):
/c/{slug}/attendance - 학생 (출석 체크):
/c/{slug}/check-in
사용 시나리오
- 수업 시작 시 선생님이 "출석 세션 생성" 클릭
- 8자리 코드를 화면에 표시하거나 구두로 공지
- 학생들이 Check-in 페이지에서 코드 입력
- 출석 완료 시 +5 포인트 자동 지급
- 실시간으로 출석 현황 확인
자세한 내용: 출석 체크 시스템 문서
📊 선생님 대시보드
커뮤니티의 전반적인 학습 현황을 한눈에 파악할 수 있는 통합 관리 페이지입니다.
주요 기능
- ✅ 8개 통계 카드: 총 학생, 활동 중 학생, 총 과제/퀴즈, 제출 현황, 평균 점수 등
- ✅ 상위 학생 (Top 5): 점수 순위, 레벨, 연속 출석일
- ✅ 관심 필요 학생: Streak이 0인 학생 목록 (학습 동기 저하 감지)
- ✅ 수동 채점 대기 과제: AI 채점은 되었지만 수동 채점이 필요한 과제 목록
- ✅ 빠른 액션 버튼: 출석 관리, 과제 관리, 퀴즈 관리, 커뮤니티 설정
접근 경로
/c/{slug}/teacher-dashboard
활용 방법
- 매일 아침: 전체 통계 확인, 관심 필요 학생 체크, 채점 대기 과제 처리
- 주간 분석: 7일 일기 작성 추이, 퀴즈 평균 점수, 출석률 모니터링
- 월간 리포트: 전체 통계 스크린샷, 상위 학생 시상, 비활동 학생 상담 계획
자세한 내용: 선생님 대시보드 문서
📈 성적 관리 시스템
모든 학생의 과제 및 퀴즈 성적을 한눈에 볼 수 있는 종합 성적표입니다.
주요 기능
- ✅ 매트릭스 테이블: 학생별 행, 과제/퀴즈별 열
- ✅ 색상 코딩: 90% 이상(초록), 80-89%(파랑), 70-79%(노랑), 70% 미만(빨강)
- ✅ 통계 열: 과제 평균, 퀴즈 평균, 종합 평균, 완료율
- ✅ 가로 스크롤: 과제/퀴즈가 많을 때 스크롤 가능
- ✅ 정렬 기능: 이름, 레벨, 포인트, 각 과제/퀴즈 점수순 정렬
접근 경로
/c/{slug}/grades
활용 방법
- 학기말 성적 산출: 전체 학생의 종합 평균으로 최종 성적 산출
- 미제출 학생 파악: "-" 표시된 학생 확인 후 독촉
- 저성취 학생 지원: 빨간색/노란색 점수가 많은 학생 확인 후 보충 수업
자세한 내용: 성적 관리 시스템 문서
✏️ 수동 채점
AI 자동 채점 결과를 검토하고, 필요한 경우 수동으로 점수를 수정하거나 추가 피드백을 제공할 수 있습니다.
주요 기능
- ✅ 이원화 채점 시스템: AI 점수 + 수동 점수 분리 저장
- ✅ 점수 우선순위: manualScore가 있으면 최종 점수로 사용
- ✅ 인라인 편집: 채점 목록에서 바로 점수 입력 가능
- ✅ 루브릭 기반 채점: 채점 기준(문법, 어휘, 내용)을 JSON 형태로 저장
- ✅ 추가 피드백: 선생님만의 맞춤 피드백 작성
- ✅ 채점 대기 목록: AI 채점만 완료된 제출물 필터링
접근 경로
/c/{slug}/assignments/[assignmentId]/grading
채점 워크플로우
- 채점 대기 목록에서 AI 채점 결과 확인
- 과제 내용과 루브릭 기준 검토
- AI 점수가 적절하면 그대로 사용, 부적절하면 수동 점수 입력
- 추가 피드백 작성 후 저장
- 학생에게 최종 점수 및 피드백 전달
자세한 내용: 수동 채점 문서
학생 진도 상세 추적
각 학생의 학습 진행 상황을 개별적으로 상세히 확인할 수 있습니다.
주요 기능:
- ✅ 학생 목록 페이지: 전체 학생 검색 및 필터링
- ✅ 개별 진도 페이지: 과제, 퀴즈, 일기, 출석 탭으로 구분
- ✅ 통계 카드: 완료율, 평균 점수, 총 활동 횟수
- ✅ 실시간 검색: 학생 이름으로 즉시 검색
접근 경로:
- 학생 목록:
/c/{slug}/students - 개별 진도:
/c/{slug}/students/[memberId]
자세한 내용: 학생 진도 추적 문서
🎯 권한 시스템
선생님 기능은 커뮤니티 내 역할에 따라 접근이 제한됩니다.
역할별 권한
| 기능 | Owner | Admin | Moderator | Member |
|---|---|---|---|---|
| 강의 생성/수정/삭제 | ✅ | ✅ | ❌ | ❌ |
| 챕터/레슨 관리 | ✅ | ✅ | ❌ | ❌ |
| 과제 생성/수정/삭제 | ✅ | ✅ | ❌ | ❌ |
| 공지사항 작성 | ✅ | ✅ | ✅ | ❌ |
| 공지사항 고정 | ✅ | ✅ | ❌ | ❌ |
| 학생 진도 확인 | ✅ | ✅ | ✅ | ❌ |
| 과제 제출 | ✅ | ✅ | ✅ | ✅ |
| 출석 세션 생성 | ✅ | ✅ | ❌ | ❌ |
| 출석 체크 | ✅ | ✅ | ✅ | ✅ |
| 선생님 대시보드 | ✅ | ✅ | ❌ | ❌ |
| 성적 관리 | ✅ | ✅ | ❌ | ❌ |
| 수동 채점 | ✅ | ✅ | ❌ | ❌ |
| 학생 진도 상세 추적 | ✅ | ✅ | ❌ | ❌ |
📱 사용자 인터페이스
커뮤니티 설정 페이지
경로: /c/{slug}/settings
이 페이지에서 다음을 관리할 수 있습니다:
- 기본 정보 (커뮤니티 이름, 설명)
- 포인트 설정 (활동별 획득 포인트)
- 강의 관리
- 공지사항 관리
- 과제 관리
- 초대 링크
- 위험 구역 (커뮤니티 삭제)
BlockNote 에디터 적용 영역
- ✅ 게시글 작성
- ✅ 공지사항 작성
- ✅ 과제 설명 및 안내사항
- ✅ 레슨 콘텐츠 (예정)
BlockNote 기능:
- 마크다운 형식 지원
- 이미지 복사/붙여넣기
- 이미지 드래그 앤 드롭
- 다양한 블록 타입 (헤딩, 리스트, 코드 등)
- JSON 형태로 저장
🧪 E2E 테스트
모든 선생님 기능은 Playwright를 사용한 E2E 테스트가 작성되어 있습니다.
테스트 파일
e2e/13-courses.spec.ts- 강의 관리e2e/14-chapters-lessons.spec.ts- 챕터/레슨 관리e2e/15-announcements.spec.ts- 공지사항 관리e2e/16-assignments.spec.ts- 과제 관리
테스트 실행
# 전체 선생님 기능 테스트
npx playwright test e2e/13-courses.spec.ts e2e/14-chapters-lessons.spec.ts e2e/15-announcements.spec.ts e2e/16-assignments.spec.ts
# 특정 테스트만 실행
npx playwright test e2e/16-assignments.spec.ts
🔜 향후 개선 사항
완료된 기능 ✅
- 선생님 대시보드 (모든 학생 제출 현황 한눈에 보기)
- 수동 채점 기능 (AI 채점 외 선생님 직접 채점)
- 출석 체크 기능
- 성적 통계 및 분석
- 학생 진도 상세 추적
계획 중인 기능
- 과제 재제출 기능
- 일괄 채점 기능
- 피드백 템플릿 저장
- 과제 복사 기능
- 레슨 퀴즈 기능
- QR 코드 기반 출석
- 위치 기반 출석 (GPS)
- Excel/PDF 성적표 내보내기
- 학생에게 직접 메시지 발송
- AI 기반 학습 패턴 분석
- 실시간 WebSocket 업데이트
📞 지원
문제가 발생하거나 질문이 있으시면:
- GitHub Issues: 이슈 등록
- 이메일: support@klounge.kr