퀴즈 응시하기
학생이 퀴즈를 확인하고 응시하는 방법을 설명합니다.
목차
퀴즈 목록 확인
페이지 접근
/c/{community-slug}/quizzes 페이지에서 모든 퀴즈를 확인할 수 있습니다.
퀴즈 상태별 탭
퀴즈는 다음 세 가지 탭으로 구분됩니다:
-
전체 (All)
- 모든 퀴즈 표시
- 응시 여부 확인 가능
-
미완료 (Available)
- 아직 응시하지 않은 퀴즈
- 응시 가능한 퀴즈만 표시
-
완료 (Completed)
- 응시한 퀴즈
- 점수 및 결과 확인 가능
퀴즈 카드 정보
각 퀴즈 카드에는 다음 정보가 표시됩니다:
- 퀴즈 제목
- 퀴즈 설명
- 문제 수
- 제한 시간 (설정된 경우)
- 응시 상태 (완료/미완료)
- 최고 점수 (응시한 경우)
- 시도 횟수
퀴즈 응시하기
1. 퀴즈 시작
퀴즈 카드를 클릭하면 퀴즈 상세 페이지로 이동합니다:
/c/{community-slug}/quizzes/{quiz-id}
2. 퀴즈 정보 확인
시작하기 전에 다음 정보를 확인합니다:
- 퀴즈 제목 및 설명
- 문제 수
- 제한 시간 (있는 경우)
- 재시도 가능 횟수
- 합격 점수 (설정된 경우)
3. "퀴즈 시작" 버튼 클릭
버튼을 클릭하면 퀴즈가 시작됩니다.
4. 문제 풀이
한 문제씩 풀어나갑니다:
- 문제 읽기
- 답안 선택/입력
- "다음" 버튼으로 다음 문제로 이동
- "이전" 버튼으로 이전 문제로 돌아가기 (선생님 설정에 따라)
5. 퀴즈 제출
모든 문제를 풀고 "제출하기" 버튼을 클릭합니다.
제한 시간
제한 시간이 설정된 경우:
- 상단에 타이머 표시
- 시간이 다 되면 자동 제출
- 경고 알림 (마지막 1분)
문제 유형
1. 객관식 (Multiple Choice)
형식:
- 질문 + 4개의 선택지
- 정답 1개 선택
예시:
질문: "안녕하세요"의 의미는 무엇인가요?
○ A. Good morning
○ B. Hello
○ C. Goodbye
○ D. Thank you
정답: B
답안 입력:
- 라디오 버튼으로 선택
- 하나만 선택 가능
- 선택 후 변경 가능 (제출 전까지)
2. 참/거짓 (True/False)
형식:
- 문장 제시
- 참(True) 또는 거짓(False) 선택
예시:
질문: 서울은 한국의 수도이다.
○ True (참)
○ False (거짓)
정답: True
답안 입력:
- 토글 버튼으로 선택
- True/False 전환 가능
3. 주관식 (Short Answer)
형식:
- 질문 제시
- 자유롭게 답안 작성
예시:
질문: "감사합니다"를 영어로 번역하세요.
답안: Thank you
정답: Thank you (정확히 일치해야 함)
답안 입력:
- 텍스트 입력창에 답안 작성
- 대소문자 구분 (선생님 설정에 따라)
- 띄어쓰기 주의
결과 확인
즉시 채점
퀴즈 제출 후 즉시 결과를 확인할 수 있습니다:
- 총 점수
- 정답 수 / 전체 문제 수
- 백분율 (예: 80%)
문제별 결과
각 문제에 대한 상세 결과:
- ✅ 정답: 초록색 체크마크
- ❌ 오답: 빨간색 X 마크
- 정답 표시 (오답인 경우)
- 나의 답안 vs 정답 비교
해설 확인
선생님이 해설을 작성한 경우:
- 문제별 해설 표시
- 왜 그 답이 정답인지 설명
- 추가 학습 자료 링크 (있는 경우)
포인트 획득
퀴즈 완료 시 점수에 비례하여 포인트 획득:
- 100점: +100P
- 80점: +80P
- 60점: +60P
- 등등...
재시도
재시도 가능 여부
선생님 설정에 따라 재시도가 가능합니다:
- 무제한 재시도: 몇 번이든 다시 응시 가능
- 제한된 재시도: 최대 3회까지만 가능
- 재시도 불가: 1번만 응시 가능
재시도 방법
- 퀴즈 상세 페이지로 이동
- "재시도" 버튼 클릭
- 새로운 시도 시작
- 문제 순서가 섞일 수 있음 (선생님 설정에 따라)
최고 점수 기록
여러 번 시도한 경우:
- 최고 점수만 기록
- 리더보드에 최고 점수 반영
- 포인트는 최고 점수 기준으로 1회만 부여
관련 파일
페이지
-
/app/c/[slug]/quizzes/page.tsx(라인 1-200)- 퀴즈 목록 페이지
- 탭별 필터링
-
/app/c/[slug]/quizzes/[id]/page.tsx(라인 1-250)- 퀴즈 상세 페이지
- 퀴즈 시작 및 정보 확인
-
/app/c/[slug]/quizzes/[id]/take/page.tsx(라인 1-400)- 퀴즈 응시 페이지
- 문제 풀이 UI
- 타이머 및 진행률
-
/app/c/[slug]/quizzes/[id]/result/page.tsx(라인 1-300)- 결과 페이지
- 점수 및 오답 확인
API 라우트
-
/app/api/quizzes/[id]/start/route.ts(라인 1-100)- POST: 퀴즈 시작
- 시도 기록 생성
-
/app/api/quizzes/submit/route.ts(라인 1-200)- POST: 퀴즈 제출 및 채점
- 자동 채점
- 포인트 부여
컴포넌트
-
/components/quiz-question.tsx(라인 1-150)- 문제 표시 UI
- 문제 유형별 렌더링
-
/components/quiz-timer.tsx(라인 1-100)- 타이머 컴포넌트
- 시간 초과 처리
주요 기능
진행률 표시
퀴즈 응시 중:
- 상단에 진행률 바 표시
- "5/10 문제" 형식
- 백분율 표시 (예: 50%)
답안 저장
답안 선택 시:
- 자동 저장 (로컬 스토리지)
- 새로고침해도 답안 유지
- 제출 전까지 수정 가능
네비게이션
- "이전" 버튼: 이전 문제로 이동
- "다음" 버튼: 다음 문제로 이동
- 문제 번호 클릭: 특정 문제로 바로 이동 (선생님 설정에 따라)
사용 예시
1. 퀴즈 목록 확인
학생: Quizzes 페이지 접근
시스템: 5개의 퀴즈 표시 (2개 완료, 3개 미완료)
2. 퀴즈 시작
학생: "한국어 어휘 퀴즈" 클릭
학생: 퀴즈 정보 확인 (10문제, 10분 제한)
학생: "퀴즈 시작" 버튼 클릭
시스템: 첫 번째 문제 표시
3. 문제 풀이
문제 1: "안녕하세요"의 의미는?
학생: B. Hello 선택
학생: "다음" 버튼 클릭
문제 2: 서울은 한국의 수도이다.
학생: True 선택
학생: "다음" 버튼 클릭
...
문제 10: "감사합니다"를 영어로 번역하세요.
학생: "Thank you" 입력
학생: "제출하기" 버튼 클릭
4. 결과 확인
시스템: 채점 중...
시스템: 결과 표시
- 총 점수: 90/100
- 정답: 9/10
- 획득 포인트: +90P
학생: 오답 확인
문제 5: ❌ 오답 (나의 답: A, 정답: C)
해설: "여기"는 "here"를 의미합니다.
데이터베이스 스키마
quizzes 테이블
{
id: string,
communityId: string,
title: string,
description: string,
timeLimit: number | null, // 분 단위
passingScore: number | null,
maxAttempts: number | null,
createdAt: Date
}
quiz_questions 테이블
{
id: string,
quizId: string,
questionText: string,
questionType: 'multiple_choice' | 'true_false' | 'short_answer',
options: string[] | null, // 객관식인 경우
correctAnswer: string,
explanation: string | null,
points: number,
order: number
}
quiz_attempts 테이블
{
id: string,
quizId: string,
studentId: string,
answers: JSON, // { questionId: answer }
score: number,
totalPoints: number,
startedAt: Date,
completedAt: Date | null
}
채점 로직
자동 채점
퀴즈 제출 시 자동으로 채점됩니다:
- 객관식: 정답과 정확히 일치하는지 확인
- 참/거짓: true/false 비교
- 주관식:
- 정확한 문자열 일치 (기본)
- 대소문자 무시 옵션 (선생님 설정)
- 공백 무시 옵션 (선생님 설정)
점수 계산
총점 = Σ(각 문제의 배점 × 정답 여부)
백분율 = (총점 / 전체 배점) × 100
합격/불합격
합격 점수가 설정된 경우:
- 합격: 초록색 배지 "합격"
- 불합격: 빨간색 배지 "불합격"
- 재시도 권장 (불합격 시)
문제 해결
타이머가 작동하지 않는 경우
- 페이지 새로고침
- 브라우저 설정 확인 (JavaScript 활성화)
답안이 저장되지 않는 경우
- 로컬 스토리지 확인
- 쿠키 설정 확인
- 시크릿 모드 사용 시 제한 가능
제출이 안 되는 경우
- 모든 문제에 답안을 입력했는지 확인
- 네트워크 연결 확인
- 시간이 초과되지 않았는지 확인
재시도가 안 되는 경우
- 재시도 가능 횟수 확인
- 선생님이 재시도를 허용했는지 확인
모범 사례
퀴즈 응시 전 준비
- 조용한 환경 확보
- 안정적인 인터넷 연결 확인
- 제한 시간이 있는 경우 충분한 시간 확보
- 관련 학습 자료 복습
효과적인 문제 풀이
- 문제를 꼼꼼히 읽기
- 확실한 문제부터 풀기
- 어려운 문제는 건너뛰고 나중에 다시 풀기
- 제출 전 답안 재확인
- 시간 배분 주의 (제한 시간이 있는 경우)
결과 활용
- 오답 노트 작성
- 해설 꼼꼼히 읽기
- 모르는 개념 추가 학습
- 재시도 시 오답 문제 집중 공략