Skip to content

[ Refactor ] - 월간 소비 집계 DTO 정합성 수정 설명 - #189

Merged
hanjyoon01 merged 1 commit into
developfrom
refactor/#160
Aug 19, 2026
Merged

[ Refactor ] - 월간 소비 집계 DTO 정합성 수정 설명#189
hanjyoon01 merged 1 commit into
developfrom
refactor/#160

Conversation

@bigwaveBigwave

Copy link
Copy Markdown
Contributor

관련 이슈

Resolves: #160

선행 반영:

배경

이슈 #160은 account-service의 월간 소비 집계를 #140의
TXN_ANALYSIS 저장 계약과 일치시키는 작업으로 시작했습니다.

구현을 진행하는 과정에서 기존 #143의 LOAN 이자-only 집계 정책과
#140/#160의 LOAN out_amount 전체 집계 정책이 충돌하는 것을 확인했습니다.

해당 정책 충돌은 #185/#186에서 다음과 같이 최종 정리되어 develop에 먼저 반영됐습니다.

  • ORDINARY, INSTALLMENT, LOAN 모두 TXN_ANALYSIS 결과를 신뢰
  • TXN_ANALYSIS가 없거나 is_consumption=false인 거래는 제외
  • ORDINARY는 out_amount 집계
  • INSTALLMENT는 in_amount 집계
  • LOAN 정상 상환은 원금을 포함한 out_amount 전체 집계
  • LOAN 지급 거래는 일간 배치에서 is_consumption=false로 저장되어 제외
  • 카테고리와 고정지출 여부는 TXN_ANALYSIS.category/expense_type 사용
  • account-service의 LOAN 키워드 재판정, loan_interest_amount 집계,
    FINANCE/FIXED 강제 지정을 제거

따라서 #160 브랜치에서는 이미 develop에 반영된 기능 코드를 중복 수정하지 않고,
공유 DTO에 남아 있던 이전 LOAN 이자-only 설명을 현재 계약에 맞게 정리했습니다.

이번 PR 작업 사항

  • MonthlyExpenseSummary.totalExpense 설명 수정
    • ORDINARY: out_amount
    • INSTALLMENT: in_amount
    • LOAN: out_amount
    • TXN_ANALYSIS가 없거나 소비가 아닌 거래는 제외
  • MonthlyExpenseSummary.fixedExpense 설명 수정
    • is_consumption=true
    • expense_type=FIXED
    • 거래 유형별 월간 소비 금액 기준으로 합산

최종 집계 계약 확인

현재 develop의 MonthlyExpense 구현이 다음 조건을 만족하는 것을 확인했습니다.

  • TXN_ANALYSIS INNER JOIN
  • TXN_ANALYSIS.is_consumption = TRUE
  • 고정지출에 expense_type = FIXED 적용
  • 카테고리 grouping은 TXN_ANALYSIS.category 기준
  • LOAN의 loan_interest_amount 및 키워드 재판정 제거
  • 비활성 계좌 상태 필터 없음
  • startDate <= tran_date < endDate 반개구간 유지
  • 세 집계 쿼리에서 동일한 거래 유형별 금액식 사용
  • 총소비와 카테고리별 소비가 동일한 거래 집합을 사용

영향 범위

  • 월간 소비 집계 기능 구현은 #186에서 반영됨
  • 이번 PR의 실행 코드 변경 없음
  • FastAPI 요청·응답 계약 변경 없음
  • BFF API 계약 변경 없음
  • Scheduler, PDF 및 이메일 로직 변경 없음
  • FinancialCommitmentMapper의 방어모드 예상 납입액 계산 변경 없음
  • .idea 및 로컬 암호화 설정 파일 제외

검증

관련 모듈 테스트

.\gradlew.bat :services:account-service:test :services:ai-service:test --no-daemon

BUILD SUCCESSFUL in 36s
10 actionable tasks: 9 executed, 1 up-to-date

전체 회귀 테스트 및 WAR 빌드

  • Tomcat WAR 배포 및 애플리케이션 실행 확인
  • git diff --cached --check 통과

@hanjyoon01
hanjyoon01 merged commit 81acd68 into develop Aug 19, 2026
2 checks passed
@hanjyoon01
hanjyoon01 deleted the refactor/#160 branch August 20, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔨 Refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ Refactor ] - 월간 AI 리포트 소비 집계 기준 정합성 수정

4 participants