docs: 경조사비 ↔ 대시보드 가지급금 연동 정책 요청서

- 현재 loans vs condolence_expenses 테이블 분리 현황 정리
- 4가지 방안 (합산/별도항목/자동연동/현행유지) 제시
- 백엔드 정책 결정 요청

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
유병철
2026-03-19 16:53:09 +09:00
parent ecc6d4d814
commit cd3b5eaac3

View File

@@ -0,0 +1,108 @@
# 경조사비 ↔ 대시보드 가지급금 연동 요청
> **작성일**: 2026-03-19
> **요청자**: FE 개발팀
> **대상**: 백엔드 개발팀
> **우선순위**: 정책 확인 후 결정
---
## 1. 현황
### 현재 구조
경조사비 관련 데이터가 **2개의 별도 테이블**에서 관리되고 있으며, 대시보드와 경조사비 관리 페이지가 서로 다른 데이터를 조회합니다.
| 구분 | 대시보드 가지급금 "경조사" | 경조사비 관리 페이지 |
|------|----------------------|-----------------|
| **테이블** | `loans` (category = `congratulatory`) | `condolence_expenses` |
| **API** | `GET /api/v1/loans/dashboard` | `GET /api/v1/condolence-expenses` |
| **개념** | 경조사 관련 가지급금 (선지급 → 정산) | 경조사비 직접 지출 기록 |
| **날짜 기준** | `loan_date` (대출일) | `event_date` (경조사일) |
| **금액 의미** | `amount - settlement_amount` (미정산 잔액) | `cash_amount + gift_amount` (지출 총액) |
| **FE 페이지** | 대시보드 > 가지급금 현황 카드 | 회계관리 > 경조사비 |
### 발생 이슈
1. 경조사비 관리 페이지에서 등록한 데이터가 대시보드 가지급금 "경조사" 항목에 반영되지 않음
2. 사용자 관점에서 "경조사비를 등록했는데 대시보드에 안 보인다"는 혼란 발생 가능
3. 두 시스템의 "경조사" 데이터가 별개로 존재하여 일관성 부족
---
## 2. 정책 결정 필요 사항
아래 3가지 방안 중 선택이 필요합니다.
### 방안 A: 대시보드에 `condolence_expenses` 합산
```
대시보드 가지급금 "경조사" = loans(congratulatory) + condolence_expenses 합산
```
- **장점**: 사용자가 등록한 경조사비가 즉시 대시보드에 반영
- **단점**: 가지급금(미정산)과 지출(확정)이 혼합되어 금액 의미가 모호해짐
- **수정 범위**: `LoanService::getCategoryBreakdown()` 수정
### 방안 B: 대시보드에 별도 항목 추가
```
가지급금 현황:
카드 1,150만
경조사 30만 ← loans 테이블 (기존)
경조사비 10만 ← condolence_expenses 테이블 (신규)
상품권 50만
접대비 45만
```
- **장점**: 데이터 출처가 명확, 이중 집계 없음
- **단점**: 카드가 5→6개로 증가, UI 조정 필요
- **수정 범위**: `LoanService::dashboard()` + FE `CardManagementSection` 수정
### 방안 C: `condolence_expenses` 등록 시 `loans` 자동 생성
```
경조사비 등록 → loans 테이블에 category=congratulatory로 자동 삽입
```
- **장점**: 단일 데이터 소스, 대시보드 자동 반영
- **단점**: 서비스 간 결합도 증가, 양쪽 삭제/수정 시 동기화 복잡
- **수정 범위**: `CondolenceExpenseService::store/update/destroy()` + `LoanService` 연동
### 방안 D: 현행 유지 (별개 관리)
- **장점**: 수정 없음, 각 시스템 독립 운영
- **단점**: 사용자 혼란 지속
- **수정 범위**: 없음 (문서/가이드로 안내)
---
## 3. 참고: 현재 코드 위치
### 백엔드 (sam-api)
| 파일 | 역할 |
|------|------|
| `app/Services/LoanService.php` 라인 524-660 | `dashboard()`, `getCategoryBreakdown()` |
| `app/Models/Tenants/Loan.php` 라인 52-78 | 카테고리 상수 (CATEGORY_CONGRATULATORY) |
| `app/Services/CondolenceExpenseService.php` | 경조사비 CRUD + summary |
### 프론트엔드 (sam-react)
| 파일 | 역할 |
|------|------|
| `src/hooks/useCEODashboard.ts` 라인 118-134 | 가지급금 데이터 fetch (`/loans/dashboard`) |
| `src/lib/api/dashboard/transformers/expense.ts` 라인 203-211 | cm2(경조사) 카드 변환 |
| `src/components/business/CEODashboard/sections/CardManagementSection.tsx` | 가지급금 UI |
---
## 4. 요청 사항
1. **방안 A~D 중 선택** 후 FE팀에 전달
2. 선택된 방안에 따라 **API 수정 범위** 확정
3. 수정 완료 후 FE 연동 작업 진행
---
**최종 업데이트**: 2026-03-19