academy.crowny.org — 학원 회계 모듈 (Crowny Quadbook 통합)
개요
academy.crowny.org (포트 9865)에 Phase 4 회계 모듈을 추가했다. 기존 시뮬레이터(경영개선 시나리오)와 별도로 실제 거래를 기록·집계·보고하는 실제 회계 시스템이다. Crowny Quadbook 4상균형 3진법 벡터 회계 프레임워크를 통합했다.
무엇을 했는지
파일 2개 생성
/Users/ef/crowny-academy/modules/accounting/routes.js— API 14개 구현/Users/ef/crowny-academy/한선씨/accounting.한선— 한선씨 동반 파일 (함수 6개)
API 14개 (/api/acct/*)
거래 (5개)
GET/POST /api/acct/transaction— 목록/등록 (기간/유형/계정 필터, limit/offset 페이지네이션)GET/PUT/DELETE /api/acct/transaction/:id— 단일 거래 조회/수정/삭제POST /api/acct/transaction/bulk— JSON 배열 일괄 등록POST /api/acct/transaction/categorize— 거래처+메모 키워드 기반 계정 자동 분류 (신뢰도 포함)GET/POST /api/acct/transaction/recurring— 반복 거래 (임차료/급여 등 12종 시드)
GET /api/acct/accounts— 계정 과목 트리 (5대 계정, flat=1 옵션)GET /api/acct/balance— 잔액 집계 (결제수단별: 계좌이체/현금/카드/비현금)GET /api/acct/ledger— 원장 (특정 계정의 누계잔액 포함 거래 이력)
GET /api/acct/report/income-statement— 손익계산서 (영업이익/세전이익/당기순이익, 이익률)GET /api/acct/report/balance-sheet— 재무상태표 (자산/부채/자본, 부채비율)GET /api/acct/report/cash-flow— 현금흐름표 (영업/투자/재무 활동 분리)GET /api/acct/report/quadbook— Quadbook 4상균형 보고서 (T/O/A/U 벡터 + 27큐브 좌표)
GET /api/acct/tax/vat— 부가가치세 신고 자료 (면세/일반 사업자 구분, 분기 기준)GET /api/acct/tax/income— 소득세 자료 (누진세율 자동 적용, 연간)
Quadbook 4상 정의
| 상 | 코드 | 대상 계정 |
|---|---|---|
| 기업 | T | 강좌수익, 교재판매, 강사인건비, 교재비 |
| 공통 | O | 광고비, 수도광열비, 통신비, 임차료, 감가상각비 |
| 정부 | A | 4대보험, 미지급세금 |
| 구분자 | U | 이자비용/수익, 장기차입금, 시설장비, 보증금 |
더이룸학원 시드 데이터
사업계획서 수치 그대로 12개월 반복 거래:
- 수강료 수입: 8,000,000/월 (기본 5,600,000 + 프리미엄 1,800,000 + 교재 600,000)
- 인건비: 7,000,000/월 (강사 5,500,000 + 4대보험 1,000,000 + 보조 500,000)
- 임차료: 1,500,000/월
- 금융: 1,200,000/월 (이자 800,000 + 원금상환 400,000)
- 기타 운영: ~2,000,000/월 (전기/통신/교재비/광고/감가상각)
한선씨 동반 함수 6개
거래등록(일자, 유형, 계정, 금액, 메모)— 거래 레코드 생성 + 4상 분류자동분류(거래처, 메모, 금액)— 키워드 매칭 → 계정:신뢰도손익계산(시작일, 종료일)— 기간별 손익 집계 (더이룸 기준값 활용)Quadbook4상분해(거래배열)— T/O/A/U 벡터 분해부가세계산(분기, 거래배열)— 매출세/매입세/납부세액잔액조회(계정)— 계정별 잔액 반환 (더이룸 기준값)
관련 파일 경로
modules/accounting/routes.js— API 구현 (512줄)한선씨/accounting.한선— 한선씨 동반 (함수 6개)CLAUDE.md— Phase 4 accounting 섹션 추가, 모듈 수 11→12
server.js 연동 방법
server.js는 건드리지 않았다. 다음 세션에서 MODULE_ROUTES에 추가:
js{ prefix: '/api/acct', router: _loadModule('accounting') },
잔여 이슈
- server.js MODULE_ROUTES에 accounting 추가 필요 (의도적으로 미작업 — 요청 범위 밖)
- 부가세 면세 학원의 경우 매입세액 공제 불가 로직 추가 가능
- 월별 손익 추세 차트용 API (
/api/acct/report/monthly-trend) 추가 고려