제품 경험현행

핵심 사용자 흐름

인증부터 배치평가, 추천 단원, 학습 재개까지 이어지는 제품 동선입니다.

첫 실행

앱은 최소 3초의 앱 내부 스플래시에서 인증 세션과 사용자 상태를 복원한다. 인증 세션이 없는 최초 설치에서는 상황에서 시작 → 대화·설명·연습 방식 → 한글 또는 실력 확인 경로의 3단계 제품 소개를 먼저 표시한다. 소개를 마친 뒤 로그인과 회원가입 두 동선으로 이동하며, 기존 인증 세션은 소개보다 우선한다.

회원가입 화면에서 이용약관과 개인정보처리방침을 로드한다. 필수 항목에 동의하기 전에는 이메일·Google·Apple·LINE 가입 버튼이 활성화되지 않는다.

가입 완료 후에는 목적, 기존 학습 경험, 주간 계획, 알림 선택, 시작 경로를 화면당 한 질문씩 설정한다. 각 단계는 MSSQL에 즉시 저장되므로 앱을 종료하거나 다른 실행에서 로그인해도 마지막 확정 단계 다음부터 이어진다. 시작 경로는 K0 한글, K1 초급 한국어, 중단 재개 가능한 배치평가 중 하나다.

LINE은 앱이 받은 프로필을 신뢰하지 않고 서버에서 ID token과 nonce를 검증한 뒤 Firebase 세션으로 전환한다. 기존 LINE 회원과 신규 회원의 로그인·가입 분기는 Google·Apple과 같은 약관·회원 상태 기준을 따른다.

이메일 가입

가입 후 인증 대기 화면에서 인증메일 재발송과 인증 완료 확인을 제공한다. 이메일 링크는 앱으로 돌아올 수 있으며, 앱이 실제 인증 상태를 확인한 뒤 가입을 완료한다.

배치평가

배치평가는 중단 재개가 가능해야 한다. 결과에는 추천 레벨만 표시하지 않고, 바로 시작할 수 있는 검수·게시 단원을 함께 제안한다. 게시된 추천 단원이 없으면 동작하는 것처럼 꾸미지 않고 진입을 차단한다.

Today와 Course

Today는 Firebase 표시 이름, 서버에서 완료한 레벨·단원 수, 이어서 학습할 단원과 현재 활동 위치를 보여준다. 단원을 열면 마지막 완료 활동과 서버 재개 상태를 기준으로 이어간다. 활동을 중단한 경우 몇 번째 활동 / 전체 활동을 표시하며 완료한 단원을 다시 시작하는 동선과 구분한다.

Course는 K0와 K1-01~12의 게시 단원을 과정별로 보여준다. K1 카드의 장면 이미지는 레슨별 DB asset role에서 가져오며 이미지, 단원 번호, 제목, 목표와 진행선을 하나의 카드 경계 안에 묶는다. 미게시 단원은 가짜 카드로 노출하지 않는다.

My에서는 표시 이름을 변경할 수 있다. Firebase 갱신이 성공한 이름만 Today에 반영하고 실패 시 일반 오류 화면과 재시도를 제공한다.

네트워크 상태

데이터 조회 화면은 로딩·빈 상태·오프라인·오류·재시도를 구분한다. K0·K1 레슨과 보호 이미지는 마지막 정상 서버 응답의 사용자·언어·레슨 버전과 SHA-256이 일치할 때만 오프라인 열람한다. 문제 출제·정답 판정·진도 생성은 오프라인에서 수행하지 않으며 연결 복구 후 서버에서 처리한다. 제출 요청은 멱등 키로 중복을 방지한다.

문서 업데이트 원칙

구현 상태가 바뀌면 코드·DB·테스트와 같은 변경에서 이 문서도 함께 갱신합니다.

개발 현황으로 돌아가기