c5e4c2dad7
- 웹(브라우저)은 안내 페이지만, 실제 이용은 앱(Capacitor). 개발모드는 예외 - 회원가입: 약관동의, 관리자 제한 토글, 진입부터 차단, 허니팟 - 카드 알림: pending 건 계좌종류 '카드' 기본선택(현금 X), 확인실패 시 HTTP 상태 표시 - 네이티브 알림필터: '카드' 키워드 제거+광고성 표현 차단 - docs/release-2026-06-06.md 정리 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.3 KiB
3.3 KiB
Slim Budget — 변경 내역 (2026-06-06 배포)
이번 작업 세션에서 추가·수정한 기능 정리. (프론트 sb_pt, 백엔드 sb_bt, 안드로이드 앱 포함)
1. 홈 대시보드
- 일별 수입·지출 캘린더 추가 (예산 대비 지출 아래). 날짜에 마우스 오버/탭 시 그 날의 내역 목록 표시.
2. 투자 / 계좌
- 시세 자동조회: 종목코드(6자리)로 네이버 금융에서 현재가 자동 갱신. 투자 탭 진입·포트폴리오 펼침 시 자동, "↻ 시세 갱신" 버튼도 제공.
- 퇴직연금·연금 등 평가액 직접입력형 계좌: 종목 없이 현재 평가액만 입력해 관리(누적 적립원금 대비 손익% 표시).
- 보유 종목 표기 2줄 정리(수량 / 평단·현재가).
- 계좌번호 암호화: DB에 AES-256-GCM으로 저장(키는 서버
.envACCOUNT_CRYPTO_KEY). 화면에서는 끝 4자리만 노출 + 👁 전체보기 토글로 마스킹.
3. 가계부 내역 / 고정 지출
- "정기 거래" → "고정 지출" 명칭 변경, 월간/년간 분리·카테고리 소계/합계.
- 내역·고정지출 추가 시 계좌 종류 라디오 + 셀렉트 패턴, 저장 버튼 sticky.
4. 카드 결제 알림 자동인식 (버그 수정)
- 현금으로 잘못 선택되던 문제: 알림 자동인식(pending) 건은 매칭 실패해도 계좌 종류를 '카드'로 기본 선택. 백엔드 카드 매칭을 양방향 부분일치(
KB국민↔국민) + 카드가 1개뿐이면 자동 매칭으로 개선. - 광고 푸시 오인식 차단: 강한 승인신호(승인/출금/취소/환불) 없이 광고성 표현(이벤트·할인·적립·포인트·캐시백·쿠폰 등)이 있으면 결제로 보지 않음. 네이티브 1차 필터에서 '카드' 키워드 제거.
- 확인(확정) 실패 시 HTTP 상태코드 노출 + 즉시 UI 반영.
5. 게시판
- "자유게시판" → 커뮤니티 / 짠테크 수다방 / 재테크 팁 3개 게시판으로 분리(카테고리).
- 사이드바를 가계부 / 게시판 / 관리자 영역 구분선으로 정리.
- 글 번호 컬럼 미노출.
6. 회원가입 / 인증
- 이용약관·개인정보 수집 동의(필수 체크) 추가.
- 관리자 회원가입 제한 토글: 회원 관리 화면에서 신규 가입 on/off. 제한 시 가입 진입(랜딩·로그인·가입 팝업)부터 차단.
- 봇 가입 차단: 허니팟(숨김 필드) + IP 레이트리밋(Redis, 1시간 5회). Cloudflare Turnstile은 앱 환경 제약으로 제외.
- 모바일 웹 새로고침 시 로그아웃 버그 수정: 세션 복원을 localStorage 우선으로(Preferences 예외에 견고).
- 세션 유실(주기적 로그아웃) 해결: Redis AOF 활성화로 재시작에도 세션 영속(서버 설정).
7. 웹 접근 정책
- PC·모바일 웹은 안내 페이지만 노출(앱 다운로드 안내). 실제 이용은 앱(Capacitor)에서만. 개발 모드(
npm run dev)는 예외로 전체 앱 표시.
운영 반영 시 체크
- 서버
/opt/sb-backend/.envACCOUNT_CRYPTO_KEY— 계좌번호 암호화를 켤 때만(미설정 시 평문, 깨지지 않음).
app_setting테이블 — 배포 시member.sql초기화로 자동 생성(회원가입 허용 플래그).- Redis
appendonly yes— 세션 영속(이미 적용).