Files
sb-front/brand/LAUNCH-PROGRESS.md
T
2026-07-07 23:50:32 +09:00

15 KiB
Raw Blame History

돈돼지 가계부 — Play 스토어 첫 출시 진행 상황

최종 업데이트: 2026-07-07. 첫 정식 출시(무료 앱) 준비 로그 + 남은 로드맵. 관련 문서: play-store-listing.md · production-access-draft.md


완료된 작업

출시 전략 결정

  • 무료 앱으로 첫 출시 (수익화 기능은 순차 도입)
  • 첫 출시 기능 플래그 (src/config/features.js, 전부 false):
    • BILLING_ENABLED=false — 인앱결제 스텁이라 결제 없이 프리미엄 부여되는 악용 차단
    • ADS_ENABLED=false — 애드핏 미승인 + 데이터 안전 양식 단순화(광고 식별자 미수집)
    • CARD_NOTIF_ENABLED=false — NotificationListenerService 정책 심사 회피
  • 패키지명 kr.sblog.slimbudget 유지(출시 후 영구 고정. 사용자 비노출이라 무방)

인프라 / 정책 페이지

  • www.sblog.kr 도메인 + 인증서 확장 (app.sblog.kr와 동일 dist 서빙)
  • 공개 URL: /privacy, /terms, /account-deletion (모두 200 확인)
  • 개인정보처리방침 광고 문구 → "현재 광고 없음 + 향후 도입 가능" 미래형으로 정합화

빌드 / 서명

  • AAB: android/app/build/outputs/bundle/release/app-release.aab
    • targetSdk 36, versionCode 1, versionName 1.0
    • 업로드 키(CN=Don Dwaeji) 서명 확인 (디버그 아님)
    • 결제·광고·카드알림 전부 OFF 클린 (NotificationListener 권한 없음 검증)
  • 키스토어: android/upload-keystore.jks + android/key.properties (gitignore, 이 PC에만 존재 — 분실 시 업데이트 불가, 반드시 백업)

스토어 그래픽 (brand/store/)

  • icon-512.png (512×512 불투명)
  • feature-1024x500.png / feature-1024x500-text.png (피처그래픽, 택1)
  • 생성기 brand/gen-store-assets.mjs + 마스터 brand/logo-1024.png

스크린샷 (brand/screenshots/, 7컷, 실기기 1080×2340)

  • shot0 홈 대시보드(리드) / shot1 가계부 내역 / shot2 통계 / shot3 정기결제 / shot4 계좌 / shot5 게시판 / shot6 게시글 상세

등록 문서

  • brand/play-store-listing.md — 등록정보(제목·설명)·데이터안전 양식·콘텐츠등급 답안
  • brand/production-access-draft.md — 프로덕션 액세스 신청서 초안(4문항)

코드 수정 (배포 완료)

  • 인앱결제 진입점 비활성화 (UpgradeView "곧 출시 예정", AccountInfoView 정기결제 카드 숨김)
  • 광고 비활성화 (AdBanner + App.vue 게이팅, 하단 광고 여백 제거)
  • 둘러보기(데모) 모드 메뉴 접근 버그 수정 (AppHeader 햄버거 demo.on 노출)
  • 계정삭제 공개 페이지 추가

테스트 데이터 (캡처용, sb_bt/scripts/, gitignore 로컬 전용)

  • 테스트 계정 kenneth73510@gmail.com (DB로 PREMIUM 부여)
  • seed-test-kenneth.sql(계정+가계부), seed-test-board.sql(게시판 더미)
  • cleanup-test-board.sql(게시판 더미 삭제 — 캡처 후 정리 완료)

🚧 현재 상태 (2026-07-05)

  • 개발자 계정 신원확인 완료 → 앱 생성 완료(kr.sblog.slimbudget)
  • 필수 설정(데이터안전·콘텐츠등급(전체이용가)·앱액세스(둘러보기)·광고없음·비거래자·방침URL) 완료
  • 스토어 등록정보·이미지(아이콘512·피처·스크린샷7) 완료
  • 비공개 테스트 트랙에 v2(AAB) 게시 → 검토 통과
  • 구글 로그인 SHA-1 이슈 해결(Play 앱서명 SHA-1 등록) → 로그인 정상
  • Google Search Console sblog.kr 도메인 소유권 인증 완료 (DNS TXT)
  • 테스터 12명 opt-in 대기(업체 의뢰) → 14일 → 프로덕션 신청
  • v4 AAB 빌드 완료 (versionCode 4, 1.0.3) → 비공개 트랙 업로드 대기
  • 개인사업자 계정 전환 → DUNS 신청 완료(D&B 발급 대기) → 발급 후 Play Console에서 마저 진행
    • Play Console 웹사이트 인증(www.sblog.kr) 완료

📋 남은 로드맵 (프로덕션까지)

  1. 테스터 12명 opt-in (업체 의뢰) — 14일 카운트 시작 조건
  2. 14일 연속 12명 유지 → 프로덕션 액세스 신청 (자료: production-access-draft.md)
  3. v4 AAB 비공개 트랙 업로드 — 빌드 완료(versionCode 4, 1.0.3), Play Console 업로드 후 검토 제출 (14일 카운트 리셋 안 됨)
  4. 승인 → 프로덕션 출시

⚠️ 폐쇄 테스트 의무 (개인 계정 + 2023-11-13 이후 개설)

  • 테스터 12명 이상 · 14일 연속 폐쇄 테스트 후 프로덕션 신청 가능
  • 실기기·실계정 필수 (에뮬·봇·중복 불인정)
  • 14일 카운트 = "릴리스 승인 + 12명 opt-in" 둘 다 충족 시점부터
  • 테스터 확보: 지인 비공개 방침 → 품앗이 커뮤니티(무료·안전) 또는 평판 좋은 유료 서비스(실사용 보장형만)

익명 셋업 체크리스트

  • 전용 Gmail 생성 (개발자 연락처 + 품앗이용)
  • 공개 개발자 이름 → 브랜드명 (법적이름은 구글 내부 전용, 비공개)
  • 연락처 이메일(계정+앱) → 전용 메일
  • 거래자 상태 → 비거래자(Non-trader) (주소 비공개)
  • 품앗이 노출은 전용 Gmail로만

적용 완료 (전부 웹/소스 배포됨)

v2(versionCode 2, 1.0.1, 06-29)에 포함 — 비공개 테스트 게시·검토통과

  • 신규 유저 빈 상태 CTA(홈 '시작하기'·내역·계좌) / 오프라인·네트워크 오류 배너
  • 앱 잠금(PIN, 옵트인) + 카메라/갤러리 복귀 오작동 수정
  • 전역 에러 폴백(흰 화면 방지) / 안드로이드 뒤로가기 통합(오버레이→뒤로→종료토스트)
  • 분류 순서변경 보호('순서변경' 토글)

v2 이후 추가 — 웹 배포됨, v3 빌드 대기

  • 앱 잠금 1시간 유예(잦은 PIN 입력 해소)
  • 외화 입/지출 — 통화+환율 자동조회(open.er-api.com 무료)→원화 환산, 원본 보존. amount는 환산 원화라 통계·예산 무변경
  • 외화 환율 갱신 시각 — 환율 자동조회 후 '방금 / N분 전 / N시간 전' 레이블(30초 ticker), FxController updatedAt 응답 포함
  • 월별 예산 + 전월/다음달 복사 — budget에 year/month 추가, 기존 예산은 현재 월로 1회 이관
  • 내역추가 전체화면 모달(바깥 닫힘 방지) / 분류 아코디언(대분류 삼각형) / 계좌 셀렉트 정리(종류별 안내·이름만)
  • 구글 로그인 Play 서명 SHA-1 등록(Google Cloud Android OAuth 클라 추가)
  • UI 전면 개편 (2026-07-04) — 모든 입력 모달 전체화면 슬라이드업(AppModal) 적용:
    • 공통 CategoryPicker.vue 컴포넌트 — 대분류/소분류 아코디언 칩 + 인라인 추가 (가계부·고정지출·예산 공통)
    • AccountView 계좌종류·구분 셀렉트→뱃지, 분류→CategoryPicker
    • RecurringView 구분·주기 셀렉트→뱃지, 계좌/카드→뱃지, 분류→CategoryPicker
    • AccountWalletView 카드종류·상환방식 셀렉트→뱃지
    • BudgetView 비고정/고정 라디오→뱃지, 카테고리→CategoryPicker
    • CategoryView 리스트 UI → 칩 그리드 관리 모드 (CategoryPicker admin prop): ✏ 이름수정·✕ 삭제·⠿ 순서변경(토글 후 드래그)
  • 게시판 포인트 정책 — 작성 10P(일 5회·50P 한도), 스팸 키워드 포함 시 미지급; 추천 +5P(작성자·일 50P)/비추 -1P; 남글추천 +1P(투표자·일 10P)/취소 -1P
  • 가계부 작성 포인트 — 건당 10P, 일 5회(50P) 한도
  • 스팸 키워드 자동 블라인드 — 14개 키워드 포함 시 글/댓글 즉시 블라인드, 포인트 미지급
  • 관리자 신고글 목록 고도화 — 신고 누적 + 스팸 감지 통합; 🤖 스팸감지 뱃지·blockReason 표시; 스팸 항목 신고 무시 버튼 숨김

2026-07-07 추가 (웹·서버 배포 완료)

  • 정기결제 리네이밍 — 전체 화면 '고정지출' → '정기결제' (백업 엑셀 시트명은 기존 백업 복원 호환 위해 유지)
  • 정기결제 주기 월/년만 — DAILY·WEEKLY 제거, 요일선택 UI 제거 (RecurringView)
  • 계좌 관리 화면 개편 — 탭 제거 → 종류별 그룹 목록, 계좌명 클릭 시 상세 화면 분리(/account/wallets/:id AccountWalletDetailView), 순서변경 잠금 토글, 투자계좌는 투자금만 표기·상세 비활성
  • 태그관리 순서변경 토글 — 기본 비활성, '순서변경' 버튼 클릭 시 드래그 활성 (AccountTagView)
  • 대출·카드할부 상환 조회 (유료)RepaymentScheduleView.vue + utils/repayment.js. 대출 상환방식별 상각(원리금균등·원금균등·만기일시) + 카드 할부(무이자) 남은 스케줄, 회차별 원금·이자·합계·남은잔액, 이번 달/남은 총액. 사이드바 유료 메뉴
  • 대출 월 상환금(loanPayment) 필드 — 백엔드 컬럼(wallet.loan_payment)+DTO/매퍼, 계좌 폼 선택 입력. 원리금균등을 은행 조회액과 정확히 일치(이자=잔액×이율, 원금=월상환금−이자), 마지막 회차 잔여 반올림 정산. 미입력 시 잔액·개월수로 PMT 추정
  • 대출 이자율 소수점 3자리 입력(step 0.001, loan_rate DECIMAL(7,4))
  • 가계부 대출 상환 자동세팅 — 원리금균등 선택 시 저장된 월 상환금 우선 반영(옛 PMT 추정 대체), 마지막 회차 초과상환 방지 (AccountView)
  • 홈 대시보드 '이번 달 상환 예정' 카드 (유료) — 현재일 기준 대출·카드할부 상환 예정 합계, 가계부에 상환 기록 있으면 제외, 모두 기록 시 '상환 완료' 표시
  • AI 교통 절약 팁 제외 — 버스·지하철·대중교통 분류는 정기권 최저비용 사용 중으로 tips에서 제외 (AiEntryParser)

2026-07-05 추가 (웹 배포됨, v3 빌드 대기)

  • AI 편의 기능 — 자연어 입력·영수증 비전·분류/계좌 추천·재무 코멘트·절약 가이드 (상세는 아래 🤖 섹션)
  • 홈 대시보드 오늘 기록 넛지 — '안녕하세요 OO님' → 오늘 기록 상태로 대체(없으면 '지금 기록하기' CTA / 있으면 'N건'·연속 2일+ 'N일 연속 🔥')
  • 통계 화면 정리 — '예산 대비'+'수입 대비' 두 패널 → '이번 달 현황' 단일 패널 통합; 예상 지출은 결정적 계산(일회성 큰 지출 제외, 매 접속 동일값); AI 코멘트 로딩 인디케이터
  • 한 달 개근 보너스 포인트 — 현재 월 모든 날 기록 시 랜덤 1~100P(월 1회, 전월 소급 제외, 화면 안내 없음, MONTH_COMPLETE_yyyyMM로 중복 차단)
  • iOS 안전영역·클립보드 수정 — 사이드바 상단 상태바 겹침 해결; 모달 열 때 클립보드 자동읽기 제거(iOS '붙여넣기' 토스트 방지). 음성 입력=iOS 키보드 받아쓰기(실기기 확인)

📌 남은 백로그 (출시 후 업데이트)

  1. 앱 업데이트 안내 — 새 버전 알림 + 구글플레이 바로가기
  2. (선택) 첫 실행 온보딩 / Play 인앱 리뷰 / 생체 인증
  3. 조직 계정 전환 + 기프트콘 교환 — 사업자등록→DUNS→앱이전, B2B 기프트콘 매입
  4. 포인트 상점 (사용량·슬롯 판매) — 견적 11.5일. 무료회원 대상, 유료회원은 무제한.
    • AI 텍스트 입력(/entries/parse): 월 5회 무료 + 추가 10회 = 300P
    • OCR 영수증 인식(/ocr/receipt-ai): 월 3회 무료 + 추가 10회 = 500P
    • 계좌 슬롯: 종류별 기본 2개(적용됨) + 500P당 +1, 최대 5개, 구매분은 영구
    • 설계: 월별 사용량 테이블(ai_usage) + 구매 크레딧(ai_credit) / 매 호출 전 무료쿼터→구매크레딧→거부(충전유도) / 구매는 PointService로 포인트 차감(+크레딧)
    • 확정 필요: ①유료=무제한 ②구매팩 이월(기본은 매월 리셋) ③'1회'=AI API 호출 1건(비용 기준) ④월 1일 리셋
    • 참고: AI 호출 비용 상한 통제 효과. 지금은 /entries/parse가 무료·미게이트(영수증·재무코멘트는 이미 유료 게이트) → 상점 없이 단순 유료화하려면 WebConfig 1줄로도 가능

🤖 AI 기능 — 구현·배포 완료 (2026-07-05)

  • 백엔드: AiEntryParser(Claude Haiku 4.5, raw HTTP /v1/messages), 키는 서버 /opt/sb-backend/.env(ANTHROPIC_API_KEY), 실패/미설정 시 규칙기반·Google Vision OCR 폴백.
  • ① 자연어 한 줄 입력 — "어제 스타벅스 5천원" → 폼 자동 채움. 내역 화면 ' 빠른 입력' 바 진입점. (음성=iOS 키보드 받아쓰기, 실기기 확인)
  • ② 영수증 사진 → AI 구조화 — Claude Vision이 금액·상호·날짜·분류·계좌 추출(/ocr/receipt-ai), 실패 시 Google Vision 폴백.
  • ③ 분류·계좌 자동 추천 — 사용자 실제 분류·계좌 목록 중에서 선택(할루시네이션 방지 검증).
  • AI 재무 코멘트 + 절약 가이드 — 통계 화면, 집계 수치만 전송(거래 원문 미전송), 정중체. 예상 지출은 비결정성 때문에 결정적 계산(일회성 큰 지출 제외)으로 분리.
  • 개인정보처리방침·데이터안전 갱신 — 처리자 Anthropic(Claude) 명시, 전송 데이터 범위·학습 미사용 고지 (terms.js §2·§3, play-store-listing.md 데이터안전).
  • 원칙 준수: AI는 폼 prefill·참고 코멘트만, 저장은 사용자 확인 후.

🔨 빌드 상태

  • v2 (versionCode 2, 1.0.1): 비공개 테스트 게시·검토통과
  • v3 (versionCode 3): 위 'v2 이후 추가' + AI 기능(자연어·영수증·분류/계좌·재무코멘트) 전부 반영 — 빌드 후 비공개 트랙 업로드 (14일 카운트 리셋 안 됨)
    • ⚠️ 빌드 전 서버 .envANTHROPIC_API_KEY(AI) 확인
    • 가계부 내역 오류 해결됨 (2026-07-05)
    • 1회성 예산(BudgetOnetime) 백엔드 배포 완료 (2026-07-05)

다음 세션 재개 지점

  1. [해결] 화면 가로 밀림/잘림 — 진짜 원인은 iOS input 자동확대였음(모달·CSS 아님). viewport에 maximum-scale 없어 16px 미만 input 포커스 시 페이지 확대→우측 잘림. maximum-scale=1.0, user-scalable=no 추가로 해결(ec130e8). 교훈: "모든 화면 input 포커스 시 동일" = iOS 줌 의심.
  2. 테스터 12명 opt-in 진행상황 확인(업체 의뢰) → 12명 + 14일 연속 충족되면 프로덕션 액세스 신청(production-access-draft.md)
  3. v4 AAB 비공개 트랙 업로드 — versionCode 4(1.0.3) 빌드 완료, Play Console 업로드 대기
    • ⚠️ 2026-07-07 추가분(정기결제·계좌개편·상환조회·월상환금 등)은 웹·서버 배포 완료 — 다음 AAB에 포함해 빌드
  4. 포인트 상점 — 견적 11.5일. 착수 전 정책 4가지 확정 필요:
    • ①유료 회원 = AI 무제한 여부 ②구매 크레딧 이월 vs 매월 리셋 ③1회=API 호출 1건 ④리셋 기준일=월 1일
  5. DUNS 발급 대기 → 발급 시 Play Console 개인사업자 계정 전환 마저 진행
  6. (선택) 음성 전용 🎤 버튼@capacitor-community/speech-recognition(현재는 iOS 키보드 받아쓰기로 대체 가능)
  7. iOS(App Store) 트랙 — 실기기 빌드 확인 완료. 애플 개발자 승인·번들ID·App Store 심사는 Play와 독립 진행