Files
sb-front/docs/release-2026-06-06.md
T
ByungCheol c5e4c2dad7 feat: 웹 안내페이지(앱전용)·회원가입 제한/봇차단·카드 인식 보정
- 웹(브라우저)은 안내 페이지만, 실제 이용은 앱(Capacitor). 개발모드는 예외
- 회원가입: 약관동의, 관리자 제한 토글, 진입부터 차단, 허니팟
- 카드 알림: pending 건 계좌종류 '카드' 기본선택(현금 X), 확인실패 시 HTTP 상태 표시
- 네이티브 알림필터: '카드' 키워드 제거+광고성 표현 차단
- docs/release-2026-06-06.md 정리

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-06 00:16:50 +09:00

3.3 KiB

Slim Budget — 변경 내역 (2026-06-06 배포)

이번 작업 세션에서 추가·수정한 기능 정리. (프론트 sb_pt, 백엔드 sb_bt, 안드로이드 앱 포함)


1. 홈 대시보드

  • 일별 수입·지출 캘린더 추가 (예산 대비 지출 아래). 날짜에 마우스 오버/탭 시 그 날의 내역 목록 표시.

2. 투자 / 계좌

  • 시세 자동조회: 종목코드(6자리)로 네이버 금융에서 현재가 자동 갱신. 투자 탭 진입·포트폴리오 펼침 시 자동, "↻ 시세 갱신" 버튼도 제공.
  • 퇴직연금·연금 등 평가액 직접입력형 계좌: 종목 없이 현재 평가액만 입력해 관리(누적 적립원금 대비 손익% 표시).
  • 보유 종목 표기 2줄 정리(수량 / 평단·현재가).
  • 계좌번호 암호화: DB에 AES-256-GCM으로 저장(키는 서버 .env ACCOUNT_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/.env
    • ACCOUNT_CRYPTO_KEY — 계좌번호 암호화를 켤 때만(미설정 시 평문, 깨지지 않음).
  • app_setting 테이블 — 배포 시 member.sql 초기화로 자동 생성(회원가입 허용 플래그).
  • Redis appendonly yes — 세션 영속(이미 적용).