본문 바로가기

claude code > AI 기반 애자일 프레임워크 BMAD-METHOD

@whateverU2026. 1. 23. 06:27
반응형

Spring Commiter 중 한명이 좋아요? 누른걸 우연히 들어갔는데  AI-driven agile development framework 란 말이 눈에 들어와서 흥미가 생겨 보게 되었다.

마침 ClaudeCode를 공부하려고 결제한 상태였고... 
해당 저장소 Readme 에 유튜브 영상까지 있어서 한번 따라해 보았습니다

Role > analyst

분석가를 통해 branstorm 진행해 보기

 

금주 어플리케이션을 만들고 싶다고 해보고

 

브레인스토밍 할 방법을 선택하면 된다. 방법이 참 많다

여기에서 6가지 사고 모자, 5 Whys, 역할극을 선택

 

6가지 사고 모자

5 Whys

역할 기반

 

브레인 스토밍 내용 저장

질문들에 대한 답만 했을 뿐인데 친절한 Mary 씨께서 정리를 해주신다. 여기서부터는 powerShell 에서 vscode 의 terminal 로 이동해서 진행

더보기
# Brainstorming Session Results

**Session Date:** 2026-01-23
**Facilitator:** Business Analyst Mary
**Participant:** User

---

## Executive Summary

**Topic:** 금주/절주 지원 애플리케이션 개발

**Session Goals:** 집중적 아이디어 도출 (Focused Ideation)

**Techniques Used:**
1. 6가지 사고 모자 (Six Thinking Hats)
2. 5 Whys
3. 역할극 (Role Playing)

**Total Ideas Generated:** 25+

### Key Themes Identified:
- 간편함이 핵심 - 복잡한 일기 앱이 아닌 원터치 체크
- 감정 설계 중요 - 자신감 부여, 좌절감 방지
- 사회적 요소 - 선택적 공유, 커뮤니티
- 건강한 삶이라는 궁극적 가치 - 사랑하는 사람들과 오래 함께하기

---

## Technique Sessions

### 1. 6가지 사고 모자 (Six Thinking Hats)

#### 🤍 흰색 모자 (사실과 데이터)

**Ideas Generated:**
1. 기존 금주 앱들은 대부분 일기 기능 위주
2. 간편하게 오늘 술을 먹었는지 체크할 수 있는 기능 필요
3. 음주 기록을 차트로 시각화하여 볼 수 있으면 좋겠음
4. 친구와 기록을 공유할 수 있는 기능 필요
5. 타겟: 완전 금주보다는 음주량 조절을 원하는 사람
6. 공유 톤: "나 이만큼 마셨어 ㅜㅜ" - 가볍고 공감하는 느낌

**Insights Discovered:**
- 기존 앱들의 진입장벽이 높음 (일기 작성 부담)
- 사회적 동기부여 요소가 중요함

---

#### ❤️ 빨간 모자 (감정과 직감)

**Ideas Generated:**
1. 사용자에게 "금주할 수 있다"는 자신감을 주고 싶음
2. "아 금주 포기해야지"라는 감정은 절대 느끼게 하고 싶지 않음
3. 성공 시 뿌듯함, 자랑스러움을 느끼면 좋겠음
4. 공유 받은 친구는 "헉 많이 마셨네~" 가벼운 리액션
5. 앱을 열었을 때 심플한 느낌

**Insights Discovered:**
- 앱의 톤앤매너 전체를 결정하는 핵심: 격려와 자신감
- 무거운 응원보다 가볍고 솔직한 리액션이 부담 없음

**Notable Connections:**
- 감정 설계가 이탈률과 직결됨

---

#### 🖤 검은 모자 (비판적 사고)

**Ideas Generated:**
1. 비슷한 앱이 많음 - 차별화 필요
2. 금주에 대한 관심이 충분한지 의문
3. 운동 앱처럼 몇 번 체크하다 그만둘 가능성 높음
4. 크로스 플랫폼 한번에 하기 어려움 → 모바일 웹 우선
5. 격려 푸시 알림으로 이탈 방지
6. 공유 기능은 선택적으로 하여 부담 감소
7. 기존 비슷한 앱들은 오래되어 UI가 예쁘지 않음

**Insights Discovered:**
- 이탈률이 핵심 리스크
- UI/UX 차별화 기회 존재

---

#### 💛 노란 모자 (긍정적 사고)

**Ideas Generated:**
1. 금주 지원 + 건강 개선이 핵심 가치
2. 성공 시 다이어트, 건강 관련 영역으로 확장 가능
3. 건강 습관 관리 플랫폼으로 성장 가능
4. 공유 내역 보려면 앱 설치 필요 → 바이럴 전략
5. 간편한 체크 + 위젯 기능이 진짜 차별점

**Insights Discovered:**
- 확장 가능성이 큼 (건강 플랫폼)
- 위젯이 핵심 경쟁력이 될 수 있음

---

#### 💚 초록 모자 (창의적 사고)

**Ideas Generated:**
1. 연속 금주 스트릭 기능
2. 뱃지 시스템 (성취 시 획득)
3. 금주 일자별 커뮤니티
4. 익명 + 개인 닉네임 시스템

**Insights Discovered:**
- 게이미피케이션 요소가 동기부여에 효과적
- 같은 단계의 사람들끼리 공감대 형성 가능

---

#### 💙 파란 모자 (정리와 종합)

**Summary:**
| 모자 | 핵심 인사이트 |
|------|--------------|
| 사실 | 기존 앱은 일기 위주, 간편 체크+차트+공유 원함, 타겟은 절주 희망자 |
| 감정 | 자신감↑ 좌절감↓, 성공 시 뿌듯함, 앱은 심플하게, 공유는 가볍게 |
| 비판 | 경쟁 많음, 이탈률 우려 → 푸시 알림, 모바일 웹 우선 |
| 긍정 | 건강 플랫폼 확장 가능, 바이럴 잠재력, 위젯으로 차별화 |
| 창의 | 스트릭, 뱃지, 금주 일자별 커뮤니티, 익명 닉네임 |

---

### 2. 5 Whys (다섯 번의 왜)

**Root Cause Analysis:**

| 단계 | 질문 | 답변 |
|------|------|------|
| 1 | 왜 금주 앱을 만들고 싶어? | 내가 술을 많이 먹어서 금주하고 싶어서 |
| 2 | 왜 술을 줄이고 싶어? | 건강하게 술을 먹고 싶은데 너무 자주 먹어서 |
| 3 | 왜 건강하게 마시는 게 중요해? | 오래 재밌게 살고 싶어서 |
| 4 | 왜 오래 재밌게 사는 게 중요해? | 가족, 친구와 더 오래 함께하고 싶어서 |
| 5 | 그게 어떤 의미야? | **삶이 행복하지** |

**Core Value Discovered:**
> **"행복한 삶 = 사랑하는 사람들과 오래 함께하는 것"**

**Implications:**
- 단순한 "금주 앱"이 아닌 **행복한 삶을 위한 도구**
- 슬로건 방향: "더 오래, 더 함께"
- 동기부여 메시지: "오늘 절주로 가족과 1시간 더 함께할 수 있어요"
- 본질: 혼자 금주하는 앱 ❌ → 함께 건강해지는 앱 ⭕

---

### 3. 역할극 (Role Playing)

#### 페르소나 1: 20대 직장인 (회식이 많은 신입사원)

**Scenario:** 회식이 잦아서 술 조절이 필요한 상황

**Key Insights:**
- 회식 문화 속 절주 필요
- 동료와 가볍게 공유하고 싶을 때도 있음
- 하지만 숨기고 싶을 때도 있음
- **결론:** 선택적 공유 기능 중요

---

#### 페르소나 2: 30대 부모 (어린 자녀가 있는)

**Scenario:** 퇴근 후 맥주로 스트레스 해소, 점점 양이 늘고 있음

**Key Insights:**
- 아이에게 좋은 모습 보여주고 싶어서 줄이고 싶음
- "술 안 마신 날 = 아이와 좋은 추억" 연결 메시지가 동기부여 됨
- 바빠서 앱 열 시간이 없음 → **위젯 필수**
- 능동적으로 금주 앱을 찾아 설치할까? → **발견성 문제**

---

#### 페르소나 3: 40대 건강 경고 받은 사람

**Scenario:** 건강검진에서 "간 수치가 높습니다, 술 줄이세요" 경고를 받음

**Key Insights:**
- 건강이 위험하니까 앱 설치 동기 강함
- 꾸준한 사용은 사람마다 다름
- 하지만 "건강해질 때까지"라는 명확한 목표가 있으면 지속 가능
- **결론:** 가장 확실한 타겟 - 절박함이 있음

---

## Idea Categorization

### Immediate Opportunities
*Ideas ready to implement now*

1. **원터치 음주 체크**
   - Description: 오늘 술 마셨는지 O/X로 간편하게 체크
   - Why immediate: 핵심 기능, 개발 복잡도 낮음
   - Resources needed: 기본 UI/UX, 데이터 저장

2. **음주 기록 차트**
   - Description: 주간/월간 음주 패턴을 시각적으로 표시
   - Why immediate: 사용자 인사이트 제공, 동기부여
   - Resources needed: 차트 라이브러리

3. **연속 금주 스트릭**
   - Description: 연속으로 술 안 마신 날 카운트
   - Why immediate: 강력한 동기부여 요소
   - Resources needed: 카운터 로직

4. **격려 푸시 알림**
   - Description: "잘하고 있어요!" 지속적 동기부여 메시지
   - Why immediate: 이탈률 방지 핵심 기능
   - Resources needed: 푸시 알림 시스템

### Future Innovations
*Ideas requiring development/research*

1. **위젯 기능**
   - Description: 홈화면에서 앱 열지 않고 바로 체크
   - Development needed: 플랫폼별 위젯 개발 (iOS/Android)
   - Timeline estimate: MVP 이후

2. **친구 공유 기능**
   - Description: 음주 기록을 친구에게 선택적 공유
   - Development needed: 소셜 기능, 딥링크
   - Timeline estimate: 핵심 기능 안정화 후

3. **뱃지 시스템**
   - Description: 다양한 성취 뱃지 (7일, 30일, 100일 등)
   - Development needed: 뱃지 디자인, 조건 로직
   - Timeline estimate: 스트릭 기능 후

### Moonshots
*Ambitious, transformative concepts*

1. **금주 일자별 커뮤니티**
   - Description: 비슷한 금주 일자의 사람들끼리 익명 커뮤니티
   - Transformative potential: 사회적 지지 네트워크 형성
   - Challenges to overcome: 커뮤니티 관리, 악성 사용자 대응

2. **건강 습관 플랫폼 확장**
   - Description: 절주 → 다이어트, 운동 등 건강 습관 전체로 확장
   - Transformative potential: 종합 건강 관리 플랫폼
   - Challenges to overcome: 기능 범위 확대, 복잡도 관리

3. **바이럴 공유 시스템**
   - Description: 공유 내역 보려면 앱 설치 필요 → 자연스러운 확산
   - Transformative potential: 유기적 사용자 획득
   - Challenges to overcome: 스팸으로 인식되지 않도록 설계

### Insights & Learnings
*Key realizations from the session*

- **간편함이 차별화:** 기존 앱들의 일기 기능이 진입장벽 → 원터치 체크로 해결
- **감정 설계가 핵심:** 좌절감 없이 자신감을 주는 톤앤매너
- **선택적 공유:** 강제 공유는 부담, 원할 때만 공유
- **위젯의 중요성:** 바쁜 사용자를 위한 마찰 최소화
- **명확한 타겟:** 건강 경고 받은 40대가 가장 확실한 초기 타겟
- **본질적 가치:** "금주"가 아니라 "행복한 삶, 함께하는 시간"

---

## Action Planning

### Top 3 Priority Ideas

#### #1 Priority: 원터치 음주 체크 + 스트릭
- Rationale: 핵심 차별화 기능, 낮은 개발 복잡도, 높은 사용자 가치
- Next steps:
  1. UI/UX 디자인
  2. 데이터 모델 설계
  3. MVP 개발
- Resources needed: 프론트엔드 개발, 간단한 백엔드
- Timeline: MVP 첫 번째 목표

#### #2 Priority: 격려 푸시 알림
- Rationale: 이탈률 방지 핵심 기능
- Next steps:
  1. 알림 메시지 기획
  2. 알림 타이밍 설계
  3. 푸시 시스템 구현
- Resources needed: 푸시 알림 서비스
- Timeline: 원터치 체크 후 즉시

#### #3 Priority: 음주 기록 차트
- Rationale: 사용자에게 인사이트 제공, 동기부여 강화
- Next steps:
  1. 차트 유형 결정 (주간/월간)
  2. 시각화 디자인
  3. 차트 컴포넌트 개발
- Resources needed: 차트 라이브러리
- Timeline: 기록 기능 안정화 후

---

## Reflection & Follow-up

### What Worked Well
- 6가지 사고 모자로 다양한 관점 탐색
- 5 Whys로 핵심 가치 발견 ("행복한 삶")
- 역할극으로 실제 사용자 니즈 파악

### Areas for Further Exploration
- 마케팅/사용자 획득 전략: 어떻게 타겟에게 도달할 것인가?
- 수익 모델: 어떻게 지속 가능한 비즈니스로 만들 것인가?
- 경쟁사 심층 분석: 기존 앱들의 구체적인 장단점

### Recommended Follow-up Techniques
- 경쟁사 분석: 기존 금주 앱 5개 이상 직접 사용해보기
- 사용자 인터뷰: 실제 절주 희망자 5명과 인터뷰
- 프로토타입 테스트: 간단한 목업으로 사용성 테스트

### Questions That Emerged
- 푸시 알림 최적의 빈도와 타이밍은?
- 위젯 기능의 기술적 구현 방법은?
- 커뮤니티 기능의 moderation 전략은?
- 건강 데이터 연동 (Apple Health 등) 가능성은?

### Next Session Planning
- **Suggested topics:** 경쟁사 분석, 상세 기능 명세, 기술 스택 결정
- **Recommended timeframe:** 1주일 내
- **Preparation needed:** 기존 금주 앱 리서치, 기술 스택 조사

---

## Appendix: Product Concept Summary

### 앱 이름 아이디어
- (추후 브레인스토밍 필요)

### 핵심 슬로건 방향
> "더 오래, 더 함께"

### 타겟 사용자 우선순위
1. 건강 검진 후 경고 받은 40대
2. 회식이 많은 20-30대 직장인
3. 건강한 모습을 보여주고 싶은 부모

### MVP 기능 목록
1. 원터치 음주 체크 (O/X)
2. 연속 금주 스트릭
3. 음주 기록 차트 (주간/월간)
4. 격려 푸시 알림

### 기술 방향
- 모바일 웹 우선 (PWA)
- iOS/Android 네이티브는 추후

### 감정 설계 원칙
- 자신감 ↑ / 좌절감 ↓
- 심플하고 부담 없는 UI
- 가볍고 솔직한 소셜 톤

---

*Session facilitated using the BMAD-METHOD brainstorming framework*

브레인 스토밍한 결과를 바탕으로 프로젝트 Brief 생성

 

브레인스토밍 한결과를 토대로 Mary 씨 께서 프로젝트 요약을 해주신다. 

타켓 유저부터 비즈니스 목표까지.. 허허

더보기
# Project Brief: Drinky (절주 지원 앱)

**문서 버전:** 1.0
**작성일:** 2026-01-23
**작성자:** Business Analyst Mary
**상태:** 초안 (검토 필요)

---

## Executive Summary

**Drinky**는 술을 완전히 끊기보다 건강하게 조절하고 싶은 사람들을 위한 **간편한 절주 지원 애플리케이션**입니다.

- **핵심 문제:** 기존 금주 앱들은 일기 작성 등 진입장벽이 높아 지속 사용이 어려움
- **타겟 시장:** 음주량 조절을 원하는 20-40대 성인
- **핵심 가치:** 원터치 체크로 간편하게 기록하고, 시각적 피드백과 격려로 절주 습관 형성 지원
- **슬로건 방향:** "더 오래, 더 함께"

---

## Problem Statement

### 현재 상황과 페인 포인트

1. **기존 금주 앱의 한계**
   - 대부분 일기 기능 위주로 매일 작성해야 하는 부담
   - 복잡한 UI로 인한 높은 진입장벽
   - 오래된 앱들은 UI/UX가 현대적이지 않음

2. **사용자의 어려움**
   - 바쁜 일상에서 앱을 열고 기록할 시간이 없음
   - 술을 마신 날 기록하면 좌절감을 느끼게 됨
   - 혼자서 절주를 지속하기 어려움

3. **문제의 영향**
   - 음주 습관 개선 실패 → 건강 악화
   - 가족, 친구와 보내는 질 좋은 시간 감소
   - 장기적으로 삶의 질 저하

### 왜 지금 해결해야 하는가?

- 건강에 대한 관심 증가 (특히 40대 이상)
- MZ세대의 "소버 큐리어스" 트렌드
- 기존 앱들이 사용자 니즈를 충족시키지 못하고 있음

---

## Proposed Solution

### 핵심 컨셉

**"원터치로 기록하고, 함께 응원받는 절주 앱"**

기존 금주 앱들이 "일기"에 집중했다면, Drinky는 **최소한의 마찰로 기록**하고 **긍정적 피드백**을 제공하는 데 집중합니다.

### 차별화 포인트

| 기존 금주 앱 | Drinky |
|-------------|--------|
| 매일 일기 작성 필요 | 원터치 O/X 체크 |
| 무거운 톤앤매너 | 가볍고 격려하는 톤 |
| 혼자서 기록 | 선택적 친구 공유 |
| 앱을 열어야 기록 | 위젯으로 바로 체크 |

### 성공 가능성

- **간편함:** 1초 체크 → 습관 형성 용이
- **감정 설계:** 자신감 부여, 좌절감 최소화
- **사회적 요소:** 친구와 가볍게 공유하며 동기부여
- **확장 가능성:** 건강 습관 플랫폼으로 성장 가능

---

## Target Users

### Primary User Segment: 건강 경고를 받은 40대

**프로필:**
- 40대 직장인
- 건강검진에서 간 수치 경고를 받음
- 가족이 있으며, 건강하게 오래 살고 싶음

**현재 행동:**
- 스트레스로 매일 퇴근 후 음주
- 줄여야 한다는 건 알지만 의지만으로 어려움
- 금주 앱을 찾아보지만 일기 쓰기 부담으로 포기

**니즈와 페인 포인트:**
- 간편하게 기록하고 싶음
- "건강해질 때까지"라는 명확한 목표 필요
- 가족에게 좋은 모습 보여주고 싶음

**목표:**
- 주 5회 음주 → 주 2회로 감소
- 건강검진 수치 정상화
- 가족과 더 많은 시간 보내기

### Secondary User Segment: 회식이 많은 20-30대 직장인

**프로필:**
- 20-30대 직장인 (특히 신입~대리)
- 회식 문화가 있는 회사 근무
- 건강과 다이어트에 관심 있음

**현재 행동:**
- 회식으로 인한 불가피한 음주
- 주말에도 친구 모임으로 음주
- SNS에서 건강 관련 콘텐츠 소비

**니즈와 페인 포인트:**
- 사회생활과 건강 사이 균형
- 가볍게 공유하고 싶지만, 때로는 숨기고 싶음
- 복잡한 앱은 귀찮음

**목표:**
- 주말 과음 줄이기
- 다이어트와 병행
- 건강한 라이프스타일 유지

---

## Goals & Success Metrics

### Business Objectives

- MVP 출시 후 3개월 내 **MAU 1,000명** 달성
- 7일 리텐션 **30% 이상** 유지
- 30일 연속 사용자(스트릭) **100명 이상** 확보
- 앱스토어 평점 **4.0 이상** 유지

### User Success Metrics

- 사용자의 **주간 음주 횟수 20% 감소**
- 연속 금주 스트릭 **평균 7일 이상**
- 앱 사용 후 "절주에 도움이 됐다" 응답 **70% 이상**
- 친구 공유 기능 사용률 **20% 이상**

### Key Performance Indicators (KPIs)

| KPI | 정의 | 목표 |
|-----|------|------|
| DAU/MAU | 일간/월간 활성 사용자 비율 | 25% 이상 |
| D7 Retention | 7일 후 재방문율 | 30% 이상 |
| Streak Completion | 7일 스트릭 완료율 | 40% 이상 |
| Push Open Rate | 푸시 알림 오픈율 | 15% 이상 |
| Share Rate | 공유 기능 사용률 | 20% 이상 |

---

## MVP Scope

### Core Features (Must Have)

- **원터치 음주 체크:** 오늘 술 마셨는지 O/X로 간편하게 기록 (핵심 차별화 기능)
- **연속 금주 스트릭:** 연속으로 술 안 마신 날 카운트, 동기부여 핵심 요소
- **음주 기록 차트:** 주간/월간 음주 패턴 시각화, 인사이트 제공
- **격려 푸시 알림:** "잘하고 있어요!" 등 긍정적 메시지로 이탈 방지

### Out of Scope for MVP

- 위젯 기능 (네이티브 앱 전환 후)
- 친구 공유 및 소셜 기능
- 뱃지/업적 시스템
- 커뮤니티 기능
- Apple Health/Google Fit 연동
- 다국어 지원

### MVP Success Criteria

MVP가 성공했다고 판단하는 기준:

1. **사용성:** 원터치 체크 완료율 90% 이상 (체크 시작 → 완료)
2. **리텐션:** 7일 리텐션 25% 이상
3. **만족도:** 사용자 설문 NPS 30 이상
4. **스트릭:** 최소 100명이 7일 스트릭 달성
5. **피드백:** 치명적 UX 이슈 없이 2주 운영

---

## Post-MVP Vision

### Phase 2 Features

1. **위젯 기능**
   - 홈화면에서 앱 열지 않고 바로 체크
   - iOS/Android 네이티브 앱 전환 필요

2. **친구 공유 기능**
   - 음주 기록을 친구에게 선택적 공유
   - "나 이만큼 마셨어 ㅜㅜ" 가벼운 톤
   - 딥링크로 앱 바이럴 효과

3. **뱃지 시스템**
   - 7일, 30일, 100일 등 성취 뱃지
   - 게이미피케이션으로 동기부여 강화

### Long-term Vision (1-2년)

**"건강한 습관을 만드는 플랫폼"**

- 절주 → 다이어트, 운동, 수면 등 건강 습관 전체로 확장
- 종합 건강 관리 앱으로 포지셔닝
- 데이터 기반 개인화된 건강 인사이트 제공

### Expansion Opportunities

- **B2B 기업 복지:** 직원 건강 관리 솔루션으로 제공
- **보험사 연계:** 건강 데이터 기반 보험료 할인 프로그램
- **병원/클리닉 연계:** 알코올 사용 장애 관리 도구
- **글로벌 진출:** 영어권 시장 (미국의 소버 큐리어스 트렌드)

---

## Technical Considerations

### Platform Requirements

- **Target Platforms:** 모바일 웹 (PWA) 우선
- **Browser Support:** Chrome, Safari, Samsung Internet (최신 2개 버전)
- **Performance Requirements:**
  - 첫 로딩 3초 이내
  - 체크 인터랙션 100ms 이내 반응

### Technology Preferences

- **Frontend:** React 또는 Vue.js (PWA 지원)
- **Backend:** Node.js 또는 Python (FastAPI)
- **Database:** PostgreSQL 또는 Firebase
- **Hosting/Infrastructure:** Vercel 또는 AWS (비용 효율 우선)

### Architecture Considerations

- **Repository Structure:** 모노레포 (프론트엔드 + 백엔드)
- **Service Architecture:** 심플한 모놀리식 (MVP 단계)
- **Integration Requirements:**
  - 푸시 알림 (Firebase Cloud Messaging 또는 OneSignal)
  - 분석 (Google Analytics, Mixpanel)
- **Security/Compliance:**
  - 개인정보 최소 수집 (이메일 또는 소셜 로그인)
  - 음주 기록은 민감 정보로 취급, 암호화 저장

---

## Constraints & Assumptions

### Constraints

- **Budget:** 초기 개발 비용 최소화 (1인 개발 또는 소규모 팀)
- **Timeline:** MVP 4-6주 내 출시 목표
- **Resources:**
  - 개발자 1명 (풀스택)
  - 디자인은 템플릿 활용 또는 AI 도구 활용
- **Technical:**
  - 네이티브 앱 개발 역량 없음 → PWA 우선
  - 위젯 기능은 MVP에서 제외

### Key Assumptions

- 사용자는 간편한 기록 방식을 원한다
- 푸시 알림이 리텐션에 긍정적 영향을 미친다
- 건강 경고를 받은 40대가 가장 적극적인 사용자가 될 것이다
- PWA로도 충분한 사용자 경험을 제공할 수 있다
- 한국 시장에서 먼저 검증 후 확장한다

---

## Risks & Open Questions

### Key Risks

| 리스크 | 설명 및 영향 | 완화 전략 |
|--------|-------------|-----------|
| **높은 이탈률** | 운동 앱처럼 며칠 쓰다 포기할 가능성 | 푸시 알림, 스트릭 게이미피케이션 |
| **차별화 부족** | 비슷한 앱이 많아 묻힐 수 있음 | 원터치 체크 + 감정 설계로 차별화 |
| **발견성 문제** | 사용자가 앱을 어떻게 찾을지 | 바이럴 공유 기능, 콘텐츠 마케팅 |
| **수익 모델 불명확** | 지속 가능한 비즈니스 모델 필요 | MVP 후 프리미엄/구독 모델 테스트 |

### Open Questions

- 푸시 알림의 최적 빈도와 타이밍은?
- 어떤 마케팅 채널이 타겟 사용자에게 효과적일까?
- 수익 모델은 구독? 광고? 프리미엄?
- 앱 이름 "Drinky"가 적절한가? 다른 후보는?

### Areas Needing Further Research

- 경쟁사 심층 분석 (기존 금주 앱 5개 이상 직접 사용)
- 타겟 사용자 인터뷰 (실제 절주 희망자 5명)
- 푸시 알림 메시지 A/B 테스트 전략
- PWA vs 네이티브 앱 사용자 경험 차이

---

## Appendices

### A. Research Summary

**브레인스토밍 세션 결과 요약** (2026-01-23)

- **사용 기법:** 6가지 사고 모자, 5 Whys, 역할극
- **핵심 발견:**
  - 간편함이 핵심 차별화 요소
  - 감정 설계가 이탈률과 직결
  - 본질적 가치: "행복한 삶 = 사랑하는 사람들과 오래 함께하는 것"

**5 Whys 핵심 인사이트:**
> 금주/절주의 궁극적 목적은 "건강"이 아니라 "사랑하는 사람들과 오래 함께하는 행복한 삶"

### B. Target Persona Summary

| 페르소나 | 특징 | 동기 | 우선순위 |
|----------|------|------|----------|
| 40대 건강 경고자 | 건강검진 간 수치 경고 | 절박함, 가족 | 1순위 |
| 20-30대 직장인 | 회식 문화 | 건강+다이어트 | 2순위 |
| 30대 부모 | 자녀에게 좋은 모습 | 롤모델 되기 | 3순위 |

### C. References

- 브레인스토밍 결과: `docs/brainstorming-session-results.md`
- BMAD Framework 문서: `.bmad-core/`

---

## Next Steps

### Immediate Actions

1. 프로젝트 브리프 검토 및 피드백 반영
2. 경쟁사 분석 진행 (기존 금주 앱 5개 이상)
3. PRD(Product Requirements Document) 작성 시작
4. 기술 스택 최종 결정
5. UI/UX 와이어프레임 작성

### PM Handoff

이 프로젝트 브리프는 **Drinky (절주 지원 앱)** 의 전체 맥락을 담고 있습니다.

PM(Product Manager)께서는 'PRD Generation Mode'로 시작하여 이 브리프를 꼼꼼히 검토하고, 사용자와 함께 PRD를 섹션별로 작성해 주세요. 필요한 부분은 명확히 질문하고, 개선점을 제안해 주시기 바랍니다.

---

*Generated using BMAD-METHOD Project Brief Template v2.0*

 

Role > PM - PRD 작성

Mary 씨 안녕 고생했어

 

John Pm 에게 PRD 생성을 요구.

Brownfield -> 기존 진행하고 있던 프로젝트가 있다면 해당 프로젝트 기준으로 생성. (유튜브에서는 똥밭? 이라고 ㅎㅎ)

 

John 이 일을 시작했다. 목표부터

 

기능 요구사항, 비기능 요구사항도 만들고 각 단계에서 더 깊숙하게 분석할 수 있는 옵션들도 제공 된다. 역할별, 5whys, swot 분석, 경쟁사 비교 등... 해당 옵션들으 선택하면 더 상세한 PRD 를 만들 수 있다.

 

서비스 아키텍처 까지 만들어 준다..!

 

에픽 리스트까지 만들어줌..!

 

이어서 각 에픽별 스토리 리스트 생성

 

아래처럼 각 스탭별로 추가적인 옵션들을 제공하여 조금 더 상세하게 작업할 수 있다.

최종적으로 prd 문서를 생성하고 한번 더 PRD 를 검증하는 프로세스가 있다. 여기에서도 검증후에 옵션(선택지)를 통해서 권장 사항 미비점을 반영할건지? 그대로 갈건지? 등을 진행할 수 있고 검토할경우 PRD의 버전 작업내역에 추가된다.

최종 작성된 PRD

더보기
# Drinky Product Requirements Document (PRD)

**문서 버전:** 1.0
**작성일:** 2026-01-23
**작성자:** PM John
**상태:** 검토 완료 - 아키텍처 단계 준비됨

---

## 1. Goals and Background Context

### 1.1 Goals (목표)

- **사용 편의성 극대화:** 원터치(O/X) 체크로 1초 만에 음주 여부 기록 가능
- **습관 형성 지원:** 연속 금주 스트릭과 시각적 차트로 절주 동기부여 강화
- **긍정적 사용자 경험:** 격려 푸시 알림으로 좌절감 최소화, 자신감 부여
- **지속 가능한 리텐션:** 7일 리텐션 30% 이상, 30일 스트릭 사용자 100명 이상 확보
- **시장 검증:** MVP 출시 후 3개월 내 MAU 1,000명 달성

### 1.2 MVP Validation Approach (MVP 검증 방법)

#### 검증 단계

| 단계 | 기간 | 목표 | 성공 기준 |
|------|------|------|-----------|
| **Alpha** | 1주 | 내부 테스트 | 치명적 버그 0건 |
| **Beta** | 2주 | 100명 초대 테스터 | 7일 리텐션 25% 이상 |
| **Launch** | 지속 | 공개 출시 | MAU 1,000 / 3개월 |

#### 피드백 수집 방법

- **정량적:** Mixpanel 이벤트 분석 (체크인율, 리텐션, 스트릭 분포)
- **정성적:** 앱 내 피드백 버튼, 베타 테스터 인터뷰 (5명)
- **NPS:** 출시 2주 후 인앱 설문 (목표: NPS 30+)

#### MVP 이후 전환 기준

- 7일 리텐션 30% 달성 → Phase 2 (소셜 기능) 착수
- 7일 리텐션 20% 미만 → 피봇 또는 핵심 기능 재검토

### 1.3 Background Context (배경)

기존 금주/절주 앱들은 매일 일기를 작성해야 하는 부담, 복잡한 UI, 무거운 톤앤매너로 인해 사용자가 지속 사용하기 어렵습니다. 특히 건강검진에서 간 수치 경고를 받은 40대, 회식이 잦은 20-30대 직장인들은 "술을 줄여야 한다"는 것을 알면서도 바쁜 일상 속에서 앱을 열고 기록하는 것 자체가 장벽이 됩니다.

Drinky는 이 문제를 **원터치 체크**와 **긍정적 피드백 설계**로 해결합니다. 술을 마셨는지 O/X로만 기록하면 되고, 스트릭(연속 금주일)과 차트로 성취감을 시각화하며, 격려 메시지로 이탈을 방지합니다. 핵심 가치는 "더 오래, 더 함께" - 사랑하는 사람들과 건강하게 오래 함께하는 삶을 지원하는 것입니다.

### 1.4 Change Log (변경 이력)

| Date | Version | Description | Author |
|------|---------|-------------|--------|
| 2026-01-23 | 0.1 | PRD 초안 작성 | PM John |
| 2026-01-23 | 1.0 | PM 체크리스트 완료, 운영/데이터 요구사항 추가 | PM John |

---

## 2. Requirements

### 2.1 Functional Requirements (기능 요구사항)

| 우선순위 | ID | 요구사항 |
|---------|-----|---------|
| **P0 (필수)** | FR1 | 사용자는 이메일 또는 소셜 로그인(Google/Kakao)으로 계정을 생성하고 로그인할 수 있다 |
| **P0 (필수)** | FR2 | 사용자는 오늘 음주 여부를 O(마심)/X(안마심) 원터치로 기록할 수 있다 |
| **P0 (필수)** | FR3 | 시스템은 연속으로 술을 마시지 않은 날을 자동으로 카운트하여 스트릭으로 표시한다 |
| **P1 (중요)** | FR4 | 사용자는 주간/월간 음주 기록을 차트(캘린더 뷰 또는 그래프)로 확인할 수 있다 |
| **P1 (중요)** | FR5 | 시스템은 설정된 시간에 격려 푸시 알림을 발송한다 |
| **P1 (중요)** | FR6 | 사용자는 푸시 알림 수신 여부와 시간을 설정할 수 있다 |
| **P2 (권장)** | FR7 | 사용자는 자신의 스트릭 기록과 총 금주 일수를 대시보드에서 확인할 수 있다 |
| **P2 (권장)** | FR8 | 사용자는 과거 날짜의 음주 기록을 수정할 수 있다 (최대 7일 이내) |

### 2.2 Non-Functional Requirements (비기능 요구사항)

- **NFR1:** 앱 첫 로딩 시간은 3초 이내여야 한다
- **NFR2:** 음주 체크 인터랙션은 100ms 이내에 반응해야 한다
- **NFR3:** PWA로 구현하여 모바일 웹에서 앱처럼 사용 가능해야 한다
- **NFR4:** Chrome, Safari, Samsung Internet 최신 2개 버전을 지원해야 한다
- **NFR5:** 음주 기록은 민감 정보로 취급하여 암호화하여 저장해야 한다
- **NFR6:** 개인정보는 최소한으로 수집한다 (이메일, 닉네임 정도)
- **NFR7:** 한국어 UI를 기본으로 제공한다 (다국어는 MVP 이후)

---

## 3. User Interface Design Goals

### 3.1 Overall UX Vision (전체 UX 비전)

**"1초 만에 기록하고, 따뜻한 응원을 받는 경험"**

Drinky의 UX는 **최소한의 마찰**과 **긍정적 감정 설계**에 집중합니다. 기존 금주 앱들이 무겁고 진지한 톤으로 사용자에게 부담을 주었다면, Drinky는 가볍고 친근한 톤으로 매일 들어오고 싶은 앱을 지향합니다. 스트릭이 깨져도 좌절감보다는 "괜찮아요, 다시 시작해봐요!"라는 격려를 전달합니다.

### 3.2 Key Interaction Paradigms (핵심 인터랙션 패러다임)

- **원터치 체크:** 앱 진입 시 가장 먼저 보이는 큰 O/X 버튼, 한 번의 탭으로 기록 완료
- **즉각적 피드백:** 체크 시 애니메이션과 격려 메시지로 성취감 제공
- **점진적 공개:** 대시보드는 핵심 정보(스트릭, 오늘 상태)만 먼저 표시, 상세 차트는 스크롤/탭으로 접근
- **부드러운 전환:** 화면 간 자연스러운 트랜지션으로 앱 사용의 즐거움 강화

### 3.3 Core Screens and Views (핵심 화면)

| # | 화면 | 설명 |
|---|------|------|
| 1 | **온보딩 화면** | 앱 소개, 로그인/회원가입 |
| 2 | **메인 대시보드** | 오늘의 O/X 체크 버튼, 현재 스트릭, 간단한 주간 미리보기 |
| 3 | **기록 차트 화면** | 주간/월간 캘린더 뷰, 음주 패턴 그래프 |
| 4 | **설정 화면** | 알림 설정, 계정 관리, 앱 정보 |

### 3.4 Accessibility (접근성)

**WCAG AA 준수 권장**
- 충분한 색상 대비 (4.5:1 이상)
- 터치 타겟 최소 44x44px
- 스크린 리더 지원 (ARIA 레이블)

### 3.5 Branding (브랜딩)

- **톤앤매너:** 밝고 따뜻한, 친구처럼 격려하는 느낌
- **컬러 방향:**
  - Primary: 따뜻한 그린 또는 민트 계열 (건강, 긍정)
  - Accent: 부드러운 오렌지 또는 코랄 (응원, 에너지)
  - 다크 모드 고려
- **슬로건:** "더 오래, 더 함께"

### 3.6 Target Device and Platforms (타겟 기기 및 플랫폼)

**Web Responsive (PWA)**
- 모바일 웹 우선 (Mobile-first)
- iOS Safari, Android Chrome, Samsung Internet 최신 2개 버전 지원
- PWA로 홈 화면 추가 시 앱처럼 사용 가능
- 데스크톱은 MVP에서 낮은 우선순위

### 3.7 Primary User Flows (주요 사용자 흐름)

#### Flow 1: 신규 사용자 온보딩
```
앱 접속 → 온보딩 슬라이드 → 회원가입/로그인 선택 →
이메일 또는 소셜 로그인 → 닉네임 설정 → 메인 대시보드
```

#### Flow 2: 일일 체크인 (핵심 흐름)
```
앱 진입 → 대시보드 → O/X 버튼 탭 →
저장 완료 애니메이션 + 격려 메시지 → 스트릭 업데이트
```

#### Flow 3: 기록 확인
```
대시보드 → 기록 탭 → 월간 캘린더 뷰 →
특정 날짜 탭 → 상세 정보 바텀시트
```

#### Flow 4: 과거 기록 수정
```
기록 탭 → 수정할 날짜 탭 (7일 이내) →
수정 버튼 → O/X 변경 → 확인 다이얼로그 → 저장 → 스트릭 재계산
```

#### Flow 5: 알림 설정
```
대시보드 → 설정 탭 → 알림 설정 →
ON/OFF 토글 또는 시간 변경 → 즉시 저장
```

#### Edge Cases (엣지케이스)
- **스트릭 깨짐:** 부드러운 격려 메시지 + "다시 시작하기" 버튼
- **오프라인 체크인:** 로컬 저장 → 온라인 복귀 시 동기화
- **푸시 알림 거부:** 나중에 다시 묻기 옵션 제공
- **계정 삭제:** 확인 다이얼로그 2단계 + 30일 내 데이터 삭제

---

## 4. Technical Assumptions

### 4.1 Repository Structure (저장소 구조)

**Monorepo (모노레포)**
- 프론트엔드와 백엔드를 단일 저장소에서 관리
- 1인 풀스택 개발자 환경에 적합
- 추천 도구: pnpm workspaces 또는 Turborepo

### 4.2 Service Architecture (서비스 아키텍처)

**Monolith (모놀리식)**
- MVP 단계에서 복잡한 마이크로서비스 불필요
- 단일 백엔드 서버로 모든 API 처리
- 추후 필요시 서비스 분리 가능한 구조로 설계

### 4.3 Tech Stack (기술 스택)

| 영역 | 선택 | 근거 |
|------|------|------|
| **Frontend** | React + TypeScript | 생태계 풍부, PWA 지원 우수, 채용/유지보수 용이 |
| **UI Framework** | TailwindCSS + shadcn/ui | 빠른 개발, 일관된 디자인 시스템 |
| **Backend** | Node.js (Express 또는 Fastify) | 프론트엔드와 언어 통일, 빠른 개발 |
| **Database** | PostgreSQL (Supabase) | 관계형 데이터 적합, Supabase로 인증/실시간 기능 포함 |
| **Hosting** | Vercel (Frontend) + Supabase (Backend/DB) | 무료 티어 활용, 빠른 배포 |
| **Push Notification** | Firebase Cloud Messaging (FCM) | 무료, PWA 지원 우수 |
| **Analytics** | Mixpanel 또는 PostHog | 사용자 행동 분석, 무료 티어 |

### 4.4 Testing Requirements (테스트 요구사항)

**Unit + Integration (단위 + 통합 테스트)**
- 핵심 비즈니스 로직(스트릭 계산, 기록 저장) 단위 테스트 필수
- API 엔드포인트 통합 테스트
- E2E 테스트는 MVP 이후 고려
- 테스트 도구: Vitest (프론트엔드), Jest (백엔드)

### 4.5 Additional Technical Assumptions (추가 기술 가정)

- **인증:** Supabase Auth 활용 (이메일, Google, Kakao 소셜 로그인)
- **상태 관리:** Zustand 또는 React Context (가벼운 상태 관리)
- **API 통신:** React Query (TanStack Query) - 캐싱, 로딩 상태 관리
- **PWA:** Vite PWA 플러그인 활용
- **암호화:** 음주 기록은 DB 레벨 암호화 (Supabase RLS + 컬럼 암호화)
- **CI/CD:** GitHub Actions → Vercel 자동 배포
- **개발 기간:** MVP 4-6주 (1인 풀스택 개발자 기준)

### 4.6 Data Requirements (데이터 요구사항)

#### 핵심 데이터 엔터티

| 엔터티 | 주요 필드 | 설명 |
|--------|----------|------|
| **users** | id, email, nickname, created_at | 사용자 계정 정보 |
| **drinking_records** | id, user_id, date, did_drink, created_at, updated_at | 일별 음주 기록 |
| **user_settings** | user_id, notification_enabled, notification_time, fcm_token | 사용자 설정 |
| **notification_logs** | id, user_id, sent_at, message_type, status | 알림 발송 이력 |

#### 데이터 정책

- **보존 기간:** 음주 기록은 계정 존재 시 무기한 보존
- **백업:** Supabase 자동 백업 (일 1회, Point-in-Time Recovery)
- **삭제 정책:** 계정 삭제 요청 시 30일 내 모든 데이터 영구 삭제
- **암호화:** 음주 기록은 민감 정보로 취급, DB 레벨 암호화 적용
- **익명화:** 분석용 데이터는 개인 식별 정보 제거 후 집계

### 4.7 Operational Requirements (운영 요구사항)

#### 배포 및 환경

| 환경 | 용도 | URL 패턴 |
|------|------|----------|
| **Production** | 실 서비스 | drinky.app |
| **Preview** | PR 미리보기 | pr-{number}.drinky.app |
| **Local** | 개발 환경 | localhost:5173 |

#### 배포 전략

- **배포 방식:** main 브랜치 머지 시 Vercel 자동 배포
- **롤백:** Vercel Instant Rollback (이전 배포로 즉시 복구)
- **배포 빈도:** 일 1-2회 (기능 완료 시 즉시 배포)

#### 모니터링 및 알림

| 항목 | 도구 | 임계값 |
|------|------|--------|
| **프론트엔드 성능** | Vercel Analytics | LCP 2.5s 초과 시 알림 |
| **에러 추적** | Sentry (무료 티어) | 에러율 5% 초과 시 Slack 알림 |
| **DB 모니터링** | Supabase Dashboard | 연결 수 80% 도달 시 알림 |
| **사용자 분석** | Mixpanel/PostHog | 일간 리텐션 리포트 |

#### 지원 및 유지보수

- **버그 대응:** Critical 24시간 내, Major 48시간 내, Minor 1주 내
- **문의 채널:** 앱 내 이메일 링크 (support@drinky.app)
- **유지보수 창:** 매주 화요일 새벽 2-4시 (필요 시)

---

## 5. Epic List

| # | Epic | Goal |
|---|------|------|
| **Epic 1** | Foundation & Core Check-in | 프로젝트 인프라를 구축하고, 사용자 인증과 원터치 O/X 체크인 기능을 구현하여 앱의 핵심 가치를 전달하는 최소 기능 제품 배포 |
| **Epic 2** | Visualization & Engagement | 음주 기록 차트, 푸시 알림, 설정 기능을 추가하여 사용자 리텐션을 높이고 MVP를 완성 |

---

## 6. Epic 1: Foundation & Core Check-in

### Epic Goal

프로젝트 인프라를 구축하고, 사용자 인증과 원터치 O/X 체크인 기능을 구현하여 **Drinky의 핵심 가치를 전달하는 최소 기능 제품**을 배포합니다. 이 에픽 완료 시 사용자는 회원가입 후 매일 음주 여부를 기록하고, 연속 금주 스트릭을 확인할 수 있습니다.

### Story 1.1: 프로젝트 기반 구축 및 배포 파이프라인

**As a** 개발자,
**I want** 프로젝트 기반 구조와 CI/CD 파이프라인을 구축하여,
**so that** 이후 모든 기능을 안정적으로 개발하고 배포할 수 있다.

**Acceptance Criteria:**
1. pnpm workspaces 기반 모노레포 구조 생성 (apps/web, packages/shared)
2. React + Vite + TypeScript 프론트엔드 프로젝트 초기화
3. TailwindCSS + shadcn/ui 설정 완료
4. Supabase 프로젝트 생성 및 환경변수 설정
5. GitHub 저장소 생성 및 Vercel 연동
6. main 브랜치 푸시 시 자동 배포 확인
7. 헬스체크 페이지("/health") 배포 및 접속 확인

### Story 1.2: 사용자 인증 백엔드 구성

**As a** 사용자,
**I want** 이메일 또는 소셜 계정으로 가입/로그인할 수 있어서,
**so that** 내 음주 기록을 안전하게 저장하고 관리할 수 있다.

**Acceptance Criteria:**
1. Supabase Auth에 이메일/비밀번호 인증 활성화
2. Google OAuth 로그인 설정 완료
3. Kakao OAuth 로그인 설정 완료
4. users 테이블 스키마 생성 (id, email, nickname, created_at)
5. 신규 가입 시 users 테이블에 자동 레코드 생성 (트리거)
6. RLS(Row Level Security) 정책 설정 - 본인 데이터만 접근

### Story 1.3: 인증 UI 및 온보딩 화면

**As a** 신규 사용자,
**I want** 간단하고 친근한 온보딩 화면을 통해 가입할 수 있어서,
**so that** 앱 사용을 빠르게 시작할 수 있다.

**Acceptance Criteria:**
1. 온보딩 화면 - 앱 소개 (1-2 슬라이드)
2. 로그인/회원가입 선택 화면
3. 이메일 회원가입 폼 (이메일, 비밀번호, 닉네임)
4. 이메일 로그인 폼
5. 소셜 로그인 버튼 (Google, Kakao)
6. 로그인 성공 시 메인 대시보드로 이동
7. 비로그인 사용자 접근 시 온보딩으로 리다이렉트
8. 모바일 반응형 UI (375px 기준)

### Story 1.4: 메인 대시보드 레이아웃

**As a** 로그인한 사용자,
**I want** 앱 진입 시 오늘의 상태를 한눈에 볼 수 있는 대시보드를 보고 싶어서,
**so that** 빠르게 오늘의 체크인을 할 수 있다.

**Acceptance Criteria:**
1. 대시보드 페이지 레이아웃 구현
2. 상단에 인사 메시지 표시 ("안녕하세요, {닉네임}님!")
3. 중앙에 오늘의 체크인 영역 (플레이스홀더)
4. 하단에 스트릭 표시 영역 (플레이스홀더)
5. 하단 네비게이션 바 (홈, 기록, 설정 - 기록/설정은 비활성)
6. 로그아웃 기능 (설정 또는 임시 버튼)
7. 모바일 반응형 UI

### Story 1.5: O/X 체크인 기능

**As a** 사용자,
**I want** 오늘 술을 마셨는지 O/X 버튼 하나로 기록할 수 있어서,
**so that** 매일 1초 만에 간편하게 음주 여부를 기록할 수 있다.

**Acceptance Criteria:**
1. 대시보드에 O(마심) / X(안마심) 버튼 표시
2. drinking_records 테이블 생성 (id, user_id, date, did_drink, created_at)
3. 버튼 클릭 시 오늘 날짜로 기록 저장 API 호출
4. 저장 성공 시 시각적 피드백 (애니메이션, 격려 메시지)
5. 오늘 이미 기록한 경우 현재 상태 표시 및 수정 가능
6. 체크인 인터랙션 100ms 이내 반응
7. RLS 정책 - 본인 기록만 조회/수정

### Story 1.6: 연속 금주 스트릭 표시

**As a** 사용자,
**I want** 연속으로 술을 마시지 않은 날을 스트릭으로 확인할 수 있어서,
**so that** 절주 동기부여를 받고 기록을 이어갈 수 있다.

**Acceptance Criteria:**
1. 스트릭 계산 로직 구현 (연속 X 기록 일수)
2. 대시보드에 현재 스트릭 숫자 표시 ("🔥 7일 연속!")
3. 스트릭에 따른 격려 메시지 표시
   - 0일: "오늘부터 시작해볼까요?"
   - 1-6일: "좋은 시작이에요! 계속 가봐요!"
   - 7일+: "대단해요! 일주일 넘게 성공했어요!"
4. 스트릭이 깨졌을 때 부드러운 메시지 ("괜찮아요, 다시 시작하면 돼요!")
5. 최장 스트릭 기록 저장 및 표시
6. 주간 미니 캘린더 미리보기 (최근 7일 O/X 표시)

---

## 7. Epic 2: Visualization & Engagement

### Epic Goal

음주 기록 차트, 푸시 알림, 설정 기능을 추가하여 **사용자 리텐션을 높이고 MVP를 완성**합니다. 이 에픽 완료 시 사용자는 자신의 음주 패턴을 시각적으로 확인하고, 푸시 알림으로 동기부여를 받으며, 앱을 자신에게 맞게 설정할 수 있습니다.

### Story 2.1: 기록 차트 - 캘린더 뷰

**As a** 사용자,
**I want** 월간 캘린더에서 내 음주 기록을 한눈에 볼 수 있어서,
**so that** 어떤 날에 술을 마셨는지 패턴을 파악할 수 있다.

**Acceptance Criteria:**
1. 기록 탭/페이지 생성 및 네비게이션 연결
2. 월간 캘린더 뷰 구현 (현재 월 기본 표시)
3. 각 날짜에 O/X 아이콘 또는 색상으로 음주 여부 표시
4. 이전/다음 월 네비게이션
5. 기록 없는 날은 빈 상태로 표시
6. 특정 날짜 클릭 시 해당 날짜 상세 정보 표시 (모달 또는 바텀시트)
7. 모바일 반응형 UI

### Story 2.2: 기록 차트 - 통계 및 인사이트

**As a** 사용자,
**I want** 주간/월간 음주 통계를 그래프로 확인할 수 있어서,
**so that** 내 음주 습관의 추세를 이해하고 개선할 수 있다.

**Acceptance Criteria:**
1. 주간 음주 횟수 바 차트 (최근 4주)
2. 월간 음주 횟수 추이 그래프 (최근 3개월)
3. 핵심 통계 카드 표시:
   - 이번 주 음주 횟수 / 지난 주 대비
   - 이번 달 음주 횟수 / 지난 달 대비
   - 현재 스트릭 / 최장 스트릭
4. 긍정적 인사이트 메시지 ("지난 주보다 2일 줄었어요!")
5. 차트 라이브러리 사용 (Recharts 또는 Chart.js)
6. 데이터 없는 기간 처리 (빈 상태 메시지)

### Story 2.3: 과거 기록 조회 및 수정

**As a** 사용자,
**I want** 최근 7일 이내의 기록을 수정할 수 있어서,
**so that** 깜빡하고 기록하지 못한 날을 보완할 수 있다.

**Acceptance Criteria:**
1. 캘린더 뷰에서 날짜 클릭 시 기록 상세 표시
2. 7일 이내 날짜는 수정 버튼 활성화
3. 7일 초과 날짜는 수정 버튼 비활성화 + 안내 메시지
4. 기록 수정 시 확인 다이얼로그 표시
5. 기록 없는 과거 날짜에 새 기록 추가 가능 (7일 이내)
6. 수정 완료 시 스트릭 자동 재계산
7. 수정 이력 로깅 (데이터 무결성용)

### Story 2.4: 푸시 알림 인프라 구축

**As a** 사용자,
**I want** 앱에서 푸시 알림을 받을 수 있어서,
**so that** 앱을 열지 않아도 절주 동기부여를 받을 수 있다.

**Acceptance Criteria:**
1. Firebase Cloud Messaging (FCM) 프로젝트 설정
2. PWA Service Worker에 푸시 알림 수신 로직 추가
3. 사용자에게 알림 권한 요청 UI 구현
4. 알림 권한 수락 시 FCM 토큰 저장 (Supabase)
5. 알림 권한 거부 시 안내 메시지 및 나중에 다시 묻기
6. 테스트 알림 발송 및 수신 확인
7. 알림 클릭 시 앱으로 이동

### Story 2.5: 푸시 알림 스케줄링 및 콘텐츠

**As a** 사용자,
**I want** 매일 설정한 시간에 격려 알림을 받을 수 있어서,
**so that** 잊지 않고 체크인하고 동기부여를 유지할 수 있다.

**Acceptance Criteria:**
1. 알림 스케줄링 백엔드 로직 (Supabase Edge Function 또는 외부 서비스)
2. 기본 알림 시간 설정 (저녁 9시)
3. 격려 메시지 템플릿 (최소 10종):
   - "오늘 하루도 고생했어요! 체크인 해볼까요?"
   - "🔥 {N}일 연속 성공 중! 오늘도 화이팅!"
   - "건강한 선택이 쌓이고 있어요 💪"
4. 스트릭 기반 메시지 분기 (스트릭 0일 vs 7일+)
5. 오늘 이미 체크인한 경우 다른 메시지 ("오늘도 기록 완료! 대단해요")
6. 알림 발송 로그 저장

### Story 2.6: 설정 화면

**As a** 사용자,
**I want** 알림 시간과 계정 정보를 관리할 수 있어서,
**so that** 앱을 나에게 맞게 커스터마이징할 수 있다.

**Acceptance Criteria:**
1. 설정 탭/페이지 생성 및 네비게이션 연결
2. 알림 설정 섹션:
   - 푸시 알림 ON/OFF 토글
   - 알림 시간 선택 (시간 피커)
3. 계정 설정 섹션:
   - 닉네임 수정
   - 이메일 표시 (읽기 전용)
   - 로그아웃 버튼
4. 앱 정보 섹션:
   - 버전 정보
   - 개인정보처리방침 링크
   - 문의하기 (이메일 링크)
5. 계정 삭제 기능 (확인 다이얼로그 필수)
6. 설정 변경 시 즉시 저장

### Story 2.7: PWA 최적화 및 MVP 마무리

**As a** 사용자,
**I want** 앱을 홈 화면에 추가하고 오프라인에서도 기본 기능을 사용할 수 있어서,
**so that** 네이티브 앱처럼 편리하게 사용할 수 있다.

**Acceptance Criteria:**
1. Web App Manifest 최적화 (아이콘, 테마 컬러, 시작 URL)
2. "홈 화면에 추가" 프롬프트 구현 (적절한 타이밍)
3. 오프라인 캐싱 전략 구현:
   - 정적 자산 캐싱
   - 최근 기록 데이터 로컬 캐싱
   - 오프라인 시 체크인 → 온라인 복귀 시 동기화
4. 앱 로딩 스플래시 화면
5. Lighthouse PWA 점수 90점 이상
6. 성능 최적화 (첫 로딩 3초 이내)
7. 크로스 브라우저 테스트 (Chrome, Safari, Samsung Internet)

---

## 8. Checklist Results Report

### 8.1 Executive Summary

| 항목 | 결과 |
|------|------|
| **PRD 완성도** | 85% (권장 사항 반영 후) |
| **MVP 범위 적절성** | Just Right (적절함) |
| **아키텍처 단계 준비도** | Ready (준비 완료) |

### 8.2 Category Analysis

| Category | Status | Notes |
|----------|--------|-------|
| 1. Problem Definition & Context | **PASS** ✅ | 문제 정의 및 타겟 사용자 명확 |
| 2. MVP Scope Definition | **PASS** ✅ | MVP 범위 적절, Out of Scope 명확 |
| 3. User Experience Requirements | **PASS** ✅ | 사용자 흐름 추가됨 |
| 4. Functional Requirements | **PASS** ✅ | 우선순위 명시됨 |
| 5. Non-Functional Requirements | **PASS** ✅ | 성능 요구사항 명확 |
| 6. Epic & Story Structure | **PASS** ✅ | 13개 스토리, 적절한 크기 |
| 7. Technical Guidance | **PASS** ✅ | 기술 스택 및 아키텍처 명확 |
| 8. Cross-Functional Requirements | **PASS** ✅ | 데이터/운영 요구사항 추가됨 |
| 9. Clarity & Communication | **PASS** ✅ | 문서 구조 명확 |

### 8.3 Identified Technical Risks

1. **PWA 푸시 알림 (iOS Safari):** iOS에서 PWA 푸시 알림 지원 제한적 - 아키텍트 조사 필요
2. **Kakao OAuth:** Supabase 기본 미지원, 커스텀 구현 필요
3. **오프라인 동기화:** 충돌 해결 로직 복잡도 - MVP에서 단순화 권장

### 8.4 Final Decision

**✅ READY FOR ARCHITECT**

PRD가 아키텍처 단계로 진행할 준비가 완료되었습니다.

---

## 9. Next Steps

### 9.1 UX Expert Prompt

> UX Expert님, `docs/prd.md`를 검토하고 Drinky 앱의 와이어프레임 및 UI 디자인 가이드를 작성해 주세요. 특히 원터치 체크인의 UX와 스트릭 깨짐 시 감정 설계에 집중해 주세요.

### 9.2 Architect Prompt

> Architect님, `docs/prd.md`를 검토하고 Drinky 앱의 기술 아키텍처 문서를 작성해 주세요. Supabase + React PWA 기반 모노레포 구조로, 특히 스트릭 계산 로직과 푸시 알림 스케줄링 아키텍처에 집중해 주세요.

---

*Generated using BMAD-METHOD PRD Template v2.0*

Role > Architect

이제 전체 프로젝트 아키텍처 문서를 생성 

여기에서도 프론트, 백엔드, 풀스택 등의 아키텍처가 있고 기존 프로젝트에서도 진행할 수 있다. 

진행 중에 supabase 를 백엔드로 사용하려고 하기에 익숙한 Spring Kotlin 환경으로 해달라고 변경 진행

호스팅 환경도 Aws 로 진행 했다.

 

토큰이 바닥 났습니다. ㅎㅎ ㅠ

이후 프로세스

만들어진 prd.md, architecture.md 를 작은 문서로 쪼개고 

PO Agent 를 통해 Story 를 생성합니다.

그리고 스크럼 마스터가되어 해당 Story 를 승인 처리하고

드디어 Developer Agent 에게 해당 스토리를 진행하게 합니다. 그럼 정의된 스토리에 architecture.md 를 참고하여 개발자가 그에 맞는 스토리 개발을 진행하게 되고 단계별 완료 표시를 하게됩니다.

이후 QA Agent 를 통해 스토리별 개발이 잘 되었는지 확인할 수 있습니다.

결론

Claude Code 를 통해서 단순한 개발작업, 복잡한 개발작업등을 시킬 생각만 했는데
해당 프레임워크에서는 각각의 롤들을 md 파일에 정의하고 persona 를 정의하여 각 역할에 맞게 진행되는 과정이 인상깊었습니다. 또한 브레인스토밍 등의 정보를 도출 할 때 다양한 방법들도 정의가 되어 있어서 (거의 모르는게 많았지만) 도움이 되었습니다.

 

AI 로 코드를 만들다 보면 리뷰하는 입장에서 힘들 때가 있는데 그런 부분을 한번 더 체크해주는 역학의 md 파일을 만들어서 cli 방식으로 정의 하면 코드 리뷰 할 때 좀 더 좋지 않을까? 란 생각이 들었습니다. 

 

해당 프레임워크도 Github에 오픈되어 있어서 참고해서 별도의 role 기반 agent 를 만들 수 있지 않을까...

참고

https://github.com/bmad-code-org/BMAD-METHOD

 

GitHub - bmad-code-org/BMAD-METHOD: Breakthrough Method for Agile Ai Driven Development

Breakthrough Method for Agile Ai Driven Development - bmad-code-org/BMAD-METHOD

github.com

 

https://www.youtube.com/watch?v=LorEJPrALcg

 

반응형
whateverU
@whateverU :: whateverU

sang12.co.kr https://github.com/ChoiSangIl

공감하셨다면 ❤️ 구독도 환영합니다! 🤗

목차