- loan_amount(대출 실행 금액) 컬럼 추가(DB/도메인/DTO/mapper)
- 계좌 폼: 대출 실행 금액 입력 / 기록 시작 시 잔액(기존 openingBalance) 레이블 분리
- 계좌 카드: 실행금액·금리·상환방식 표시
- 상환 자동계산 3방식 분기:
- 원리금균등: 납입금액 입력 → 이자(잔액×월이율) / 원금(납입-이자) 분리
- 원금균등: 실행금액÷기간=월원금, 잔액×월이율=이자 자동계산
- 만기일시: 잔액×월이율=이자만 자동계산, 원금 0
- 자동계산 후 이자·원금 수동 조정 가능
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- wallet 테이블에 loan_rate/loan_method/loan_months/loan_start 컬럼 추가(ALTER TABLE)
- 대출 계좌 폼에 연이자율(%), 상환방식(원리금균등/원금균등/만기일시), 기간, 시작일 입력 필드 추가
- 계좌 목록에 금리·상환방식 표시
- 상환 폼: 금리 설정된 대출 계좌 선택 시 납입금액 입력 → 이자/원금 자동계산
- 원리금균등/원금균등: 잔액 × 연이율/12 = 이자, 납입액-이자 = 원금
- 만기일시상환: 납입액 전체 이자로 처리
- 자동계산 후 수동 조정 가능
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
rowContainsSelected 함수 대신 template에서 row.some(m => m.id === selectedMajorObj.id) 직접 평가.
함수 호출 시 의존성 추적 불안정 문제 해소.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 대분류를 4개씩 행으로 렌더링(majorRows computed)
- 선택된 대분류가 속한 행 바로 아래 소분류 칩 삽입(rowContainsSelected)
- + 소분류 버튼: 소분류 행 내부, 선택된 대분류 하위로 추가
- + 대분류 버튼: 맨 아래, 선택 초기화 후 대분류로 추가
- 입력 placeholder에 추가 맥락 표시(대분류명 > 새 소분류)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 대분류: flex-wrap 그리드(한 줄 4개)로 나열, 분류 수 증가해도 가로로 쌓임
- 대분류 선택 시 소분류가 구분선 아래 동일 그리드로 펼침
- 선택된 항목 초록 테두리·배경 강조
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CategoryView(분류 관리): 잘못 적용된 대분류 아코디언 제거, 소분류 항상 표시로 복원
- AccountView(내역 추가/수정): 2단 드롭다운 → 대분류 아코디언으로 교체
· 대분류 클릭 → 소분류 펼침(없으면 바로 선택)
· 소분류 클릭 → 즉시 선택 / 선택 항목 초록 하이라이트
· 수정 진입 시 해당 대분류 자동 펼침 유지
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 내역 추가/수정 폼을 전체화면 모달로(바깥 영역 없음·× 로만 닫힘)
→ 입력 중 바깥 실수 터치로 닫히는 불편 해소. PC는 내용 폭 460px 가운데정렬
- 분류 화면: 대분류 삼각형(▶) 토글로 소분류 펼침/접힘(기본 접힘, 개수 뱃지)
소분류 추가 시 해당 대분류 자동 펼침. 순서변경 모드에선 모두 펼침
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 입력폼: 통화 드롭다운(KRW 기본 + 15개), 외화면 외화금액+환율 입력
→ 환산 원화 자동 계산(amount). 환율은 /fx/rate 자동조회('↻ 자동') + 수정 가능
- 저장: 외화면 currency/originalAmount/exchangeRate 전송, amount=환산 원화
- 목록 상세에 'USD 10.00 @1,350' 외화 뱃지 표시
- accountApi.fxRate 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 원인: visibilitychange(숨김)로 백그라운드를 감지하는데 카메라/파일선택/공유
호출 시에도 웹뷰가 숨겨져 잠금이 걸렸음(복귀 시 PIN 화면)
- appLock.suppressLock(): 네이티브 동작 직전 일시중지 창을 열어 그 복귀는 잠그지 않음
- 파일선택(input[type=file])은 App.vue 전역 클릭 리스너로 일괄 처리
- 카메라(OCR)·공유(백업)는 호출부에서 직접 suppressLock 호출
- 복귀(visible) 시 일시중지 창 해제
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 홈 대시보드: 데이터 없을 때 '시작하기' 카드(계좌→분류→내역 3단계 안내, 닫기 가능)
- 가계부 내역: 빈 상태를 '첫 내역 추가' CTA로 (필터 결과 없음과 구분)
- 계좌 관리: 빈 상태를 '계좌 추가' CTA로
- 스토어 신규 유저(데이터 0)의 첫인상·활성화 개선
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- /account-deletion 공개 페이지(웹 접근) — Play 데이터 삭제 정책 URL, 웹 안내 하단 링크
- CARD_NOTIF_ENABLED=false: 카드알림 자동인식 UI 숨김
- AndroidManifest: CardNotifListenerService 선언 주석 처리(알림접근 정책 회피)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- @capacitor/local-notifications 추가, src/native/reminders.js
- 매일 설정 시각(기본 21시) 가계부 미기록 시 알림(오늘 기록하면 오늘자 제외, 7일 롤링)
- 구독 해지 상태 만료 3일 전 알림
- 설정에 알림 받기 토글 + 시간 선택(앱에서만), 권한 요청
- 앱 시작/홈/내역에서 스케줄 보정
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- onMounted 의 runRecurrings(고정지출 자동반영)는 유료 전용 경로(/recurrings/run)라
무료 회원이 403 → premium:required → /upgrade 로 리다이렉트되던 문제
- isPremium 일 때만 runRecurrings 호출, '이 내역을 고정지출로 등록' 버튼도 유료에만 노출
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- auth 스토어 isPremium/isAdmin 추가 (plan===PREMIUM 또는 관리자)
- 사이드바: 통계·고정지출·예산·태그 메뉴에 무료 회원 잠금 배지(🔒)
- 라우트 가드: 유료 전용 화면(requiresPremium) → 무료 회원은 /upgrade
- UpgradeView: 무료/유료 기능 비교 + 업그레이드 안내
- http 인터셉터: 403 PREMIUM_REQUIRED → premium:required 이벤트 → 업그레이드 화면
- 무료 화면의 유료 API 호출 차단(홈 예산·내역 태그·OCR·카드알림 게이팅)
- 회원관리: 멤버십 컬럼 + 무료/유료 토글(관리자)
- 설정: 데이터 백업/복구 유료 게이팅, 계정정보에 멤버십 표시
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 등록 모달의 '자주 쓰는 내역 불러오기' 버튼·피커 모달 제거(번거로운 3단계 해소)
(저장 기능은 유지)
- 가계부 quick-bar 에 '⭐ 자주 쓰는 내역' 라벨 추가
- useQuick: 등록 성공과 목록 갱신 분리 — 갱신 단계 오류가 '등록 실패'로
오인되던 문제 방지(앱에서 등록 안 됨처럼 보이던 케이스 대응)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 가계부/예산 month-nav: 좌 spacer + 우 mn-actions(flex:1)로 네비 중앙 고정,
추가/검색·필터 버튼 우측 정렬
- 커뮤니티 검색 모달: input min-width:0 + select/버튼 flex:none 으로
검색 아이콘이 모달 밖으로 밀리는 문제 해결
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 가계부: 내역 추가 → month-nav(검색·필터 옆), 헤더는 pending 있을 때만
- 예산: 예산 추가 → month-nav(월 변경 옆)
- 고정지출: 지금 반영/추가 → 안내문구 아래
- 커뮤니티: 글쓰기 → 태그 필터와 같은 줄(list-top)
- 분류 관리: 기본 분류 불러오기 → 지출/수입 탭과 같은 줄(tabs-row)
- 미사용 boardTitle/boardLabel 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 각 화면 내 <h1> 페이지 타이틀 제거 → 헤더 타이틀로 일원화
(가계부 pending 카운트는 유지, 액션 헤더는 우측 정렬)
- 게시글 상세: 공지 등록/해제 버튼 제거 + '목록' 아이콘 추가(list 아이콘 신규)
- 글 작성/수정 공지 체크박스로 일원화(편집 시 기존값 로드)
- ProfileEdit/AccountInfo 화면 내 뒤로가기 제거, 미사용 router 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 영수증 스캔·문자·푸시 버튼을 상단 한 행(rb-actions)에 나란히, 안내문구는 아래
- 문자·푸시 붙여넣기를 하단 인라인 → 모달로(텍스트영역+감지+분석·채우기)
- 팝업 열 때 클립보드 자동감지 시 버튼에 ● 배지
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 불러오기: 셀렉트 → 모달 리스트(시인성↑), 항목 탭하면 폼 채움
- 문자·푸시 붙여넣기 버튼을 영수증 스캔과 같은 행(우측)으로 이동, 감지/수동입력은 아래로 분리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 가계부 상단 자주 쓰는 내역 칩: 탭하면 오늘 날짜로 즉시 등록(+안내), 편집 모드로 삭제
- 내역 추가/수정 폼: '⭐ 자주 쓰는 내역으로 저장' 버튼(수입/지출)
- 추가 팝업 열 때 클립보드 자동감지 배너 + '📋 문자·푸시 붙여넣기' 버튼
(실패 시 수동 붙여넣기 입력칸) → 구분/금액/메모/날짜 자동 채움
- accountApi: parseText / quickEntries CRUD
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- composables/dialog + components/ui/AppDialog(App 루트 마운트)
- window.alert 전역 오버라이드로 모든 alert 인앱화
- confirm/prompt(동기)는 각 호출부를 await dialog.confirm/prompt 로 교체
(가계부·예산·고정지출·계좌·태그·관리자·게시판·설정 — 삭제/열람제한 등)
- 웹/PC/APK 일관 UI, 의미있는 제목 부여
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1. PC 네이티브 confirm 제목('sb_pt') 노출 → '고정지출 등록' 인앱 확인 모달로 교체
(성공 시 토스트 안내). electron app.setName('Slim Budget')로 다른 네이티브
대화상자 제목도 개선(다음 Electron 빌드 시 반영).
2. 분류 관리 드래그를 계층형으로: 대분류는 블록 단위(소분류 함께) 이동,
소분류는 그 대분류 안에서만 이동(고유 group). 로컬 즉시반영으로 스냅백 방지.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 단일 긴 드롭다운(대분류 많으면 스크롤 과다) → 대분류 선택 후 소분류 선택
- 자식 없는 대분류는 그 자체가 분류(소분류 select 숨김)
- 편집 진입 시 현재 분류로부터 대분류 자동 추론, 구분 변경 시 초기화
- 인라인 분류 추가는 선택된 대분류의 소분류로 생성
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 분류 관리: 대분류 선택·소분류 들여쓰기(드래그 정렬 유지)
- 입력/예산/고정지출 분류 드롭다운 대분류 optgroup 그룹핑(값은 소분류명)
- 대시보드: 파이는 소분류 기준 + 대분류 합계 롤업 표시
- 릴리스 노트 33
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 통계: 순자산 추이 주간(최근 3개월), 이번달 예상 지출(run-rate), 지난달 대비 지출
- 가계부: 내역→고정지출 바로 등록, 날짜별 접기/펴기(기본 접힘·오늘만 펼침·모두 토글)
- 계좌 관리 탭 한 줄(넘치면 가로 스크롤)
- 릴리스 노트 갱신(23~32)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- WALLET_KINDS에 현금 추가, 중복되던 별도 '현금' 라디오 제거
- 출금/입금 종류 모두에서 현금 선택 가능(이체 포함)
- 현금 계좌 선택 셀렉트 상시 노출, 수입/지출 현금은 '미지정'(무계좌) 허용 유지
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 계좌 관리: '현금' 탭 + 폼(이름·초기 잔액, 발급사/계좌번호 등 미노출)
- 가계부 입력: 현금 선택 시 등록된 현금 계좌를 고를 수 있음(없으면 종전처럼 미지정)
- 고정 지출: 현금 종류 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 대상이 카드일 때만 연회비 입력란 노출(repayTargetIsCard)
- 원금=이체·이자/연회비=지출 안내 placeholder, 검증 '원금·이자·연회비 중 하나'
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 구분 드롭다운의 '상환/납부'가 신규 등록에서만 보이던 제약(v-if="!editId") 제거
- 수정 중 상환/납부로 전환 시: 상환 2건(원금=이체, 이자=지출) 생성 후
원본 1건 삭제 — 생성 성공 후 삭제 순서로 중간 실패 시 원본 보존
- openEdit에서 principal/interest 초기화(이전 값 잔존 방지)
- 잘못 입력한 단순 이체/지출을 원금·이자 분리 상환으로 정정 가능
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 웹(브라우저)은 안내 페이지만, 실제 이용은 앱(Capacitor). 개발모드는 예외
- 회원가입: 약관동의, 관리자 제한 토글, 진입부터 차단, 허니팟
- 카드 알림: pending 건 계좌종류 '카드' 기본선택(현금 X), 확인실패 시 HTTP 상태 표시
- 네이티브 알림필터: '카드' 키워드 제거+광고성 표현 차단
- docs/release-2026-06-06.md 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CardNotifListenerService: 결제 알림(금액+승인/결제/카드) 가로채 백엔드로 전송
(토큰은 Capacitor Preferences에서, 결제성 알림만 전송)
- CardNotifPlugin: 알림 접근 권한 확인/설정 열기
- AndroidManifest 서비스 등록, MainActivity 플러그인 등록
- 가계부 화면: 네이티브 미허용 시 '알림 접근 권한' 안내 배너
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- OS 기본 프롬프트 대신 앱 톤의 모달(카메라 촬영 / 갤러리에서 선택 카드)
- 네이티브: CameraSource.Camera / Photos 직접 호출, 웹: file input(capture 토글) 폴백
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 상호 추출 개선(GS25 등 숫자 포함 상호 허용, 날짜·전화·사업자·주소 제외)
- 카드 결제 영수증의 카드사 감지 → 등록된 카드(issuer/name 매칭) 자동 선택
- 매칭 실패해도 카드결제면 계좌종류를 카드로 좁혀줌
- 결과 표시에 💳카드명 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 이미지를 백엔드(/account/ocr/receipt)로 업로드 → Vision 텍스트 → 금액·날짜·상호 파싱
- 업로드 전 이미지 축소(최대 1600px JPEG), Tesseract.js 의존성 제거
- 진행률 표시 제거(인식 중…), 정확도·속도 대폭 개선
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 로그인 유지: Capacitor Preferences 로 토큰 영속화(앱 재실행 시 로그아웃 방지),
시작 시 세션 복원 후 마운트
- 내역 추가: 계좌 종류(계좌/카드/대출/증권) 콤보 선택 → 해당 종류만 목록에
- 가계부 내역: 일별 그룹 + 일 수입/지출 합계, 항목은 분류·계좌·금액 / 메모·태그(2줄),
per-row 날짜 제거
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>