출퇴근 영어 회화 앱 · 제품 문서

출퇴근 영어 회화 앱 — 기획서 (PRD) v0.2

작성일: 2026-09-13 · 상태: 검토 회의 반영본 · 기준: v0.1 + 제품검토 회의(2026-09-13) 표기: [결정] 확정 · [제안] 검토 필요 · [확인 필요] 정보 요청 변경 이력: v0.1 초안 → v0.1.1 스택 변경 → v0.2 6인 검토 반영


0. v0.1 대비 변경 요약

# 변경 절
C1 착수 전 선행 검증 2주 신설 — 발화 수용도·수요·가격 9
C2 걷기 모드를 "통화하는 척" UX로 프레이밍, 속삭임 볼륨 허용 5.4
C3 지하철 모드를 혼잡도 2모드(화면/오디오)로 분기 5.3
C4 루틴 생성기에 간격 반복(SRS) 내장 (신규 40 / 복습 60) 5.2
C5 레벨 진단 제거 → 상황 선택으로 대체, 3일 후 자동 보정 5.1
C6 레슨에 Curveball(예상 밖 되물음) 요소 추가 — 리스닝 강화 6
C7 발음 점수 폐기 → 이진 판정 + 저소음 환경 한정 상세 피드백 5.4
C8 로컬 알림을 P0로 상향 (P2 → P0) 5.7
C9 수익 모델 확정 — 무료 / Pro 12,900 / 여행 패스 29,000 10
C10 북극성 지표를 주간 발화 문장 수(WSU)로 변경 11
C11 여행 코스 억양 믹스를 기본 사양으로 (동남아·일본 우선) 6
C12 스트릭 보호 장치 + 이어폰 없는 날 모드 추가 5.6
C13 리스크에 사회적 장벽·블루투스 음질 저하 추가 12

1. 개요

한 줄 정의

출퇴근 동선(지하철 + 도보)에 맞춰 자동으로 짜이는 루틴으로, 이동만 해도 일상·여행 영어 회화가 입에 붙는 앱.

해결하려는 문제

목표

이 제품이 성립하기 위한 전제 [검증 대상]

  1. 타깃 사용자가 길에서 이어폰을 끼고 영어를 소리 내어 말할 의향이 있다.
  2. 걷기 중 소음 환경에서 음성 인식이 실용 수준으로 동작한다.
  3. 블루투스 이어폰에서 재생 음질을 유지한 채 녹음 전환이 가능하다.

세 전제 모두 v0.1에서 미검증 상태로 개발 계획에 포함되어 있었다. v0.2는 (1)을 선행 검증 2주, (2)(3)을 M1 스파이크 게이트로 분리한다. → 9장


2. 타깃 사용자

대표 페르소나

김지은 (32, 마케터) — 지하철 25분 + 도보 10분 출퇴근. 연 1~2회 해외여행을 가는데 매번 식당·호텔에서 말문이 막힌다. 영어 앱을 여러 번 깔았지만 2주를 못 넘겼다. 퇴근길엔 지쳐서 뭘 "공부"하고 싶지 않다.

[v0.2 추가] 지은의 실제 실패 장면: 방콕 호텔 체크인. "I have a reservation under Kim"까지는 나왔다. 직원이 "Would you like a city view or pool view?"라고 되묻자 굳었다. 문장을 만들지 못한 게 아니라 못 알아들어서 막혔다.

반(反)타깃

사용 환경 범위 [결정 2026-09-19]

근거: 2026-09-19 #제품 회의(전원 동의)와 같은 날 백승현 부대표 결재. 부대표 결재가 "대표 최종 확정을 기다리지 않고 PRD 범위 절 반영을 즉시 착수" 로 닫았으므로, 아래 세 줄은 확정 문장으로 쓴다. 대표 최종 확정만 미결 U8(13장)로 따로 추적한다.

표기: "M3 범위" 는 회의 표현을 그대로 옮긴 것이다. 개발계획서 마일스톤 번호로는 걷기가 M3, 지하철 2모드가 M5이므로 여기서 말하는 M3 범위는 마일스톤 M3 하나가 아니라 MVP에서 만드는 이동 환경 전체를 가리킨다.

러닝 재논의 트리거 — 이 표가 러닝 재논의 조건의 유일한 자리다.

항목 내용
입력 선행 검증 설문 2문항의 분포 — (1) 지난주 실제 러닝 횟수(행동 빈도형) (2) 출퇴근 외 쓰고 싶은 곳(희망형). 두 응답의 격차 자체를 러닝 수요 지표로 쓴다. 문항 추가는 정민우 CGO 몫이고(2026-09-19 회의 다음 액션), 2026-09-19 현재 docs/선행검증_모집/02_스크리닝_문항_초안.md §4 에 S17·S18 로 들어가 있다(선별에 쓰지 않는 참고 문항 — 선정에는 반영하지 않는다). 선택지 최종 문구 확정은 폼 개설 전 정민우 CGO 몫으로 남아 있다
판정 주체 강시영 대표 (commute-probe #70)
판정 시점 M1 게이트(W3) 당일
판정 전 기본 상태 트리거 미발동. 판정 전까지 러닝 관련 설계·추정 작업은 착수하지 않는다
발동 시 비용 M1 매트릭스 재실측 2주 (걷기 수치 승계 불가) + 무입력 조작(음성 / 이어폰 버튼) 설계 추가
사전 임계 숫자 두지 않는다. 2026-09-19 부대표 결재가 "사전 숫자로 고정하지 않는다" 로 닫았다 — 산출 근거 없는 숫자는 판단을 돕지 않고 앵커로 굳는다

3. 핵심 가치와 차별점

구분 기존 회화 앱 우리 앱
학습 시간 사용자가 따로 시간 확보 출퇴근 동선 자체가 학습 시간
분량 고정 레슨 탑승·도보 시간 + 혼잡도에 맞춰 자동 조절
말하기 앉아서, 화면 보며 걸으면서, 화면 없이 (오디오 전용)
복습 진도 중심, 복습은 사용자 몫 간격 반복 내장 — 걷기 구간이 곧 복습
듣기 정돈된 표준 발음 상황별 억양 믹스 (인도·필리핀·일본·싱가포르)
대비 범위 내가 할 말 상대의 되물음(Curveball)까지
동기 연속 학습일 여행 D-day 역산 + 보호 장치 있는 스트릭

[결정] 핵심 구조: 지하철은 입력, 걷기는 출력. [결정 v0.2] 방어 가능한 차별점 3가지: (a) 동선 기반 자동 루틴 (b) 억양 믹스 리스닝 (c) Curveball 대응 훈련


4. 사용 시나리오

출근길 (에너지 있음 → 새 표현 입력)

4-A. 자리가 있거나 여유 있을 때 — 화면 모드 1. 출근 시각 10분 전 알림: "오늘은 호텔 체크인이에요." 2. 지하철 탑승 후 앱을 열면 레슨이 바로 시작된다. (3초 안에) 3. 신규 표현 2~3개 + 복습 표현 3~4개를 카드로 익힌다. 4. 표현이 쓰인 대화를 자막과 함께 본다. 대화 끝에 Curveball 2~3개 — "이렇게 되물어올 수 있어요." 5. 하차 역 근처에서 짧은 확인 퀴즈.

4-B. 만원 지하철 — 오디오 모드 1. 진입 시 "서 있어요" 1탭 → 화면 조작 없이 오디오만 진행. 2. 오늘 표현 미리듣기 → 대화 흘려듣기 → Curveball 듣기. 3. 퀴즈 없음. 하차 시 "걷기 모드 시작할까요?" 알림 1개.

공통 — 도보 구간: 걷기 모드 (핵심 루프) 1. 이어폰으로 자동 이어짐. 화면은 자동으로 꺼진다. 2. "통화하듯 편하게 말하면 됩니다. 이어폰 끼고 있으면 통화 중으로 보여요." 3. 원어민 음성 → 비프 → 따라 말하기 → "좋아요, 다음." 4. 문장은 복습 큐에서 우선 추출된다. 오늘 배운 것 + 3일 전 것 + 7일 전 것. 5. 중간에 Curveball 응답 훈련 1~2회: "Would you like a city view or pool view?" → 답해보세요.

퇴근길 (피곤함 → 가벼운 복습)

  1. 기본값 오디오 모드. 아침 표현이 들어간 대화를 듣기만 한다.
  2. 걸으면서 한두 문장만 따라 말하면 오늘 루틴 완료.
  3. 출근 루틴의 절반 이하 부담.

예외 시나리오 [v0.2 추가]

상황 동작
이어폰을 안 가져온 날 "이어폰 없는 날 모드" — 무음 읽기 + 퀴즈. 스트릭 인정
재택근무 / 휴가 "오늘은 출퇴근 안 해요" → 짧은 홈 루틴 대체. 스트릭 인정
주말·공휴일 스트릭 계산에서 자동 제외
하루 빠짐 주 1회 자동 스트릭 프리즈
통화·알람 인터럽트 자동 일시정지, 종료 후 재개 확인

5. 기능 요구사항

우선순위: P0 = MVP 필수 · P1 = 2단계 · P2 = 이후

5.1 온보딩 (P0)

5.2 데일리 루틴 생성 (P0)

5.3 지하철 모드 (P0) — 혼잡도 2모드

[변경 v0.2] 단일 화면 모드 → 2모드 분기. 진입 시 1탭 선택, 마지막 선택을 기억하되 매번 변경 가능. 퇴근 기본값은 오디오 모드.

5.3.1 화면 모드 - 표현 카드: 영어 문장, 한국어 뜻, 원어민 음성, 사용 상황 한 줄 - 대화 보기: 4~8턴, 자막 토글 - Curveball 섹션: "이렇게 되물어올 수 있어요" 2~3개 + 대응 표현 - 확인 퀴즈: 빈칸 채우기 / 상황에 맞는 표현 고르기 - [변경 v0.2] 조작: 스와이프를 주 조작에서 제외. 최소 64pt 탭 타겟, 화면 하단 40% 영역에 배치 - 근거: 지하철 흔들림·급정거에서 오작동 빈발 - 무음 대응: 이어폰 미연결 시 자막 중심 진행 - 중단 복구: 앱 전환·통화 후 이어서 시작

5.3.2 오디오 모드 (신규) - 화면 조작 없이 재생만. 오늘 표현 미리듣기 → 대화 흘려듣기 → Curveball 듣기 - 퀴즈 없음 - 하차 예상 시점에 "걷기 모드 시작할까요?" 알림 1회

5.4 걷기 모드 — 오디오 (P0, 핵심 루프)

[변경 v0.2] v0.1에서 "P0 단순 → P1 완전"으로 나뉘어 있던 것을 P0 통합. 이 앱의 핵심 차별점을 MVP에서 빼면 검증 자체가 불가능하다.

사회적 장벽 대응 [신규 v0.2 — D1] - 첫 진입 시 명시적 안심 메시지: "이어폰을 끼고 있으면 통화 중으로 보입니다. 아무도 신경 쓰지 않아요." - 볼륨 기준을 "통화하듯이"로 제시. "크게 따라 하세요" 문구 금지 - 속삭임 볼륨을 정상 사용으로 취급 — 인식 감도를 그에 맞춰 조정 - 마이크 달린 이어폰 착용을 권장 흐름에 포함

기본 동작 - 화면 잠금·주머니 속 상태에서 재생 유지 - 이어폰 버튼 제어: 재생/일시정지, 다음("알아요, 넘기기"), 이전("다시 듣기") - 음성 안내만으로 진행 ("따라 해보세요… 좋아요, 다음 문장") - 흐름: 원어민 음성 → 비프 → 녹음·인식 → 판정 → 음성 피드백 - Curveball 응답 훈련: 세션당 1~2회 무작위 삽입

발음 판정 [변경 v0.2 — D5] - 점수 표시 폐기. 근거: 도심 소음 70~80dB + 비원어민 발음에서 STT 오류율이 40%를 넘어, 잘 말해도 틀렸다고 나온다. 점수는 신뢰를 무너뜨린다 - 1차(기본): 이진 판정 — "말했다 / 안 들렸다". 인식 신뢰도가 낮으면 통과 처리 (관대한 쪽으로) - 2차(조건부): 상세 피드백 — 마이크 입력 SNR이 임계값 이상(조용한 환경)일 때만 단어별 하이라이트. Pro 기능 - 진행 지표는 정확도가 아니라 누적 발화 문장 수

안전 [강화 v0.2] - 걷기 모드 진입 시 화면 자동 소등 - 화면을 켜면 자동 일시정지 — 재개하려면 명시적 탭. 보면서 걷는 것을 구조적으로 불편하게 - 경고 문구만으로는 부족하다는 판단. 설계로 막는다

5.5 오프라인 (P0)

5.6 학습 기록·습관 (P0)

5.7 알림 (P0) [승격 v0.2 — D2: P2 → P0]

근거: 이 앱의 트리거는 "매일 같은 시각, 같은 장소에서 시작되는 행동"이다. 습관 형성의 교과서적 조건인데, 이를 붙잡을 알림이 2단계에 있으면 앞뒤가 맞지 않는다. 학원 운영의 핵심이 커리큘럼이 아니라 결석 관리인 것과 같다.

5.8 결제·구독 (P0) [신규 v0.2]

5.9 AI 롤플레이 (P1)

5.10 이후 검토 (P2)

차량(자가용 출퇴근자)은 2026-09-19 결정으로 P2에서도 뺐다. 이후 검토 대상이 아니라 범위 밖이다 → 2장 "사용 환경 범위"


6. 콘텐츠 설계

구조 [변경 v0.2 — Curveball 추가]

코스 (예: 여행 필수 / 일상 스몰톡)
 └ 상황 (예: 호텔 체크인)
    └ 레슨 (1회 출퇴근 분량)
       ├ 핵심 표현 3~5개        (내가 할 말)
       ├ Curveball 3~5개  [신규] (상대가 되물을 말 + 대응)
       ├ 대화문 1개 (4~8턴)
       ├ 퀴즈 3~5문항
       └ 따라 말하기 문장 5개    (걷기용 — SRS 큐에서 추출)

Curveball — 설계 의도 [신규 v0.2]

여행 영어의 실제 실패 지점은 "내 문장을 못 만들어서"가 아니라 "상대의 되물음을 못 알아들어서"다. 호텔 체크인의 I have a reservation under Kim은 대부분 말할 수 있다. 무너지는 곳은 다음이다.

"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?"

상황마다 실제로 자주 나오는 되물음 3~5개를 별도 학습 요소로 두고, 걷기 모드에서 무작위 재생 → 응답 훈련한다.

억양 믹스 [신규 v0.2 — 차별점]

한국인이 실제로 영어를 쓰는 곳은 미국이 아니라 방콕·다낭·도쿄·싱가포르다. 상대는 원어민이 아니다.

초기 상황 목록

제작 방식 [구체화 v0.2]

기준 내용
교과서체 금지 "Could you possibly tell me where..." → "Where's...?"
축약형 필수 "I am going to" → "I'm gonna" (표기 병기)
문장 길이 12단어 이하
완결문 강박 금지 실제 대화의 절반은 단어 한두 개 + 억양
2단 제공 상황마다 "공손 버전 / 편한 버전"

7. UX 원칙

  1. 3초 안에 시작: 앱을 열면 메뉴가 아니라 오늘 레슨이 바로 나온다.
  2. 한 손, 엄지 영역, 큰 타겟: 서서 손잡이 잡은 상태 기준. 제스처가 아니라 64pt 이상 탭 타겟.
  3. 언제 끊겨도 괜찮게: 모든 단계는 1분 이내 단위, 중단 지점 자동 저장.
  4. 걷기는 화면 없이: 화면 자동 소등. 화면을 켜면 자동 일시정지.
  5. 퇴근길은 가볍게: 퇴근 루틴은 출근 루틴의 절반 이하 부담.
  6. [신규] 못 한 날을 벌하지 않는다: 스트릭 보호, 대체 모드, 누적 지표 전면화.
  7. [신규] 관대하게 판정한다: 틀렸다고 하는 것보다 넘어가는 쪽이 낫다. 목표는 평가가 아니라 발화량이다.

8. 기술 설계 (요약 — 상세는 개발계획서 v0.2)

스택

데이터 모델 [변경 v0.2]

User          id, level_estimate, commute_ride_min, commute_walk_min,
              commute_times, subway_mode_pref, created_at
TravelGoal    user_id, destination, depart_date
Course        id, title, type(travel|daily), tier(free|pro), order
Situation     id, course_id, title, region_hint, order
Lesson        id, situation_id, order
Expression    id, lesson_id, en, ko, context, audio_url, accent, register(polite|casual)
Curveball     id, lesson_id, prompt_en, prompt_ko, expected_responses(json),
              audio_url, accent                                        [신규]
Dialogue      id, lesson_id, turns(json), audio_url
QuizItem      id, lesson_id, type, payload(json)
Progress      user_id, lesson_id, status, completed_at
Mastery       user_id, expression_id, level(0~5), next_review_at,
              success_count, fail_count                                [신규]
SpeakingLog   user_id, expression_id, result(pass|unclear), snr_db, created_at
DailyRoutine  user_id, date, slot(am|pm), mode(screen|audio), lesson_ids,
              review_expression_ids, status                            [변경]
StreakState   user_id, current, best, freeze_available, last_active_date [신규]
Subscription  user_id, plan(free|pro|travel_pass), expires_at, store_txn [신규]

주요 변경: Curveball, Mastery(SRS), StreakState, Subscription 테이블 추가. Expression에 accent·register 추가. DailyRoutine에 mode·review_expression_ids 추가.


9. 로드맵 [재구성 v0.2]

v0.1 대비 변경: (a) 선행 검증 2주 신설 (b) 걷기 모드를 앞으로 (M6 → M3) (c) M1 스파이크 1주 → 2주

단계 기간 범위 완료 기준
-1. 선행 검증 2주 랜딩·설문·인터뷰, 가격 민감도, 베타 대기자 발화 수용도 60%↑, 대기자 30명↑
0. 환경·스파이크 3주 RN 세팅, CI, 블루투스 오디오 매트릭스, STT 소음 테스트 게이트 6개 조건 충족 → 12장
1. 콘텐츠 파이프라인 1주 스키마, 스타일 가이드, TTS·녹음 파이프라인, 샘플 10상황 스크립트 1회 실행으로 레슨 패키지 배포
2. 걷기 모드 2주 오디오 플로우, 따라 말하기, Curveball, 이어폰 제어 화면 안 보고 걷기 루틴 완료
3. 온보딩·루틴·SRS 1.5주 온보딩, 루틴 생성기, 간격 반복 입력에 따라 루틴 변화, 복습 큐 동작
4. 지하철 모드 2주 화면/오디오 2모드, 카드·대화·퀴즈, 중단 복구 두 모드 모두 레슨 1개 완주
5. 오프라인·동기화 1주 다운로드 큐, 로컬 DB, 배치 업로드 비행기 모드 완료 → 복구 후 반영
6. 기록·알림·결제·분석 1.5주 스트릭·보호장치, 로컬 알림, 인앱 결제, 분석, Sentry 알림 동작, 결제 플로우 완주
7. 베타 2주 TestFlight / Play 내부 테스트 테스터 30명 2주 사용, WSU 수집

MVP 합계: 약 16주 (선행 검증 2주 + 개발 14주)

v0.1의 12주 대비 4주 증가. 대신 9주차에 핵심 기능이 불가능하다고 밝혀질 위험을 3주차 게이트로 앞당긴다.

이후


10. 수익 모델 [확정 v0.2 — D7]

v0.1에서 미결 상태였다. 가격은 나중에 붙이는 딱지가 아니라 콘텐츠 분할과 온보딩 설계를 바꾸는 변수이므로 착수 전 확정한다.

플랜 가격 범위
무료 0원 일일 루틴 무제한, 코스 2개(일상 스몰톡 + 여행 기초), 이진 발음 판정, 당일 오프라인
Pro 월 12,900 / 연 79,000 전체 코스, Curveball 훈련, 상세 발음 피드백, AI 롤플레이(3단계), 전체 오프라인
여행 패스 29,000 (90일) 특정 여행지 코스 전체 + D-day 집중 모드. 구독 없이 단품

설계 근거 - 국내 영어 회화 앱 구독 수용 구간은 월 9,900~19,900원. 중간값에 배치 - 연간 할인율 49% — 카테고리 표준 - 여행 패스를 별도로 두는 이유: D-day가 최고의 결제 트리거이며, 구독을 거부하는 층도 단품은 구매한다 - 무료 범위를 넉넉히 둔 이유: 습관이 붙기 전에 막으면 리텐션 자체가 죽는다. 일일 루틴은 제한하지 않는다

페이월 노출 지점: 잠긴 코스 진입 / 여행 D-day 화면 / 상세 발음 피드백 시도


11. 성공 지표 [변경 v0.2 — C10]

북극성 지표

주간 발화 문장 수 (WSU, Weekly Spoken Utterances) — 활성 사용자 평균 주 50문장

v0.1의 "주당 학습 세션 수"는 앱을 열기만 하고 한 마디도 안 해도 카운트된다. 이 제품의 본질은 발화량이다.

보조 지표

지표 목표 비고
D1 리텐션 50% 온보딩 품질
D7 리텐션 40% 습관 형성
D30 리텐션 20% 제품-시장 적합 신호
걷기 모드 진입률 60% 지하철 세션 대비. 핵심 가설 지표
발화 시도율 70% 재생된 문장 대비 실제 발화
복습 도달률 80% SRS 큐 소화 비율
레슨 완료율 75% 시작 대비 완료
무료→Pro 전환율 3% 카테고리 평균 2~5%
여행 코스 완주율 50% D-day 도달 시점 기준

12. 리스크와 대응 [보강 v0.2]

# 리스크 심각도 대응
R1 [신규] 길에서 소리 내어 말하기를 사회적으로 꺼림 — 제품 절반이 무효화 치명 선행 검증 2주로 사전 확인. "통화하는 척" UX, 속삭임 허용, 명시적 안심 메시지. 60% 미만 시 제품 전제 재설계
R2 [신규] 블루투스 녹음 전환 시 음질 급락 — A2DP → HFP(16kHz 모노). 재생이 전화 음질이 됨 치명 M1에서 OS 2 × 오디오 세션 구성 2 × 상황 3 = 12케이스(C01~C12) 실측 (이어폰은 축이 아니라 한 벌 = 회차 하나). 게이트 조건. 미충족 시 유선 권장 또는 판정 없는 따라 말하기로 축소
R3 소음 환경 STT 정확도 (70~80dB, 비원어민 발음) 높음 점수 폐기, 이진 판정 + 관대한 통과. SNR 기반 상세 피드백 분기. STT 엔진 추상화로 교체 가능성 확보
R4 백그라운드 녹음 제약 (Android 14 FGS 제한, iOS 심사) 높음 M1 스파이크로 조기 확인. 불가 시 짧게 화면 켜기 대안
R5 [신규] 만원 지하철에서 화면 학습 불가 중간 오디오 모드 분기(5.3.2). 퇴근 기본값 오디오
R6 [신규] 스트릭이 깨지는 순간의 이탈 중간 주말 제외, 프리즈 주 1회, 대체 모드, 누적 지표 전면화
R7 AI 생성 콘텐츠의 부자연스러움 중간 스타일 가이드 선행 문서화, 핵심 100문장 실녹음, 사용자 신고 기능
R8 걷기 중 안전 사고 중간 화면 자동 소등, 화면 켜면 자동 일시정지. 경고문에 의존하지 않음
R9 [신규] 이어폰 미지참일에 할 일이 없음 낮음 이어폰 없는 날 모드
R10 TTS·STT·LLM API 비용 낮음 음성 사전 생성 후 캐싱, STT는 온디바이스 우선, AI 롤플레이 횟수 제한
R11 [신규] 오너의 실기기 검증 시간 부족이 일정 병목 높음 주당 최소 10시간 확보 필요. 미달 시 일정 20주로 재산정

R2 12케이스의 정본 — 축·케이스 식별자(C01~C12)·현장 절차·판정 규칙의 정본은 ogamyeo-app docs/m1-r2-case-matrix.md 이고, 기계가 읽는 같은 표가 같은 저장소 src/lib/m1/cases.ts 에 있다. 위 R2 행과 개발계획서 6.1 의 서술은 그 정본에서 옮겨 온 것이고, 값이 어긋나면 정본이 이긴다. 회차 당일 손으로 채우는 칸은 이 저장소 docs/실기기_실측_회차_기록양식.md 에 있다.

[이력] 축은 2026-09-16 ogamyeo-app #19(PR #27)로 재확정됐다 — v0.2 초안이 축으로 쓴 이어폰 모델 3종과 조합 4종(A~D)은 폐기되고 OS 2 × 오디오 세션 구성 2 × 상황 3 이 됐다. 분모 12는 그대로다(M1 게이트 판정문이 R2 실패 조합 N / 12 로 나간다).


13. 미결정 사항 — 확인 필요

해소됨

아래 6건은 v0.2 작성 시점에 확정됐고, 그 아래 [v0.2 이후] 표시가 붙은 건은 v0.2 발행 뒤 별도 결정으로 닫힌 것이다.

남은 항목 [보강 v0.2 — 담당·기한 배정]

이 표가 미결 항목의 유일한 정본이다. 별도 추적 문서를 만들지 않는다. 항목이 해소되면 이 표에서 지우지 말고, 결정 내용을 본문 해당 절에 반영한 뒤 위 "해소됨" 목록으로 옮긴다.

기한 표기는 회의록 §8 액션 아이템과 §9 M1 게이트, 개발계획서 7.1(선행 검증 2주 + 개발 14주)의 마일스톤 표현을 그대로 쓴다. 이 표는 새 날짜를 만들지 않는다.

# 항목 회의록 §8 담당 (결정 주체) 기한 무엇이 정해지면 해소인가
U1 오너 주당 리뷰·테스트 가능 시간 — 일정 산정의 전제 A1 (오너 / 착수 전) 신우섭 CTO — 실기기 검증 주체 착수 전 (선행 검증 V 시작 전) 주당 투입 가능 시간이 숫자로 확정. 10시간 이상이면 개발계획서 7.1의 16주 일정을 그대로 확정, 미달이면 7.4에 따라 20주 재산정안을 강시영 대표가 승인 — 둘 중 하나가 문서에 반영되면 해소
U2 테스트 기기·이어폰 3종 확보 (AirPods급 / 갤럭시버즈급 / 저가) A2 (오너 / W1) 신우섭 CTO — 비용 지출 + 실기기 W1 기기(iOS·Android 각 1대)와 이어폰 3종이 실물로 확보되고, 각 모델명이 회차 헤더에 적혀 어느 한 벌로 도는 회차인지 기록되면 해소 (개발계획서 6.1 · 회차 헤더 양식은 docs/실기기_실측_회차_기록양식.md §1). 이어폰은 12케이스의 축이 아니라 회차 파라미터(한 벌 = 회차 하나)라서 '대상 기기 목록' 이 12칸을 정하지 않는다 — 3종이면 같은 12칸을 세 벌 돌린다. 기기가 없으면 A6 스파이크(W2~W3) 착수 불가로 게이트가 밀리고, 이어폰은 한 벌만 있어도 회차 1은 돌아가므로 3종 미확보는 착수를 막지 않고 기기 커버리지를 좁힌다. [2026-09-19 추가] 같은 날 회의는 M1 2주 추정의 전제로 "실기기 3종 × OS 2버전 × 이어폰 2종" 을 말했다 — 이 행의 현재 문장(기기 iOS·Android 각 1대 + 이어폰 3종)과 숫자가 다르다. 어느 쪽이 정본인지는 신우섭 CTO가 commute-probe #69에서 정한다. 그 전까지 이 행의 숫자를 고치지 않는다
U4 우선 플랫폼: iOS·Android 동시 vs 한쪽 먼저 — 강시영 대표 — 방향 결정 (신우섭 CTO 기술 검토) M1 게이트(W3) 판정과 함께, 늦어도 M2 착수 전 "동시" 또는 "한쪽 먼저 + 어느 쪽"이 선택되고, 한쪽 먼저면 나머지 플랫폼 착수 시점이 개발계획서 7.1 마일스톤 표에 반영되면 해소. M1 매트릭스 결과(R2)가 플랫폼별로 갈릴 수 있어 게이트 이전에 확정하지 않는다
U5 최소 지원 OS 버전 — 신우섭 CTO — 기술 전제 확정 M1 게이트(W3) — 스파이크 실측 결과를 근거로 iOS·Android 최소 버전이 숫자로 적히고, Android 14 FGS 제약(R4)에 대한 대응이 그 버전 기준으로 정리되면 해소
U6 운영 예산: 월 API 비용 허용 범위 (TTS 초기 제작비 + 상시 STT 폴백 비용) — (회의록 §7은 "⚠️ 오너 확인 필요") 신우섭 CTO — 비용 지출 (상한 변경은 강시영 대표 승인) M1 게이트(W3) 이후, M2 착수 전 월 상한 금액이 원 단위로 확정되고, 상한 도달 시 동작(폴백 STT 중단 / 캐시 전용 전환 등)이 한 줄로 정해지면 해소. R10 대응의 전제
U7 원어민 성우 예산 승인: 30~50만원 — (§7에서 금액만 산출, 승인 미정) 신우섭 CTO — 비용 지출 승인 M2 착수 전 (녹음이 M2 산출물) 승인 또는 거절이 금액으로 확정. 거절이면 핵심 100문장을 TTS로 대체할지 여부까지 정해져야 해소
U8 M3 사용 환경 범위안의 대표 최종 확정 — 2장 "사용 환경 범위"(지하철 2모드 + 걷기 / 차량 제외·트리거 없음 / 러닝 제외·트리거 유지) — (2026-09-19 회의·부대표 결재. 2026-09-13 회의록 §8에는 없음) 강시영 대표 — 방향 결정 M1 게이트(W3) 이전 대표가 범위안을 승인하거나, 다르게 판단한 내용이 2장 "사용 환경 범위" 절에 반영되면 해소. 부대표 결재로 후속 작업(PRD 반영·설문 2문항·M1 추정 재확인)은 이미 착수했고, 되돌림 비용은 그 절의 문구 수정 1건이다
U9 ~~'오가며' 상표·도메인·앱스토어 중복 확인~~ → 해소됨 (2026-10-09, 충돌 없음 · 위 "해소됨" 참고) — 이름 자체는 2026-09-16 오너 지시로 확정됐고(위 "해소됨"), 여기 남은 것은 그 이름을 밖에 걸 수 있는지다 — (2026-09-16 Slack #제품에서 백승현 부대표가 "상표 검색·도메인·앱스토어 중복까지 걸려서 되돌리기 비싼 건"이라고 지적. 2026-09-13 회의록 §8에는 없음) 신우섭 CTO — 기술·비용 전제 확정 (충돌이 나와 이름을 바꿔야 하는 상황이면 그때는 강시영 대표 결정) 랜딩·스토어 등록 전 (선행 검증 랜딩 A3 공개와 스토어 등록 중 먼저 오는 쪽) 국내 상표 출원 현황(상품류 9·41 기준) · 도메인 1개 이상 확보 가능 여부 · iOS App Store와 Google Play의 동명 앱 존재 여부 — 이 셋을 실제로 조회한 결과가 "충돌 없음" 또는 "충돌 있음 + 대응(표기 변경·부제 추가·이름 재검토 중 택1)"으로 이 표에 적히면 해소. 조회 전에는 스토어 등록과 상표 사용 표기(™·®)를 진행하지 않는다 — 되돌리는 값이 거기서부터 비싸진다. 회사 홈페이지·사내 문서의 제품명 표기는 문구 수정 1건이라 이 제약에 걸리지 않는다

담당 표기 원칙 — 회의록 §8의 "오너"는 역할에 따라 나눠 적는다. 실기기 검증·비용 지출·기술 전제는 신우섭 CTO, 방향·우선순위·최종 결정은 강시영 대표. 회의록에 액션 번호가 있는 항목(U1·U2)은 번호와 원문 기한을 그대로 인용했고, 나머지 6건(U4~U9)은 2026-09-13 회의록 §8에 대응 액션이 없어 이 표에서 처음 담당을 배정한 것이다 — 그중 U8은 2026-09-19 회의·부대표 결재를, U9는 2026-09-16 Slack #제품의 부대표 지적을 근거로 등재했다. 번호는 한 번 쓰면 다시 쓰지 않는다: U3(앱 이름·브랜딩)은 2026-09-16 해소돼 표에서 빠졌고, 그 번호를 새 항목에 돌려쓰지 않아 다음 항목이 U9다.

게이트 영향 — U1·U2가 착수 전~W1에 확정되지 않으면 회의록 §9 M1 게이트(A9, W3 말) 판정 자체가 불가능하다. 이 두 건은 다른 미결 항목보다 먼저 처리한다. 단 U2 안에서 기기와 이어폰은 무게가 다르다 — 기기가 없으면 실측이 아예 안 되지만, 이어폰은 한 벌이면 회차 1이 돌아간다(위 해소 조건).