목차
출퇴근 영어 회화 앱 — 기획서 (PRD) v0.1
작성일: 2026-09-10 · 상태: 초안 (검토 중) · v0.1.1: 스택 Expo → React Native CLI 변경 표기: [결정] 회의에서 확정 · [제안] 초안 제안, 검토 필요 · [확인 필요] 정보 요청
1. 개요
한 줄 정의
출퇴근 동선(지하철 + 도보)에 맞춰 자동으로 짜이는 루틴으로, 이동만 해도 일상·여행 영어 회화가 입에 붙는 앱.
해결하려는 문제
- 직장인은 따로 앉아서 공부할 시간을 내기 어렵고, 꾸준히 이어가지 못한다.
- 회화 앱을 써도 실제로 말해볼 기회가 부족하다. 지하철에서는 소리 내기 민망하다.
- 기존 앱은 "집중해서 앉아 있는 15분"을 전제로 설계되어, 끊기고 흔들리는 이동 환경에 맞지 않는다.
목표
- 사용자가 출퇴근 시간만으로 주 5회 이상 학습을 지속한다.
- 걷기 구간을 활용해 매일 실제로 영어 문장을 소리 내어 말한다.
2. 타깃 사용자
- [결정] 주 타깃: 대중교통으로 출퇴근하는 직장인
- [결정] 학습 목적: 일상·여행 회화
- [제안] 레벨: 초중급 (기초 문장은 알지만 입으로 잘 안 나오는 층)
대표 페르소나 [제안]
김지은 (32, 마케터) — 지하철 25분 + 도보 10분 출퇴근. 연 1~2회 해외여행을 가는데 매번 식당·호텔에서 말문이 막힌다. 영어 앱을 여러 번 깔았지만 2주를 못 넘겼다. 퇴근길엔 지쳐서 뭘 "공부"하고 싶지 않다.
3. 핵심 가치와 차별점
| 구분 | 기존 회화 앱 | 우리 앱 |
|---|---|---|
| 학습 시간 | 사용자가 따로 시간 확보 | 출퇴근 동선 자체가 학습 시간 |
| 분량 | 고정 레슨 | 탑승·도보 시간에 맞춰 자동 조절 |
| 말하기 | 앉아서, 화면 보며 | 걸으면서, 화면 없이 (오디오 전용) |
| 동기 | 연속 학습일 | 여행 D-day 역산 + 연속 학습일 |
[결정] 핵심 구조: 지하철은 화면으로 배우고, 걷기는 오디오로 말한다.
4. 사용 시나리오
출근길 (에너지 있음 → 새 표현 입력)
- 지하철 탑승 후 앱을 열면 "오늘의 상황: 호텔 체크인" 레슨이 바로 시작된다.
- 핵심 표현 3~5개를 카드로 익히고, 표현이 쓰인 짧은 대화를 자막과 함께 본다.
- 하차 역에 가까워지면 짧은 확인 퀴즈로 마무리한다.
- 역에서 회사까지 걸으면서 이어폰으로 걷기 모드: 방금 배운 표현을 듣고 따라 말한다.
퇴근길 (피곤함 → 가벼운 복습)
- 지하철에서는 아침 표현이 들어간 대화를 듣기만 한다 (화면 조작 최소).
- 걸으면서 한두 문장만 따라 말하면 오늘 루틴 완료.
5. 기능 요구사항
우선순위: P0 = MVP 필수 · P1 = 2단계(네이티브) · P2 = 이후
5.1 온보딩 (P0)
- 출퇴근 정보 입력: 지하철 탑승 시간(분), 도보 시간(분), 출근·퇴근 시각
- 레벨 선택 (간단한 자기 진단 3문항 수준)
- 여행 목표 입력 (선택): 여행지, 출발일
- 목표: 60초 안에 완료, 가입 전 체험 가능 [제안]
5.2 데일리 루틴 생성 (P0)
- 입력된 탑승·도보 시간 기준으로 출근/퇴근 루틴을 자동 구성
- 예: 탑승 20분 → 표현 5개 + 대화 1개 + 퀴즈 / 도보 8분 → 따라 말하기 5문장
- 여행 목표가 있으면 D-day까지 남은 출퇴근 횟수로 상황 코스 순서를 역산 배치
5.3 지하철 모드 — 화면 (P0)
- 표현 카드: 영어 문장, 한국어 뜻, 원어민 음성, 사용 상황 한 줄
- 대화 보기: 표현이 들어간 4~8턴 대화, 자막 토글
- 확인 퀴즈: 빈칸 채우기 / 상황에 맞는 표현 고르기
- 한 손 조작: 주요 버튼은 화면 하단 엄지 영역, 스와이프로 다음 카드
- 무음 대응: 이어폰 미연결 시 자막 중심 진행
- 중단 복구: 앱 전환·통화 후 이어서 시작
5.4 걷기 모드 — 오디오 (P0 단순 버전 → P1 완전 버전)
- P0 (웹 검증 단계): 화면 켠 상태에서 듣기 → 따라 말하기 → 간단한 발음 피드백 (음성 인식 일치율)
- P1 (네이티브):
- 화면 잠금·주머니 속 상태에서 재생·녹음 유지
- 이어폰 버튼 제어: 재생/일시정지, 다음, 다시 듣기
- 음성 안내만으로 진행 ("따라 해보세요… 좋아요, 다음 문장")
- 안전: 걷기 모드 중 화면 켜면 "걷는 중에는 화면을 보지 마세요" 안내 [제안]
5.5 오프라인 (P0)
- 당일 루틴(텍스트 + 음성 파일)을 출발 전·Wi-Fi 연결 시 자동 다운로드
- 터널·지하 구간에서도 끊김 없이 진행, 학습 기록은 로컬 저장 후 동기화
5.6 학습 기록·습관 (P0)
- 연속 학습일(스트릭), 주간 출퇴근 학습 횟수
- 여행 모드: "출발까지 출퇴근 N회 · 완주한 상황 M/전체"
5.7 AI 롤플레이 (P1)
- 걷기 구간에서 AI 상대와 짧은 상황극 (예: 식당 직원 역할 AI와 주문하기)
- 오늘 배운 표현을 쓰도록 유도, 종료 후 한 줄 피드백
- 네트워크 필요 → 연결 가능 시에만 활성화
5.8 이후 검토 (P2)
- 출퇴근 시각 기반 푸시 알림 ("곧 출근 시간이에요, 오늘 상황은 카페 주문")
- 실제 지하철 노선·역 연동으로 하차 역 기준 분량 자동 조정
- 지하철 속삭임 모드 (소리 작게 말해도 인식)
- 친구와 여행 코스 같이 하기
6. 콘텐츠 설계
구조
코스 (예: 여행 필수 / 일상 스몰톡)
└ 상황 (예: 호텔 체크인)
└ 레슨 (1회 출퇴근 분량)
├ 핵심 표현 3~5개
├ 대화문 1개 (4~8턴)
├ 퀴즈 3~5문항
└ 따라 말하기 문장 5개 (걷기용)
초기 상황 목록 [제안]
- 여행: 공항 체크인·보안검색, 기내, 입국심사, 호텔 체크인·요청, 식당 주문, 카페, 길 묻기, 대중교통, 쇼핑·계산, 문제 상황(분실·아플 때)
- 일상: 스몰톡(날씨·주말), 자기소개, 부탁하기, 추천 묻기, 감정 표현
제작 방식 [제안]
- 초안은 Claude로 생성 → 초기 30~50개 상황은 원어민 검수
- 음성: 고품질 TTS 사용, 상황별로 화자 2명 이상(성별·억양 다양화)
- 교과서 표현보다 실제로 쓰는 자연스러운 표현 우선
7. UX 원칙
- 3초 안에 시작: 앱을 열면 메뉴가 아니라 오늘 레슨이 바로 나온다.
- 한 손, 엄지 영역: 서서 손잡이 잡은 상태를 기준으로 설계한다.
- 언제 끊겨도 괜찮게: 모든 단계는 1분 이내 단위, 중단 지점 자동 저장.
- 걷기는 화면 없이: 걷기 모드의 모든 동작은 음성·이어폰으로 가능해야 한다.
- 퇴근길은 가볍게: 퇴근 루틴은 출근 루틴의 절반 이하 부담.
8. 기술 설계
스택 [결정: 방향 / 제안: 세부]
- 앱: React Native CLI (bare) + TypeScript — iOS·안드로이드 단일 코드베이스
- 백엔드: Supabase (인증, DB, 스토리지)
- 오디오: react-native-track-player 계열 (백그라운드 재생, 리모트 컨트롤)
- 음성 인식: 따라 말하기는 온디바이스 STT 우선, 필요 시 서버 STT
- AI 롤플레이: LLM API + TTS (P1)
단계별 플랫폼 전략
- 1단계: 처음부터 네이티브로 개발 → TestFlight / Play 내부 테스트로 검증 (걷기 모드 포함)
- 2단계: 잠금 화면 녹음, 푸시 알림 추가 후 스토어 정식 출시
- 세부 사항은 개발 계획서 참고
데이터 모델 초안 [제안]
User id, level, commute_ride_min, commute_walk_min,
commute_times, created_at
TravelGoal user_id, destination, depart_date
Course id, title, type(travel|daily), order
Situation id, course_id, title, order
Lesson id, situation_id, order
Expression id, lesson_id, en, ko, context, audio_url
Dialogue id, lesson_id, turns(json), audio_url
QuizItem id, lesson_id, type, payload(json)
Progress user_id, lesson_id, status, completed_at
SpeakingLog user_id, expression_id, score, created_at
DailyRoutine user_id, date, slot(am|pm), lesson_ids, status
9. 로드맵 [제안]
| 단계 | 기간(예상) | 범위 | 완료 기준 |
|---|---|---|---|
| 0. 준비 | 1주 | 콘텐츠 10개 상황 제작·검수, 화면 설계 | 레슨 10개 완성 |
| 1. 네이티브 MVP | 약 11주 | 온보딩, 루틴 생성, 지하철 모드, 걷기 모드(백그라운드 재생·이어폰 제어), 오프라인, 스트릭 | 베타 테스터 20~30명 2주 사용 |
| 2. 정식 출시 | 4주 내외 | 잠금 화면 녹음, 푸시 | 스토어 출시 |
| 3. 확장 | 이후 | AI 롤플레이, 여행 모드 고도화, 노선 연동 | — |
10. 성공 지표 [제안]
- 핵심 지표: 주당 출퇴근 학습 세션 수 (목표: 활성 사용자 평균 주 5회 이상)
- D7 / D30 리텐션
- 레슨 완료율 (시작 대비 완료)
- 걷기 모드 사용률, 사용자당 일일 따라 말하기 문장 수
- 여행 모드 사용자의 코스 완주율
11. 리스크와 대응
| 리스크 | 대응 |
|---|---|
| 백그라운드 녹음 제약으로 걷기 모드 경험 축소 | 개발 초기 기술 검증, 대안 UX 준비 |
| AI 생성 콘텐츠의 부자연스러운 표현 | 초기 원어민 검수, 사용자 신고 기능 |
| 걷기 중 안전 문제 | 화면 사용 경고, 음성만으로 조작 가능하게 설계 |
| 음성 인식 정확도 (소음, 발음) | 점수보다 "시도 여부" 중심 피드백, 관대한 판정 |
| TTS·STT·LLM API 비용 | 음성은 사전 생성 후 캐싱, AI 롤플레이는 횟수 제한 |
12. 미결정 사항 — 확인 필요
- [ ] 앱 이름·브랜딩
- [ ] 수익 모델: 무료 + 구독? 여행 코스 단품 판매? 무료 체험 범위는?
- [ ] 대상 레벨 확정: 초중급으로 좁힐지, 초급~중급까지 넓힐지
- [ ] 발음 피드백 수준: 단순 일치 여부만 볼지, 단어별 교정까지 할지
- [ ] 원어민 검수 리소스: 검수 가능한 사람이 있는지, 외주 예산이 있는지
- [ ] 운영 예산: 월 API 비용 허용 범위
- [ ] 1단계 테스트 사용자: 지인·커뮤니티 등 모집 경로
- [ ] 여행 코스 우선 지역: 일본·동남아처럼 영어 외 언어 지역도 영어로 갈지