초기 커밋

This commit is contained in:
hansoo
2025-03-26 18:16:46 +09:00
commit 266674cc0e
67 changed files with 14235 additions and 0 deletions

View File

@@ -0,0 +1,245 @@
# Subscription Manager - API 설계
## 개요
이 문서는 Subscription Manager 앱의 API 설계를 정의합니다. 초기 MVP에서는 로컬 데이터베이스만 사용하지만, 향후 클라우드 동기화 및 외부 서비스 연동을 위한 API 설계를 미리 준비합니다.
## API 설계 원칙
- **RESTful 원칙 준수**: 자원 중심 설계, HTTP 메소드 활용
- **JSON 포맷**: 모든 요청/응답은 JSON 형식 사용
- **버전 관리**: API 경로에 버전 정보 포함 (예: /api/v1/...)
- **인증 필수**: 모든 API 요청은 인증 필요 (JWT 토큰 기반)
- **에러 처리 표준화**: 일관된 에러 응답 형식 제공
## 인증 및 보안
- **인증 방식**: JWT (JSON Web Token)
- **토큰 갱신**: Refresh Token 메커니즘 활용
- **HTTPS 필수**: 모든 API 통신은 HTTPS로 암호화
- **Rate Limiting**: 과도한 요청 방지를 위한 제한 적용
## API 엔드포인트
### 사용자 관리
```
POST /api/v1/auth/register - 사용자 등록
POST /api/v1/auth/login - 로그인
POST /api/v1/auth/refresh - 토큰 갱신
POST /api/v1/auth/logout - 로그아웃
GET /api/v1/users/me - 현재 사용자 정보 조회
PUT /api/v1/users/me - 사용자 정보 업데이트
```
### 구독 관리
```
GET /api/v1/subscriptions - 구독 목록 조회
POST /api/v1/subscriptions - 새 구독 추가
GET /api/v1/subscriptions/:id - 특정 구독 조회
PUT /api/v1/subscriptions/:id - 구독 정보 업데이트
DELETE /api/v1/subscriptions/:id - 구독 삭제
```
### 카테고리 관리
```
GET /api/v1/categories - 카테고리 목록 조회
POST /api/v1/categories - 새 카테고리 추가
GET /api/v1/categories/:id - 특정 카테고리 조회
PUT /api/v1/categories/:id - 카테고리 정보 업데이트
DELETE /api/v1/categories/:id - 카테고리 삭제
```
### 결제 내역
```
GET /api/v1/payments - 결제 내역 목록 조회
POST /api/v1/payments - 새 결제 내역 추가
GET /api/v1/payments/:id - 특정 결제 내역 조회
PUT /api/v1/payments/:id - 결제 내역 업데이트
DELETE /api/v1/payments/:id - 결제 내역 삭제
GET /api/v1/subscriptions/:id/payments - 특정 구독의 결제 내역 조회
```
### 사용량 관리
```
GET /api/v1/usages - 사용량 목록 조회
POST /api/v1/usages - 새 사용량 기록 추가
GET /api/v1/usages/:id - 특정 사용량 기록 조회
PUT /api/v1/usages/:id - 사용량 기록 업데이트
DELETE /api/v1/usages/:id - 사용량 기록 삭제
GET /api/v1/subscriptions/:id/usages - 특정 구독의 사용량 기록 조회
```
### 분석 및 통계
```
GET /api/v1/analytics/monthly - 월별 비용 분석
GET /api/v1/analytics/category - 카테고리별 비용 분석
GET /api/v1/analytics/trend - 비용 추이 분석
GET /api/v1/analytics/summary - 요약 통계
```
### 설정 및 환경설정
```
GET /api/v1/settings - 설정 조회
PUT /api/v1/settings - 설정 업데이트
```
### 데이터 동기화
```
POST /api/v1/sync - 데이터 동기화 요청
GET /api/v1/sync/status - 동기화 상태 확인
```
### 미리 정의된 서비스
```
GET /api/v1/predefined-services - 미리 정의된 서비스 목록 조회
GET /api/v1/predefined-services/:id - 특정 미리 정의된 서비스 조회
```
## 요청/응답 형식
### 성공 응답 형식
```json
{
"success": true,
"data": { ... },
"message": "성공 메시지"
}
```
### 에러 응답 형식
```json
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "에러 메시지",
"details": { ... }
}
}
```
## 주요 데이터 모델 (API 요청/응답용)
### 구독 (Subscription)
```json
{
"id": "uuid-string",
"name": "서비스 이름",
"description": "서비스 설명",
"amount": 9.99,
"currency": "USD",
"billingCycle": "monthly",
"cycleDays": null,
"startDate": "2023-01-01T00:00:00Z",
"nextBillingDate": "2023-02-01T00:00:00Z",
"categoryId": "category-uuid",
"logoPath": "path/to/logo.png",
"color": "#3A86FF",
"reminderDays": 3,
"notes": "사용자 메모",
"isActive": true,
"createdAt": "2023-01-01T00:00:00Z",
"updatedAt": "2023-01-01T00:00:00Z"
}
```
### 카테고리 (Category)
```json
{
"id": "uuid-string",
"name": "카테고리 이름",
"icon": "icon_code",
"color": "#FF006E",
"createdAt": "2023-01-01T00:00:00Z",
"updatedAt": "2023-01-01T00:00:00Z"
}
```
### 결제 내역 (Payment)
```json
{
"id": "uuid-string",
"subscriptionId": "subscription-uuid",
"amount": 9.99,
"currency": "USD",
"paymentDate": "2023-01-01T00:00:00Z",
"status": "paid",
"notes": "메모",
"createdAt": "2023-01-01T00:00:00Z"
}
```
### 사용량 (Usage)
```json
{
"id": "uuid-string",
"subscriptionId": "subscription-uuid",
"date": "2023-01-01T00:00:00Z",
"amount": 100,
"unit": "API 호출",
"notes": "메모",
"createdAt": "2023-01-01T00:00:00Z"
}
```
## 페이지네이션
목록 조회 API는 페이지네이션을 지원합니다.
### 요청 파라미터
```
GET /api/v1/subscriptions?page=1&limit=10&sort=name&order=asc
```
### 응답 형식
```json
{
"success": true,
"data": {
"items": [ ... ],
"pagination": {
"total": 100,
"page": 1,
"limit": 10,
"pages": 10
}
}
}
```
## 필터링 및 검색
목록 조회 API는 필터링 및 검색을 지원합니다.
### 요청 파라미터
```
GET /api/v1/subscriptions?search=netflix&category=entertainment&minAmount=5&maxAmount=15
```
## API 버전 관리
API 변경 시 하위 호환성을 유지하기 위해 버전 관리를 적용합니다.
- 메이저 변경: 새 버전 경로 사용 (예: /api/v2/...)
- 마이너 변경: 기존 버전 유지하면서 기능 추가
## 에러 코드
- `AUTH_001`: 인증 실패
- `AUTH_002`: 토큰 만료
- `AUTH_003`: 권한 없음
- `VALIDATION_001`: 유효성 검사 실패
- `RESOURCE_001`: 리소스 찾을 수 없음
- `SERVER_001`: 서버 내부 오류
## API 사용량 제한
- 기본 제한: 분당 60 요청
- 프리미엄 사용자: 분당 300 요청
## API 문서화
- Swagger/OpenAPI 스펙을 사용한 API 문서 자동화
- 각 엔드포인트에 대한 상세 설명, 파라미터, 응답 예시 제공
## 클라이언트 구현 가이드
- HTTP 클라이언트: Dio 패키지 사용
- 인증 토큰 관리: 안전한 저장소에 JWT 토큰 저장
- 오프라인 지원: 요청 큐잉 및 자동 재시도 구현
- 에러 처리: 표준화된 에러 핸들링 적용
## 향후 확장 계획
- GraphQL API 추가 지원
- 웹훅 기능 추가
- 실시간 알림을 위한 WebSocket 지원
- 서드파티 API 연동 (구독 서비스 제공업체)

View File

@@ -0,0 +1,130 @@
# Subscription Manager - 아키텍처 설계
## 개요
이 문서는 Subscription Manager 앱의 전체 아키텍처와 주요 컴포넌트 간의 관계를 설명합니다. Flutter 기반의 모바일 앱으로, 로컬 데이터베이스를 활용한 구독 서비스 관리 기능을 제공합니다.
## 아키텍처 원칙
- **관심사 분리**: UI, 비즈니스 로직, 데이터 액세스 계층을 명확히 분리
- **단방향 데이터 흐름**: 상태 관리의 예측 가능성 보장
- **모듈화**: 기능별 모듈 분리로 유지보수성 향상
- **확장성**: 향후 클라우드 연동 등을 고려한 설계
## 아키텍처 다이어그램
```
┌─────────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Screens│ │ Widgets│ │ Themes │ │ Routes │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└───────────────────────────┬─────────────────────────────────┘
┌───────────────────────────▼─────────────────────────────────┐
│ Business Logic Layer │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Providers│ │ Services│ │ Helpers │ │ Models │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└───────────────────────────┬─────────────────────────────────┘
┌───────────────────────────▼─────────────────────────────────┐
│ Data Layer │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │Repository│ │ Database│ │ Storage │ │ API │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
```
## 주요 컴포넌트 설명
### 1. Presentation Layer (프레젠테이션 계층)
- **Screens**: 사용자에게 표시되는 화면 (홈, 구독 목록, 상세 정보 등)
- **Widgets**: 재사용 가능한 UI 컴포넌트 (구독 카드, 차트, 입력 폼 등)
- **Themes**: 앱 전체 테마 및 스타일 정의
- **Routes**: 화면 간 네비게이션 관리
### 2. Business Logic Layer (비즈니스 로직 계층)
- **Providers**: 상태 관리 및 UI와 데이터 계층 연결 (Provider 패턴 활용)
- **Services**: 비즈니스 로직 처리 (구독 관리, 알림, 분석 등)
- **Helpers**: 유틸리티 함수 (날짜 계산, 통화 변환 등)
- **Models**: 데이터 모델 클래스 (구독, 카테고리, 결제 등)
### 3. Data Layer (데이터 계층)
- **Repository**: 데이터 액세스 추상화 계층
- **Database**: SQLite 데이터베이스 관리 (sqflite)
- **Storage**: 로컬 저장소 관리 (shared_preferences, secure_storage)
- **API**: 향후 클라우드 연동을 위한 API 클라이언트 (MVP 이후)
## 디렉토리 구조
```
lib/
├── main.dart # 앱 진입점
├── app.dart # 앱 설정 및 테마
├── screens/ # 화면 컴포넌트
│ ├── home/ # 홈 화면 관련 파일
│ ├── subscriptions/ # 구독 관리 화면 관련 파일
│ ├── analytics/ # 분석 화면 관련 파일
│ └── settings/ # 설정 화면 관련 파일
├── widgets/ # 공통 위젯
│ ├── subscription_card.dart
│ ├── charts/
│ └── forms/
├── providers/ # 상태 관리
│ ├── subscription_provider.dart
│ ├── settings_provider.dart
│ └── analytics_provider.dart
├── services/ # 비즈니스 로직
│ ├── subscription_service.dart
│ ├── notification_service.dart
│ └── analytics_service.dart
├── models/ # 데이터 모델
│ ├── subscription.dart
│ ├── category.dart
│ └── payment.dart
├── repositories/ # 데이터 액세스
│ ├── subscription_repository.dart
│ └── settings_repository.dart
├── database/ # 데이터베이스 관리
│ ├── database_helper.dart
│ └── migrations/
├── utils/ # 유틸리티
│ ├── date_utils.dart
│ ├── currency_utils.dart
│ └── constants.dart
└── localization/ # 다국어 지원
├── app_localizations.dart
├── en.dart
└── ko.dart
```
## 데이터 흐름
1. **사용자 입력**: UI 이벤트 발생 (버튼 클릭, 폼 제출 등)
2. **Provider 호출**: 상태 관리 계층에서 이벤트 처리
3. **Service 호출**: 비즈니스 로직 실행
4. **Repository 호출**: 데이터 액세스 추상화 계층 통해 데이터 요청
5. **Database 접근**: 로컬 데이터베이스에서 데이터 읽기/쓰기
6. **결과 반환**: 데이터베이스 → Repository → Service → Provider → UI
## 상태 관리 전략
- **Provider 패턴**: Flutter의 Provider 패키지를 활용한 상태 관리
- **단방향 데이터 흐름**: 상태 변경은 Provider를 통해서만 이루어짐
- **반응형 UI**: 상태 변경 시 자동으로 UI 업데이트
- **상태 격리**: 기능별로 별도의 Provider를 사용하여 상태 관리 복잡성 감소
## 오프라인 지원
- 모든 데이터는 로컬 데이터베이스에 저장되어 오프라인에서도 앱 사용 가능
- 향후 클라우드 동기화 기능 추가 시에도 오프라인 우선 전략 유지
## 보안 전략
- 민감한 결제 정보는 flutter_secure_storage를 사용하여 암호화 저장
- 앱 잠금 기능 제공 (PIN, 생체 인증 등)
- 데이터 백업 파일 암호화
## 확장성 계획
- **클라우드 동기화**: 향후 Firebase 또는 자체 백엔드 서버와 연동
- **웹 버전**: 동일한 비즈니스 로직을 공유하는 웹 클라이언트 개발
- **API 연동**: 구독 서비스 제공업체의 API와 연동하여 자동 데이터 수집
## 성능 최적화
- 데이터베이스 인덱싱 전략
- 이미지 캐싱 및 최적화
- 지연 로딩 및 페이지네이션 적용
- 메모리 사용량 모니터링 및 최적화

View File

@@ -0,0 +1,137 @@
# Subscription Manager - 데이터 모델
## 개요
이 문서는 Subscription Manager 앱의 데이터 구조를 정의합니다. 앱은 로컬 저장소(SQLite)를 사용하여 사용자의 구독 정보와 설정을 저장합니다.
## 데이터베이스 스키마
### 1. Subscription (구독)
사용자가 등록한 구독 서비스 정보를 저장합니다.
```
Table: subscriptions
- id: INTEGER PRIMARY KEY AUTOINCREMENT
- name: TEXT NOT NULL // 서비스 이름
- description: TEXT // 서비스 설명
- amount: REAL NOT NULL // 구독 비용
- currency: TEXT NOT NULL // 통화 (USD, KRW 등)
- billing_cycle: TEXT NOT NULL // 결제 주기 (monthly, yearly, weekly, custom)
- cycle_days: INTEGER // custom 주기일 경우 일수
- start_date: TEXT NOT NULL // 구독 시작일 (ISO 8601 형식)
- next_billing_date: TEXT NOT NULL // 다음 결제일 (ISO 8601 형식)
- category_id: INTEGER // 카테고리 외래 키
- logo_path: TEXT // 로고 이미지 경로
- color: TEXT // 서비스 대표 색상 (HEX)
- reminder_days: INTEGER // 결제일 몇 일 전에 알림을 받을지
- notes: TEXT // 사용자 메모
- is_active: INTEGER NOT NULL DEFAULT 1 // 활성 상태 (1: 활성, 0: 비활성)
- created_at: TEXT NOT NULL // 생성일 (ISO 8601 형식)
- updated_at: TEXT NOT NULL // 수정일 (ISO 8601 형식)
- FOREIGN KEY (category_id) REFERENCES categories(id)
```
### 2. Category (카테고리)
구독 서비스의 카테고리 정보를 저장합니다.
```
Table: categories
- id: INTEGER PRIMARY KEY AUTOINCREMENT
- name: TEXT NOT NULL // 카테고리 이름
- icon: TEXT // 카테고리 아이콘 코드
- color: TEXT // 카테고리 색상 (HEX)
- created_at: TEXT NOT NULL // 생성일 (ISO 8601 형식)
- updated_at: TEXT NOT NULL // 수정일 (ISO 8601 형식)
```
### 3. Payment (결제 내역)
구독 서비스의 결제 내역을 저장합니다.
```
Table: payments
- id: INTEGER PRIMARY KEY AUTOINCREMENT
- subscription_id: INTEGER NOT NULL // 구독 외래 키
- amount: REAL NOT NULL // 결제 금액
- currency: TEXT NOT NULL // 통화
- payment_date: TEXT NOT NULL // 결제일 (ISO 8601 형식)
- status: TEXT NOT NULL // 상태 (paid, pending, failed)
- notes: TEXT // 메모
- created_at: TEXT NOT NULL // 생성일 (ISO 8601 형식)
- FOREIGN KEY (subscription_id) REFERENCES subscriptions(id)
```
### 4. Usage (사용량)
구독 서비스의 사용량 정보를 저장합니다.
```
Table: usages
- id: INTEGER PRIMARY KEY AUTOINCREMENT
- subscription_id: INTEGER NOT NULL // 구독 외래 키
- date: TEXT NOT NULL // 사용일 (ISO 8601 형식)
- amount: REAL // 사용량 (서비스에 따라 다름)
- unit: TEXT // 단위 (API 호출, 토큰, 시간 등)
- notes: TEXT // 메모
- created_at: TEXT NOT NULL // 생성일 (ISO 8601 형식)
- FOREIGN KEY (subscription_id) REFERENCES subscriptions(id)
```
### 5. Settings (설정)
앱 설정 정보를 저장합니다.
```
Table: settings
- id: INTEGER PRIMARY KEY AUTOINCREMENT
- key: TEXT NOT NULL UNIQUE // 설정 키
- value: TEXT NOT NULL // 설정 값
- updated_at: TEXT NOT NULL // 수정일 (ISO 8601 형식)
```
### 6. PredefinedService (미리 정의된 서비스)
앱에서 기본적으로 제공하는 서비스 정보를 저장합니다.
```
Table: predefined_services
- id: INTEGER PRIMARY KEY AUTOINCREMENT
- name: TEXT NOT NULL // 서비스 이름
- description: TEXT // 서비스 설명
- logo_path: TEXT // 로고 이미지 경로
- color: TEXT // 서비스 대표 색상 (HEX)
- category_id: INTEGER // 기본 카테고리
- website: TEXT // 서비스 웹사이트
- created_at: TEXT NOT NULL // 생성일 (ISO 8601 형식)
- updated_at: TEXT NOT NULL // 수정일 (ISO 8601 형식)
- FOREIGN KEY (category_id) REFERENCES categories(id)
```
## 초기 데이터
### 기본 카테고리
- AI 서비스
- 개발 도구
- 엔터테인먼트
- 생산성
- 클라우드 스토리지
- 기타
### 미리 정의된 서비스
- OpenAI (ChatGPT, DALL-E)
- Anthropic (Claude)
- GitHub (GitHub Copilot)
- Cursor
- Windsurf
- 기타 인기 구독 서비스
## 데이터 관계
- 하나의 구독은 하나의 카테고리에 속합니다.
- 하나의 구독은 여러 결제 내역을 가질 수 있습니다.
- 하나의 구독은 여러 사용량 기록을 가질 수 있습니다.
## 데이터 마이그레이션
앱 업데이트 시 데이터베이스 스키마 변경이 필요한 경우, 마이그레이션 스크립트를 통해 기존 데이터를 보존하면서 스키마를 업데이트합니다.
## 데이터 백업
사용자가 앱을 재설치하거나 기기를 변경할 때 데이터 손실을 방지하기 위해, 로컬 백업 기능을 제공합니다. 향후 클라우드 동기화 기능이 추가될 예정입니다.
## 데이터 보안
- 민감한 결제 정보는 기기의 보안 저장소에 암호화하여 저장합니다.
- 앱 잠금 기능을 통해 무단 접근을 방지합니다.
- 백업 파일은 암호화됩니다.

View File

@@ -0,0 +1,217 @@
# Subscription Manager - 배포 및 릴리스 전략
## 개요
이 문서는 Subscription Manager 앱의 배포 및 릴리스 전략을 정의합니다. 효율적인 배포 프로세스와 지속적인 업데이트 관리 방법을 설명합니다.
## 배포 환경
### 앱스토어
- **Google Play Store**: Android 사용자 대상
- **Apple App Store**: iOS 사용자 대상
- **향후 확장**: 웹 버전, 데스크톱 버전
### 배포 채널
- **프로덕션**: 일반 사용자 대상 안정 버전
- **베타**: 테스트 참여자 대상 사전 출시 버전
- **알파**: 내부 테스터 대상 개발 버전
## 버전 관리
### 버전 번호 체계
- **시맨틱 버전 관리 (Semantic Versioning)** 사용: `X.Y.Z`
- **X (메이저)**: 호환되지 않는 API 변경
- **Y (마이너)**: 이전 버전과 호환되는 기능 추가
- **Z (패치)**: 버그 수정 및 사소한 개선
### 빌드 번호
- 각 플랫폼별 빌드 번호 관리
- Android: `versionCode` (정수)
- iOS: `buildNumber` (정수)
- 자동 증가 시스템 구현
## CI/CD 파이프라인
### 지속적 통합 (CI)
- **GitHub Actions** 활용
- 코드 푸시 시 자동 빌드 및 테스트
- 코드 품질 검사 (정적 분석)
- 단위 테스트 및 통합 테스트 실행
### 지속적 배포 (CD)
- 테스트 통과 시 자동 배포
- 알파/베타 채널 자동 업데이트
- 프로덕션 배포는 수동 승인 후 진행
### 자동화 스크립트
- 빌드 자동화
- 코드 서명 자동화
- 앱스토어 업로드 자동화
- 릴리스 노트 생성 자동화
## 릴리스 프로세스
### 릴리스 계획
- 정기 릴리스 일정 (2-4주 주기)
- 주요 기능 릴리스 (분기별)
- 긴급 패치 릴리스 (필요 시)
### 릴리스 단계
1. **개발 완료**: 기능 개발 및 내부 테스트 완료
2. **코드 프리즈**: 새 기능 추가 중단, 버그 수정만 허용
3. **알파 릴리스**: 내부 테스터 대상 배포
4. **베타 릴리스**: 외부 테스터 대상 배포
5. **RC (Release Candidate)**: 최종 검증
6. **프로덕션 릴리스**: 일반 사용자 대상 배포
### 릴리스 승인 과정
- 테스트 결과 검토
- 품질 기준 충족 확인
- 릴리스 노트 검토
- 최종 승인 및 배포
## 앱스토어 최적화 (ASO)
### 앱 메타데이터
- 앱 이름 및 설명 최적화
- 키워드 선정 및 최적화
- 스크린샷 및 프리뷰 비디오 제작
### 앱 리스팅 자료
- 고품질 앱 아이콘
- 매력적인 스크린샷 (기기별 최적화)
- 앱 기능 하이라이트 비디오
- 상세하고 명확한 앱 설명
### 현지화
- 영어 및 한국어 지원
- 앱 설명 및 스크린샷 현지화
- 키워드 현지화
## 모니터링 및 분석
### 성능 모니터링
- **Firebase Performance Monitoring** 활용
- 앱 시작 시간, 화면 로딩 시간 모니터링
- 네트워크 요청 성능 추적
- 메모리 및 배터리 사용량 모니터링
### 크래시 보고
- **Firebase Crashlytics** 활용
- 실시간 크래시 보고 및 알림
- 크래시 원인 분석 및 우선순위 지정
- 버전별 안정성 추적
### 사용자 분석
- **Firebase Analytics** 활용
- 사용자 행동 및 패턴 분석
- 기능별 사용률 추적
- 사용자 유지율 및 이탈률 분석
## 사용자 피드백 관리
### 피드백 채널
- 앱 내 피드백 기능
- 앱스토어 리뷰 모니터링
- 이메일 지원
- 소셜 미디어 채널
### 피드백 처리 프로세스
1. 피드백 수집 및 분류
2. 우선순위 지정
3. 개발 백로그에 추가
4. 구현 및 테스트
5. 사용자에게 응답
### 사용자 참여 프로그램
- 베타 테스터 프로그램
- 사용자 설문조사
- 기능 요청 투표 시스템
## 업데이트 전략
### 점진적 롤아웃
- 단계적 사용자 확대 (5% → 20% → 50% → 100%)
- 초기 피드백 기반 빠른 대응
- 문제 발생 시 롤백 계획
### 인앱 업데이트 (Android)
- 유연한 업데이트 옵션 제공
- 중요 업데이트 시 강제 업데이트 고려
- 업데이트 알림 및 안내
### 기능 플래그
- 원격 기능 활성화/비활성화
- A/B 테스트 지원
- 점진적 기능 출시
## 보안 및 규정 준수
### 앱 보안
- 코드 난독화
- 안전한 네트워크 통신 (HTTPS)
- 민감 정보 암호화 저장
### 규정 준수
- **개인정보 보호정책** 준비 및 게시
- **이용약관** 준비 및 게시
- 앱스토어 가이드라인 준수
- GDPR, CCPA 등 개인정보 보호법 준수
## 마케팅 및 프로모션
### 출시 마케팅
- 프리 런칭 페이지
- 소셜 미디어 홍보
- 인플루언서 협업
- 제품 헌트, 레딧 등 커뮤니티 공유
### 지속적 프로모션
- 주요 업데이트 시 보도자료
- 사용자 성공 사례 공유
- 시즌별 프로모션
- 리퍼럴 프로그램
## 유지보수 계획
### 정기 유지보수
- 월간 성능 검토
- 분기별 코드 리팩토링
- 종속성 업데이트
### 기술 부채 관리
- 기술 부채 식별 및 추적
- 우선순위 지정 및 해결 계획
- 정기적인 코드 품질 개선
### 장기 지원 계획
- 최소 지원 OS 버전 정책
- 레거시 기능 관리 계획
- 주요 플랫폼 업데이트 대응 계획
## 위험 관리
### 출시 위험
- 앱스토어 심사 거부 대응 계획
- 초기 버그 발견 시 빠른 패치 계획
- 사용자 피드백 급증 대응 계획
### 운영 위험
- 서버 장애 대응 계획 (향후 클라우드 연동 시)
- 데이터 손실 방지 및 복구 계획
- 보안 취약점 발견 시 대응 계획
## 성공 지표
### 배포 성공 지표
- 출시 후 24시간 내 크래시 비율 < 0.1%
- 앱스토어 평점 4.5 이상
- 첫 주 목표 다운로드 수 달성
### 지속적 성공 지표
- 월간 활성 사용자 증가율
- 사용자 유지율 (1일, 7일, 30일)
- 프리미엄 전환율
- 사용자당 평균 수익 (ARPU)
## 결론
체계적인 배포 및 릴리스 전략을 통해 안정적인 앱 출시와 지속적인 개선을 보장합니다. 사용자 피드백을 적극 반영하고 데이터 기반 의사결정을 통해 앱의 품질과 사용자 만족도를 지속적으로 향상시킬 것입니다.

View File

@@ -0,0 +1,144 @@
# Subscription Manager - 개발 계획
## 개요
이 문서는 Subscription Manager 앱의 개발 계획과 일정을 정의합니다. 제한된 예산으로 MVP(Minimum Viable Product)를 빠르게 개발하는 것을 목표로 합니다.
## 개발 단계
### 1단계: 프로젝트 설정 및 기본 구조 (1주)
- Flutter 프로젝트 생성 및 설정
- 기본 프로젝트 구조 설계
- 필요한 패키지 선정 및 설치
- 데이터베이스 스키마 구현
- 기본 테마 및 스타일 설정
- 다국어 지원 기반 구축 (영어/한국어)
### 2단계: 핵심 기능 개발 (3주)
- 구독 관리 기능 구현
- 구독 추가/편집/삭제
- 구독 목록 표시
- 구독 상세 정보 화면
- 비용 분석 기능 구현
- 월별 총 비용 계산
- 카테고리별 비용 분석
- 기본 차트 및 그래프 구현
- 알림 시스템 구현
- 결제일 알림 기능
- 알림 설정 기능
### 3단계: UI/UX 개선 (2주)
- 미니멀 디자인 및 라인 아트 스타일 적용
- 애니메이션 및 전환 효과 추가
- 다크/라이트 모드 구현
- 반응형 레이아웃 최적화
- 접근성 개선
### 4단계: 테스트 및 버그 수정 (2주)
- 단위 테스트 작성 및 실행
- 통합 테스트 작성 및 실행
- 내부 알파 테스트 진행
- 버그 수정 및 성능 최적화
- 사용성 테스트 및 피드백 반영
### 5단계: 출시 준비 (1주)
- 앱 스토어 등록 준비 (스크린샷, 설명 등)
- 앱 아이콘 및 스플래시 화면 최종화
- 개인정보 처리방침 작성
- 최종 빌드 및 테스트
- 앱 스토어 제출
## 기술 스택
### 프론트엔드
- **프레임워크**: Flutter
- **언어**: Dart
- **상태 관리**: Provider 또는 Riverpod
- **UI 컴포넌트**: Flutter Material Components, Custom Widgets
- **차트 라이브러리**: fl_chart 또는 syncfusion_flutter_charts
### 백엔드 (로컬)
- **데이터베이스**: SQLite (sqflite 패키지)
- **로컬 저장소**: shared_preferences
- **보안 저장소**: flutter_secure_storage
### 기타 주요 패키지
- **로컬라이제이션**: flutter_localizations, intl
- **날짜/시간 처리**: intl, jiffy
- **알림**: flutter_local_notifications
- **이미지 처리**: cached_network_image
- **애니메이션**: flutter_animate
- **테스트**: flutter_test, mockito
## 개발 환경
- **IDE**: Android Studio 또는 VS Code
- **버전 관리**: Git
- **CI/CD**: GitHub Actions (선택적)
- **디자인 도구**: Figma 또는 Adobe XD
## 비용 최소화 전략
### 개발 비용 절감
- 오픈 소스 패키지 활용
- 서버리스 아키텍처 (초기에는 로컬 저장소만 사용)
- 무료 디자인 리소스 활용 (아이콘, 일러스트레이션 등)
### 마케팅 비용 절감
- 앱스토어 최적화 (ASO)
- 소셜 미디어 활용
- 제품 헌트, 레딧 등 무료 플랫폼 활용
- 초기 사용자 커뮤니티 구축
### 운영 비용 절감
- 초기에는 클라우드 서비스 사용 최소화
- 사용자 지원을 위한 FAQ 및 자동화된 응답 시스템 구축
## 수익화 계획
- **무료 버전**: 최대 5개 구독 서비스 등록 가능
- **프리미엄 버전**:
- 일회성 구매 또는 구독 모델 (결정 필요)
- 무제한 구독 서비스 등록
- 고급 분석 기능
- 데이터 백업 기능
- 광고 제거
## 위험 요소 및 대응 계획
### 기술적 위험
- **데이터 손실 위험**: 로컬 백업 기능 구현, 데이터 검증 강화
- **성능 이슈**: 정기적인 성능 테스트, 데이터 구조 최적화
- **기기 호환성 문제**: 다양한 기기에서 테스트, 반응형 디자인 적용
### 비즈니스 위험
- **사용자 획득 어려움**: ASO 최적화, 타겟 마케팅 전략 수립
- **경쟁 앱과의 차별화 부족**: AI 서비스 특화 기능 강조, UX 차별화
- **수익화 어려움**: 다양한 수익 모델 테스트, 사용자 피드백 기반 조정
## 향후 확장 계획 (MVP 이후)
### 기능 확장
- 클라우드 동기화 기능
- 웹 버전 개발
- API 연동을 통한 자동 사용량 추적
- 고급 분석 및 예측 기능
- 구독 최적화 추천 기능
### 플랫폼 확장
- 웹 애플리케이션
- 데스크톱 애플리케이션 (Windows, macOS)
- 위젯 및 확장 프로그램
### 비즈니스 확장
- 구독 서비스 제공업체와의 제휴
- 추천 프로그램
- 프리미엄 기능 확대
## 성공 지표
- 다운로드 수
- 활성 사용자 수 (DAU/MAU)
- 사용자 유지율
- 프리미엄 전환율
- 사용자 만족도 (리뷰 평점)
- 앱 사용 시간
## 결론
제한된 예산으로 MVP를 빠르게 개발하여 시장에 진입한 후, 사용자 피드백을 기반으로 점진적으로 기능을 확장해 나갈 계획입니다. 초기에는 로컬 저장소만 사용하여 서버 비용을 최소화하고, 사용자 기반이 확보된 후에 클라우드 기능을 추가할 예정입니다.

View File

@@ -0,0 +1,122 @@
# Subscription Manager - 개발 일정
## 개요
이 문서는 ZELLYY Subscription Manager 앱의 구체적인 개발 일정을 정의합니다. 2025년 3월 1일부터 시작하여 3월 31일까지 MVP(Minimum Viable Product)를 출시하는 것을 목표로 합니다.
## 프로젝트 타임라인
### 기획 및 준비 단계 (2025년 3월 1일 ~ 3월 7일)
- **3월 1일 ~ 3월 3일**: 프로젝트 요구사항 분석 및 문서화
- 핵심 기능 정의
- 사용자 페르소나 작성
- 경쟁 앱 분석
- 기술 스택 결정
- **3월 4일 ~ 3월 5일**: 디자인 및 아키텍처 설계
- UI/UX 디자인 초안 작성
- 데이터 모델 설계
- 앱 아키텍처 설계
- **3월 6일 ~ 3월 7일**: 개발 환경 설정
- 개발 도구 설치 및 구성
- 버전 관리 시스템 설정
- 프로젝트 기본 구조 생성
- 필요한 라이브러리 및 패키지 선정
### 1단계: 프로젝트 설정 및 기본 구조 (3월 8일 ~ 3월 12일)
- **3월 8일 ~ 3월 9일**: Flutter 프로젝트 생성 및 기본 설정
- 프로젝트 생성
- 필요한 패키지 설치
- 기본 테마 설정
- **3월 10일 ~ 3월 11일**: 데이터베이스 구현
- SQLite 데이터베이스 스키마 설계
- 데이터 모델 클래스 구현
- 데이터베이스 헬퍼 클래스 구현
- **3월 12일**: 다국어 지원 및 기본 구조 완성
- 다국어 지원 설정 (영어/한국어)
- 라우팅 시스템 구현
- 상태 관리 기본 설정 (Provider/Riverpod)
### 2단계: 핵심 기능 개발 (3월 13일 ~ 3월 24일)
- **3월 13일 ~ 3월 16일**: 구독 관리 기본 기능 구현
- **3월 13일 ~ 3월 14일**: 구독 추가 기능
- **3월 15일 ~ 3월 16일**: 구독 편집 및 삭제 기능
- **3월 17일 ~ 3월 20일**: 비용 분석 기능 구현
- **3월 17일 ~ 3월 18일**: 월별 총 비용 계산 기능
- **3월 19일 ~ 3월 20일**: 카테고리별 비용 분석
- **3월 21일 ~ 3월 24일**: 알림 시스템 구현
- **3월 21일 ~ 3월 22일**: 로컬 알림 시스템 설정
- **3월 23일 ~ 3월 24일**: 결제일 알림 기능
### 3단계: UI/UX 개선 (3월 25일 ~ 3월 28일)
- **3월 25일 ~ 3월 26일**: 디자인 시스템 구현
- 공통 UI 컴포넌트 개발
- 미니멀 디자인 및 라인 아트 스타일 적용
- 색상 테마 구현
- **3월 27일 ~ 3월 28일**: 다크/라이트 모드 구현
- 테마 전환 시스템
- 다크 모드 색상 조정
- 테마별 에셋 최적화
### 4단계: 테스트 및 버그 수정 (3월 29일 ~ 3월 31일)
- **3월 29일 ~ 3월 30일**: 단위 테스트 및 통합 테스트
- 핵심 기능 단위 테스트 작성
- 통합 테스트 시나리오 구현
- 자동화 테스트 설정
- **3월 31일**: 버그 수정 및 최종 검증
- 알파 테스트 피드백 반영
- 성능 병목 지점 식별 및 최적화
- 메모리 누수 및 크래시 해결
## 마일스톤 및 주요 일정
### 주요 마일스톤
1. **프로젝트 킥오프**: 2025년 3월 1일
2. **알파 버전 완료**: 2025년 3월 28일
3. **최종 버전 완료**: 2025년 3월 31일
### 주간 회의 일정
- **개발 진행 상황 점검**: 매주 월요일 오전 10시
- **기술 검토 회의**: 매주 수요일 오후 2시
- **스프린트 계획 및 회고**: 격주 금요일 오후 4시
## 팀 구성 및 역할
### 핵심 팀
- **프로젝트 관리자**: 전체 프로젝트 조정 및 일정 관리
- **Flutter 개발자 (2명)**: 앱 개발 및 구현
- **UI/UX 디자이너**: 사용자 인터페이스 및 경험 디자인
- **QA 엔지니어**: 품질 보증 및 테스트
## 개발 방법론
### 애자일 스크럼 프레임워크
- **스프린트 기간**: 1주
- **일일 스탠드업**: 매일 오전 9시 30분 (15분)
- **스프린트 계획**: 스프린트 시작일
- **스프린트 리뷰 및 회고**: 스프린트 마지막 날
## 위험 관리
### 잠재적 위험 및 대응 계획
1. **일정 지연 위험**
- 대응: 핵심 기능 우선순위화, 필요시 MVP 범위 조정
- 모니터링: 주간 진행 상황 점검, 번다운 차트 활용
2. **기술적 장애물**
- 대응: 사전 기술 검증, 대안 솔루션 준비
- 모니터링: 기술 부채 관리, 정기적 코드 품질 검토
3. **팀원 가용성 변동**
- 대응: 핵심 지식 문서화, 크로스 트레이닝
- 모니터링: 리소스 할당 및 작업 분배 정기 검토
4. **외부 의존성 지연**
- 대응: 주요 외부 의존성 사전 식별, 대안 준비
- 모니터링: 외부 의존성 상태 정기 확인

View File

@@ -0,0 +1,243 @@
# Subscription Manager - 마케팅 전략
## 개요
이 문서는 ZELLYY Subscription Manager 앱의 마케팅 및 사용자 획득 전략을 정의합니다. 제한된 예산으로 효과적인 사용자 기반을 구축하기 위한 전략적 접근 방식을 설명합니다.
## 시장 분석
### 타겟 시장
- **주요 타겟**: AI 서비스 및 다양한 구독 서비스를 사용하는 25-45세 디지털 소비자
- **지역 타겟**: 한국, 미국, 일본, 유럽 주요 국가
- **세컨더리 타겟**: 예산 관리에 관심 있는 대학생 및 젊은 직장인
### 시장 규모
- 글로벌 구독 관리 앱 시장: 약 $500M (2024년 기준)
- 연간 성장률: 약 15-20%
- AI 서비스 구독 시장: 급성장 중 (연간 30% 이상)
### 경쟁 분석
- **직접 경쟁사**: Subscript, Truebill, Bobby
- **간접 경쟁사**: 금융 관리 앱, 예산 계획 앱
- **차별화 포인트**: AI 서비스 특화, 미니멀 디자인, 직관적 UX, 비용 최적화 추천
## 브랜드 전략
### 브랜드 아이덴티티
- **브랜드 이름**: ZELLYY Subscription Manager
- **브랜드 가치**: 단순함, 효율성, 투명성, 신뢰성
- **브랜드 개성**: 현대적, 미니멀, 친근한, 전문적
### 브랜드 메시지
- **핵심 메시지**: "구독 비용을 스마트하게 관리하세요"
- **부가 메시지**:
- "AI 서비스 구독을 한눈에"
- "매월 불필요한 지출 줄이기"
- "구독 경제를 당신의 편으로"
### 시각적 아이덴티티
- **로고**: 미니멀한 라인 아트 스타일, 블루 그라디언트
- **색상 팔레트**: 주 색상 - 블루, 보조 색상 - 화이트, 라이트 그레이, 다크 블루
- **타이포그래피**: 산세리프, 깔끔하고 현대적인 폰트
- **디자인 요소**: 라인 아이콘, 미니멀 그래픽, 깔끔한 데이터 시각화
## 마케팅 채널 전략
### 디지털 마케팅
- **앱스토어 최적화 (ASO)**
- 키워드 최적화: "구독 관리", "AI 서비스", "비용 절감", "구독 추적"
- 앱 스크린샷 및 프리뷰 비디오 최적화
- 앱 설명 및 메타데이터 최적화
- 사용자 리뷰 관리 전략
- **콘텐츠 마케팅**
- 블로그: 구독 경제, AI 서비스 활용법, 비용 절감 팁
- 인포그래픽: 구독 서비스 트렌드, 비용 비교
- 이메일 뉴스레터: 앱 업데이트, 팁, 프로모션
- **소셜 미디어 마케팅**
- 주요 플랫폼: Instagram, Twitter, LinkedIn
- 콘텐츠 전략: 짧은 팁 비디오, 인포그래픽, 사용자 후기
- 해시태그 전략: #구독관리 #구독경제 #AI서비스 #비용절감
- **인플루언서 마케팅**
- 마이크로 인플루언서: 테크 리뷰어, 생산성 전문가
- 협업 형태: 앱 리뷰, 튜토리얼, 프로모션 코드 제공
### 커뮤니티 마케팅
- **온라인 커뮤니티**
- 레딧: r/productivity, r/personalfinance, r/AI
- 페이스북 그룹: 생산성, 개인 재정, 테크 관련 그룹
- 디스코드 서버: 자체 커뮤니티 구축
- **제품 헌트 및 스타트업 플랫폼**
- Product Hunt 출시 캠페인
- Hacker News, Indie Hackers 등 스타트업 커뮤니티 활용
### 파트너십 및 제휴 마케팅
- **AI 서비스 제공업체와 제휴**
- 상호 프로모션 및 할인 코드
- 공동 콘텐츠 제작
- API 통합 파트너십
- **생산성 앱과 크로스 프로모션**
- 상호 보완적인 앱과 크로스 프로모션
- 번들 할인 제공
## 사용자 획득 전략
### 유료 광고
- **제한된 예산으로 최대 효과**
- 초기 예산: 월 $500-1,000
- 주요 플랫폼: Google Ads, Apple Search Ads, Facebook/Instagram Ads
- 타겟팅: 관심사 (AI, 생산성, 개인 재정), 인구통계, 유사 잠재고객
- **리타겟팅 전략**
- 앱 설치 후 미사용자 타겟팅
- 무료 사용자 → 유료 전환 유도
### 오가닉 사용자 획득
- **앱스토어 최적화 (ASO)**
- 키워드 연구 및 최적화
- 정기적인 앱 업데이트
- 사용자 리뷰 관리
- **콘텐츠 마케팅**
- SEO 최적화된 블로그 콘텐츠
- 유튜브 튜토리얼 및 팁 비디오
- 인포그래픽 및 공유 가능한 콘텐츠
- **입소문 마케팅**
- 리퍼럴 프로그램: 친구 초대 시 양측 혜택
- 공유 기능: 분석 결과 및 성과 공유
- 사용자 후기 및 성공 사례 홍보
## 출시 전략
### 소프트 런칭
- **베타 테스트 프로그램**
- 300-500명의 초기 테스터 모집
- 피드백 수집 및 개선
- 초기 사용자 커뮤니티 구축
- **지역별 단계적 출시**
- 1단계: 한국 시장
- 2단계: 영어권 시장 (미국, 영국)
- 3단계: 일본, 유럽 주요 국가
### 공식 출시
- **출시 이벤트**
- 온라인 출시 이벤트
- 미디어 보도자료 배포
- 인플루언서 협업 캠페인
- **출시 프로모션**
- 초기 사용자 특별 할인 (30% 할인)
- 제한된 평생 이용권 프로모션
- 리퍼럴 보너스 2배 적용
## 사용자 유지 전략
### 사용자 참여 증진
- **푸시 알림 전략**
- 가치 중심 알림: 결제일 알림, 비용 절감 기회
- 사용자 행동 기반 알림: 미완료 설정, 추천 기능
- 맞춤형 인사이트: 월간 지출 요약, 절감 가능 금액
- **게이미피케이션 요소**
- 비용 절감 목표 및 배지
- 구독 최적화 점수
- 월간 챌린지
### 사용자 피드백 루프
- **인앱 피드백 시스템**
- 간편한 피드백 제출 기능
- 사용자 설문조사
- 베타 테스트 그룹
- **지속적인 개선**
- 월간 업데이트 및 신규 기능
- 사용자 요청 기능 구현
- 버그 수정 및 성능 개선
## 마케팅 캘린더
### 분기별 마케팅 계획
- **Q1 2025**: 앱 출시 및 초기 사용자 확보
- 베타 테스트 및 소프트 런칭
- ASO 최적화
- 초기 콘텐츠 마케팅 구축
- **Q2 2025**: 사용자 기반 확장
- 유료 광고 캠페인 확대
- 인플루언서 협업
- 리퍼럴 프로그램 강화
- **Q3 2025**: 수익화 강화
- 프리미엄 전환 캠페인
- 파트너십 확대
- 계절 프로모션 (여름 특별 할인)
- **Q4 2025**: 연말 캠페인 및 2026년 계획
- 홀리데이 시즌 프로모션
- 연간 리뷰 콘텐츠
- 2026년 마케팅 계획 수립
## 마케팅 예산 및 ROI
### 예산 할당
- **초기 6개월 (MVP 출시 후)**
- 총 예산: $6,000
- ASO 및 앱스토어 광고: 40% ($2,400)
- 소셜 미디어 광고: 30% ($1,800)
- 콘텐츠 마케팅: 15% ($900)
- 인플루언서 협업: 10% ($600)
- 기타 및 예비비: 5% ($300)
- **6-12개월**
- 총 예산: $12,000
- 예산 할당은 초기 6개월 성과에 따라 조정
### ROI 측정
- **주요 지표**
- CAC (고객 획득 비용): 목표 $3-5
- LTV (고객 생애 가치): 목표 $15-30
- LTV:CAC 비율: 목표 5:1 이상
- 전환율: 무료→유료 목표 5-10%
- 유지율: 30일 유지율 목표 40% 이상
- **채널별 성과 분석**
- 채널별 CAC 및 전환율 추적
- A/B 테스트를 통한 광고 최적화
- 예산 재할당 기준 설정
## 위험 요소 및 대응 계획
### 마케팅 관련 위험
- **높은 CAC**: 타겟팅 최적화, 오가닉 채널 강화
- **낮은 전환율**: 가치 제안 개선, 프리미엄 기능 강화
- **경쟁 심화**: 차별화 포인트 강조, 틈새 시장 집중
- **마케팅 피로도**: 콘텐츠 다양화, 사용자 참여 방식 개선
### 기회 활용 계획
- **구독 경제 트렌드**: 관련 뉴스 및 트렌드에 맞춘 콘텐츠 제작
- **AI 서비스 성장**: AI 특화 기능 강조 및 관련 커뮤니티 타겟팅
- **비용 절감 관심 증가**: 경제 상황에 맞춘 마케팅 메시지 조정
## 성공 지표 및 평가
### 단기 성공 지표 (6개월)
- 다운로드 수: 10,000+
- 활성 사용자 수: 3,000+ (MAU)
- 유료 전환율: 3%+
- 앱스토어 평점: 4.3+
- 유지율: 30일 유지율 30%+
### 장기 성공 지표 (12-18개월)
- 다운로드 수: 50,000+
- 활성 사용자 수: 15,000+ (MAU)
- 유료 전환율: 7%+
- 앱스토어 평점: 4.5+
- 유지율: 30일 유지율 40%+, 90일 유지율 25%+
## 결론
ZELLYY Subscription Manager의 마케팅 전략은 제한된 예산으로 최대 효과를 내는 것에 중점을 둡니다. ASO, 콘텐츠 마케팅, 커뮤니티 구축을 통한 오가닉 성장을 우선시하고, 전략적인 유료 광고와 파트너십으로 보완할 계획입니다. AI 서비스 특화 기능과 미니멀한 디자인을 차별화 포인트로 강조하여 경쟁 앱과의 차별화를 추구합니다. 지속적인 사용자 피드백과 데이터 분석을 통해 마케팅 전략을 최적화하고 조정해 나갈 것입니다.

View File

@@ -0,0 +1,132 @@
# Subscription Manager - 수익화 모델 상세 계획
## 개요
이 문서는 ZELLYY Subscription Manager 앱의 수익화 전략을 상세히 정의합니다. 사용자 경험을 해치지 않으면서 지속 가능한 수익 모델을 구축하는 것을 목표로 합니다.
## 비즈니스 모델 요약
- **프리미엄 앱 모델**: 기본 기능은 무료로 제공하고, 고급 기능은 유료로 제공
- **타겟 사용자**: AI 서비스 및 다양한 구독 서비스를 사용하는 디지털 소비자
- **가치 제안**: 구독 서비스 관리 효율화, 비용 절감, 예산 관리 개선
## 수익 모델 상세
### 1. 프리미엄 플랜 (구독 모델)
- **월간 구독**: ₩3,900/월
- **연간 구독**: ₩29,900/년 (약 36% 할인)
- **평생 이용권**: ₩79,900 (한정 프로모션)
#### 프리미엄 플랜 혜택
- 무제한 구독 서비스 등록 (무료 버전: 최대 5개)
- 고급 분석 대시보드 및 리포트
- 다중 기기 동기화 (MVP 이후)
- 데이터 백업 및 복원
- 광고 제거
- 우선 지원 및 신규 기능 얼리 액세스
- 커스텀 테마 및 아이콘 팩
### 2. 일회성 구매 옵션
- **스탠다드 업그레이드**: ₩39,900
- 무제한 구독 서비스 등록
- 기본 분석 기능
- 광고 제거
- **프로 업그레이드**: ₩59,900
- 스탠다드 업그레이드의 모든 기능
- 고급 분석 대시보드 및 리포트
- 데이터 백업 및 복원
- 커스텀 테마
### 3. 인앱 광고 (무료 버전)
- **배너 광고**: 앱 하단에 표시되는 비침투적 배너 광고
- **보상형 광고**: 추가 기능 일시적 잠금 해제를 위한 선택적 광고 시청
- **광고 네트워크**: Google AdMob, Facebook Audience Network
### 4. 인앱 구매 (소모성)
- **일회성 분석 리포트**: ₩2,900
- **추가 구독 슬롯 팩**: ₩4,900 (5개 추가)
- **테마 및 아이콘 팩**: ₩1,900~3,900
## 가격 전략
### 가격 책정 근거
- **경쟁사 분석**: 유사 앱 가격 조사 (평균 월 $2.99~$4.99)
- **가치 기반 가격 책정**: 사용자가 절약할 수 있는 잠재적 비용 고려
- **심리적 가격 책정**: 가격 포인트를 전략적으로 설정 (₩3,900 vs ₩4,000)
### 지역별 가격 조정
- 주요 시장별 구매력에 따른 가격 조정
- 환율 변동에 따른 정기적인 가격 검토
### 할인 및 프로모션 전략
- **출시 프로모션**: 초기 사용자를 위한 30% 할인 (첫 3개월)
- **계절 할인**: 연 4회 주요 시즌 할인 (20-40%)
- **리퍼럴 할인**: 친구 초대 시 양측 20% 할인
- **윈백 캠페인**: 구독 취소 사용자 대상 특별 할인
## 수익 분배 및 비용 구조
### 예상 수익 분배
- **앱스토어 수수료**: 30% (첫해) / 15% (이후)
- **광고 네트워크 수수료**: 약 40%
- **결제 처리 수수료**: 약 3%
- **순 수익**: 약 52-67%
### 운영 비용
- **개발 및 유지보수**: 초기 개발 후 월 유지보수 비용
- **마케팅 비용**: 수익의 15-20% 재투자
- **고객 지원**: 수익의 5-10%
- **서버 비용** (MVP 이후): 사용자 증가에 따라 변동
## 수익화 로드맵
### 1단계: MVP 출시 (1-3개월)
- 무료 버전 출시 (5개 구독 제한)
- 기본 인앱 구매 옵션 (프리미엄 업그레이드)
- 최소한의 광고 구현 (무료 버전)
### 2단계: 수익 모델 확장 (4-6개월)
- 구독 모델 도입 (월간/연간)
- 추가 인앱 구매 항목 추가
- A/B 테스트를 통한 가격 최적화
### 3단계: 파트너십 및 제휴 (7-12개월)
- 구독 서비스 제공업체와 제휴 마케팅
- 추천 프로그램 도입
- 프리미엄 콘텐츠 및 가이드 제공
### 4단계: 비즈니스 모델 다각화 (12개월 이후)
- 기업용 솔루션 개발
- API 및 데이터 분석 서비스 제공
- 화이트 라벨 솔루션 검토
## 수익화 성과 측정
### 주요 성과 지표 (KPI)
- **전환율**: 무료 → 유료 사용자 전환 비율 (목표: 5-10%)
- **ARPU**: 사용자당 평균 수익 (목표: $1.5-$3)
- **LTV**: 사용자 생애 가치 (목표: $15-$30)
- **이탈률**: 구독 취소율 (목표: <8%/월)
- **ROI**: 마케팅 투자 수익률 (목표: >200%)
### 분석 및 최적화
- 월간 수익 분석 리포트 작성
- 사용자 세그먼트별 수익 패턴 분석
- 가격 및 프로모션 효과 측정
- 이탈 원인 분석 및 대응 전략 수립
## 위험 요소 및 대응 계획
### 수익화 관련 위험
- **낮은 전환율**: 무료 기능과 유료 기능 간 가치 격차 확대
- **높은 이탈률**: 사용자 참여 전략 강화, 이탈 방지 프로그램 도입
- **가격 저항**: 다양한 가격대 옵션 제공, 가치 커뮤니케이션 강화
- **경쟁 심화**: 차별화된 기능 개발, 틈새 시장 집중
### 법적 고려사항
- 앱스토어 정책 준수
- 구독 취소 및 환불 정책 명확화
- 개인정보 보호법 준수
- 세금 및 회계 규정 준수
## 결론
ZELLYY Subscription Manager는 무료 기본 버전과 다양한 유료 옵션을 제공하는 프리미엄 앱 모델을 채택합니다. 초기에는 기본적인 인앱 구매와 광고를 통해 수익을 창출하고, 점진적으로 구독 모델과 파트너십으로 수익 모델을 확장할 계획입니다. 사용자 경험을 최우선으로 하면서도 지속 가능한 비즈니스 모델을 구축하는 것이 목표입니다.

View File

@@ -0,0 +1,65 @@
# Subscription Manager - 요구사항 문서
## 프로젝트 개요
Subscription Manager는 사용자가 다양한 구독 서비스(특히 AI 관련)를 효율적으로 관리할 수 있도록 도와주는 모바일 앱입니다. 사용자는 이 앱을 통해 구독 서비스의 비용, 사용량, 갱신일 등을 추적하고 관리할 수 있습니다.
## 타겟 플랫폼
- iOS
- Android
- (향후 확장) 웹 서비스
## 개발 기술 스택
- **프레임워크**: Flutter
- **언어**: Dart
- **데이터 저장**: 로컬 저장소 (SQLite)
- **다국어 지원**: 영어, 한국어
## 핵심 기능 (MVP)
### 1. 구독 관리
- 구독 서비스 추가, 편집, 삭제
- 서비스별 정보 저장: 이름, 비용, 결제 주기, 다음 결제일, 카테고리
- 기본 지원 서비스: OpenAI, Anthropic, Github, Cursor, Windsurf
- 사용자 정의 서비스 추가 기능
### 2. 비용 분석
- 월별 총 구독 비용 계산
- 카테고리별 비용 분석
- 간단한 차트로 시각화
### 3. 알림 시스템
- 다가오는 결제일 알림
- 예산 초과 알림
### 4. 사용자 인터페이스
- 미니멀 디자인, 라인 아트 스타일
- 직관적인 대시보드
- 다크/라이트 모드 지원
### 5. 기본 설정
- 언어 설정 (영어/한국어)
- 통화 설정
- 알림 설정
## 비즈니스 모델
- **무료 버전**: 최대 5개 구독 서비스 등록 가능
- **프리미엄 버전**: 무제한 구독 서비스 등록, 추가 분석 기능
## 향후 확장 기능 (MVP 이후)
- 클라우드 동기화
- 웹 서비스 확장
- 추가 언어 지원
- 고급 분석 기능
- API 연동을 통한 자동 사용량 추적
- 구독 최적화 추천
## 제약 사항
- 제한된 예산으로 개발
- 초기에는 로컬 저장소만 사용
- MVP 기능에 집중하여 빠른 출시
## 성공 기준
- 사용자가 쉽게 구독 서비스를 추가하고 관리할 수 있음
- 월별 구독 비용을 명확하게 파악할 수 있음
- 직관적이고 사용하기 쉬운 인터페이스
- 안정적인 앱 성능

View File

@@ -0,0 +1,252 @@
# Subscription Manager - 보안 및 개인정보 보호 전략
## 개요
이 문서는 ZELLYY Subscription Manager 앱의 보안 및 개인정보 보호 전략을 정의합니다. 사용자 데이터 보호와 안전한 앱 환경 구축을 위한 접근 방식과 구현 방법을 설명합니다.
## 데이터 보안 원칙
### 핵심 원칙
- **최소 데이터 수집**: 필요한 데이터만 수집
- **데이터 암호화**: 저장 및 전송 중인 모든 민감 데이터 암호화
- **로컬 우선 처리**: 가능한 한 데이터를 로컬에서 처리
- **투명성**: 데이터 수집 및 사용에 대한 명확한 커뮤니케이션
- **사용자 통제**: 사용자에게 자신의 데이터에 대한 완전한 통제권 제공
### 법적 준수
- **GDPR**: 유럽 일반 데이터 보호 규정 준수
- **CCPA**: 캘리포니아 소비자 개인정보 보호법 준수
- **PIPA**: 한국 개인정보 보호법 준수
- **앱스토어 정책**: Apple 및 Google의 개인정보 보호 정책 준수
## 데이터 수집 및 저장
### 수집하는 데이터 유형
- **필수 데이터**
- 구독 서비스 정보 (이름, 비용, 결제 주기, 결제일)
- 앱 설정 및 환경설정
- 기기 정보 (앱 성능 최적화용)
- **선택적 데이터**
- 사용자 프로필 (이름, 이메일 - 클라우드 동기화 시)
- 결제 카드 정보 (마스킹 처리)
- 사용 통계 (앱 개선용)
### 데이터 저장 방식
- **로컬 저장소**
- 기본 데이터: SQLite 데이터베이스
- 앱 설정: Shared Preferences
- 민감 정보: Flutter Secure Storage (암호화 저장)
- **클라우드 저장소** (MVP 이후)
- 암호화된 백업
- 동기화 데이터
- 익명화된 사용 통계
### 데이터 보존 및 삭제
- **데이터 보존 기간**
- 로컬 데이터: 사용자가 삭제할 때까지
- 클라우드 데이터: 계정 삭제 후 30일 이내 완전 삭제
- 익명화된 분석 데이터: 최대 1년
- **데이터 삭제 메커니즘**
- 앱 내 데이터 삭제 옵션
- 계정 삭제 시 모든 데이터 삭제
- 정기적인 불필요 데이터 정리
## 암호화 및 보안 조치
### 데이터 암호화
- **저장 데이터 암호화**
- AES-256 암호화 (민감 정보)
- SQLCipher (암호화된 데이터베이스)
- 키 관리: 안전한 키 저장소 활용
- **전송 데이터 암호화** (MVP 이후)
- TLS 1.3 사용
- 인증서 피닝
- 안전한 API 통신
### 인증 및 권한 관리
- **사용자 인증 옵션**
- 앱 잠금 (PIN, 패턴, 생체 인증)
- 클라우드 서비스용 이메일/비밀번호 인증
- OAuth 2.0 지원 (소셜 로그인)
- **권한 관리**
- 최소 권한 원칙 적용
- 명시적 권한 요청 및 설명
- 권한 거부 시에도 핵심 기능 작동
### 보안 코딩 및 테스트
- **보안 코딩 관행**
- 입력 유효성 검사
- SQL 인젝션 방지
- 안전한 API 호출
- 디버그 정보 제한
- **보안 테스트**
- 정적 코드 분석
- 취약점 스캔
- 침투 테스트 (주요 업데이트 전)
- 제3자 보안 감사 (MVP 이후)
## 개인정보 보호 조치
### 개인정보 처리방침
- **명확하고 이해하기 쉬운 정책**
- 평이한 언어 사용
- 시각적 요소 활용
- 주요 포인트 강조
- **정책 내용**
- 수집하는 데이터 유형
- 데이터 사용 목적
- 데이터 공유 정책
- 사용자 권리 및 선택
- 데이터 보안 조치
- 정책 변경 시 통지 방법
### 사용자 동의 관리
- **명시적 동의 획득**
- 초기 설정 시 동의 요청
- 선택적 데이터 수집에 대한 개별 동의
- 동의 철회 옵션 제공
- **동의 기록 관리**
- 동의 버전 및 날짜 기록
- 동의 내역 확인 기능
- 정책 업데이트 시 재동의 요청
### 사용자 권리 보장
- **데이터 접근 권한**
- 수집된 데이터 확인 기능
- 데이터 내보내기 옵션
- **수정 및 삭제 권한**
- 개인정보 수정 기능
- 데이터 삭제 요청 처리
- 계정 삭제 옵션
- **개인정보 설정**
- 데이터 공유 설정
- 분석 데이터 수집 옵트아웃
- 마케팅 커뮤니케이션 설정
## 제3자 서비스 및 데이터 공유
### 제3자 서비스 이용
- **분석 서비스**
- Firebase Analytics (익명화된 사용 데이터)
- Crashlytics (오류 보고)
- **광고 서비스** (무료 버전)
- Google AdMob
- 최소한의 데이터 공유
- **결제 처리**
- Apple App Store / Google Play 결제 시스템
- 직접적인 결제 정보 처리 없음
### 데이터 공유 정책
- **공유하는 데이터**
- 익명화된 사용 통계
- 앱 성능 데이터
- 집계된 사용자 행동 패턴
- **공유하지 않는 데이터**
- 개인 식별 정보
- 구독 서비스 상세 정보
- 결제 정보
- **데이터 공유 상황**
- 법적 요구가 있는 경우
- 명시적 사용자 동의가 있는 경우
- 서비스 제공에 필수적인 경우
## 보안 인시던트 대응
### 인시던트 대응 계획
- **대응 팀 구성**
- 보안 책임자 지정
- 개발 및 법무 담당자 포함
- 외부 보안 전문가 협력
- **대응 프로세스**
- 인시던트 감지 및 평가
- 피해 최소화 조치
- 복구 및 문제 해결
- 사후 분석 및 예방 조치
### 사용자 통지 절차
- **통지 기준**
- 개인정보 유출 가능성이 있는 모든 인시던트
- 법적 요구사항에 따른 통지
- **통지 방법**
- 앱 내 알림
- 이메일 통지 (등록된 경우)
- 웹사이트 공지
- 필요시 언론 보도
- **통지 내용**
- 인시던트 개요 및 영향
- 취해진 조치
- 사용자 권장 조치
- 문의 및 지원 방법
## 지속적인 보안 관리
### 보안 모니터링
- **정기적인 보안 검토**
- 월간 보안 상태 점검
- 취약점 스캔
- 의심스러운 활동 모니터링
- **업데이트 관리**
- 정기적인 보안 패치
- 종속성 취약점 관리
- 보안 관련 릴리스 우선 처리
### 보안 교육 및 문화
- **개발팀 교육**
- 보안 코딩 관행
- 개인정보 보호 인식
- 최신 보안 위협 교육
- **보안 문화 구축**
- 보안 우선 개발 방법론
- 코드 리뷰에 보안 검토 포함
- 보안 개선 제안 장려
## MVP 및 향후 보안 로드맵
### MVP 단계 보안 조치
- **필수 보안 기능**
- 로컬 데이터 암호화
- 앱 잠금 기능
- 기본 개인정보 보호 조치
- 명확한 개인정보 처리방침
- **초기 보안 테스트**
- 기본 취약점 스캔
- 주요 기능 보안 검토
- 개인정보 처리 검증
### 향후 보안 강화 계획
- **클라우드 동기화 보안** (MVP 이후)
- 엔드-투-엔드 암호화
- 안전한 인증 시스템
- 데이터 동기화 보안 프로토콜
- **고급 보안 기능**
- 2단계 인증
- 고급 암호화 옵션
- 보안 백업 및 복구
- **보안 인증 및 규정 준수**
- 업계 표준 보안 인증 획득
- 국제 개인정보 보호 규정 준수
- 정기적인 제3자 보안 감사
## 결론
ZELLYY Subscription Manager는 사용자 데이터 보호를 최우선으로 합니다. 최소한의 데이터 수집, 강력한 암호화, 투명한 개인정보 처리방침을 통해 사용자가 안심하고 앱을 사용할 수 있는 환경을 제공합니다. MVP 단계에서는 기본적인 보안 조치에 집중하고, 이후 단계적으로 보안 기능을 강화해 나갈 계획입니다. 지속적인 보안 모니터링과 개선을 통해 변화하는 보안 위협에 대응하고, 사용자의 신뢰를 유지하겠습니다.

View File

@@ -0,0 +1,170 @@
# Subscription Manager - 테스트 계획
## 개요
이 문서는 Subscription Manager 앱의 테스트 전략과 계획을 정의합니다. 앱의 품질을 보장하고 사용자 경험을 최적화하기 위한 다양한 테스트 방법을 설명합니다.
## 테스트 환경
### 모바일 기기
- **iOS**: iPhone SE(2020), iPhone 12, iPhone 14 Pro
- **Android**: Samsung Galaxy S10, Google Pixel 6, Xiaomi Mi 11
### OS 버전
- **iOS**: 14.0 이상
- **Android**: 8.0 이상
### 화면 크기
- 작은 화면 (5.5인치 이하)
- 중간 화면 (5.5-6.5인치)
- 큰 화면 (6.5인치 이상)
- 태블릿 (선택적)
## 테스트 유형
### 1. 기능 테스트
앱의 각 기능이 요구사항에 맞게 올바르게 작동하는지 확인합니다.
#### 구독 관리 테스트
- 새 구독 추가 기능
- 구독 정보 편집 기능
- 구독 삭제 기능
- 구독 활성화/비활성화 기능
- 구독 목록 표시 및 정렬 기능
#### 비용 분석 테스트
- 월별 총 비용 계산 정확성
- 카테고리별 비용 분석 정확성
- 차트 및 그래프 표시 정확성
#### 알림 테스트
- 결제일 알림 기능
- 알림 설정 및 해제 기능
- 알림 클릭 시 앱 내 해당 화면으로 이동 기능
#### 설정 테스트
- 언어 변경 기능 (영어/한국어)
- 통화 설정 기능
- 테마 변경 기능 (라이트/다크 모드)
### 2. 사용성 테스트
사용자가 앱을 직관적으로 사용할 수 있는지 확인합니다.
#### 테스트 시나리오
1. 첫 사용자 온보딩 경험
2. 새 구독 추가 프로세스
3. 구독 정보 찾기 및 확인
4. 월별 지출 분석 확인
5. 설정 변경 및 적용
#### 평가 기준
- 작업 완료 시간
- 오류 발생 횟수
- 사용자 만족도 (1-5점 척도)
- 직관성 평가 (1-5점 척도)
### 3. 성능 테스트
앱의 성능과 리소스 사용을 평가합니다.
#### 측정 지표
- 앱 시작 시간
- 화면 전환 시간
- 메모리 사용량
- CPU 사용량
- 배터리 소모율
- 저장 공간 사용량
#### 테스트 조건
- 적은 수의 구독 (5개 이하)
- 중간 수의 구독 (5-20개)
- 많은 수의 구독 (20개 이상)
### 4. 호환성 테스트
다양한 기기와 OS 버전에서 앱이 올바르게 작동하는지 확인합니다.
#### 테스트 항목
- 다양한 화면 크기에서의 UI 표시
- 다양한 OS 버전에서의 기능 작동
- 다양한 기기 제조사의 기기에서의 호환성
- 시스템 폰트 크기 변경에 따른 UI 적응성
### 5. 로컬라이제이션 테스트
다국어 지원이 올바르게 구현되었는지 확인합니다.
#### 테스트 항목
- 영어 텍스트 표시 정확성
- 한국어 텍스트 표시 정확성
- 날짜 및 시간 형식의 지역화
- 통화 형식의 지역화
### 6. 데이터 무결성 테스트
앱의 데이터 저장 및 관리 기능을 검증합니다.
#### 테스트 항목
- 데이터 저장 정확성
- 앱 재시작 후 데이터 유지
- 데이터 백업 및 복원 기능
- 잘못된 입력에 대한 유효성 검사
## 테스트 일정
### 알파 테스트 (내부)
- 기간: 개발 완료 후 2주
- 참가자: 개발팀, 기획팀
- 목표: 주요 버그 및 기능 이슈 식별
### 베타 테스트 (외부)
- 기간: 알파 테스트 완료 후 2주
- 참가자: 선별된 외부 테스터 (20-30명)
- 목표: 사용성 개선 및 실제 환경에서의 성능 검증
### 출시 전 최종 테스트
- 기간: 베타 테스트 완료 후 1주
- 참가자: QA팀, 개발팀
- 목표: 모든 중요 이슈 해결 확인 및 출시 준비
## 버그 추적 및 보고
### 버그 심각도 분류
1. **치명적 (Critical)**: 앱 충돌, 데이터 손실 등 사용 불가능한 상태
2. **높음 (High)**: 주요 기능 작동 불가
3. **중간 (Medium)**: 기능은 작동하나 사용성에 영향
4. **낮음 (Low)**: 사소한 UI 이슈, 개선 사항
### 버그 보고 템플릿
- 버그 제목
- 심각도
- 재현 단계
- 예상 결과
- 실제 결과
- 기기 정보 (모델, OS 버전)
- 스크린샷/비디오 (가능한 경우)
## 테스트 자동화
### 단위 테스트
- 데이터 모델 및 비즈니스 로직 검증
- 계산 함수의 정확성 검증
### 통합 테스트
- 데이터베이스 연동 검증
- 화면 간 데이터 전달 검증
### UI 테스트
- 기본 사용자 흐름 자동화 테스트
- 다양한 화면 크기에서의 UI 검증
## 출시 기준
앱 출시를 위한 최소 품질 기준을 정의합니다.
### 필수 조건
- 치명적 버그 0개
- 높은 심각도 버그 0개
- 중간 심각도 버그 5개 이하
- 모든 핵심 기능 정상 작동
- 주요 기기에서 호환성 확인
- 성능 지표 목표 달성 (앱 시작 3초 이내, 화면 전환 0.5초 이내)
## 테스트 담당자 및 역할
- 기획자: 사용성 테스트 주관, 요구사항 검증
- 개발자: 단위 테스트, 통합 테스트 작성 및 실행
- 외부 테스터: 베타 테스트 참여, 피드백 제공

View File

@@ -0,0 +1,108 @@
# Subscription Manager - UI/UX 디자인 가이드
## 디자인 철학
Subscription Manager는 미니멀하고 직관적인 디자인을 추구합니다. 라인 아트 스타일의 시각적 요소를 활용하여 깔끔하고 현대적인 느낌을 줍니다. 사용자가 복잡한 구독 정보를 쉽게 이해하고 관리할 수 있도록 명확한 시각적 계층 구조를 제공합니다.
## 색상 팔레트
- **주 색상**: #3A86FF (밝은 파란색) - 브랜드 아이덴티티
- **보조 색상**: #8338EC (보라색) - 강조 요소
- **중립 색상**:
- #FFFFFF (흰색) - 배경 (라이트 모드)
- #121212 (진한 회색) - 배경 (다크 모드)
- #F5F5F5 (연한 회색) - 카드 배경 (라이트 모드)
- #2A2A2A (중간 회색) - 카드 배경 (다크 모드)
- **기능 색상**:
- #FF006E (핑크) - 경고/삭제
- #38B000 (녹색) - 성공/추가
- #FFBE0B (노란색) - 알림/주의
## 타이포그래피
- **기본 폰트**: Roboto (Android), San Francisco (iOS)
- **제목**: 18-24pt, 볼드
- **부제목**: 16pt, 미디엄
- **본문**: 14pt, 레귤러
- **작은 텍스트**: 12pt, 레귤러
## 아이콘 스타일
- 라인 아트 스타일의 심플한 아이콘
- 2px 스트로크 두께
- 둥근 모서리
- 일관된 크기와 패딩
## 주요 화면 구성
### 1. 홈 화면 (대시보드)
- 상단: 총 월간 구독 비용 요약
- 중앙: 다가오는 결제 타임라인
- 하단: 카테고리별 비용 분포 차트
- 플로팅 액션 버튼: 새 구독 추가
### 2. 구독 목록 화면
- 구독 서비스 카드 리스트
- 각 카드: 서비스 로고, 이름, 비용, 다음 결제일
- 정렬 옵션: 가격순, 이름순, 다음 결제일순
- 필터 옵션: 카테고리별
### 3. 구독 상세 화면
- 서비스 정보 (로고, 이름, 설명)
- 비용 정보 (금액, 결제 주기)
- 결제 일정 (다음 결제일, 이전 결제 내역)
- 사용량 통계 (가능한 경우)
- 편집/삭제 버튼
### 4. 구독 추가/편집 화면
- 서비스 선택 (미리 정의된 서비스 또는 사용자 정의)
- 비용 입력
- 결제 주기 선택
- 시작일 선택
- 카테고리 선택
- 메모 추가 옵션
### 5. 분석 화면
- 시간별 비용 추이 그래프
- 카테고리별 비용 분포 파이 차트
- 가장 비용이 많이 드는 서비스 순위
- 연간 총 비용 예측
### 6. 설정 화면
- 언어 설정 (영어/한국어)
- 통화 설정
- 알림 설정
- 테마 설정 (라이트/다크 모드)
- 앱 정보 및 피드백
## 사용자 흐름
### 초기 설정 흐름
1. 앱 설치 후 첫 실행
2. 언어 선택 화면
3. 간단한 온보딩 (3-4 화면)
4. 첫 구독 추가 안내
### 구독 추가 흐름
1. 홈 화면에서 '+' 버튼 클릭
2. 서비스 선택 (검색 또는 목록에서 선택)
3. 구독 정보 입력
4. 저장 및 확인
### 알림 흐름
1. 결제 예정 알림 수신
2. 알림 클릭
3. 해당 구독 상세 화면으로 이동
## 반응형 디자인
- 다양한 화면 크기에 적응하는 레이아웃
- 태블릿 지원을 위한 분할 화면 레이아웃
- 향후 웹 버전을 위한 확장 가능한 디자인
## 접근성
- 고대비 모드 지원
- 스크린 리더 호환성
- 충분한 터치 타겟 크기 (최소 44x44pt)
- 색상만으로 정보를 구분하지 않음
## 애니메이션 및 전환
- 부드러운 화면 전환 (페이드, 슬라이드)
- 미묘한 피드백 애니메이션
- 데이터 로딩 상태를 위한 스켈레톤 화면
- 카드 확장/축소 애니메이션

View File

@@ -0,0 +1,229 @@
# Subscription Manager - 사용자 온보딩 프로세스
## 개요
이 문서는 ZELLYY Subscription Manager 앱의 사용자 온보딩 프로세스를 정의합니다. 효과적인 온보딩은 사용자가 앱의 가치를 빠르게 이해하고, 핵심 기능을 쉽게 학습하며, 지속적인 사용을 유도하는 데 중요합니다.
## 온보딩 목표
### 주요 목표
- **가치 전달**: 앱의 핵심 가치와 차별점을 명확히 전달
- **기능 소개**: 주요 기능을 직관적으로 소개
- **첫 성공 경험**: 사용자가 빠르게 첫 번째 성공 경험(구독 추가 및 관리)을 할 수 있도록 안내
- **참여 유도**: 지속적인 앱 사용과 프리미엄 기능 탐색 유도
### 성공 지표
- 온보딩 완료율: 목표 85% 이상
- 첫 구독 등록률: 목표 70% 이상
- 두 번째 방문 전환율: 목표 60% 이상
- 7일 유지율: 목표 40% 이상
- 프리미엄 기능 탐색률: 목표 30% 이상
## 온보딩 단계
### 1. 첫 실행 경험
#### 스플래시 화면
- 앱 로고 및 브랜드 노출
- 간결한 애니메이션 (2-3초)
- 앱 로딩 중 표시
#### 언어 선택
- 기기 기본 언어 자동 감지
- 지원 언어 선택 옵션 (한국어/영어)
- 간결한 UI로 빠른 선택 유도
### 2. 가치 소개 슬라이드 (워크스루)
#### 슬라이드 1: 환영 메시지
- 제목: "구독 관리의 새로운 시작"
- 부제목: "ZELLYY와 함께 모든 구독 서비스를 스마트하게 관리하세요"
- 일러스트레이션: 다양한 구독 서비스 아이콘과 중앙의 ZELLYY 로고
#### 슬라이드 2: 핵심 가치 1
- 제목: "한눈에 보는 구독 현황"
- 부제목: "매월 얼마를 구독 서비스에 지출하는지 명확하게 파악하세요"
- 일러스트레이션: 대시보드 화면 미리보기
#### 슬라이드 3: 핵심 가치 2
- 제목: "결제일 놓치지 않기"
- 부제목: "다가오는 결제일을 알림으로 받고 예산을 효율적으로 관리하세요"
- 일러스트레이션: 알림 화면 미리보기
#### 슬라이드 4: 핵심 가치 3
- 제목: "AI 서비스 특화 관리"
- 부제목: "OpenAI, Anthropic 등 AI 서비스 구독을 효율적으로 관리하세요"
- 일러스트레이션: AI 서비스 구독 관리 화면 미리보기
#### 슬라이드 5: 시작하기
- 제목: "지금 시작해보세요"
- 부제목: "첫 구독을 추가하고 ZELLYY의 모든 기능을 경험해보세요"
- 행동 버튼: "시작하기" (강조 버튼)
- 건너뛰기 옵션: 모든 슬라이드에 "건너뛰기" 버튼 제공
### 3. 권한 요청
#### 알림 권한
- 시점: 워크스루 완료 직후
- 메시지: "결제일 알림을 받으시려면 알림 권한이 필요합니다"
- 이점 설명: "중요한 결제일을 놓치지 않도록 도와드립니다"
- 옵션: "허용" / "나중에"
#### 기타 권한 (필요시)
- 각 권한 요청 시 명확한 이유와 이점 설명
- 필수적이지 않은 권한은 해당 기능 사용 시점에 요청
### 4. 첫 구독 등록 안내
#### 빈 상태 화면
- 메시지: "아직 등록된 구독이 없습니다"
- 부가 설명: "첫 번째 구독을 추가하고 관리를 시작해보세요"
- 행동 버튼: "+ 구독 추가하기" (강조 버튼)
- 일러스트레이션: 빈 상태를 나타내는 친근한 이미지
#### 구독 추가 가이드
- 단계별 툴팁 가이드:
1. "서비스 선택하기" (인기 서비스 목록 또는 직접 입력)
2. "구독 정보 입력하기" (비용, 결제 주기, 시작일)
3. "카테고리 선택하기" (AI, 엔터테인먼트, 유틸리티 등)
- 진행 표시기: 단계별 진행 상황 시각화
- 도움말 버튼: 각 단계에서 추가 정보 제공
#### 첫 구독 등록 완료
- 축하 메시지: "첫 번째 구독이 성공적으로 등록되었습니다!"
- 다음 단계 안내: "대시보드에서 구독 현황을 확인하세요"
- 행동 버튼: "대시보드 보기" / "더 추가하기"
- 작은 축하 애니메이션: 성취감 제공
### 5. 핵심 기능 소개
#### 기능 발견 툴팁
- 대시보드 첫 방문 시 주요 UI 요소 하이라이트
- 간결한 설명과 함께 핵심 기능 소개
- 순차적 표시: 한 번에 하나의 툴팁만 표시
- 사용자 제어: "다음" / "건너뛰기" 옵션
#### 주요 소개 기능
1. 총 구독 비용 요약
2. 다가오는 결제 타임라인
3. 카테고리별 비용 분석
4. 구독 추가 버튼
5. 설정 메뉴
#### 기능 탐색 유도
- 완료 후 메시지: "이제 ZELLYY의 기본 사용법을 알게 되셨습니다"
- 추가 탐색 유도: "더 많은 기능을 탐색해보세요"
- 행동 버튼: "더 알아보기" (분석 화면으로 이동)
### 6. 프리미엄 기능 소개
#### 무료 기능 한도 도달 시
- 메시지: "무료 버전에서는 최대 5개의 구독을 관리할 수 있습니다"
- 프리미엄 가치 제안: "프리미엄으로 업그레이드하여 무제한 구독 관리와 고급 기능을 이용하세요"
- 행동 버튼: "프리미엄 혜택 보기" / "나중에"
#### 프리미엄 혜택 소개
- 무제한 구독 관리
- 고급 분석 대시보드
- 데이터 백업 및 동기화 (MVP 이후)
- 광고 제거
- 커스텀 테마
#### 프리미엄 체험 제안
- 메시지: "7일 무료 체험으로 프리미엄 기능을 경험해보세요"
- 가격 정보: 월간/연간 구독 옵션 및 할인 정보
- 행동 버튼: "무료 체험 시작하기" / "다음에"
## 지속적 온보딩
### 기능 발견 유도
- 새로운 기능 출시 시 하이라이트
- 미사용 기능에 대한 주기적 팁 제공
- 상황별 도움말 (예: 분석 화면 첫 방문 시)
### 참여 유도 메시지
- 앱 사용 3일 후: "새로운 구독을 추가해보세요"
- 앱 사용 7일 후: "월간 분석 리포트를 확인해보세요"
- 앱 사용 14일 후: "알림 설정을 통해 중요한 결제일을 놓치지 마세요"
### 재참여 전략
- 미사용 기간 7일 후: "놓치고 있는 결제가 있어요" 알림
- 미사용 기간 14일 후: "구독 현황 업데이트가 필요합니다" 알림
- 미사용 기간 30일 후: "이번 달 총 구독 비용: XX원" 요약 알림
## 사용자 피드백 수집
### 온보딩 피드백
- 온보딩 완료 직후: 간단한 만족도 조사 (1-5점)
- 첫 구독 등록 후: "구독 추가 과정이 쉬웠나요?" (예/아니오)
- 앱 사용 3일 후: 상세 피드백 설문 (선택적)
### 지속적 피드백 채널
- 인앱 피드백 버튼 (설정 메뉴 내)
- 이메일 지원 옵션
- 앱스토어 리뷰 유도 (긍정적 경험 후)
## 온보딩 테스트 및 최적화
### A/B 테스트 계획
- 워크스루 슬라이드 수 (3장 vs 5장)
- 툴팁 표시 방식 (자동 vs 사용자 트리거)
- 첫 구독 등록 가이드 상세도 (간략 vs 상세)
### 사용자 행동 분석
- 온보딩 단계별 이탈률 추적
- 첫 세션 지속 시간 및 행동 패턴
- 주요 기능 발견율 및 사용률
### 최적화 주기
- 초기 출시 후 2주마다 데이터 분석
- 월간 온보딩 개선 계획 수립
- 분기별 주요 온보딩 업데이트
## 특별 사용자 그룹 온보딩
### 파워 유저
- 고급 기능 중심 소개
- 단축키 및 효율적 사용법 강조
- 데이터 마이그레이션 도구 제공 (다른 앱에서 이전)
### 기술에 익숙하지 않은 사용자
- 더 상세한 단계별 가이드
- 추가 도움말 및 설명 제공
- 간소화된 첫 경험 (고급 기능 단계적 소개)
### 재방문 사용자
- 새로운 기능 중심 소개
- 이전 데이터 복원 안내 (해당하는 경우)
- 맞춤형 환영 메시지 ("다시 만나서 반가워요!")
## 다국어 지원
### 지원 언어
- 한국어 (기본)
- 영어
- (향후 확장) 일본어, 중국어
### 현지화 전략
- 단순 번역을 넘어선 문화적 맥락 고려
- 지역별 인기 구독 서비스 맞춤 추천
- 통화 및 날짜 형식 자동 조정
## 접근성 고려사항
### 시각적 접근성
- 고대비 모드 지원
- 확대 가능한 텍스트
- 스크린 리더 호환성
### 인지적 접근성
- 명확하고 간결한 지시문
- 단계별 진행으로 인지 부하 감소
- 충분한 시간 제공 (타임아웃 없음)
### 운동 능력 접근성
- 충분한 터치 타겟 크기
- 최소한의 제스처 요구
- 대체 입력 방법 지원
## 결론
ZELLYY Subscription Manager의 사용자 온보딩 프로세스는 사용자가 앱의 가치를 빠르게 이해하고 핵심 기능을 쉽게 학습할 수 있도록 설계되었습니다. 단계적인 가이드와 상황에 맞는 도움말을 통해 모든 사용자가 앱을 효과적으로 활용할 수 있도록 지원합니다. 지속적인 데이터 분석과 사용자 피드백을 통해 온보딩 프로세스를 지속적으로 개선해 나갈 계획입니다.