ByungCheol
e9a3fc82e5
fix: verify-password·profile 인터셉터 보호 경로 누락 수정
...
CI / build (push) Failing after 15m51s
- WebConfig authInterceptor 경로에 /api/auth/verify-password, /api/auth/profile 추가
(누락 시 CURRENT_MEMBER 미설정 → 로그인 사용자도 NPE 500)
- WebConfigTest: 인증 필수 auth 엔드포인트 보호 경로 등록 회귀 가드
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 14:14:15 +09:00
ByungCheol
91cc5558e4
Merge branch 'dev'
Deploy / deploy (push) Failing after 11m20s
CI / build (push) Failing after 13m8s
2026-06-06 14:08:13 +09:00
ByungCheol
e592c174bf
feat: 가입정보 변경·비밀번호 재인증 API + 백엔드 단위테스트·CI 게이트
...
CI / build (push) Failing after 14m50s
- POST /auth/verify-password, PUT /auth/profile(세션 표시 이름 동기화)
- MemberMapper.updateProfile, AuthSessionMapper.updateName
- 단위테스트(24): CardNotificationParser(8), AuthService(16, Mockito)
- CI(.gitea): 테스트 리포트 아티팩트 업로드(clean build가 곧 테스트 게이트)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 14:08:01 +09:00
ByungCheol
27b8829def
Merge branch 'dev'
Deploy / deploy (push) Failing after 11m29s
CI / build (push) Failing after 13m15s
2026-06-06 08:13:03 +09:00
ByungCheol
5e2bdae37d
feat: 세션 DB 이중 저장 — Redis 유실/재시작에도 로그인 유지
...
- auth_session 테이블에 세션 영속 백업(login 시 Redis+DB 동시 저장)
- getSession: Redis 미스/장애 시 DB에서 복원 후 Redis 재수화(슬라이딩)
- logout: Redis+DB 동시 삭제, 만료분 일별 정리(@Scheduled)
- Redis 재시작으로 세션 전멸하던 주기적 로그아웃 해결
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 08:12:57 +09:00
ByungCheol
ad2ee4e75d
Merge branch 'dev'
Deploy / deploy (push) Failing after 13m1s
CI / build (push) Failing after 14m52s
2026-06-06 00:16:30 +09:00
ByungCheol
c05be0880c
feat: 회원가입 제한·봇차단(허니팟/레이트리밋)·카드 자동인식 보정
...
- 관리자 회원가입 허용 토글(app_setting), 공개 GET /auth/signup-enabled
- 회원가입 봇차단: 허니팟(website) + IP 레이트리밋(Redis, 1h 5회)
- 카드 알림: 현금 오선택 보정(카드 양방향 매칭+단일카드 자동), 광고 푸시 차단(승인신호 없는 광고성 표현 무시)
- @MapperScan 에 admin.mapper 추가
- account.sql: 매 기동 wallet MODIFY 제거(라이브 락 위험) — CREATE 정의에 255 반영됨
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-06 00:15:57 +09:00
ByungCheol
eb24a315d3
Merge branch 'dev'
CI / build (push) Failing after 11m1s
Deploy / deploy (push) Failing after 14m15s
2026-06-04 05:00:27 +09:00
ByungCheol
fb94df8112
feat: 시세 자동조회·퇴직연금 평가액·게시판 카테고리·태그 정렬·계좌번호 암호화
...
- 투자: 종목코드로 현재가 시세 자동조회(StockQuoteService, 투자탭/포트폴리오 진입 시 갱신)
- 투자: 퇴직연금 등 평가액 직접입력형 계좌(currentValue 활성화, manualValuation)
- 게시판: community/saving/tips 카테고리 분리(post.category + 목록 필터)
- 태그: 순서 변경(account_tag.sort_order, /tags/reorder)
- 보안: 계좌번호 AES-256-GCM 암호화 저장/복호화(EncryptedStringTypeHandler, account_number VARCHAR(255))
키는 서버 .env ACCOUNT_CRYPTO_KEY 로 주입(미설정 시 평문 통과)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 05:00:18 +09:00
ByungCheol
396e986792
Merge branch 'dev'
Deploy / deploy (push) Failing after 11m21s
CI / build (push) Failing after 13m3s
2026-06-03 18:51:32 +09:00
ByungCheol
8fec057752
feat: 카드 결제 알림 자동인식(미확인 내역) 백엔드
...
CI / build (push) Failing after 14m48s
- account_entry pending/notif_key 컬럼 추가(멱등 마이그레이션)
- CardNotificationParser: 카드사·금액·가맹점·승인/취소 파싱
- POST /entries/notification(미확인 지출 생성, 중복방지, 카드 자동매칭)
- POST /entries/{id}/confirm(확정), GET /entries/pending/count
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 18:51:30 +09:00
ByungCheol
191f1cfbe4
Merge branch 'dev'
CI / build (push) Failing after 12m15s
Deploy / deploy (push) Failing after 15m32s
2026-06-03 17:37:20 +09:00
ByungCheol
c1f97364aa
feat: 영수증 OCR Google Vision 연동
...
CI / build (push) Failing after 14m0s
- VisionOcrService: 이미지→Google Vision DOCUMENT_TEXT_DETECTION 호출, 전체 텍스트 반환
- OcrController: POST /api/account/ocr/receipt (멀티파트, 로그인 필요)
- API 키는 GOOGLE_VISION_API_KEY 환경변수(.env)로만 주입 — 미설정 시 503
- multipart 업로드 10MB 허용
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 17:37:17 +09:00
ByungCheol
1d4dbc2183
Merge branch 'dev'
CI / build (push) Failing after 12m10s
Deploy / deploy (push) Failing after 15m27s
2026-06-03 16:42:22 +09:00
ByungCheol
bd0a0f7776
feat: 투자 소수점 매매 + 카드 할부(installment_months)
...
CI / build (push) Failing after 13m58s
- invest_trade.quantity BIGINT→DECIMAL(18,6): 평단·원가·평가/실현손익 계산을 BigDecimal로 전환 (금액은 원단위 정수 유지)
- account_entry.installment_months 추가: 카드 지출 2~24개월 할부 기록(일시불 null), 응답에 포함
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 16:41:58 +09:00
ByungCheol
478a75b6d8
Merge branch 'dev' into main
Deploy / deploy (push) Failing after 13m38s
CI / build (push) Failing after 15m20s
2026-06-01 22:54:25 +09:00
ByungCheol
f5e9b78a14
feat: 예상 수입 월별 저장 + 계좌 순서변경 API
...
CI / build (push) Failing after 12m2s
- 예상 수입: budget_income(연·월별) 로 변경, GET/PUT 에 year·month
- 계좌: wallet.sort_order + reorder 엔드포인트, 생성 시 맨 뒤 배치
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 22:54:23 +09:00
ByungCheol
41a5780e14
Merge branch 'dev' into main
CI / build (push) Successful in 50s
Deploy / deploy (push) Failing after 15m16s
2026-06-01 22:37:43 +09:00
ByungCheol
cac9919cc5
feat: 분류 순서변경(reorder) + 월 예상 수입 설정 API
...
CI / build (push) Failing after 13m44s
- 분류: sort_order reorder 엔드포인트, 생성 시 맨 뒤 배치
- 예산: account_setting 테이블 + 월 예상 수입 GET/PUT
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 22:37:41 +09:00
ByungCheol
86c56f6c6f
Merge branch 'dev' into main
Deploy / deploy (push) Failing after 11m36s
CI / build (push) Failing after 13m18s
2026-05-31 21:46:30 +09:00
ByungCheol
9ad6a91a56
feat: 자동 로그인(로그인 상태 유지) - rememberMe 시 세션 30일
...
CI / build (push) Failing after 15m1s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 21:46:27 +09:00
ByungCheol
bd1164866c
Merge branch 'dev' into main
Deploy / deploy (push) Failing after 13m16s
CI / build (push) Failing after 14m57s
2026-05-31 20:49:52 +09:00
ByungCheol
f55d998803
fix: HTTPS 프록시 뒤 CORS 오류 해결 (forward-headers + 운영 오리진 허용)
...
CI / build (push) Failing after 11m38s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 20:49:49 +09:00
ByungCheol
f884cb7b06
Merge branch 'dev' into main
CI / build (push) Failing after 11m54s
Deploy / deploy (push) Failing after 15m13s
2026-05-31 19:12:56 +09:00
ByungCheol
2ecdd363b1
feat: CORS에 Capacitor 앱 오리진 허용 (하이브리드 앱)
...
CI / build (push) Failing after 13m35s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 19:12:54 +09:00
ByungCheol
e5fd31843a
Merge branch 'dev' into main
Deploy / deploy (push) Failing after 11m27s
CI / build (push) Failing after 13m7s
2026-05-31 19:01:43 +09:00
ByungCheol
8eb2129f5e
feat: 관리자 회원 관리 API (/api/admin/members)
...
CI / build (push) Failing after 14m49s
목록/역할 변경/상태 변경/삭제. 본인 계정 변경·삭제 차단.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 19:01:41 +09:00
ByungCheol
a821cd8f89
Merge branch 'dev' into main
Deploy / deploy (push) Failing after 11m24s
CI / build (push) Failing after 13m6s
2026-05-31 18:46:44 +09:00
ByungCheol
eb6b9830ce
feat: 비밀번호 변경 기능 (PUT /api/auth/password)
...
CI / build (push) Failing after 14m46s
현재 비번 검증 후 BCrypt 교체. 소셜 계정/동일 비번 거부.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:46:42 +09:00
ByungCheol
cf275fabf6
Merge branch 'dev' into main
CI / build (push) Failing after 11m53s
Deploy / deploy (push) Failing after 15m12s
2026-05-31 18:22:53 +09:00
ByungCheol
43d1b53d01
fix(ci): 기동 폴링(최대 40초)으로 systemctl is-active 오탐 방지
...
CI / build (push) Failing after 13m36s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 18:22:51 +09:00
ByungCheol
d373e3e9e4
Merge branch 'dev' into main
...
Deploy / deploy (push) Has been cancelled
CI / build (push) Has been cancelled
fix(ci): SSH 개인키 CR 제거
2026-05-31 17:40:10 +09:00
ByungCheol
cf6d0710f6
fix(ci): SSH 개인키 파일에서 CR 제거 (Windows CRLF 시크릿 대응)
...
CI / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 17:40:08 +09:00
ByungCheol
f79c2412fd
Merge branch 'dev' into main
...
Deploy / deploy (push) Has been cancelled
CI / build (push) Has been cancelled
ci: 자동 배포 워크플로 + 서버 설정 파일
2026-05-31 15:55:35 +09:00
ByungCheol
614e74be8a
ci: 백엔드 자동 배포 구현 (SSH + systemd, main push)
...
CI / build (push) Has been cancelled
- deploy.yaml: jar 빌드 → scp 전송 → systemctl 재시작
- deploy/sb-backend.service: systemd 유닛 샘플
- deploy/README.md: 시크릿·서버 준비 안내
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 15:55:33 +09:00
ByungCheol
f3230dcc5b
Merge branch 'dev' into main
...
CI / build (push) Failing after 12m12s
ci: Gitea Actions CI/CD 워크플로 추가
2026-05-31 15:49:08 +09:00
ByungCheol
8639ca3d04
ci: Gitea Actions 워크플로 추가
...
CI / build (push) Failing after 16m32s
- ci.yaml: JDK17 + MariaDB/Redis 서비스 컨테이너 → gradlew clean build → jar 아티팩트
- deploy.yaml: 수동 실행(workflow_dispatch) 배포 템플릿(SSH/scp·Docker 예시)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 15:49:06 +09:00
ByungCheol
ef7d0f7f83
Merge branch 'dev' into main
...
가계부·게시판 백엔드 API 구현 (account/auth/board/user/admin)
2026-05-31 15:45:25 +09:00
ByungCheol
2a2f81dc32
feat: 가계부·게시판 백엔드 API 구현
...
- com.sb.web 패키지로 재구성: account / auth / board / user / admin / common
- 가계부(account): 내역(필터), 계좌·순자산, 예산, 분류, 정기 거래, 투자 포트폴리오
(종목·매매 이력, 이동평균 평단·실현/평가손익)
- MyBatis + MariaDB + Redis 세션, BCrypt
- 스키마 자동 초기화(db/*.sql, 멱등), 사용자별 데이터 격리(member_id)
- 문서: docs/BACKEND.md, .env.example
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-05-31 15:43:09 +09:00
ByungCheol
9243a41385
@
...
Initial commit: SB 백엔드 (Spring Boot + MyBatis)
- 사용자 CRUD REST API (/api/users)
- MariaDB(MyBatis) + Redis 캐싱 구성
- CORS 설정 및 헬스 체크 엔드포인트
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
@
2026-05-30 21:18:35 +09:00