Phase 1: 수학 전용 제한 해제 - 모든 과목 지원
- subjects: ALLOWED_SUBJECT_NAMES 삭제, 자유 과목 생성
- reviews/dashboard/study-logs: '수학' 하드코딩 필터 삭제
- me: ALLOWED_FOCUS_SUBJECTS 삭제, 다중 과목 허용
- frontend: 과목 없으면 자동 생성 패턴 적용
Phase 2: 문제집 탭 통합
- exams 페이지 리라이트: 소스/학년 필터 기반 통합 뷰
- SampleProblem에 source 필드 추가 (출처 표기)
Phase 3: AI 해설 (콴다 스타일)
- @anthropic-ai/sdk 설치
- ProblemExplanation 모델 + StudyLog.failedAtStep 추가
- AiExplanationService: Claude API 단계별 풀이 생성, 캐싱
- ExplanationPanel 컴포넌트: uploaded/review/solve 화면 통합
- 단계별 오류 추적 → stepFailureMultiplier로 난이도 반영
Phase 4: 알고리즘 시뮬레이션 검증
- AlgorithmDecisionLog 모델
- student-simulator + simulation-runner (가상 학생 N명 × M일)
- algorithm-analytics 서비스/엔드포인트
- PersonaForgetService에 logDecision() 메서드 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 통계 탭 삭제 (프론트 페이지/차트/네비 항목, 백엔드 stats 모듈은 대시보드용으로 유지)
- PDF 문제 분리 → 문제집 생성으로 변경 (ProblemSet + Problem 레코드)
- ProblemSet에 sourceType, uploadedByUserId 추가
- POST /problem-sets/create-from-pdf 엔드포인트
- GET /problem-sets/my-uploads, DELETE /problem-sets/:id
- exams 페이지에 '내가 만든 문제집' 섹션
- 문제 풀이 UI 통일
- DrawingCanvas 공통 컴포넌트 추출 (필기모드)
- 복습 페이지에 필기모드(캔버스+펜색상) 추가
- 다시풀기 페이지에 필기모드+메모 추가
- 처음풀기 페이지 난이도 슬라이더→3버튼(H/M/E)+SM-2 연동
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>