Skip to content

[FEAT] 월 예산 설정 및 포켓별 예산 재조정 기능 구현 #45

Description

@gyak

작업 개요

사용자가 월 전체 예산을 설정하고, 해당 금액을 필수·자유·비상금·미래자산 포켓에 배분하는 기능을 구현합니다.

확정된 예산을 변경할 때는 기존 금액과 변경된 금액을 이력으로 기록하고, 이미 소비한 금액보다 포켓 예산을 낮출 수 없도록 검증합니다.

브랜치

feat/monthly-budget-management

작업 내용

  • 월 예산 신규 설정 기능을 구현합니다.
  • 월 예산 확정 기능을 구현합니다.
  • 포켓별 목표 금액 저장 기능을 구현합니다.
  • 확정된 월 예산의 총액 및 포켓별 금액 변경 기능을 구현합니다.
  • 전체 예산과 포켓별 배분 합계의 일치 여부를 검증합니다.
  • 포켓별 사용액을 기준으로 최소 조정 가능 금액을 검증합니다.
  • 월 예산 변경 이력과 포켓별 변경 상세를 저장합니다.
  • 월 예산 조회 결과에 상태와 배분 방식을 포함합니다.

예산 생성 기준

  • 한 사용자는 같은 월에 하나의 월 예산만 가질 수 있습니다.
  • 기준 월은 해당 월의 1일로 저장합니다.
  • 전체 예산은 0원보다 커야 합니다.
  • 포켓별 목표 금액은 0원 이상이어야 합니다.
  • 네 포켓의 배분 금액 합계는 전체 예산과 일치해야 합니다.
  • 포켓은 다음 네 유형을 모두 포함해야 합니다.
    • ESSENTIAL
    • FREE
    • EMERGENCY
    • FUTURE_ASSET
  • 같은 포켓 유형을 중복해서 전달할 수 없습니다.
  • 다른 사용자의 포켓을 예산에 포함할 수 없습니다.

예산 상태

DRAFT

  • 사용자가 아직 확정하지 않은 예산입니다.
  • 초안 상태에서는 총액과 포켓별 배분 금액을 수정할 수 있습니다.

CONFIRMED

  • 사용자가 최종 확정한 예산입니다.
  • 시스템이 임의로 다시 계산하거나 덮어쓰지 않습니다.
  • 이후 변경은 반드시 변경 이력과 함께 저장합니다.

포켓 배분 방식

  • USER_INPUT
    • 사용자가 직접 입력한 금액
  • AUTO_REMAINDER
    • 나머지 포켓을 입력한 뒤 남은 금액을 자동으로 배정
  • SYSTEM_DRAFT
    • 시스템이 최초 초안으로 제안한 금액

API

월 예산 설정

PUT /api/budgets/monthly/{month}
Authorization: Bearer {accessToken}
Content-Type: application/json

Activity

  1. self-assigned this
    on Sep 8, 2026
  2. added theissue type on Sep 8, 2026
  3. added
    ✨ 기능새 기능 또는 기존 기능 개선
    on Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

✨ 기능새 기능 또는 기존 기능 개선

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions