Phase 4 · 인공지능 활용 심화

수만 건의 개별 분개, 거대한 결산 장부로 뭉치다

28단계까지 우리는 '개별 거래'를 미시적으로 처리하는 데 집중했습니다.
이제 시야를 거시적으로 넓힐 때입니다. 수천, 수만 건의 승인된 분개 데이터를 Pandas로 집계하여 총계정원장 ➡️ 시산표 ➡️ 손익계산서 ➡️ 재무상태표를 관통하는 월말 결산(Closing) 파이프라인을 완성합니다.

예상 학습 시간 : 180분
난이도 : ★★★★☆
사전 단계 : AI 계정과목 및 분개 추천 (Step 28)
다음 단계 : 경영 분석 대시보드 (예정)
01

거시적 회계: 결산(Closing)의 흐름

결산은 흩어져 있는 개별 거래 내역들을 한 달 치, 일 년 치 단위로 묶어 '기업의 성적표'를 발급하는 과정입니다. 시스템적으로는 완벽히 정해진 파이프라인을 탑니다.

승인된 분개 데이터 (Journal Entries) │ ▼ 계정별 집계 (총계정원장 생성) │ ▼ 계정별 잔액 계산 (합계잔액시산표) │ ├─────────────────────────────────┐ ▼ ▼ 손익 계정 분리 자산/부채 분리 (수익 - 비용 = 당기순이익) (자산 = 부채 + 자본) │ │ ▼ ▼ 손익계산서(IS) 재무상태표(BS) │ │ └────────────────┬────────────────┘ ▼ 결산조정 및 검증 │ ▼ 결산보고서 자동 생성 (Excel/PDF)
02

Pandas 분개 집계와 총계정원장 생성

28단계에서 회계사가 승인한 journal_lines 테이블의 데이터가 다음과 같이 리스트업 되었다고 가정해 봅시다.

dateaccountdebitcredit
2026-08-01보통예금10000000
2026-08-05임차료3000000
2026-08-06소모품비1000000
2026-08-10매출0500000

가장 중요한 Pandas 기술은 groupbycumsum(누적합) 입니다. 총계정원장(특정 계정의 내역만 추려낸 장부)을 만들어 봅니다.

🐍 python
import pandas as pd

# '보통예금' 원장만 필터링 후 날짜순 정렬
ledger = df[df["account"] == "보통예금"].copy()
ledger = ledger.sort_values("date")

# 누적 잔액(balance) 계산
ledger["balance"] = (ledger["debit"] - ledger["credit"]).cumsum()

이렇게 하면 건별 거래가 발생할 때마다 1,000,000 ➡️ 700,000 ➡️ 590,000 처럼 깎여나가는 잔액을 확인할 수 있습니다.

03

합계잔액시산표(Trial Balance)와 절대 검증

결산의 꽃이자 검문소인 시산표를 만듭니다. 모든 계정의 차/대변 합계를 싹 다 모아놓은 표입니다.

# 1. 모든 계정별 차변/대변 합산
trial = df.groupby("account")[["debit", "credit"]].sum().reset_index()

# 2. 각 계정별로 순잔액(balance)을 차변/대변 위치에 맞춰 생성 (음수는 0처리)
trial["debit_balance"] = (trial["debit"] - trial["credit"]).clip(lower=0)
trial["credit_balance"] = (trial["credit"] - trial["debit"]).clip(lower=0)

# 3. 절대 검증: 시산표의 차변합계와 대변합계는 무조건 일치해야 함
if trial["debit"].sum() == trial["credit"].sum():
    print("✓ 시산표 정상: 결산 확정 프로세스로 진입")
else:
    print("❌ 차대변 불일치: 결산 중단")

시스템은 이 차대변 일치 검증을 통과하지 못하면 "결산 확정 불가" 상태로 락(Lock)을 걸어버려야 합니다.

04

손익계산서와 재무상태표 분리 추출

시산표가 완성되면 28단계에서 만든 account_master 정보(계정 타입이 자산/부채/자본/수익/비용인지)와 Merge(병합) 합니다.

======================== 손익계산서 (IS) ======================== 매출 500,000 비용 임차료 300,000 소모품비 100,000 급여 200,000 ------------------------ 비용합계 600,000 당기순손익 -100,000 (적자) ========================

그리고 자산, 부채, 자본 계정만 빼내어 재무상태표(BS)를 만듭니다.
재무상태표 역시 자산 = 부채 + 자본 이라는 회계 항등식을 코드로 assert assets == liabilities + equity 하여 무조건 검증해야 합니다.

05

결산조정: 감가상각 룰 엔진과 조정분개

수동 분개만으로는 결산이 끝나지 않습니다. 시스템이 스스로 계산해서 떨궈야 하는 결산조정(Closing Adjustments) 로직을 구현합니다.
예를 들어 12,000,000원짜리 장비를 정액법 5년(60개월)으로 감가상각한다면 파이썬이 매달 자동으로 분개를 생성해냅니다.

🐍 python
def closing_adjustments(data):
    adjustments = []
    
    # 매월 감가상각 계산 (12,000,000 / 60개월)
    monthly_depreciation = 12000000 / 60  # 200,000
    
    # 결산 조정 분개 후보 생성
    adjustments.append({
        "debit": [{"account": "감가상각비", "amount": monthly_depreciation}],
        "credit": [{"account": "감가상각누계액", "amount": monthly_depreciation}]
    })
    
    # (미수수익, 미지급비용, 선급비용, 재고자산 조정 로직 추가)
    return adjustments
06

전월 비교 증감률과 AI 결산 대시보드

숫자만 덜렁 나오면 안 됩니다. 파이썬으로 전월 데이터를 가져와 증감률(change / previous * 100)을 계산합니다. 만약 "비용이 50% 이상 급증"했거나 "미수금이 비정상적으로 늘었다면" AI에게 그 원인을 파악하라고 지시합니다.

┌─────────────────────────────────────────┐ │ 2026년 8월 결산 │ ├─────────────────────────────────────────┤ │ 매출 125,000,000 │ │ 비용 98,000,000 │ │ 영업성과 27,000,000 │ ├─────────────────────────────────────────┤ │ 결산 진행률 92% │ │ │ │ ✓ 은행 대사 │ │ ✓ 매출/매입 대사 │ │ ⚠ 미수금 확인 필요 (채권 급증 45%) │ │ ⚠ 감가상각 검토 대기 │ ├─────────────────────────────────────────┤ │ 💡 AI 결산 분석: │ │ "외상매출금 증가폭이 매출 증가폭보다 │ │ 가파릅니다. 채권 회수 지연 여부를 │ │ 확인하시기 바랍니다." │ └─────────────────────────────────────────┘
07

결산보고서 자동 출력 (Excel & PDF)

모든 데이터가 준비되면, pd.ExcelWriter()를 이용해 시트별로 쪼개진 아름다운 엑셀 보고서를 1초 만에 생성해냅니다.

with pd.ExcelWriter("closing_report_202608.xlsx") as writer:
    trial.to_excel(writer, sheet_name="시산표", index=False)
    comparison.to_excel(writer, sheet_name="전월비교", index=False)
    balance_sheet.to_excel(writer, sheet_name="재무상태표", index=False)
    income_stmt.to_excel(writer, sheet_name="손익계산서", index=False)

향후엔 ReportLab 라이브러리를 추가하여, 고객사(경영진)에게 바로 보낼 수 있는 디자인된 PDF 결산 브리핑 리포트까지 자동 생성하게 됩니다.

08

30단계 예고: 단순 장부를 넘어선 'CFO 재무분석'

이제 우리는 완벽한 장부와 결산 데이터를 확보했습니다.

다음 30단계에서는 여기서 멈추지 않고, 만들어진 재무제표를 바탕으로 매출성장률, 영업이익률, 유동비율, 부채비율, 회전율 등 핵심 KPI를 도출하고 AI가 경영진단 브리핑을 해주는 "경영분석 시스템"을 완성해 보겠습니다.

Step 28 : 분개 자동 추천 Phase 4 후반부 공사중