Expand README from project report

This commit is contained in:
seo
2026-06-07 01:19:16 +09:00
parent 760a517e79
commit c5edb46ec7
+49 -13
View File
@@ -2,35 +2,64 @@
계좌, 거래, 카테고리, 할부, 대출, 반복거래, 가맹점 자동분류 규칙을 관리하는 PHP 기반 개인 금융 관리 서비스입니다. 계좌, 거래, 카테고리, 할부, 대출, 반복거래, 가맹점 자동분류 규칙을 관리하는 PHP 기반 개인 금융 관리 서비스입니다.
## 프로젝트 성격
Financial은 개인 금융 데이터를 서버 렌더링 PHP 화면에서 관리하는 내부 서비스입니다. 계좌와 거래를 중심으로 카테고리, 할부, 대출, 반복거래, 가맹점 규칙을 연결해 실제 지출/상환 흐름을 기록합니다.
공통 인증 bootstrap이 세션, remember token, CSRF, private no-store header를 담당합니다.
## 주요 기능 ## 주요 기능
- 서버 렌더링 PHP 화면으로 개인 금융 데이터를 조회하고 저장합니다. - 계좌 생성/수정/목록
- 계좌, 거래, 할부, 대출, 반복거래, 가맹점 규칙을 관리합니다. - 거래 생성/수정/삭제/조회
- 로그인 세션, remember token, CSRF 검증을 사용합니다. - 카테고리 관리
- 가맹점 규칙과 confidence 기반 카테고리 추천 API를 제공합니다. - 할부 등록, 청구 처리, 선납 처리
- 할부 청구/선납, 대출 상환/선납, 반복거래 생성 등 실제 입력 흐름을 분리해 처리합니다. - 대출 등록, 상환 등록, 선납 처리
- PWA assets와 offline 화면을 포함합니다. - 반복거래 관리
- 가맹점 자동분류 규칙 관리
- 카테고리 추천 API
- PWA assets와 offline 화면 제공
## 주요 API ## 주요 API/흐름
- `public/api/category_suggest.php` - `public/api/category_suggest.php`: merchant rule 기반 카테고리 추천
- 인증된 일반 form POST 저장 흐름 - 일반 form POST 저장: 각 화면의 검증 후 서비스 함수로 저장
- 저장 후 redirect/flash 메시지로 사용자 피드백 제공
## 구성 ## 구성
- `app/config/database.php`: DB 설정 bridge - `app/config/database.php`: DB 설정 bridge
- `app/lib/auth.php`: 인증, remember token, CSRF, no-store header - `app/lib/auth.php`: 인증, remember token, CSRF, no-store header
- `app/lib/*_service.php`: 계좌/거래/할부/대출/반복거래 서비스 로직 - `app/lib/db.php`: PDO 연결
- `app/lib/account_service.php`: 계좌 서비스
- `app/lib/transaction_service.php`: 거래 저장과 조회
- `app/lib/installment_service.php`: 할부 청구와 선납 처리
- `app/lib/loan_service.php`: 대출과 상환 처리
- `app/lib/recurring_service.php`: 반복거래 처리
- `app/lib/merchant_pattern_service.php`: 가맹점 규칙과 추천
- `public/*.php`: 사용자 화면과 form 처리 - `public/*.php`: 사용자 화면과 form 처리
- `public/assets/app.css`: 화면 스타일
- `public/assets/pwa.js`, `public/sw.js`: PWA 동작
## 데이터/저장소 ## 데이터/저장소
- 계좌, 거래, 카테고리, 할부, 대출, 반복거래, 가맹점 규칙 관련 DB 테이블 - financial DB tables: 계좌, 거래, 카테고리, 할부, 대출, 반복거래, 가맹점 규칙
- `/home/seo/secret/financial.php`: DB 접속 secret - `/home/seo/secret/financial.php`: DB 접속 secret
## Secret ## 처리 흐름
DB 접속 정보는 `/home/seo/secret/financial.php`에서 로드합니다. 이 파일은 저장소에 포함하지 않습니다. 1. 사용자가 화면을 열면 인증과 권한을 확인합니다.
2. POST 요청은 CSRF token을 검증합니다.
3. 입력값 검증 후 도메인별 service 함수에서 저장합니다.
4. 저장 후 redirect와 flash 메시지로 응답합니다.
5. 카테고리 추천 API는 merchant rule 우선순위와 confidence를 반환합니다.
## 주요 함수/모듈
- `auth.php`: 로그인, 세션, CSRF
- `transaction_service.php`: 거래 저장과 조회
- `installment_*`: 할부 청구와 선납 처리
- `merchant_rules.php`: 가맹점 자동분류 규칙 관리
## 보안 ## 보안
@@ -38,3 +67,10 @@ DB 접속 정보는 `/home/seo/secret/financial.php`에서 로드합니다. 이
- POST form은 CSRF token을 검증합니다. - POST form은 CSRF token을 검증합니다.
- 개인 금융 데이터 응답은 private/no-store 상태를 유지해야 합니다. - 개인 금융 데이터 응답은 private/no-store 상태를 유지해야 합니다.
- 레포에는 DB 비밀번호를 포함하지 않고, 배포 환경의 secret 파일에서만 로드합니다. - 레포에는 DB 비밀번호를 포함하지 않고, 배포 환경의 secret 파일에서만 로드합니다.
## 운영 체크포인트
- 삭제된 미사용 테이블이 다시 참조되지 않는지 확인합니다.
- 가맹점 추천 규칙의 우선순위 충돌을 주기적으로 점검합니다.
- DB 백업과 secret 파일 권한을 관리합니다.