본문으로 건너뛰기

소기업 재무 디톡스 — Beancount 방식

· 약 8분
Mike Thrift
Mike Thrift
Marketing Manager

30일 안에 지저분한 원장을 차분하고 현금에 자신감 있는 비즈니스로 바꾸세요 — 플레인텍스트 회계를 사용합니다.


2025-09-04-detox-your-small-business-finances

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에 “이 날짜에 이 계정에 정확히 이 금액이 있다”고 알려줍니다. 일치하지 않으면 오류를 발생시킵니다. 이것이 주요 안전망입니다.

시작할 때는 padbalance 를 함께 사용해 은행 명세서에서 계정을 초기화합니다. 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는 원장 항목에 소스 문서를 연결하는 일을 매우 쉽게 만들어 줍니다.

두 가지 좋은 방법이 있습니다:

  1. Documents 폴더 + 지시문: 모든 영수증과 명세서를 전용 폴더에 보관하고, document 지시문으로 거래에 파일을 연결합니다.
  2. 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

핵심 운영 비용과 관리 부담을 구분해 수익성에 대한 중요한 인사이트를 얻을 수 있습니다.

3) “좀비” 구독은?

작지만 자주 발생하는 비용을 찾아냅니다. 이런 “좀비” 구독은 현금 흐름을 서서히 잠식합니다.

SELECT
payee,
COUNT(*) AS num_transactions,
SUM(number) AS total_spent
WHERE
account "^Expenses:SaaS" AND date >= '2025-01-01'
GROUP BY
payee
ORDER BY
num_transactions DESC,
total_spent DESC

자주 결제하는 공급업체를 즉시 확인하고, 인식하지 못한 혹은 더 이상 필요 없는 서비스를 취소하세요.


Week 4 — 시스템 정리 및 잠금

마지막 주는 재무를 오래도록 깨끗하게 유지할 습관과 방어선을 구축하는 시간입니다.

간단한 예산 설정

Fava는 원장에 budget 지시문을 읽어 보고서에 진행률 바를 표시합니다. 이를 통해 지출 목표를 지속적으로 확인할 수 있습니다.

; Cap SaaS spending at $100 per month
2025-01-01 custom "budget" Expenses:SaaS "monthly" 100.00 USD

소프트웨어, 광고, 계약자 등 주요 변동 비용 카테고리에 설정해 흐름이 크게 벗어나기 전에 감지하세요.

매월 마감, 반드시 실행

간단하고 절대 타협하지 않을 월 마감 프로세스를 정립합니다:

  1. 조정: 모든 은행·신용카드 계정에 월말 명세서와 일치하는 balance 선언을 추가합니다.
  2. 첨부: balance 항목에 PDF 명세서를 document 지시문으로 연결합니다.
  3. 보고: 앞서 만든 세 가지 쿼리(현금, 고정비/COGS, 구독) 를 실행하고 결과를 짧은 월간 리뷰 노트에 붙여넣습니다.

잔액 선언 은 자동 트리거입니다. 원장이 은행 명세서와 일치하지 않으면 Beancount가 오류를 발생시켜 정확히 어디를 확인해야 하는지 알려줍니다.


세무 시즌을 지루하게 만들기 (좋은 의미)

이 시스템을 따르면 세무 준비가 위기 상황이 아니라 단순 보고 작업이 됩니다.

  • 거래에 영수증이 첨부돼 있어 급히 찾을 필요가 없습니다. Fava에서는 클릭 한 번으로 해당 문서를 확인할 수 있습니다.
  • 세무 관련 항목에 태그(#tax-deductible 등)를 달아두면 bean-query 로 회계사에게 전달할 깨끗한 보고서를 바로 추출할 수 있습니다.
  • 연말 잔액은 balance 선언으로 잠금·검증돼 있어 숫자에 대한 신뢰도가 높습니다.

30일 체크리스트 (인쇄용)

  • 1‑3일
    • 최소 계정표 만들기
    • 최신 명세서를 사용해 각 은행·카드에 pad + balance 추가
  • 4‑10일
    • 하나의 가져오기 파이프라인 구축하고 규칙을 버전 관리에 커밋
    • 최근 90일 거래를 역입력하고 첫 BALANCES 스냅샷 실행
  • 11‑15일
    • 공급업체를 해당 계정( SaaS, Cloud, Shipping 등) 으로 표준화
    • 조정된 기간의 명세서 PDF 첨부하고 Fava에 표시되는지 확인
  • 16‑20일
    • 고정비 vs. COGS 쿼리 실행 후 잘못 분류된 항목 수정
    • 구독 빈도 쿼리 실행 후 사용하지 않는 서비스 취소 또는 통합
  • 21‑25일
    • 주요 변동 비용에 custom "budget" 로 예산 상한선 1‑2개 추가
    • 가장 중요한 bean-query 3개를 스크립트에 저장해 재사용 용이하게
  • 26‑30일
    • 월말 balance 선언으로 모든 계정 조정
    • 핵심 수치 요약과 문서 링크를 포함한 짧은 “월간 마감” 노트 작성

자주 재사용하는 스니펫

깨끗한 비용 포스팅

2025-08-05 * "Figma" "Pro plan"
Expenses:SaaS 12.00 USD
Assets:Bank:Checking -12.00 USD

명세서에서 온 잔액 선언

2025-09-01 balance Assets:Bank:Checking  8423.17 USD

임대료 예산 방어선

2025-01-01 custom "budget" Expenses:Overhead:Rent "monthly" 2500.00 USD

간단하게, 스크립트화해서 유지하기

Beancount 기반 재무 디톡스의 철학은 간단합니다:

  • 반복 작업은 스크립트화: 가져오기와 보고서를 자동화합니다.
  • 실패는 크게 알리기: 선언이 실패하면 즉시 알려주는 것이 불편이 아니라 안전장치입니다.
  • 세분화된 계정보다 적고 명확한 계정을 선호합니다.

이 습관을 들이면 비즈니스는 매일 현금 가시성을, 매주 지출 변동을, 연말은 정말 지루하게(즉, 스트레스 없이) 마감할 수 있습니다. 이것이 바로 이 디톡스가 제공하는 명확함과 통제력입니다.


참고 자료 및 추가 읽을거리

본 게시물은 교육 목적이며 세무·법률 자문이 아닙니다.