Homework¶
1. 한 줄 정의¶
스터디룸에서 선생님이 출제한 과제와, 학생이 답글(질문/답변) 형식으로 제출하고 피드백받는 흐름. 학습 과정 추적·성취 관리의 기반.
2. 핵심 개념¶
- Homework — 과제 본체. 제목·내용·제출 기한(날짜+시각)·대상 학생(개별/룸 전체). 선택: 수업노트 링크
- HomeworkStudent — 학생별 제출·피드백 매핑. 상태:
제출 전 / 제출 완료 / 지연 제출 - 제출(답글) — 텍스트 본문 + 이미지/파일 다중 첨부. 재제출 = 기존 제출물 수정으로 대체(수정 시각 기록). 마감 후 제출은 자동 '지연 제출'
- 피드백 — 선생님이 학생 제출물별 댓글/피드백 작성·수정·삭제
- 수업노트 링크 — Homework ↔ TeachingNote 상호 링크(상세 조회 시 새 창)
3. 관련 코드¶
[mvp-back:domain/homework](homework.md)[mvp-back:application/service/homework](homework.md)- soft delete:
HomeworkDeletePolicy(StudyRoom/TeachingNote cascade의 리프 — teams/engineering/guides/soft-delete) [mvp-front:src/app/(private)/studyroom](studyroom.md)내 과제 섹션
4. 상태/생명주기¶
Homework: assigned → due → closed
HomeworkStudent: 제출 전(pending) → 제출 완료(submitted) → 피드백 완료
→ 지연 제출(마감 후 제출)
과제 제출은 마감 이후에도 허용하되 '지연 제출'로 표시. 룸/노트 삭제 시 cascade 소프트 딜리트(Homework는 두 경로로 도달 가능 — 노트 연결 + 룸 직속).
5. 외부 의존¶
- S3 (제출 첨부 — 에디터 파일 업로드 정책 따름)
- 알림 (과제 생성 시 학생에게 발송, 사전 알림 옵션 1h/3h/6h/1d 전)
6. UI 노출¶
- 과제 생성(선생님): 제목/내용/기한/대상/노트 링크
- 과제 제출(학생): 답글 형식 + 첨부
- 과제 관리(선생님): 제출 현황 요약(제출/미제출/지연), 정렬, 피드백
- 과제 보기(학생/보호자): 학생=제출 후 피드백 확인, 보호자=보기 전용
7. 결정 이력¶
- [MS3] 과제 관리 FDD
8. 권한 / 정책 요약¶
| 역할 | 권한 |
|---|---|
| 선생님 | 생성·수정·삭제·피드백 |
| 학생 | 지정 과제 제출·수정 |
| 보호자 | 연결 자녀 과제 제출 여부·피드백 보기 전용 |
- 필수 항목 누락 시 생성 불가, 기한이 현재 시각 이전이면 경고
- 첨부 확장자/용량 제한은 에디터 업로드 정책 따름
9. 열린 질문 / TODO¶
- 통계 보기(제출률·지연 비율·평균 제출 시간) — 확장 고려
- 챌린지식 풀이가 Homework와 별개인지 통합인지 → teams/engineering/domains/challenge는 출제 주체·범위 다름으로 별개 유지 (ADR-0006 예정)