TESOL 성적표
CLASS-RESULT-OF-COURSE · /my-class/result-of-course
기능
3
API 호출
0
가드레일
3
id 가 테스트 이름
구현 단계
5 / 5
개발 스펙
이 화면에서 할 수 있어야 하는 것 (1)
- 유닛별 점수와 전체 평균을 본다.
비즈니스 규칙 (3)
- 통과한 유닛만 점수가 잡힌다. 가장 나중 차수부터 거슬러 올라가 70점 이상인 첫 점수를 쓴다(C→B→A).근거: resultOfCourse.php:110~121
- 통과하지 못한 유닛은 0점이고 평균 계산에서 빠진다.근거: resultOfCourse.php:121
- Unit Total = 합격 유닛 점수 합 ÷ 합격 유닛 수, 소수점 2자리.근거: resultOfCourse.php:143
API (1)
| 메서드 | 경로 | 권한 | 모듈 · 설명 |
|---|---|---|---|
GET | /api/learning/courses/{course}/score-report | 수강생 | 성적표. domains:learning:learning-web응답: { rows: [{ unit, label, studentScore, score }], average, passedUnits } |
가드레일 (3) — id 가 곧 테스트 이름이다
| id | 반드시 만족해야 하는 것 | 등급 |
|---|---|---|
score-average-excludes-failed | 평균의 분모는 합격 유닛 수여야 한다. 전체 유닛 수로 나누면 안 된다. | critical |
score-picks-latest-passing-kind | A 불합격 후 B 합격이면 B 점수가 잡혀야 한다. | high |
score-no-passed-units-is-zero | 합격 유닛이 하나도 없으면 평균이 0 이어야 한다(0 나누기 금지). | high |
구현 계획 (5/5)
- ●CurriculumUnit · ScoreReport · StudentInfo · 포트 2개
learning-domain - ●LearningUseCase · CourseCatalog
learning-app - ●Curriculum · Learner 어댑터
learning-infrastructure - ●/api/learning/courses/{course}/score-report 구현
learning-web - ●Next.js 를 BFF 로 전환 — Prisma 직접 접근 제거
wvctesol
서버 사이드 구현 계획 — 자바 객체별 요구사항 (5/5)
| 객체 | 모듈 | 책임 · 지켜야 할 것 |
|---|---|---|
● ScoreReportrecord | learning-domain | 성적표 계산. 원본 resultOfCourse.php:99~143.
|
● CourseCatalogclass | learning-app | 과정별 상수(유닛 수 · 차수 순서 · 시험 유무).
|
● LearningUseCaseservice | learning-app | 커리큘럼 · 성적표 · 학생정보 조회.
|
● CurriculumRepositoryAdapterclass | learning-infrastructure | unit · lesson 조회.
|
● LearnerRepositoryAdapterclass | learning-infrastructure | 수강 자격 · 성적 · 학생정보 조회.
|
테스트 방법 (3)
| 가드레일 | 종류 | 확인 방법 |
|---|---|---|
score-average-excludes-failed | unit | 2개 유닛만 통과한 계정의 Unit Total 이 (합/2) 여야 한다 |
score-picks-latest-passing-kind | e2e | UNIT2 가 A 0점 · B 100점일 때 성적표의 UNIT2 점수가 100 |
score-no-passed-units-is-zero | e2e | 통과 유닛이 없는 계정의 Unit Total 이 0 이고 예외가 없다 |
스냅샷
로그인 세션으로 촬영한 실제 화면입니다.

기능 목록 (3)
인증
- ·세션 확인
- ·로그인 필요
proxy 가 /login 으로 보냄
하드코딩
- ·하드코딩 데이터
tabs
화면 이동
← 이 화면으로 오는 곳
없음
이 화면에서 가는 곳 →
CLASS/my-classCLASS-TEC-ONLINE/my-class/tec-onlineCLASS-UNIVERSITY-REGISTER/my-class/university-registerAUTH-LOGIN/login
연결
API
직접 호출하는 API 가 없습니다
소스
src/app/my-class/result-of-course/page.tsx