출퇴근 영어 회화 앱 — 제품 검토 회의록
일시: 2026-09-13 · 대상 문서: PRD v0.1, 개발계획서 v0.1 목적: MVP 착수 전 전제 검증 및 문서 고도화 결과물: PRD v0.2, 개발계획서 v0.2
참석자
| 역할 | 이름 | 배경 |
|---|---|---|
| 개발팀장 (모바일 리드) | 박준혁 | RN 6년, 오디오/미디어 앱 2건 출시 |
| 영어학원 원장 | 이수정 | 성인 회화 학원 9년, 재등록률 관리 |
| 원어민 콘텐츠 디렉터 | Ryan Miller | ESL 12년(한국 8년), 교재 집필 |
| 프로덕트 디자이너 | 최다인 | 모바일 UX 7년, 접근성 전문 |
| 음성 AI 엔지니어 | 한서진 | STT/TTS 파이프라인, 발음 평가 모델 |
| 그로스·수익화 PM | 정민우 | 구독 앱 2건, 가격 실험 |
0. 회의 요약 (결론 먼저)
착수를 1개월 미루고, 그 전에 두 가지를 검증한다.
- 길에서 혼자 영어로 소리 내어 말하는 것을 타깃 사용자가 실제로 하는가 (수요·수용도 검증)
- 걷기 중 소음 환경에서 STT가 쓸 만한가 (기술 스파이크)
이 둘이 이 제품의 존립 조건인데, v0.1은 둘 다 검증 없이 12주 개발 계획에 포함시켰다. 특히 (1)은 리스크 목록에조차 없다.
주요 결정 8건
| # | 결정 | 변경 전 |
|---|---|---|
| D1 | 걷기 모드 발화를 "통화하는 척" UX로 프레이밍, 속삭임 허용 | 그냥 따라 말하기 |
| D2 | 푸시(로컬 알림)를 P0로 상향 | P2 |
| D3 | 간격 반복(SRS)을 루틴 생성기에 내장 | 없음 |
| D4 | 지하철 모드를 "혼잡도 2단계"로 분기 (화면/오디오) | 화면 전용 |
| D5 | 발음 점수 폐기, 이진 판정 + 선택적 상세 피드백 | 일치율 점수 |
| D6 | 대화문을 "말하기"에서 "알아듣기" 중심으로 재설계 | 발화 중심 |
| D7 | 수익 모델 확정 (무료 + 월 12,900 / 여행 패스 29,000) | 미결정 |
| D8 | 마일스톤 재배치 — 걷기 모드를 앞으로, M1 스파이크 2주 | 걷기가 M6 |
1. 근본 전제 검토
1.1 "걷기 구간에서 소리 내어 말한다" — 최대 미검증 가정
최다인(디자이너): 문서 시작부터 걸립니다. "지하철에서는 소리 내기 민망하다"를 문제로 정의하고 걷기로 해결했는데, 출근길 인도에서 혼자 영어로 말하는 것도 똑같이 민망합니다. 강남역, 여의도 아침 8시 인도는 지하철만큼 붐빕니다. 이 가정이 무너지면 제품의 절반이 날아가는데 v0.1 리스크 표에 한 줄도 없습니다.
이수정(원장): 학원에서 10년 봤는데, 성인 학습자가 말하기를 못 하는 이유 1위는 실력이 아니라 창피함입니다. 6명이 다 같이 영어 하는 교실에서도 입을 안 뗍니다. 하물며 길에서 혼자요.
Ryan(원어민): I'd push back slightly — 이어폰 끼고 혼자 말하면 요즘은 통화 중으로 보입니다. 아무도 신경 안 써요. 문제는 사용자가 그걸 모른다는 겁니다. 인식의 문제지 현실의 문제가 아닙니다.
최다인: 그게 핵심이네요. 그러면 UX가 해결할 수 있는 문제입니다. 첫 세션에서 명시적으로 안심시켜야 합니다 — "이어폰을 끼고 있으면 통화 중으로 보입니다. 아무도 쳐다보지 않아요." 그리고 마이크 달린 이어폰 착용을 권장 흐름에 넣고, 볼륨 기준을 "통화하듯이"로 제시합니다. "크게 따라 하세요"가 아니라요.
정민우(그로스): 그래도 이건 문서로 합의할 게 아니라 숫자로 확인할 일입니다. 12주 짜고 나서 "아무도 안 말하더라"를 발견하면 늦습니다. 선행 검증 2주를 제안합니다. 랜딩 페이지 + 대기자 명단, 그리고 타깃 30명 설문/인터뷰. 핵심 질문 하나: "출근길에 이어폰 끼고 영어 문장을 소리 내어 따라 말할 수 있겠습니까?" 여기서 60% 이하면 제품 전제를 다시 짭니다.
[결정 D1] 걷기 모드는 "통화하는 척" 프레이밍으로 설계. 속삭임 볼륨을 정상 사용으로 허용(기술 요건에 반영). 착수 전 수용도 검증 실시.
1.2 "지하철에서 화면으로 배운다" — 혼잡도를 무시함
박준혁(개발팀장): 2호선 강남 방향 아침 8시 20분. 손잡이도 못 잡습니다. 한 손 조작이 아니라 무손 조작이 필요한 구간이 실제로 있습니다.
최다인: 그리고 스와이프는 위험합니다. 지하철 흔들림 + 급정거에서 의도치 않은 스와이프가 계속 납니다. "한 손 엄지 영역"까지는 맞는데 제스처가 아니라 큰 탭 타겟이어야 합니다. 최소 64pt.
이수정: 더 근본적으로, 만원 지하철에서 학습 앱을 여는 사람이 얼마나 될까요? 우리 경쟁 상대는 다른 영어 앱이 아니라 유튜브 쇼츠와 웹툰입니다. 지친 사람이 그걸 제치고 우리를 열어야 합니다.
Ryan: So make it lighter than shorts. 지하철 구간은 "공부"가 아니라 "오늘 상황 미리 듣기" 정도여야 합니다. 카드 5장 + 대화 + 퀴즈는 앉아서 하는 분량이에요.
[결정 D4] 지하철 모드를 두 갈래로 분기한다. - 화면 모드(여유 있음): 기존 설계 유지 — 카드, 대화, 퀴즈 - 오디오 모드(혼잡/서 있음): 화면 조작 없이 듣기만. 오늘 표현 미리듣기 + 대화 흘려듣기 - 진입 시 사용자가 1탭으로 선택("자리 있어요 / 서 있어요"), 선택은 기억하되 매번 변경 가능 - 퇴근길 기본값은 오디오 모드
2. 학습 설계 (이수정 · Ryan)
2.1 복습 구조가 아예 없다
이수정: 제일 큰 구멍입니다. 콘텐츠 구조를 보면 코스 → 상황 → 레슨으로 한 번 지나가면 끝입니다. 오늘 배운 표현을 내일 다시 안 만나면 사흘이면 다 잊습니다. 학원에서 진도만 빼고 복습 안 시키면 3개월 뒤 아무것도 안 남습니다.
Ryan: Agreed, and it's worse for output. 인지하는 것과 입에서 나오는 것 사이에는 큰 격차가 있습니다. 한 표현이 자동으로 나오려면 최소 7~10회 재발화가 필요합니다. 5번 따라 말하고 끝나는 구조로는 절대 안 됩니다.
한서진(AI): 구현은 간단합니다. 루틴 생성기가 이미 시간 기반으로 채우는 구조니까, 채우는 대상을 "신규 표현 풀"이 아니라 "신규 + 복습 큐"로 바꾸면 됩니다. SM-2 같은 간격 반복 알고리즘이면 충분하고, 순수 함수라 단위 테스트도 쉽습니다.
[결정 D3] 루틴 생성기에 간격 반복(SRS) 내장.
- 기본 배분: 신규 40% / 복습 60% (첫 주는 신규 70%로 시작해 점진 이동)
- 복습 간격: 1일 → 3일 → 7일 → 16일 → 35일, 발화 성공 시 진급 / 실패 시 1단계 강등
- 걷기 모드 따라 말하기 문장은 복습 큐에서 우선 추출 (걷기 = 출력 연습 구간)
- 표현 단위 숙련도 필드 추가: mastery_level, next_review_at
2.2 레벨 진단 3문항은 의미가 없다
이수정: 3문항으로 레벨을 나눌 수 없습니다. 그리고 성인 학습자는 자기 레벨을 과소평가하거나 과대평가합니다. 저희는 상담에서 30분 대화해도 헷갈립니다.
최다인: 온보딩 마찰을 줄이는 관점에서도 진단 문항은 이탈 지점입니다.
이수정: 대안은 자기 진단 대신 목표 선택입니다. "레벨이 어떻게 되세요"가 아니라 "어떤 상황이 제일 막막하세요?" — 공항, 식당, 호텔, 회사 스몰톡 중 고르게 하면 그게 곧 시작 코스입니다. 레벨은 첫 3일 행동 데이터(퀴즈 정답률, 발화 성공률)로 자동 보정합니다.
[결정] 온보딩에서 레벨 진단 문항 제거. 상황 선택으로 대체, 레벨은 3일 후 자동 조정.
2.3 대화문은 "말하기"가 아니라 "알아듣기"용이어야 한다
Ryan: 여행 영어의 실제 실패 지점을 잘못 짚었습니다. 호텔 체크인에서 "I have a reservation under Kim"은 다들 말할 수 있습니다. 30초면 끝나요. 진짜로 얼어붙는 순간은 예상 못 한 되물음입니다.
"Do you want a city view or a garden view?" "Are you paying with the card on file?" "We have you down for two nights, is that right?" "Can I get a card for incidentals?"
이걸 못 알아들어서 말문이 막히는 거지, 내 문장을 못 만들어서가 아닙니다. 그런데 v0.1 콘텐츠 구조는 전부 "내가 말할 문장" 중심입니다.
이수정: 동의합니다. 학원에서도 같은 패턴입니다. 준비한 말은 하는데 상대 답이 조금만 벗어나면 무너집니다.
Ryan: So each situation needs a "curveball" set — 상황마다 자주 나오는 되물음 3~5개를 별도 학습 요소로 넣고, 걷기 모드에서 "이 질문에 답해보세요" 식으로 랜덤 재생합니다. 이게 진짜 차별점이 될 수 있습니다.
[결정 D6] 레슨 구성 요소에 Curveball(예상 밖 되물음) 추가. 상황당 3~5개. 걷기 모드에서 무작위 응답 훈련으로 활용.
2.4 억양 다양성 — 숨은 차별점
Ryan: PRD에 "여행 코스 우선 지역: 일본·동남아처럼 영어 외 언어 지역도 영어로 갈지"라는 미결 항목이 있던데, 이건 미결이 아니라 기회입니다. 한국인이 실제로 영어를 쓰는 곳은 미국이 아니라 방콕, 다낭, 도쿄, 싱가포르입니다. 거기서 만나는 상대는 원어민이 아니에요. 인도계 호텔 직원, 필리핀계 승무원, 일본인 역무원.
미국 표준 발음만 들려주는 앱으로 공부하면 현지에서 한 마디도 못 알아듣습니다. 상황별로 화자 억양을 섞는 것이 실질적 차별점이고, 마케팅 메시지로도 셉니다.
한서진: TTS로 구현 가능합니다. 주요 클라우드 TTS가 en-IN, en-SG, en-PH, en-AU 보이스를 지원합니다. 비용 차이 없습니다.
[결정] 여행 코스는 억양 믹스를 기본 사양으로 한다. 상황별로 미국/영국 외 최소 1개 비원어민·지역 억양 화자 포함.
2.5 콘텐츠 제작 방식 — 검수가 병목
Ryan: "Claude로 초안 → 원어민 검수 30~50개 상황"이라고 되어 있는데, 검수는 생성보다 오래 걸립니다. 그리고 스타일 가이드 없이 검수하면 검수자마다 결과가 다릅니다. 제가 필요한 건 문서 한 장입니다 — 무엇을 고치고 무엇을 두는지에 대한 기준.
제안하는 기준: - 교과서체 금지: "Could you possibly tell me where..." → "Where's...?" - 축약형 필수: "I am going to" → "I'm gonna" (구어 표기는 병기) - 문장 길이 12단어 이하 - 완결문 강박 금지: 실제 대화의 절반은 단어 한두 개 + 억양 - 상황마다 "공손 버전 / 편한 버전" 2단
그리고 초기 핵심 100문장은 TTS 말고 실제 사람 녹음을 권합니다. TTS는 단어는 정확한데 대화의 리듬(겹침, 망설임, filler)이 없습니다. 따라 말하기 모델로는 부자연스러워요. 성우 기준 2~3시간 세션이면 100문장 나옵니다.
정민우: 비용은요?
Ryan: 한국 거주 원어민 성우 시간당 8~15만원. 100문장이면 30~50만원 선입니다. MVP 예산에서 감당 가능한 수준이고, 앱 첫인상을 좌우합니다.
[결정] (a) 콘텐츠 스타일 가이드를 M2 산출물로 명문화. (b) 핵심 100문장은 실제 원어민 녹음, 나머지는 TTS.
3. 음성 기술 (한서진)
3.1 발음 "점수"를 버려야 하는 이유
한서진: v0.1은 "음성 인식 일치율"로 피드백을 준다고 되어 있습니다. 실전에서 이게 무너지는 지점을 말씀드리겠습니다.
- 도심 인도 소음은 70~80dB입니다. 버스 지나가면 85dB.
- 걷기 중에는 호흡이 불규칙해 발화가 끊깁니다.
- 비원어민 발음에 대한 온디바이스 STT의 WER(단어 오류율)은 조용한 환경에서도 15~25%, 소음 환경에서는 40% 이상으로 올라갑니다.
즉 사용자가 잘 말해도 틀렸다고 나오는 경우가 흔합니다. 점수를 보여주면 그 순간 앱 신뢰가 무너집니다. 반대로 무조건 관대하게 하면 "이 앱 대충 보네"가 됩니다. 점수라는 형식 자체가 이 환경에 안 맞습니다.
이수정: 학원에서도 발음 점수는 안 씁니다. 동기를 깎기만 해요.
한서진: 제안하는 판정 모델: - 1차(기본): 이진 판정 — "말했다 / 안 들렸다". 인식 신뢰도가 낮으면 통과 처리(false negative보다 false positive가 안전) - 2차(선택): 조용한 환경에서만 상세 피드백 — 마이크 입력 SNR을 측정해 임계값 이상일 때만 단어별 하이라이트 제공. 집·사무실에서 복습할 때 활성화 - 진행 지표는 정확도가 아니라 누적 발화 문장 수
박준혁: SNR 측정은 RMS 기반으로 간단히 됩니다. 무리 없습니다.
[결정 D5] 발음 점수 폐기. 이진 판정 기본 + 저소음 환경에서만 상세 피드백. 지표는 발화량 중심.
3.2 블루투스 오디오 — 가장 과소평가된 리스크
한서진: 개발계획서에 "재생과 녹음 사이 오디오 세션 전환 시 끊김·지연 확인"이라고 한 줄 있는데, 이건 한 줄짜리 항목이 아닙니다.
블루투스 이어폰에서 마이크를 켜는 순간 코덱이 A2DP(스테레오, 고음질)에서 HFP/SCO(모노 16kHz, 전화 음질)로 떨어집니다. 원어민 음성이 갑자기 전화 통화 음질이 되고, 전환에 0.5~2초 무음이 생깁니다. AirPods, 갤럭시 버즈 전부 해당됩니다.
박준혁: 이게 제품 체감에 직결됩니다. 발음을 따라 하는 앱인데 들려주는 소리가 전화 음질이면 존재 이유가 없어집니다.
한서진: 검증할 조합이 몇 가지 있습니다. 1. 재생은 블루투스(A2DP), 녹음은 기기 내장 마이크 — 음질 유지되나 걸으면서 주머니 속 폰 마이크로 녹음 시 인식률 저하 2. 재생·녹음 모두 HFP — 일관되나 전 구간 음질 저하 3. 재생 종료 후 세션 전환, 녹음 완료 후 복귀 — 전환 지연이 매번 발생 4. iOS 18+ / Android 13+의 신규 블루투스 오디오 API(LE Audio) 지원 기기 한정 개선
[결정] M1 스파이크에 "블루투스 오디오 매트릭스 검증"을 독립 항목으로 추가. AirPods / 갤럭시 버즈 / 저가 중국산 이어폰 3종 × 4가지 조합 실측. 이 결과가 걷기 모드 최종 설계를 결정한다.
3.3 온디바이스 STT 선택지
한서진: 개발계획서는 iOS Speech / Android SpeechRecognizer 브리지로 잡았는데, 짚어둘 점이 있습니다.
- iOS
SFSpeechRecognizer: 온디바이스 지원 여부가 기기·언어별로 다름.supportsOnDeviceRecognition확인 필수. 네트워크 모드는 1분/요청, 시간당 요청 수 제한이 있어 상시 사용에 부적합 - Android
SpeechRecognizer: 제조사 구현 편차가 큼. 삼성/구글/샤오미 동작이 다름. 오프라인 인식은 언어팩 설치 여부에 의존 - 대안: whisper.cpp + CoreML/NNAPI로 small 모델 온디바이스 구동. 정확도는 확실히 낫지만 앱 용량 +40~150MB, 발열·배터리 부담. 30분 걷기 모드 기준 배터리 실측 필요
권장: MVP는 네이티브 STT로 가되, 추상화 계층을 두어 엔진 교체가 가능하게 합니다. SpeechRecognizer 인터페이스 하나에 구현체 3종(iOS / Android / Whisper)을 갈아끼울 수 있게요.
[결정] STT를 인터페이스로 추상화. MVP는 네이티브 엔진, Whisper는 폴백 후보로 벤치마크만 수행.
4. UX·디자인 (최다인)
4.1 스트릭의 역설
최다인: 스트릭은 양날의 검입니다. 유지될 때는 강력하지만, 깨지는 순간이 가장 큰 이탈 지점입니다. 출장, 재택근무, 휴가, 아픈 날 — 출퇴근 기반 앱은 구조적으로 스트릭이 자주 깨집니다.
이수정: 학원도 같습니다. 결석 한 번 하면 다음 주도 안 나옵니다. 그래서 저희는 결석한 날 바로 연락합니다.
최다인: 제안: - 주말·공휴일은 스트릭 계산에서 자동 제외 (출퇴근 앱이니까) - 스트릭 프리즈 주 1회 자동 지급 — 하루 빠져도 유지 - 재택 모드: "오늘은 출퇴근 안 해요" 버튼 → 짧은 홈 루틴으로 대체, 스트릭 유지 - 깨졌을 때 문구를 "0일부터 다시"가 아니라 "이번 달 12일 학습했어요" 로 — 누적 지표를 전면에
4.2 이어폰 없는 날
최다인: 이 앱은 이어폰이 없으면 학습이 불가능한 구조입니다. 그런데 이어폰을 깜빡하는 날은 반드시 옵니다. 그날 앱을 열었는데 할 게 없으면 그대로 이탈합니다.
[결정] "이어폰 없는 날 모드" 추가 — 무음 읽기 + 퀴즈 중심의 짧은 루틴. 스트릭 인정.
4.3 온보딩 마찰
최다인: "탑승 시간 몇 분, 도보 몇 분"을 정확히 아는 사람은 드뭅니다. 입력 필드로 물으면 멈칫하고, 멈칫하면 이탈합니다.
- 슬라이더 + 기본값(탑승 25분 / 도보 10분)으로 제시, "대충이면 됩니다" 문구
- 첫 주 실제 사용 시간 데이터로 자동 보정, "평소보다 짧게 타시네요, 루틴 줄일까요?" 제안
- 가입 전 체험은 강하게 지지합니다. 첫 레슨 완료 후에 가입을 묻습니다
4.4 안전 — 경고문은 면피용
최다인: "걷는 중에는 화면을 보지 마세요" 안내는 사고가 나면 아무 역할도 못 합니다. 설계로 막아야 합니다.
- 걷기 모드 진입 시 화면 자동 소등, 모든 조작은 음성·이어폰 버튼
- 화면을 켜면 자동 일시정지(재개하려면 명시적 탭) — 보면서 걷는 것을 구조적으로 불편하게
- 횡단보도·교차로 구간 자동 인식은 MVP 범위 밖이지만, 가속도계로 급정지 감지 시 일시정지는 검토 가능
4.5 제스처
[결정] 스와이프를 주 조작에서 제외. 최소 64pt 탭 타겟, 화면 하단 40% 영역에 배치. 스와이프는 보조 수단으로만.
5. 개발 계획 (박준혁)
5.1 마일스톤 순서가 리스크와 반대다
박준혁: 가장 큰 문제입니다. 이 제품의 핵심 차별점이자 최대 기술 리스크가 걷기 모드인데, M6에 있습니다. 9주를 쓰고 나서 "블루투스 전환 때문에 안 되네"를 발견하면 재앙입니다.
원칙은 하나입니다 — 불확실한 것을 먼저 한다. 지하철 모드(카드·퀴즈)는 리스크가 0에 가깝습니다. 언제 만들어도 됩니다.
재배치안:
M0 환경 세팅 1주
M1 스파이크 2주 ← 1주 → 2주 (블루투스 매트릭스 추가)
▶ 게이트: 여기서 걷기 모드 실현 가능성 판정. 불가 시 전체 스코프 재설계
M2 콘텐츠 파이프라인 1주
M3 걷기 모드 (핵심) 2주 ← M6에서 전진
M4 온보딩·루틴+SRS 1.5주
M5 지하철 모드 2주
M6 오프라인·동기화 1주
M7 기록·알림·분석 1.5주
M8 베타 2주
────────────────────────
합계 14주 (기존 12주 + 2주)
정민우: 2주가 늘었는데, 선행 검증 2주까지 더하면 16주입니다.
박준혁: 대신 9주차에 프로젝트가 무너질 확률이 크게 떨어집니다. 그리고 M1 게이트에서 조기 종료하면 3주만 쓰고 방향을 트는 겁니다.
5.2 12주 산정이 낙관적인 이유
박준혁: 개발계획서가 "구현은 Claude, 리뷰·실기기 테스트는 오너" 구조인데, 이 구성의 병목은 코드 작성이 아니라 실기기 검증 루프입니다.
- 오디오 버그는 로그로 안 잡힙니다. 들어봐야 압니다
- 블루투스 이슈는 기기마다 다릅니다. 3종 × 재현 = 회당 30분
- 지하철·길거리 실환경 테스트는 실제로 출퇴근을 해야 합니다
오너가 주당 리뷰·테스트에 쓸 수 있는 시간이 최소 10시간은 되어야 이 일정이 성립합니다. 5시간이면 20주로 보셔야 합니다. 이건 착수 전에 확정해야 할 숫자입니다.
5.3 푸시 알림이 2단계인 건 치명적이다
이수정: 제가 강하게 반대하고 싶은 부분입니다. 학원이 망하거나 흥하는 건 커리큘럼이 아니라 결석 관리입니다. 좋은 수업을 해도 안 나오면 끝이고, 평범한 수업이어도 계속 나오면 실력이 붑니다.
이 앱의 트리거는 명확합니다. 매일 같은 시간, 같은 장소에서 시작되는 행동. 습관 형성의 교과서적 조건인데, 그걸 붙잡아줄 알림이 2단계라는 건 앞뒤가 안 맞습니다.
박준혁: 기술적으로도 반대할 이유가 없습니다. 출퇴근 시각 기반 알림은 로컬 알림이라 서버가 필요 없습니다. notifee 또는 RN 기본 API로 반나절이면 붙습니다. 원격 푸시(서버 발신)만 2단계로 두면 됩니다.
[결정 D2] 로컬 알림을 P0으로 상향. 원격 푸시(FCM/APNs)는 2단계 유지. - 출근 시각 10분 전 / 퇴근 시각 10분 전 - 문구에 오늘 상황을 포함: "오늘은 카페에서 주문하기예요" - 알림 권한 요청은 온보딩이 아니라 첫 레슨 완료 직후 (수락률이 크게 차이남)
5.4 오디오 상태 머신 명세 필요
박준혁: "오디오는 단일 서비스" 원칙은 옳습니다. 다만 원칙만으로는 구현이 안 됩니다. 상태 전이를 명세로 못 박아야 합니다.
IDLE → LOADING → PLAYING_PROMPT → BEEP → RECORDING → EVALUATING
↓ ↓ ↓
INTERRUPTED ←──────────────┴────────────┘
↓
(자동 재개 / 사용자 재개)
인터럽트 소스: 전화 수신, 타 앱 재생, 이어폰 분리, 블루투스 끊김, 알람, 내비 안내음. 각각에 대한 정책(자동 재개 / 대기 / 종료)을 표로 확정해야 합니다.
5.5 Android 14 포그라운드 서비스 권한
박준혁: 개발계획서에 빠진 항목입니다. Android 14(API 34)부터 포그라운드 서비스에 타입 선언과 전용 권한이 필수입니다.
- 재생: FOREGROUND_SERVICE_MEDIA_PLAYBACK
- 녹음: FOREGROUND_SERVICE_MICROPHONE
그리고 Android 14는 백그라운드에서 시작한 서비스의 마이크 접근을 제한합니다. 잠금 화면 녹음은 여기서 막힐 가능성이 높습니다. M1에서 확인 대상입니다.
6. 수익 모델과 검증 순서 (정민우)
6.1 12주 뒤에 가격을 정하면 늦다
정민우: "수익 모델 미결정"이 v0.1의 가장 큰 사업 리스크입니다. 가격은 나중에 붙이는 딱지가 아니라 콘텐츠 구조와 온보딩 설계를 바꾸는 변수입니다. 무료 범위를 어디까지 둘지에 따라 코스 분할 방식이 달라집니다.
시장 참고치 (국내 영어 회화 앱 구독 수용 가격대): - 월 9,900~19,900원이 심리적 수용 구간 - 연간 결제 할인율 40~50%가 표준 - 학습 앱 구독 전환율은 무료 사용자의 2~5%
[결정 D7] 수익 모델 확정.
| 플랜 | 가격 | 범위 |
|---|---|---|
| 무료 | 0원 | 일일 루틴 무제한, 코스 2개(일상 스몰톡 + 여행 기초), 이진 발음 판정 |
| Pro | 월 12,900 / 연 79,000 | 전체 코스, Curveball 훈련, 상세 발음 피드백, AI 롤플레이(3단계), 오프라인 전체 다운로드 |
| 여행 패스 | 29,000 (90일) | 특정 여행지 코스 전체 + D-day 집중 모드. 구독 없이 단품 |
정민우: 여행 패스를 따로 두는 이유는 D-day가 최고의 결제 트리거이기 때문입니다. "여행까지 32일 남았어요" 화면에서 전환율이 평시의 몇 배가 나옵니다. 구독을 거부하는 사용자층도 단품은 삽니다.
6.2 북극성 지표
정민우: v0.1의 핵심 지표가 "주당 출퇴근 학습 세션 수"인데, 이 앱의 본질에 맞지 않습니다. 세션을 열기만 하고 한 마디도 안 해도 카운트됩니다.
[결정] 북극성 지표를 주간 발화 문장 수(WSU, Weekly Spoken Utterances)로 변경. 목표: 활성 사용자 주 50문장.
보조 지표: - D1 / D7 / D30 리텐션 (목표: D7 40%, D30 20%) - 걷기 모드 진입률 (지하철 세션 대비) - 발화 시도율 (재생된 문장 대비 실제 발화) - 무료→Pro 전환율 (목표 3%) - 복습 도달률 (SRS 큐 소화 비율)
6.3 착수 전 2주 검증
정민우: 개발 0주차 전에 이걸 먼저 합니다.
| 항목 | 방법 | 판단 기준 |
|---|---|---|
| 발화 수용도 | 타깃 30명 설문 + 심층 인터뷰 5명 | "길에서 따라 말할 수 있다" 60% 이상 |
| 수요 | 랜딩 페이지 + 대기자 명단, 소액 광고 | CTR 2% 이상, 이메일 전환 20% 이상 |
| 가격 | 설문 내 Van Westendorp 가격 민감도 | 수용 구간이 9,900~19,900 포함 |
| 베타 모집 | 대기자 명단에서 확보 | 30명 이상 |
최다인: 랜딩 페이지는 제가 반나절이면 만듭니다. 실제 앱 화면 목업 3장이면 충분합니다.
박준혁: 이 2주 동안 저는 M0(환경 세팅)와 M1 스파이크를 병렬로 돌릴 수 있습니다. 일정 손실이 실제로는 크지 않습니다.
7. 미결 사항 정리
회의에서 해소된 항목과 남은 항목:
| 항목 | v0.1 상태 | v0.2 결과 |
|---|---|---|
| 앱 이름·브랜딩 | 미결 | 후보 제시, 오너 결정 대기 |
| 수익 모델 | 미결 | ✅ 확정 (D7) |
| 대상 레벨 | 미결 | ✅ 레벨 대신 상황 선택 |
| 발음 피드백 수준 | 미결 | ✅ 이진 판정 + 조건부 상세 (D5) |
| 원어민 검수 리소스 | 미결 | ✅ 스타일 가이드 + 핵심 100문장 녹음(30~50만원) |
| 운영 예산 | 미결 | ⚠️ 오너 확인 필요 (월 API 비용 상한) |
| 베타 테스터 모집 | 미결 | ✅ 선행 검증 단계의 대기자 명단에서 확보 |
| 여행 코스 우선 지역 | 미결 | ✅ 동남아·일본 우선 + 억양 믹스를 차별점으로 |
| 주당 리뷰 가능 시간 | 미결 | ⚠️ 일정 산정의 전제. 착수 전 반드시 확정 |
| 테스트 기기·이어폰 | 미결 | ⚠️ M1 스파이크 전제. 이어폰 3종 필요 |
앱 이름 후보 [제안]
| 후보 | 근거 |
|---|---|
| 오가며 (Ogamyeo) | "오가며 익힌다" — 출퇴근의 왕복성을 직관적으로 담음 |
| 커뮤트 (Commute) | 카테고리 직역, 검색 유입에 유리, 글로벌 확장 시 무난 |
| 말하며 걷기 | 핵심 행동을 그대로 이름으로. 설명이 필요 없음 |
| 8시 20분 | 출근 시각을 이름으로. 기억에 남지만 의미가 좁음 |
8. 액션 아이템
| # | 담당 | 항목 | 기한 |
|---|---|---|---|
| A1 | 오너 | 주당 리뷰·테스트 가능 시간 확정 | 착수 전 |
| A2 | 오너 | 테스트 기기·이어폰 3종 확보 (AirPods급 / 갤럭시버즈급 / 저가) | W1 |
| A3 | 최다인 | 랜딩 페이지 + 목업 3장 | W1 |
| A4 | 정민우 | 설문 설계·배포, 인터뷰 5건 | W1~W2 |
| A5 | 박준혁 | M0 환경 세팅 (검증과 병렬) | W1 |
| A6 | 박준혁·한서진 | M1 스파이크 — 블루투스 오디오 매트릭스 | W2~W3 |
| A7 | Ryan | 콘텐츠 스타일 가이드 초안 | W2 |
| A8 | 이수정 | SRS 파라미터·상황 우선순위 정의 | W2 |
| A9 | 전원 | M1 게이트 리뷰 — 걷기 모드 진행 여부 판정 | W3 말 |
9. 게이트 조건 (M1 이후 판정)
M1 스파이크 종료 시 아래를 충족하지 못하면 걷기 모드 설계를 재검토한다.
| 조건 | 기준 |
|---|---|
| 블루투스 재생 음질 유지 | 최소 1개 조합에서 녹음 전환 후에도 A2DP급 재생 유지 |
| 세션 전환 지연 | 재생 → 녹음 전환 1초 이내 |
| 소음 환경 인식률 | 70dB 배경음에서 이진 판정 정확도 85% 이상 |
| 백그라운드 재생 | iOS·Android 모두 잠금 화면에서 30분 연속 재생 |
| 이어폰 버튼 | 재생/일시정지 + 다음 최소 2종 동작 |
| 배터리 | 30분 걷기 모드에서 소모 8% 이하 |
미충족 시 대안(우선순위 순) 1. 유선 이어폰 권장 + 블루투스는 재생 전용 모드로 축소 2. 녹음을 생략하고 "따라 말하기(판정 없음)" + 자기 평가 탭으로 대체 3. 걷기 모드를 듣기 전용으로 축소하고, 발화 연습은 귀가 후 홈 세션으로 이동