트랙 2 — BM / Landing / Pricing - schema.prisma: SubscriptionTier enum(free/pro/school) + User.subscriptionTier + User.subscriptionUntil. Migration 20260411161837_bm_and_problemsets. - auth.service.ts / me.service.ts safeUser/toView 에 구독 필드 포함. - frontend/lib/api.ts MeUser 에 subscriptionTier/subscriptionUntil 추가. - app/page.tsx 전면 재작성: 토큰 있으면 /dashboard, 없으면 비로그인 Landing (히어로 + 왜 ReLoop 3카드 + 페르소나 4장 + 4단계 루프 + 가격 티저 + FAQ 4개 + footer). - app/pricing/page.tsx 신규: Free/Pro/School 3 티어 카드(Pro 강조 PopBadge), 월/년 cycle 토글, 기능 비교 테이블(데스크탑 전용), FAQ 5개, 바닥 CTA. Pro ₩7,900/월, 연간 ₩79,000(2개월 무료), School ₩20,000/월·30시트. - app/profile/page.tsx: 구독 섹션 + 티어 배지 + pricing 으로 가는 업그레이드 버튼. 트랙 4 — 평가원 기출 ProblemSet 데모 - schema.prisma: ProblemSet + Problem 신규 모델. StudyLog.problemId (optional, SetNull). 각 ProblemSet 은 (year, examType, subjectName) 복합 unique. - prisma/seed.ts: 2024학년도 수능 수학 샘플 10 문항 (1/5/8/11/13/15/20/22/ 28/30번) 대략치 난이도+정답률로 upsert. 실제 KICE 수치로 교체 가능하도록 주석 명시. - backend/src/problem-sets/: ProblemSetsModule + Service + Controller. GET /api/problem-sets (list, subject/year 필터) + GET /api/problem-sets/:id (문제 배열 포함). JwtAuthGuard 적용. - study-logs.service/controller: problemId optional 필드 수용. - frontend/lib/api.ts: ProblemSetSummary/ProblemSetDetail/Problem 타입. - frontend/app/study/page.tsx 재설계: 상단 탭 [직접 입력 | 문제집에서 가져오기]. 문제집 탭은 set 드롭다운 + 문제 리스트 클릭 → title/difficulty/baseCorrectRate 자동 채움 + subjectName 매핑으로 사용자 과목 자동 선택 + topic 을 tag 이름과 매칭. 결과/메모/시간만 수동 입력.
5.5 KiB
5.5 KiB