# 재무/자금관리 (Finance)

> **최종 갱신**: 2026-02-27

## 개요

SAM 프로젝트의 재무/자금관리 모듈. 입출금, 급여, 가지급금, 세금계산서, 어음, 악성채권 추심, CEO 대시보드까지 재무 전 영역을 관리한다. 바로빌 API 연동을 통한 실시간 거래 조회 및 전자세금계산서 발행을 지원한다.

## 문서 목록

### 자금관리 (기존)

| 문서 | 설명 |
|------|------|
| [finance-dashboard.md](./finance-dashboard.md) | 재무 대시보드 |
| [daily-fund-report.md](./daily-fund-report.md) | 일일자금일보 |
| [fund-schedules.md](./fund-schedules.md) | 자금계획일정 |
| [bank-accounts.md](./bank-accounts.md) | 보유계좌관리 |
| [account-transactions.md](./account-transactions.md) | 계좌입출금내역 (바로빌 연동) |

### 입출금·카드 (신규)

| 문서 | 설명 |
|------|------|
| [deposits-withdrawals.md](./deposits-withdrawals.md) | 입금/출금 관리 |
| [cards.md](./cards.md) | 카드관리 + 카드거래내역 |

### 급여·채권·비용 (신규)

| 문서 | 설명 |
|------|------|
| [payroll.md](./payroll.md) | 급여관리 (급여대장 + 급여관리) |
| [loans.md](./loans.md) | 가지급금 관리 (이자계산, 세금시뮬레이션) |
| [expected-expenses.md](./expected-expenses.md) | 미지급비용 관리 |
| [receivables-ledger.md](./receivables-ledger.md) | 채권현황·거래처원장·은행거래 |
| [bad-debts.md](./bad-debts.md) | 악성채권 추심관리 |

### 세금·어음 (신규)

| 문서 | 설명 |
|------|------|
| [tax-invoices.md](./tax-invoices.md) | 세금계산서 (바로빌 발행 연동) |
| [bills.md](./bills.md) | 어음관리 |

### 경영진 대시보드 (신규)

| 문서 | 설명 |
|------|------|
| [ceo-dashboard.md](./ceo-dashboard.md) | CEO 대시보드·종합분석·부가세·접대비·복리후생비 |

## 아키텍처

```
┌─────────────────────────────────────────────────────────┐
│                    재무 대시보드                           │
│  (총 잔액, 예정 수입/지출, 최근 거래, 계좌별 잔액)         │
└──────────┬──────────────────┬──────────────────┬────────┘
           │                  │                  │
    ┌──────▼──────┐   ┌──────▼──────┐   ┌──────▼──────┐
    │ 보유계좌관리  │   │ 자금계획일정  │   │ 계좌입출금내역 │
    │ (계좌 CRUD)  │   │ (일정 CRUD)  │   │(바로빌 연동) │
    └──────┬──────┘   └──────┬──────┘   └──────┬──────┘
           │                  │                  │
    ┌──────▼──────────────────▼──────────────────▼──────┐
    │                   데이터베이스                       │
    │  bank_accounts, fund_schedules,                    │
    │  barobill_bank_transactions, journal_entries        │
    └──────────────────────────────────────────────────────┘
```

## 주요 기술 스택

| 기술 | 용도 |
|------|------|
| Laravel 11 (PHP 8.3) | 백엔드 프레임워크 |
| Blade + Tailwind CSS | 서버 렌더링 UI (대시보드, 계좌관리, 자금일정) |
| React 18 + Babel | 클라이언트 렌더링 UI (자금일보, 입출금내역) |
| HTMX | 부분 페이지 업데이트 (계좌 목록 등) |
| Barobill SOAP API | 은행 거래 실시간 연동 |
| MySQL 8.0 | 데이터 저장 |

## 데이터 흐름

```
바로빌 SOAP API ──→ barobill_bank_transactions ──→ 계좌입출금내역
                                                  ──→ 일일자금일보
                                                  ──→ 재무 대시보드

사용자 입력 ──→ bank_accounts ──→ 보유계좌관리
                              ──→ 재무 대시보드

사용자 입력 ──→ fund_schedules ──→ 자금계획일정
                               ──→ 재무 대시보드
```

## 공통 모델

| 모델 | 테이블 | 역할 |
|------|--------|------|
| `Finance\BankAccount` | `bank_accounts` | 보유 계좌 정보 |
| `Finance\FundSchedule` | `fund_schedules` | 자금 일정 |
| `Finance\DailyFundTransaction` | `daily_fund_transactions` | 일일자금 거래 |
| `Finance\DailyFundMemo` | `daily_fund_memos` | 일일자금 메모 |
| `Barobill\BankTransaction` | `barobill_bank_transactions` | 바로빌 거래내역 |
| `Barobill\BankTransactionOverride` | `barobill_bank_transaction_overrides` | 거래 수정 |
| `Barobill\BankTransactionSplit` | `barobill_bank_transaction_splits` | 거래 분개 |
| `Barobill\AccountCode` | `account_codes` | 계정과목 |

## 서비스 클래스

| 서비스 | 파일 | 주요 역할 |
|--------|------|----------|
| `BankAccountService` | `app/Services/BankAccountService.php` | 계좌 CRUD, 통계, 바로빌 연동 |
| `FundScheduleService` | `app/Services/FundScheduleService.php` | 일정 CRUD, 캘린더, 월별 요약 |
| `FcmApiService` | `app/Services/FcmApiService.php` | FCM 푸시 발송 (간접 관련) |
