PRD v1.1 — 사용자 온보딩 흐름 (원장·학생·학부모 3종)

차별화 핵심

  • 원장: 가입 후 10분 안에 첫 학습지를 학생에게 발송 — 매쓰플랫의 영업·도입 컨설팅 모델 대비 셀프 + 즉시
  • 학생: 전화번호 + 6자리 코드 1분 인증 — 비밀번호 없음
  • 학부모: 별도 앱 가입 없이 알림톡 link → 자녀 데이터 열람 (5초)

자가 검토 (작성자 점검)

  • 모든 단계 클릭 횟수 명시 (10분 = ~30 클릭 한도)
  • 빈 상태(empty state) 모두 다룸
  • 이탈 지점 식별 + 회복 경로
  • 분석 이벤트 명명 (Plausible Analytics 호환)

1. 원장 온보딩 — “10분 안에 첫 학습지 발송” (Critical Path)

1.1 단계별 흐름 (총 ~30 클릭, 목표 10분)

[Step 1: 가입 — 1분]
landing/page → "베타 등록" 클릭
  → /signup 진입
  → 이메일·비밀번호·학원명·휴대폰 입력 (4 필드)
  → SMS 인증 코드 입력 (1 필드)
  → 회원가입 완료 (자동 로그인)
  → 이벤트: signup_completed

[Step 2: 학원 정보 — 1분]
/onboarding/academy 진입
  → 학원 주소·지역 (선택)
  → 학원 운영 시간 (선택)
  → 사업자등록번호 (선택, 결제 시점에 갱신 가능)
  → "다음" 클릭
  → 이벤트: academy_created

[Step 3: 학생 1명 등록 — 2분]
/onboarding/first-student 진입
  → 학생 이름
  → 학년 (E1~M3 dropdown)
  → 현재 단원 (학년 변경 시 자동 dropdown)
  → 학부모 연락처
  → "학생 등록" 클릭
  → 자동 발급된 6자리 학습 코드 표시 + SMS 자동 발송
  → 이벤트: first_student_registered

[Step 4: 첫 학습지 만들기 — 3분]
/onboarding/first-worksheet 진입 (이전 단계에서 자동)
  → 단원 자동 선택됨 (Step 3 학생의 current_unit_id)
  → 난이도 분포 기본값 적용 (LOW 30 / MID 50 / HIGH 20)
  → 문항 수 12 기본값
  → "AI 추천" 클릭 → 12 문항 자동 생성
  → 미리보기 (선택)
  → "학생에게 발송" 클릭 → 첫 학습지 인사 알림톡 자동 발송
  → 이벤트: first_worksheet_sent

[Step 5: 다음 액션 안내 — 1분]
/onboarding/next-steps
  → ✓ 회원가입 완료
  → ✓ 학생 1명 등록 + 학습 코드 발송 완료
  → ✓ 첫 학습지 발송 완료
  → 다음에 할 일:
     - 다른 학생 추가하기 (CTA)
     - 첫 학습지 결과 확인하기 (CTA, 학생 풀이 후 활성화)
     - 월간 리포트 미리보기 (CTA, 30일 후 활성화)
  → 이벤트: onboarding_completed

1.2 시간 분배 (기대값)

Step누적핵심 이탈 위험
가입11SMS 인증 실패
학원 정보12사업자등록번호 입력 강제 → 이탈. 선택으로
학생 등록24학부모 연락처 미보유 → 본인 번호 입력 OK
첫 학습지37AI 추천이 12문항 1회 호출에 < 3초 보장 필요
다음 액션18
여유210학습지 발송 후 자동 PDF 미리보기 보는 시간

1.3 빈 상태 / 이탈 회복

시나리오처리
학생 0명에서 학습지 화면 진입”먼저 학생을 등록하세요” 모달 + CTA
AI 추천 실패 (단원 풀 부족)“이 단원은 콘텐츠가 부족합니다. 다른 단원으로 시작해보세요” + 추천 단원 3개
SMS 인증 실패이메일 발송 fallback 옵션
Step 5에서 가입 후 바로 이탈24시간 후 이메일 “온보딩 마무리하기” 발송 (1회만)

1.4 분석 이벤트

이벤트 명트리거속성
signup_started/signup 진입utm_source, utm_campaign
signup_completed가입 완료days_since_landing_view
academy_createdStep 2 완료
first_student_registeredStep 3 완료grade
first_worksheet_sentStep 4 완료unit_id, question_count, time_spent_sec
onboarding_completedStep 5 도달total_time_minutes
onboarding_dropped_at이탈 시step_name, time_spent_sec

목표 KPI:

  • signup_completed → onboarding_completed 전환율 ≥ 70%
  • 평균 onboarding 시간 ≤ 12분 (목표 10분 대비 +2분 여유)

2. 학생 온보딩 — 1분 인증

2.1 단계별 흐름

[Step A: 알림 수신 — SMS 또는 알림톡]
학생 휴대폰 SMS:
  "[A+ Tracker] 미경공부방에서 새 학습지를 보냈어요.
   앱 다운로드: link.aplustracker.com
   학습 코드: M3K7Q2"

[Step B: 앱 다운로드 + 첫 실행]
링크 클릭 → App Store / Play Store 자동 분기
  → 앱 다운로드
  → 첫 실행 → /onboarding/welcome
  → "휴대폰 번호로 시작" 클릭
  → 이벤트: app_first_launch

[Step C: 인증]
/onboarding/auth
  → 휴대폰 번호 입력 (자동 채움 가능 — iOS는 SIM에서)
  → 학습 코드 6자리 입력 (영숫자)
  → "확인" 클릭
  → 백엔드: phone + learning_code → student 매칭
  → 매칭 성공 → 학생 정보 (이름·학년·학원명) 표시 + 확인
  → "맞아요, 시작할게요" 클릭
  → 이벤트: student_authenticated

[Step D: 첫 학습지로 이동 — 자동]
/home (학습지 탭)
  → 보낸 학습지 1개 표시
  → 자동으로 첫 학습지 진입 (모달 또는 풀화면)
  → 이벤트: first_worksheet_started

2.2 디바이스 케이스

케이스처리
iOS 사용자SIM에서 폰 번호 자동 채움 (iOS native API)
Android 사용자폰 번호 수동 입력 + 자동 인증 SMS
학생이 부모 폰 사용학습 코드만으로 인증 가능 (백엔드 학생 ID 매칭)
형제·자매 동시 사용학습 코드 별도이므로 자동 분기

2.3 빈 상태 / 에러

시나리오처리
학습 코드 오타”코드를 확인해주세요” + 학원에 문의 링크
폰 번호 학원에 미등록”학원 등록 정보와 다릅니다. 학원에 문의 부탁드려요”
첫 학습지 0개환영 화면 + “학원에서 곧 학습지를 보낼 거예요”

3. 학부모 온보딩 — 5초 (별도 앱 가입 없음)

3.1 학부모는 사실상 “수동 알림 수신자”

학부모는 가입 단계 없음. 모든 진입은 알림톡 → 앱 내 페이지.

[Step 1: 학원 등록 환영 알림톡 수신]
PRD v0.2 §7 참고 — `welcome-v1` 템플릿 자동 발송
  → 학원·학생 정보 + 앱 다운로드 안내

[Step 2: 앱 첫 실행 (선택)]
학부모가 앱 다운로드 → 학생 앱과 동일 (역할 자동 분기)
  → 학생 휴대폰 번호 입력
  → 학부모 → 자녀 데이터 열람 권한 자동 부여 (parent 테이블 확인)

[Step 3: 월간 리포트 알림톡 수신 — 매월 1일]
`monthly-report-v1` 템플릿 자동 발송
  → "자세히 보기" 버튼 → 앱 내 리포트 페이지 (딥링크)
  → 가입 안 했으면 5초 인증 후 열람

3.2 학부모 가입 임계점 분석

학부모는 능동적 가입 의지 낮음. 다음 임계점에서만 가입 시도:

  • 자녀의 첫 학습지 결과가 궁금할 때 (Step 4 전 학생 풀이 후)
  • 월간 리포트 첫 수신 시 (Step 3)

→ 학부모 가입 = 수동·점진적. 강제 가입 X.

3.3 P1 학부모 직접 결제 시 흐름

P0은 학부모 결제 X. P1 진입 시:

학부모가 학생 앱 진입 → "프리미엄 학생 도구 (월 9,900원)" 안내
  → 학부모 가입 + 토스페이먼츠 결제
  → 학원 결제와 별도 (Subscription.scope = 'single_student')

PRD v0.2 §4.4 학부모 결제 데이터 모델 사전 분리 적용.


4. 모든 사용자 공통 — 첫 7일

4.1 D+1 (가입 다음날)

원장에게 이메일:

  • “첫 학습지가 학생에게 잘 도착했나요? 결과 확인하기”
  • 학생 0명 풀이 시 → “학생에게 안내 메시지 다시 보내기” CTA

4.2 D+3

원장에게 알림톡:

  • “지난 3일 학생 활동 요약” (학습지 풀이·정답률 등)
  • 활동 0건 시 → “도움이 필요하시면 1:1 문의하기” 안내

4.3 D+7

원장에게 이메일:

  • 첫 주 활동 리포트 + “다음 주 추천 액션” (예: 다른 학생 등록 / 추가 학습지)
  • 활동률 < 50% 시 → “사용 가이드 보기” + 영상 링크

5. PRD 영향

5.1 새 API endpoints

POST /api/onboarding/state                저장 — 어느 step까지 진행했는지
GET  /api/onboarding/state                조회 — 다음 화면 결정
POST /api/onboarding/event                분석 이벤트 기록 (선택, Plausible로 대체 가능)
GET  /api/onboarding/recommended-units    Step 4용 — 첫 학습지 만들 단원 추천

5.2 데이터 모델 추가

-- migration-003-onboarding.sql (별도 작성 필요)
 
CREATE TABLE onboarding_progress (
    account_id BIGINT PRIMARY KEY REFERENCES account(id),
    step_completed TEXT[],                     -- ['signup', 'academy', 'first_student', ...]
    started_at TIMESTAMPTZ DEFAULT now(),
    completed_at TIMESTAMPTZ,
    total_time_seconds INTEGER
);

6. 와이어프레임 (참고)

본 문서는 흐름 명세. 실제 화면 디자인은 prd-v1.0-design-spec §3·§4 와이어프레임 + Figma 디자인 단계에서 구체화.


7. 다음 단계

본 PRD v1.1 다음:

  • v1.2 — 결제 흐름 (P1)
  • v1.3 — 출결 키오스크 (P1)
  • v2.0 — 중등 콘텐츠 통합 (P1)

PRD 발사 — 베타 출시 직전 v1.0 + v1.1 통합본으로 동결, 코딩 시작.