diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 7e4bd72..e2f2dd3 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -11,7 +11,10 @@ "Read(//Users/chaerikim/Desktop/회사/Digital Garage/historyhub/define/**)", "Bash(copy:*)", "Read(//Users/chaerikim/Desktop/회사/Digital Garage/b2c-mvp/references/**)", - "Read(//Users/chaerikim/Desktop/회사/Digital Garage/b2c-mvp/define/**)" + "Read(//Users/chaerikim/Desktop/회사/Digital Garage/b2c-mvp/define/**)", + "Bash(git add:*)", + "Bash(git commit:*)", + "Bash(git push)" ], "deny": [], "ask": [] diff --git a/design/userstory.md b/design/userstory.md index 3ddcaba..d8b127f 100644 --- a/design/userstory.md +++ b/design/userstory.md @@ -18,22 +18,25 @@ 1. User 서비스 1) 사용자 인증 및 관리 UFR-USER-010: [회원가입] 소상공인으로서 | 나는, 이벤트 자동 생성 서비스를 사용하기 위해 | 간편하게 회원가입하고 싶다. -- 시나리오: 기본 정보 입력 및 KT 본인 인증 - 미가입 상태에서 | 이름, 전화번호, 이메일을 입력하고 KT 본인 인증을 완료하면 | 회원가입이 완료되고 매장 정보 등록 화면으로 이동한다. +- 시나리오: 기본 정보 입력 및 KT 본인 인증 (선택) + 미가입 상태에서 | 이름, 전화번호, 이메일을 입력하고 회원가입을 하면 | 회원가입이 완료되고 매장 정보 등록 화면으로 이동한다. [입력 요구사항] - - [ ] 이름 2자 이상 입력 가능 - - [ ] 전화번호 형식 검증 (010-XXXX-XXXX) - - [ ] 이메일 형식 검증 (example@domain.com) + - [ ] 이름 2자 이상 입력 가능 (필수) + - [ ] 전화번호 형식 검증 (010-XXXX-XXXX) (필수) + - [ ] 이메일 형식 검증 (example@domain.com) (필수) + - [ ] KT 본인 인증 (선택) - 인증 시 추가 혜택 제공 [인증 처리] - - [ ] KT 인증 시스템 연동 확인 + - [ ] KT 인증 시스템 연동 확인 (선택 사항) - [ ] 본인 인증 요청 시 전화번호로 인증 문자 발송 - - [ ] 인증 완료 시 인증 토큰 저장 + - [ ] 인증 완료 시 인증 토큰 저장 및 인증 고객 플래그 설정 + - [ ] KT 인증 고객에게 추가 서비스 혜택 제공 - [ ] 중복 가입 방지 (전화번호 기준) [처리 결과] - [ ] 성공: "회원가입이 완료되었습니다" 메시지 → 매장 정보 등록 화면 + - [ ] KT 인증 고객: 추가 혜택 안내 (무료 체험 횟수 증가 등) - [ ] 실패: 구체적인 오류 메시지 표시 - M/8 @@ -42,13 +45,19 @@ UFR-USER-010: [회원가입] 소상공인으로서 | 나는, 이벤트 자동 UFR-USER-020: [매장정보등록] 소상공인으로서 | 나는, 맞춤형 이벤트를 생성하기 위해 | 내 매장 정보를 등록하고 싶다. - 시나리오: 매장 정보 입력 및 사업자번호 검증 - 회원가입 완료 후 | 매장명, 업종, 주소, 영업시간, 사업자번호를 입력하면 | 사업자번호 검증 후 매장 정보가 저장되고 무료 체험 쿠폰이 발급된다. + 회원가입 완료 후 | 매장명, 업종, 주소, 영업시간, 사업자번호, 메뉴 정보를 입력하면 | 사업자번호 검증 후 매장 정보가 저장되고 무료 체험 쿠폰이 발급된다. [입력 요구사항] - [ ] 매장명 입력 (최대 50자) - [ ] 업종 선택 (카테고리 리스트 제공: 음식점, 카페, 소매업 등) - [ ] 주소 입력 (도로명 주소 API 연동) - [ ] 영업시간 설정 (요일별 시작/종료 시간 입력) + - [ ] 메뉴/상품 정보 입력 (선택, 최대 10개) + - 메뉴명/상품명 (최대 30자) + - 가격 정보 + - 간단한 설명 (최대 100자) + - [ ] 매장 특징/강점 입력 (선택, 최대 200자) + - [ ] 대표 이미지 업로드 (선택, 최대 3장) [사업자번호 검증] - [ ] 사업자번호 형식 검증 (XXX-XX-XXXXX) @@ -118,7 +127,7 @@ UFR-PLAN-020: [AI업종트렌드분석] 소상공인으로서 | 나는, 성공 --- UFR-PLAN-030: [AI경품추천] 소상공인으로서 | 나는, 예산 내에서 최적의 경품을 선정하기 위해 | AI가 타겟 고객층에 맞는 경품을 추천해주기를 원한다. -- 시나리오: AI 기반 최적 경품 추천 +- 시나리오: AI 기반 최적 경품 추천 및 수정 트렌드 분석 완료 후 | 예산, 타겟 고객층, 이벤트 목적을 입력하면 | Claude API가 예산 대비 매력도가 높은 경품 Top 5를 추천한다. [입력 요구사항] @@ -137,11 +146,18 @@ UFR-PLAN-030: [AI경품추천] 소상공인으로서 | 나는, 예산 내에서 - [ ] 경품 목록 Top 5 생성 - [ ] 각 경품별 예상 효과 표시 (참여율 예상) - [ ] 예산 범위 내 경품 필터링 - - [ ] 소상공인이 1개 선택 가능 + - [ ] 소상공인이 1개 선택 또는 수정 가능 + + [경품 수정 기능] + - [ ] 추천 경품 내용 수정 가능 (경품명, 수량, 가격) + - [ ] 직접 경품 입력 옵션 제공 + - [ ] 수정된 내용 기반 예상 효과 재계산 + - [ ] 예산 초과 시 경고 메시지 표시 [Policy] - 예산 내 최적 경품 선정 - 타겟 고객 선호도 우선 고려 + - 소상공인의 경품 수정 자유도 보장 - M/21 @@ -300,31 +316,40 @@ UFR-CONT-020: [AI영상제작] 소상공인으로서 | 나는, SNS 홍보를 위 UFR-CONT-030: [SNS콘텐츠생성] 소상공인으로서 | 나는, 다양한 SNS에 게시하기 위해 | 플랫폼별로 최적화된 콘텐츠를 자동으로 생성해주기를 원한다. - 시나리오: 플랫폼별 최적화 콘텐츠 생성 - 이미지와 영상 생성 완료 후 | Instagram, Naver Blog, Kakao Channel을 선택하면 | 각 플랫폼에 최적화된 해상도와 형식의 콘텐츠가 생성된다. + 이미지와 영상 생성 완료 후 | Instagram, Naver Blog, Kakao Channel, 우리동네TV, 링고 비즈를 선택하면 | 각 플랫폼에 최적화된 해상도와 형식의 콘텐츠가 생성된다. [플랫폼 선택] - [ ] Instagram (필수) - [ ] Naver Blog (선택) - [ ] Kakao Channel (선택) + - [ ] 우리동네TV (선택) + - [ ] 링고 비즈 (선택) [플랫폼별 최적화] - [ ] Instagram: 1080x1080 (정사각형) - [ ] Naver Blog: 800x600 (가로형) - [ ] Kakao Channel: 800x800 (정사각형) + - [ ] 우리동네TV: 1920x1080 (16:9 가로형) + - [ ] 링고 비즈: 텍스트 기반 콘텐츠 (음성 안내용) [콘텐츠 생성] - [ ] 선택한 이미지를 플랫폼별 해상도로 자동 조정 - [ ] 해시태그 자동 삽입 (기획안의 해시태그 활용) - [ ] 플랫폼별 텍스트 최적화 (글자 수 제한 고려) + - [ ] 우리동네TV용 영상 콘텐츠 생성 + - [ ] 링고 비즈용 텍스트 콘텐츠 생성 (TTS 변환용) [생성 결과] - [ ] 플랫폼별 최적화 이미지 파일 + - [ ] 우리동네TV용 영상 파일 (15초) + - [ ] 링고 비즈용 텍스트 스크립트 - [ ] 각 플랫폼용 게시 텍스트 - [ ] 미리보기 기능 - [ ] 일괄 다운로드 가능 (ZIP 파일) [Policy] - 플랫폼별 최적 해상도 자동 조정 + - KT 계열 채널 우선 최적화 - M/21 @@ -463,8 +488,15 @@ UFR-DIST-030: [링고비즈연결음업데이트] 소상공인으로서 | 나는 [연결음 생성] - [ ] 홍보 문구 기반 연결음 스크립트 자동 생성 - - [ ] TTS(Text-to-Speech)로 음성 파일 생성 - - [ ] 또는 사전 녹음 파일 업로드 + - [ ] 네이버 클로바(Clova) TTS 엔진을 이용한 음성 파일 생성 + - [ ] 음성 톤 선택 가능 (친근한 톤, 공식적인 톤, 활기찬 톤 등) + - [ ] 또는 사전 녹음 파일 업로드 (MP3, WAV 형식) + + [네이버 클로바 TTS 연동] + - [ ] 네이버 클로바 TTS API 연동 + - [ ] 음성 합성 옵션 설정 (음색, 속도, 톤) + - [ ] 고품질 음성 파일 생성 (16kHz 이상) + - [ ] 생성된 음성 파일 미리듣기 기능 [링고비즈 API 연동] - [ ] 링고비즈 API 호출 @@ -477,6 +509,10 @@ UFR-DIST-030: [링고비즈연결음업데이트] 소상공인으로서 | 나는 - [ ] 연결음 미리듣기 가능 - [ ] 롤백 기능 (이전 연결음으로 복구) + [Policy] + - 네이버 클로바 TTS 엔진 활용 필수 + - 자연스러운 음성 품질 보장 + - S/13 --- @@ -571,6 +607,7 @@ UFR-PART-010: [이벤트참여신청] 고객으로서 | 나는, 경품을 받기 [이벤트 발견 경로] - [ ] 우리동네TV - [ ] 지니TV + - [ ] 링고 비즈 (연결음) - [ ] SNS (Instagram, Blog, Kakao) - [ ] QR 코드 스캔 @@ -980,21 +1017,28 @@ NFR-PERF-010: [AI기획속도] 시스템으로서 | 나는, 사용자 대기 시 --- -NFR-PERF-020: [콘텐츠생성속도] 시스템으로서 | 나는, 효율적인 서비스를 제공하기 위해 | 이미지와 영상 콘텐츠 생성을 3분 이내에 완료하고 싶다. +NFR-PERF-020: [콘텐츠생성속도] 시스템으로서 | 나는, 효율적인 서비스를 제공하기 위해 | 이미지와 영상 콘텐츠 생성을 현실적인 시간 내에 완료하고 싶다. - 시나리오: 콘텐츠 생성 성능 보장 - 소상공인이 콘텐츠 생성 시작 후 | 이미지 3종, 영상 1개, SNS 콘텐츠, QR 포스터까지 | 3분 이내에 모든 콘텐츠가 생성된다. + 소상공인이 콘텐츠 생성 시작 후 | 이미지 3종, 영상 1개, SNS 콘텐츠, QR 포스터까지 | 현실적인 처리 시간 내에 모든 콘텐츠가 생성된다. [성능 요구사항] - - [ ] 이미지 생성 (3종): 90초 이내 - - [ ] 영상 제작 (15초): 90초 이내 - - [ ] SNS 콘텐츠 생성: 20초 이내 - - [ ] QR 포스터 생성: 10초 이내 - - [ ] 총 처리 시간: 3분 이내 + - [ ] 이미지 생성 (3종): 2-3분 이내 (AI 이미지 생성 특성 고려) + - [ ] 영상 제작 (15초): 3-5분 이내 (AI 영상 제작 특성 고려) + - [ ] SNS 콘텐츠 생성: 30초 이내 + - [ ] QR 포스터 생성: 20초 이내 + - [ ] 총 처리 시간: 5-8분 이내 (단계별 병렬 처리 시) [최적화 방안] - [ ] 이미지와 영상 병렬 생성 - [ ] GPU 가속 활용 - [ ] 콘텐츠 캐싱 + - [ ] 진행 상황 실시간 표시 (사용자 경험 개선) + - [ ] 백그라운드 처리로 다른 작업 가능 + + [Policy] + - AI 생성 모델의 현실적인 처리 시간 반영 + - 품질과 속도의 균형 유지 + - 사용자에게 명확한 진행 상황 피드백 제공 - M/34