AI 주식 알람 앱을 혼자 만들면서 가장 먼저 한 일은 화면을 그리는 게 아니라 "이 앱이 없어도 되는 이유"를 스스로 반박하는 일이었다. 개인 프로젝트라 검증할 사용자 풀도 크지 않고, 그렇다고 감으로 기능을 쌓으면 결국 "차트 예쁘게 그려주는 앱"에서 못 벗어난다는 걸 알고 있었다. 그래서 기능 리스트를 만들기 전에 페르소나, Pain, KPI를 먼저 표로 못박고, 그 표에 안 걸리는 아이디어는 아예 시작을 안 하기로 했다.
이번 편은 PRD를 쓰기 전 단계 — 시장조사를 어떻게 구조화했고, 그게 실제로 어떤 기능을 쳐냈는지에 대한 기록이다.
1. 페르소나부터: "누구의 아침"을 대체할 것인가
리서치 문서를 정리하면서 페르소나를 세 개로 좁혔다.
| 페르소나 | 특징 | 핵심 Pain | 핵심 Needs |
| 바쁜 직장인 서학개미 | 한국 거주, 미국장 실시간 대응 불가, 예약주문 위주 | 정보 과잉, 장중 대응 불가 | 아침에 1~3개 후보, 바로 주문 가능한 숫자 |
| 준경험 투자자 | 뉴스/유튜브는 보지만 차트 해석은 약함 | 차트 복잡성, 확신 부족 | 방향·가격·기간을 한 장으로 이해 |
| 불신형 유료 독자 | 리딩방/유튜버 경험은 있으나 맹신은 원치 않음 | 검증 부재, 책임 공백 | 확률·성과 이력·한 줄 이유 |
세 페르소나를 관통하는 공통점은 "차트를 더 잘 읽고 싶다"가 아니라 "차트를 안 읽어도 되고 싶다"는 것이었다. 이 지점에서 이미 방향이 정해졌다 — 지표를 더 얹는 앱이 아니라, 지표를 걷어내는 앱을 만들어야 한다는 것.

2. Pain을 감이 아니라 숫자로 정의하기
여기서 제일 시간을 많이 쓴 부분이다. "정보가 너무 많아서 힘들다" 같은 말은 기능 우선순위를 정하는 데 아무 쓸모가 없다. 그래서 Pain마다 실패 KPI와 측정 이벤트를 같이 정의했다.
| Pain ID | Pain | 실패 KPI (가설) | 측정 이벤트 |
| P1 | 정보 과잉으로 탐색 피로 | 추천 카드 CTR < 35% 또는 첫 추천 도달 > 90초 | rec_card_impression, rec_card_click |
| P2 | 차트/지표 해석이 어려움 | 상세 진입률 < 40% | rec_detail_view |
| P3 | 실행 가능한 가격·시점 부재 | 가격 제안 포함 카드 < 95% | 카드 스키마 검증 |
| P4 | 리스크 선택 구조 없음 | Confidence Score 조작률 < 30% | confidence_view, confidence_change |
| P5 | AI 결과가 블랙박스처럼 느껴짐 | 이유 설명 열람률 < 45% | reason_expand, performance_card_view |
| P6 | 장중 대응이 어려움 | 푸시 오픈율 < 20% | push_sent, push_open |
| P7 | 반복 사용 루틴이 약함 | D7 리텐션 < 22% | session_start |
이렇게 표로 만들어 놓으니 좋은 점은, 나중에 "이 기능 넣을까?" 하는 순간마다 "이게 어느 Pain ID를 줄이는지" 되물을 수 있다는 것이다. 대답을 못 하면 그 기능은 보류다.
3. 북극성 KPI 하나로 줄이기
보조 지표를 여러 개 두면 결국 다 잘하는 척하다가 아무것도 못 잡는다. 그래서 KPI도 하나만 북극성으로 정했다.
NS-01 Actionable Decision Rate (ADR) = 24시간 내 actionable_event 발생 사용자 수 / rec_card_view 사용자 수
여기서 actionable_event는 저장, 알림설정, 브로커 이동, 가격 복사, 실행 의향 제출 중 하나 이상이 발생한 것을 뜻한다. 기준선 18%, 목표 35%로 잡아뒀다. 나머지 CTR, First Decision Time, Confidence Engagement Rate 같은 지표는 전부 이 하나를 설명하는 보조 지표로만 쓴다.
4. ADR 5개 — 직관에 반하는 결정을 문서로 박아두기
가장 논쟁적이었던 결정은 이거다: 차트와 보조지표를 메인 화면에서 뺀다. 주식 앱에서 차트를 뺀다는 게 말이 되나 싶었는데, 페르소나 리서치로 돌아가 보면 답이 나온다 — 이 사용자들은 차트를 잘 읽고 싶은 게 아니라 차트 없이 판단하고 싶은 사람들이다.
이런 직관에 반하는 결정들은 나중에 "그냥 넣을까?"로 흔들리기 쉬워서, ADR(Architecture Decision Record) 5개로 못박아 뒀다.
| ADR | 결정 |
| ADR-001 | 핵심 출력은 정보가 아니라 행동 카드 (Decision Layer) |
| ADR-002 | Confidence는 선택 가능한 UX — 수동적인 배지로 두지 않는다 |
| ADR-003 | 예측 범위는 3~5 영업일 — 틱 단위 시그널 없음 |
| ADR-004 | 차트/지표는 메인 화면에서 배제 — 결과 중심 UI |
| ADR-005 | 성과 공개형 Trust Layer — 실패 포함 이력 공개 |
실제로 개발 중에 "가격 차트 넣을까?"라는 생각이 들었고, ADR-004를 다시 읽고 "차트는 상세 페이지에서 접었다 펼치는 보조 요소로만" 타협했다. 문서가 없었으면 매번 새로 논쟁했을 부분이다.
개발을 하면서 추가된 요소들도 꽤 있었다. 초기개발시 페르소나를 세가지로 잡고 진행했을 때는 필요없다 생각이 들었지만, 실제 주식어플을 매일 보는 나의 경험으로는 있으면 좋을 것같아 추가하였다.
5. 기능 게이트: 신규 아이디어를 걸러내는 5문항
리서치 단계에서 만든 것 중 실제로 가장 자주 꺼내 쓴 건 이 5문항이다. 새 기능 아이디어가 생길 때마다 이 체크리스트를 통과하는지 본다.
- 이 기능이 Decision Layer를 강화하는가?
- 사용자의 리스크 선택권을 강화하는가?
- 3~5일 실행 맥락과 맞는가?
- 복잡도를 낮추는가, 높이는가?
- 신뢰를 데이터로 증명하는 구조에 기여하는가?
이 중 2개 이상에 명확히 반하면 보류. 예를 들어 "커뮤니티 기능(전략 공유, 토론)"은 1번은 걸리지만 4번(복잡도)과 5번(신뢰 증명)에 반해서 Out-of-Scope로 뺐다.
6. 정리
시장조사 단계에서 만든 산출물은 결국 페르소나 3개, Pain 표 1개, KPI 1개(+보조 8개), ADR 5개, 게이트 5문항 — 문서량으로는 많지 않다. 그런데 이후 개발 전 과정에서 "이거 넣을까 말까"를 결정하는 기준은 전부 이 표에서 나왔다. 다음 편에서는 이 PRD를 AI 에이전트가 그대로 파싱해서 요구사항으로 쓸 수 있게 SRS로 바꾸는 과정을 정리한다.
'Side Projects > AI Stock Alarm' 카테고리의 다른 글
| [AI 주식 알람] Claude Code 서브에이전트를 6개로 나눈 기준 (0) | 2026.07.21 |
|---|---|
| [AI 주식 알람] 하나의 규칙, 세 개의 AI 도구: Cursor・Claude Code・Antigravity 동시 운영기 (0) | 2026.07.16 |
| [AI 주식 알람] SRS 한 줄이 커밋 20개가 되기까지: 요구사항을 태스크로 쪼개는 스킬 (0) | 2026.07.14 |
| [AI 주식 알람] PRD를 AI 에이전트가 읽게 만들기: SRS를 따로 쓰는 이유 (0) | 2026.07.13 |
| [AI 주식 알람] 3개월짜리 개인 프로젝트 시작 (0) | 2026.07.08 |