소기업 재무 디톡스 — Beancount 방식
30일 안에 지저분한 원장을 차분하고 현금에 자신감 있는 비즈니스로 바꾸세요 — 플레인텍스트 회계를 사용합니다.
TL;DR
- 분리, 간소화, 잠금: 간결한 계정표, 일관된 가져오기, 자동 잔액 검증으로 장부를 관리합니다.
- 핵심을 드러내기 — COGS, 고정비, 현금 여유 기간 등을
bean-query
로 빠르게 확인합니다. - 소음 제거 (사용하지 않는 구독, 중복 도구)와 좋은 습관 코딩 (주간 조정, 월간 마감, 영수증 첨부)를 실천합니다.
- 세무 시즌을 지루하게 만들기 위해 진술서, 영수증, 잔액을 한 곳에 검증 가능하게 보관합니다.
왜 “디톡스”가 필요할까요?
소기업의 재무 혼란은 단순히 지저분한 것이 아니라 비용이 듭니다. 낭비 지출을 숨기고 실제 수익성을 가려버리며, 세무 시즌을 급박한 사냥으로 만들죠. 재무 디톡스는 30일 동안 집중적으로 리셋하는 과정입니다: 돈이 흐르고 새는 지점을 파악하고, 복잡성을 제거한 뒤, 간단하고 반복 가능한 루틴을 제도화해 깨끗하게 유지합니다.
Beancount는 투명하고, 스크립트화 가능하며, 검증 가능하기 때문에 이 작업에 최적입니다. 블랙박스 소프트웨어와 달리 플레인텍스트 원장은 모든 숫자를 설명 가능하게 합니다. 모든 체크와 밸런스는 지시문과 쿼리로 자동화할 수 있어, 스스로 감사를 수행하는 시스템을 만들 수 있습니다. 이 가이드는 4주 계획을 통해 이를 실현하는 방법을 안내합니다.
Week 0 — 기준선 설정
정리를 시작하려면 탄탄한 기반이 필요합니다. 이번 주는 재무 세계의 구조를 정의하는 시간입니다.
간결한 계정표 만들기
계정표는 재무 시스템의 골격입니다. 목표는 최소주의입니다. 가능한 모든 비용에 대해 계정을 만들지 마세요. 오늘 사용하는 필수 항목만 시작하고, 필요하면 나중에 추가하면 됩니다. 복잡한 계정표는 잘못 분류를 유도하고 고수준 분석을 어렵게 합니다.
간단하고 효과적인 시작 예시:
; Core entities
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Assets:Bank:Savings USD
2025-01-01 open Liabilities:CreditCard:Business USD
2025-01-01 open Income:Sales
2025-01-01 open Expenses:COGS
2025-01-01 open Expenses:Overhead:Rent
2025-01-01 open Expenses:Overhead:Utilities
2025-01-01 open Expenses:SaaS
2025-01-01 open Equity:Opening-Balances
검증 가능한 잔액 잠그기
플레인텍스트 회계의 가장 강력한 기능은 현실을 선언할 수 있다는 점입니다. balance
지시문은 Beancount에 “이 날짜에 이 계정에 정확히 이 금액이 있다”고 알려줍니다. 일치하지 않으면 오류를 발생시킵니다. 이것이 주요 안전망입니다.
시작할 때는 pad
와 balance
를 함께 사용해 은행 명세서에서 계정을 초기화합니다. pad
지시문은 차액을 자본 계정에 기록하면서 올바른 시작 잔액을 강제하는 거래를 생성합니다.
; Initialize from statements
2025-01-01 pad Assets:Bank:Checking Equity:Opening-Balances
2025-01-01 balance Assets:Bank:Checking 12345.67 USD
주의 사항: pad
는 최소한으로 사용하세요. 처음부터 깔끔하게 시작하기 위한 것이지, 반복적인 조정 실수를 가리기 위한 것이 아닙니다.
Week 1 — 흐름 분리 및 간소화
구조가 잡혔으니 이제 돈이 비즈니스를 통해 어떻게 흐르는지 명확히 할 차례입니다.
비즈니스 ≠ 개인
소기업 재무의 황금 규칙입니다. 자금을 섞으면 혼란과 세무 시 스트레스가 발생합니다.
- 전용 비즈니스 은행 계좌와 비즈니스 신용카드를 하나씩 유지합니다.
- 원장에서도
Assets:Bank:Business:Checking
,Liabilities:CreditCard:Business
로 구분합니다. - 본인에게 급여를 지급할 경우
Equity:Owner-Draws
로 배분 처리하고, 개인 비용을 비즈니스 계정에서 직접 분류하지 마세요.
공급업체 카테고리 표준화
AWS, Google Cloud, Vercel을 각각 다른 계정에 기록하시나요? 하나의 논리적 카테고리 Expenses:Cloud
로 모두 매핑하세요. 실제로 분석하지 않을 마이크로 계정을 만들지 마세요. 목표는 패턴을 보는 것이지, 모든 공급업체를 개별 계정으로 추적하는 것이 아닙니다.
Week 2 — 입력 및 영수증 자동화
수동 데이터 입력은 느리고 오류가 많으며 지속 가능하지 않습니다. 이번 주는 원장을 신뢰성 있게 공급하는 머신을 구축하는 시간입니다.
무리 없는 가져오기 경로 구축
Beancount의 가져오기 프레임워크를 사용하면 은행의 CSV 또는 OFX 파일을 읽어 자동으로 거래를 생성하도록 가르칠 수 있습니다. 한 번 설정해 두면 수백 시간을 절약할 수 있습니다. 가져오기 규칙은 Git 같은 버전 관리에 보관해 시스템을 재현 가능하고 백업되게 유지하세요.
- Beancount 공식 Importing External Data 가이드를 시작점으로 삼으세요.
- 보다 인터랙티브한 워크플로우를 원한다면 beancount-import 와 같은 웹 UI 도구를 고려하세요.
- 많은 사용자가 내장
ingest
혹은 최신beangulp
프레임워크를 이용해 맞춤형 가져오기를 구축합니다. 일관성을 위해 하나를 선택하고 꾸준히 사용하세요.
문서를 제자리에 첨부하기
영수증이 없는 거래는 근거 없는 주장입니다. Beancount와 웹 인터페이스인 Fava는 원장 항목에 소스 문서를 연결하는 일을 매우 쉽게 만들어 줍니다.
두 가지 좋은 방법이 있습니다:
- Documents 폴더 + 지시문: 모든 영수증과 명세서를 전용 폴더에 보관하고,
document
지시문으로 거래에 파일을 연결합니다. - Fava 드래그‑앤‑드롭: PDF 혹은 이미지 파일을 Fava UI의 거래에 끌어다 놓 기만 하면 됩니다. Fava가 파일을 저장하고 원장에 올바른
document
지시문을 자동 삽입합니다.
; In your main ledger file, tell Fava where your documents live
option "documents" "/home/acme/docs"
; Link a receipt to a specific transaction posting
2025-08-07 * "Figma" "Monthly Subscription"
Assets:CreditCard:Business -12.00 USD
Expenses:SaaS 12.00 USD
document: "receipts/figma-2025-08-07.pdf"
Week 3 — 진실 보기 (재사용할 빠른 쿼리)
원장이 깨끗해지고 데이터가 공급되었으니 이제 중요한 질문을 던질 차례입니다. bean-query
명령줄 도구를 실행해 즉시 답을 얻으세요.
1) 내 현금은 어디에?
유동 자산을 한눈에 파악합니다.
bean-query business.beancount 'BALANCES FROM year = 2025 AND (account "Assets:Bank" OR account "Liabilities:CreditCard")'
여러 은행 포털에 로그인하지 않아도 실시간 현금 포지션을 확인할 수 있습니다.
2) 고정비와 COGS는 어떻게 쓰이고 있나요?
돈이 실제로 어디로 가는지 이해합니다. 비핵심 고정비가 제품 원가보다 많이 들어가고 있지는 않은지 확인하세요.
SELECT
account,
units(sum(position))
WHERE
account "^Expenses:(Overhead|COGS)" AND year = 2025
GROUP BY
account
ORDER BY
account