본문으로 건너뛰기

"beancount" 태그로 연결된 82개 게시물개의 게시물이 있습니다.

모든 태그 보기

소기업 재무 디톡스 — 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 기반 재무 디톡스의 철학은 간단합니다:

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

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


참고 자료 및 추가 읽을거리

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

Beancount에서 분개 이해하기

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

분개는 복식 회계의 핵심이며, Beancount에서는 작성하는 모든 * 거래가 바로 분개입니다. 이 가이드는 차변과 대변, 조정 분개, 역분개의 핵심 개념을 설명하고, 이를 Beancount의 평문 구문에 어떻게 깔끔하게 매핑하는지 보여줍니다. 최소한의 절차로 정확한 장부를 유지하는 방법을 배울 수 있습니다.


2025-09-02-journal-entries-in-beancount

빠른 복습: 분개란 무엇인가?

분개는 재무 거래를 날짜와 함께 공식적으로 기록한 것입니다. 차변대변으로 표현되며, 기본 회계 방정식을 균형 있게 유지합니다:

Assets=Liabilities+EquityAssets = Liabilities + Equity

복식 시스템에서는 모든 거래가 최소 두 개의 계정에 영향을 미치며, 차변 총액은 대변 총액과 반드시 일치해야 합니다. 이 간단한 규칙 덕분에 손익계산서와 대차대조표 같은 하위 재무 보고서가 신뢰할 수 있고 정확합니다.


1분 안에 이해하는 차변과 대변

차변과 대변 개념은 처음에 혼란스러울 수 있지만, 몇 가지 간단한 규칙으로 정리됩니다. “가치는 어디서 왔는가?” (대변)와 “가치는 어디로 갔는가?” (차변)라고 생각하면 됩니다.

다음은 다섯 가지 핵심 계정 유형을 어떻게 증가시키는지 보여주는 요약표입니다:

계정 유형증가 방식
자산차변
비용차변
부채대변
자본대변
수익대변

Beancount에서 분개는 어떻게 보이는가

Beancount는 간단하고 사람이 읽기 쉬운 텍스트 지시문으로 거래를 기록합니다. 각 거래는 모든 통화(예: USD, EUR, AAPL 주식)마다 합계가 0이 되어야 합니다. 균형이 맞지 않으면 Beancount가 오류를 발생시킵니다.

다음은 커피를 구매하는 기본 거래 예시입니다:

2025-09-10 * "Coffee Bar" "팀 커피"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

두 개의 포스팅(계정이 적힌 줄)이 합쳐서 0이 되는 것을 확인하세요: $18.00 + (-$18.00) = 0.

태그(예: #clientX)와 링크(예: ^INV-2025-001)를 사용해 내러티브에 직접 컨텍스트를 추가하고, 보고서에서 쉽게 필터링하거나 관련 항목을 연결할 수 있습니다.

예를 들어, 청구서와 결제를 연결하는 방법은 다음과 같습니다:

; 먼저, 고객에게 보낸 청구서를 기록합니다
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; 나중에, 결제를 기록하고 원래 청구서와 연결합니다
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

#clientX 태그를 사용하면 해당 고객의 모든 거래를 쉽게 필터링할 수 있고, ^INV-2025-001 링크는 두 항목 사이에 연결 고리를 만들어 보고서에서 추적할 수 있습니다.


바로 사용할 수 있는 일반적인 분개 예시

다음은 Beancount 형식으로 정리한 여러 일반 비즈니스 거래 예시입니다.

소유주 현금 투자

소유주가 개인 자금을 사업에 투입합니다.

2025-01-01 * "Owner" "초기 자본 투자"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

현금 판매와 부가세

고객이 현금으로 제품을 구매하고, 8% 부가세를 포함합니다. 부가세는 나중에 정부에 납부해야 합니다.

2025-01-05 * "Walk-in Customer" "현금 판매 (8% 세금 포함)"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

외상 매출(청구서) 및 회수

서비스를 제공하고 청구서를 발행한 뒤, 나중에 결제를 받습니다.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD

2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD

신용카드 사용 비용

회사 신용카드로 사무용품을 구매합니다.

2025-01-12 * "OfficeMax" "신용카드 사용 사무용품"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

급여 (단순 모델)

급여를 지급하면서 총 급여 비용, 직원 세금 원천징수, 은행에서의 순지급액을 기록합니다.

2025-01-31 * "Payroll" "1월 급여 및 원천징수"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

월별 감가상각

노트북 같은 자산에 대한 월별 감가상각 비용을 기록합니다.

2025-01-31 * "Depreciation" "노트북, 직선법"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

선불 비용 및 월별 상각

연간 보험료를 한 번에 선불로 지불하고, 매월 비용을 인식합니다.

; 1. 연간 보험료 선불 결제
2025-01-01 * "InsureCo" "연간 보험료"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. 1월 말에 한 달분 비용 인식
2025-01-31 * "InsureCo" "보험료 1/12 상각"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

이연 수익 및 월별 인식

고객이 3개월 구독 서비스를 선불로 결제합니다. 현금을 기록한 뒤, 매월 수익을 인식합니다.

; 1. 서비스 선불 결제
2025-02-01 * "Subscriber" "3개월 구독 선불"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. 1개월분 수익 인식
2025-02-28 * "Recognition" "1개월 구독 수익 인식"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

대손충당금 설정 및 차감

채권 회수 가능성이 낮은 청구서에 대한 충당금을 설정하고, 실제로 회수 불가능한 청구서를 차감합니다.

; 1. 매출채권의 2%에 해당하는 충당금 설정
2025-03-31 * "Provision" "매출채권 2% 충당금"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. 회수 불가능한 청구서 차감
2025-04-15 * "Write-off" "고객 XYZ 청구서 차감"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

주기적 재고 및 매출원가 조정

기간 말에 재고조사를 통해 매출원가(COGS)를 조정합니다.

2025-03-31 * "COGS adjustment" "주기적 재고 방법"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

조정 분개 vs. 역분개

조정 분개는 회계 기간(월말·분기말 등) 말에 매출·비용을 실제 발생 시점에 맞추기 위해 기록합니다. 여기에는 발생액, 이연액, 감가상각 등 추정치가 포함됩니다.

역분개는 선택 사항으로, 다음 기간 첫 날에 이전 기간의 특정 조정 분개를 정확히 반대로 기록합니다. 이렇게 하면 이후 현금 거래를 표준 방식으로 기록할 때 별도의 부채 계정을 생각할 필요가 없어 장부 관리가 간편해집니다.

예시: 공과금 발생액과 역분개

1월에 공과금 비용을 발생시키지만 청구서는 2월에 도착한다고 가정합니다.

; 1. 1월 말에 추정 비용 발생액 기록
2025-01-31 * "Accrual" "1월 공과금 추정 비용"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (선택) 다음 기간 첫 날에 역분개
2025-02-01 * "Reversal" "1월 공과금 역분개"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. 실제 청구서가 2월에 도착했을 때 결제 기록
; 실제 청구액은 $520입니다. 역분개 덕분에 전체 금액을 비용 계정에 바로 기록할 수 있습니다.
; 2월 순 비용은 $520 - $500 = $20이 됩니다.
2025-02-10 * "City Utilities" "1월 청구서 결제"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD

Note: 위 예시는 최종 결제 시 금액을 나누어 기록하는 방법을 보여줍니다. 역분개 방식은 결제 기록을 단순화하는 대안입니다.


Beancount 분개 체크리스트

다음 절차를 따라 입력이 깔끔하고 정확한지 확인하세요:

  1. 날짜(YYYY-MM-DD)와 거래 플래그(*)를 입력합니다.
  2. 거래 상대와 설명을 적습니다. 검색을 위해 #tags^links를 활용합니다.
  3. 각 통화마다 두 개 이상의 포스팅 라인을 넣어 합계가 0이 되도록 합니다.
  4. Assets, Liabilities, Equity, Income, Expenses 다섯 가지 유형에 맞는 계정명을 사용합니다.
  5. 필요에 따라 document: "invoices/INV-2025-001.pdf"와 같은 메타데이터를 추가해 추적성을 높입니다.

흔히 저지르는 실수 (Beancount가 도와주는 부분)

  • 불균형 포스팅: 차변·대변 합계가 0이 아니면 Beancount가 입력을 거부합니다. 이는 오류를 사전에 방지하는 핵심 기능입니다. 금액을 비워두면 Beancount가 자동으로 계산해 줍니다.
  • 계정 부호 오류: Income, Equity, Liabilities는 대변(보통 음수)으로 증가한다는 점을 놓치기 쉽습니다. 잘못 입력하면 보고서가 이상하게 보이지만, 균형 규칙이 안전망 역할을 합니다.
  • 링크 누락: 청구서와 결제를 연결하지 않으면 미수금 파악이 어려워집니다. ^links를 일관되게 사용하면 감사 가능한 흐름을 만들 수 있습니다.

다음 단계

  • Beancount 언어 및 균형 규칙: 공식 문서를 깊이 있게 살펴보세요.
  • 구문 요약표: 모든 Beancount 지시문을 한눈에 볼 수 있는 참고 자료.
  • 차변·대변 입문: 회계 규칙이 처음이라면 좋은 시작점.
  • 조정·역분개: 회계 이론에 대한 자세한 기사.

부록: 회계 용어 → Beancount 매핑

이 간단한 변환표를 활용하면 회계 지시를 Beancount 구문으로 바로 옮길 수 있습니다.

회계 지시Beancount 동작
비용 차변Expenses: 계정에 양수 금액
부채 대변Liabilities: 계정에 음수 금액
매출 발생액Assets:AccountsReceivable +
Income:* -
매출 이연Assets:Bank:* +
Liabilities:Unearned:* -
이연 매출 인식Liabilities:Unearned:* +
Income:* -

이러한 패턴과 예시를 통해 거의 모든 비즈니스 이벤트를 Beancount에 깔끔하게 모델링할 수 있으며, 재무 보고서가 예상치 못한 오류 없이 정확히 맞춰집니다.

Beancount에서 빠르고 신뢰할 수 있는 월말 마감을 위한 10가지 실용 단계

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

원장이 플레인 텍스트로 저장된다면, 월말 마감은 빠르고 감사 가능하게 할 수 있습니다. 이 과정은 스프레드시트와 계산기에 대한 급박한 뒤죽박죽이 될 필요가 없습니다. 이 가이드는 잔액(assertion), 스마트 가져오기, 경량 검증을 중심으로 Beancount와 그 웹 인터페이스인 Fava에 맞춘 깔끔하고 반복 가능한 프로세스를 정리합니다.

아래는 고통 없는 마감을 위한 체크리스트입니다:

2025-09-02-month-end-close

  1. 명세서를 수집하고 모든 원시 거래를 가져옵니다.
  2. 거래처, 설명, 메타데이터를 정규화합니다.
  3. balance 어설션을 사용해 현금, 은행, 신용 계정을 모두 조정합니다.
  4. 이체와 계정 간 이동을 맞춥니다.
  5. 투자 가격을 업데이트하고 평가액을 검증합니다.
  6. 원장에 영수증·청구서 등 문서를 첨부하거나 연결합니다.
  7. 손익 및 변동성 검사를 위해 쿼리와 대시보드를 실행합니다.
  8. 필요에 따라 발생액과 조정 항목을 기록합니다.
  9. 자동 검사를 통해 원장을 검증합니다.
  10. 커밋하고 태그를 붙인 뒤 월을 보관합니다.

1. 기본 규칙 설정 (그리고 재사용)

일관된 마감은 안정적인 기반에서 시작됩니다. 계정표와 핵심 Beancount 옵션은 중앙에서 선언하고 거의 변경하지 않아야 합니다. operating_currencydocuments 옵션과 같은 설정은 보고서와 가져오기가 매번 예측 가능하게 동작하도록 보장합니다.

팁: 옵션 파일을 “인프라”처럼 다루세요. 옵션을 변경하면 숫자 계산 방식이 바뀔 수 있습니다. Git에 신중히 버전 관리하세요.


2. 모든 것을 가져오고, 다시는 수동 입력하지 않기

데이터 가져오기를 자동화하는 것이 장부 마감 속도를 가장 크게 높이는 방법입니다. Beancount의 강력한 가져오기 도구와 커뮤니티가 만든 임포터를 활용해 은행 피드, 신용카드 CSV/OFX 파일, 증권 데이터, 급여 보고서를 끌어옵니다.

목표는 한 번의 명령으로 균형 잡힌 포스팅을 생성하고, 검토 후 커밋만 하면 되는 것입니다. 이렇게 하면 수동 입력이라는 오류와 지연의 주요 원천을 없앨 수 있습니다.


3. 거래처와 메타데이터 사전 정규화

깨끗한 데이터는 신뢰할 수 있는 데이터입니다. 가져오기 과정에서 거래처, 내러션, 태그를 표준화하면 검색, 규칙, 보고서가 매월 정확하게 유지됩니다.

Beancount 플러그인 시스템을 이용해 파일이 로드될 때 가벼운 변환과 검증을 추가할 수 있습니다. 이는 맞춤 일관성 검사를 강제하거나, 내장 noduplicates 플러그인을 사용해 중복 거래를 문제 발생 전에 표시하는 데 완벽합니다.


4. balance 어설션으로 조정

명세서가 있는 모든 계정(당좌, 저축, 신용카드)에 대해 Beancount의 balance 지시문을 사용해 마감 잔액을 선언합니다. 이 한 줄은 수동 눈대중 검사를 정확하고 자동화된 테스트로 바꿔줍니다.

; 하루 시작 시점에 정확히 1234.56 USD 잔액을 선언
2025-09-01 balance Assets:Bank:Checking 1234.56 USD

잔액은 당일 시작에 확인되므로, 월말 명세서는 다음 달 첫째 날을 사용하면 가장 편리합니다. Beancount가 계산한 잔액이 어설션과 다르면 정확한 오류와 조사 시작 날짜를 알려줍니다. 항상 원본 거래를 먼저 수정하고, 어설션을 “강제”하지 마세요.


5. 계정 간 이체 맞추기

각 이체가 거래 양쪽에 모두 나타나는지 확인하세요. 예를 들어, 당좌 계좌에서 신용카드로 이체한 경우 두 계정 모두에 반영돼야 합니다. 일치하지 않는 이체는 흔한 조정 골칫거리입니다.

pad 지시문은 계정을 처음 설정할 때 과거 개시 잔액을 지정할 때만 사용합니다. 이는 설정 도구이며, 월말 차이를 메우기 위한 조정 수단이 아닙니다.


6. 투자 포지션과 가격 검증

순자산을 정확히 파악하려면 투자와 외화에 대한 최신 시장 가치를 반영해야 합니다. 마감일 기준으로 price 지시문을 사용해 이러한 값을 기록합니다.

2025-08-31 price VTI  290.14 USD
2025-08-31 price EUR 1.11 USD

많은 도구가 자동으로 가격을 가져올 수 있습니다. 가격을 업데이트한 뒤 대차대조표나 순자산 보고서를 다시 실행해 평가 변화를 확인하세요.


7. 영수증 및 원본 문서 연결

거래를 원본 문서와 연결해 깔끔한 감사 흔적을 유지하세요. 메인 Beancount 파일에 documents 옵션을 설정해 영수증·청구서 보관소를 지정합니다.

option "documents" "/path/to/Finance/Documents"

파일명을 날짜 기반(2025-08-13.vendor.receipt.pdf)으로 지정하면 Beancount와 Fava가 자동으로 발견하고 연결해 줍니다. 이렇게 하면 어떤 거래든 클릭 한 번으로 영수증을 확인할 수 있습니다.


8. Fava와 BQL로 월 검토

빠른 피드백 루프가 핵심입니다. Fava를 사용해 시각적으로 재무 상황을 점검하세요. 차트와 보고서는 카테고리별 지출 분석, 수입 추세 확인, 이상 징후 파악에 최적입니다.

보다 정밀한 검사는 **Beancount Query Language (BQL)**을 활용합니다. 예를 들어, 2025년 8월 전체 지출을 내림차순으로 정렬해 보여주는 쿼리는 다음과 같습니다:

SELECT
account,
ROUND(SUM(position), 2) AS total
WHERE
date >= 2025-08-01 AND date < 2025-09-01
AND account 'Expenses'
GROUP BY
account
ORDER BY
total DESC;

9. 발생액 및 조정 기록

발생주의 회계를 사용한다면, 월말 조정 항목을 명시적이고 날짜가 포함된 거래로 기록하세요. 여기에는 아직 청구되지 않은 공과금, 선불 비용의 상각, 수익 인식 등이 포함될 수 있습니다. 내러션을 간단하고 명확하게 작성해 향후 검토 시 이해하기 쉽게 하세요.


10. 검증, 태그 지정, 보관

월을 최종 확정하기 전에 구조적 무결성을 최종 점검합니다:

bean-check your-ledger.beancount

이 명령은 불균형, 미개설 계정 참조, 기타 일반 오류를 잡아냅니다. 표시된 문제를 모두 수정하세요.

모든 것이 정상이라면 Git 등 버전 관리 시스템에 커밋하고, close-2025-08 같은 명확한 메시지와 태그를 달아 저장합니다. 마지막으로 은행 명세서를 보관하고 월을 잠금 처리합니다.


적용 가능한 간단 마감 스크립트

대부분의 단계를 간단한 쉘 스크립트로 자동화할 수 있습니다. 이렇게 하면 마감이 하나의 반복 가능한 명령이 됩니다.

#!/usr/bin/env bash
set -euo pipefail

# Example: ./close.sh 2025-08
MONTH=${1:?Please provide a month in YYYY-MM format}
LEDGER= /finance/ledger.beancount

# 1. Import new transactions
echo "Importing transactions for $MONTH..."
make import MONTH="$MONTH"

# 2. Update market prices for the last day of the month
PRICE_DATE=$(date -d "$MONTH-01 +1 month -1 day" +%F)
echo "Fetching prices for $PRICE_DATE..."
make prices DATE="$PRICE_DATE"

# 3. Validate the entire ledger
echo "Running bean-check..."
bean-check "$LEDGER"

# 4. Generate a key report (e.g., expense breakdown)
echo "Generating expense report for $MONTH..."
bean-query "$LEDGER" -f txt "
SELECT account, SUM(position)
WHERE date >= '${MONTH}-01' AND date < '${MONTH}-01' + 1 month
AND account 'Expenses'
GROUP BY account ORDER BY SUM(position) DESC;
" > "reports/${MONTH}-expenses.txt"

# 5. Commit and tag the close in Git
echo "Committing and tagging the close..."
git -C /finance add .
git -C /finance commit -m "Close ${MONTH}"
git -C /finance tag "close-${MONTH}"

echo "Month ${MONTH} is closed and tagged."

왜 이렇게 작동하는가

이 프로세스가 빠르고 신뢰할 수 있는 이유는 몇 가지 핵심 원칙에 기반하기 때문입니다:

  • 어설션, 눈대중이 아니다: balance 지시문은 조정을 정확하고 자동화된 검사로 전환합니다.
  • 결정론적 입력: 자동 임포터와 정규화된 메타데이터 덕분에 원장이 재현 가능하고 일관됩니다.
  • 탐색 가능한 데이터: Fava와 BQL은 결과를 검증하고 이상치를 즉시 파고들 수 있는 강력한 도구를 제공합니다.
  • 감사 가능한 변경: 조정은 플레인 텍스트 저널 엔트리이므로 몇 년 뒤에도 쉽게 검토하고 이해할 수 있습니다.

좋은 월말 마감은 대부분 물류적인 작업입니다. Beancount와 함께라면 가져오기 → 어설션 → 가격 업데이트 → 쿼리 → 커밋이라는 짧은 스크립트형 의식으로 전환할 수 있습니다. 워크플로우를 안정적으로 유지하면 재무 상황이 복잡해져도 마감은 여전히 빠르게 진행됩니다.

2025년 최고의 비즈니스 신용 라인

· 약 8분
Mike Thrift
Mike Thrift
Marketing Manager

유연한 운전자본을 원한다면, 인출·상환·재사용이 가능한 비즈니스 신용 라인(LOC)이 반복적인 정액 대출보다 유리합니다. 아래는 사용 사례별로 올해 가장 강력한 옵션과 비용을 비교하는 간단한 방법, 그리고 인출·이자·수수료를 기록하기 위한 간단한 Beancount 레시피를 정리했습니다.


2025-08-27-best-business-lines-of-credit-2025

TL;DR — 시나리오별 최적 선택

  • 빠르고 유연한 핀테크 라인: Bluevine — 최대 $250k, 주간 또는 월간 상환, 자금 조달 보통 24시간 이내, “연 7.8% 이하(단순 이자)” 광고.
  • 다중 기간 수수료 기반 인출: American Express Business Blueprint® Line of Credit — 라인 규모 2k2k–250k; 1–3개월 일시 상환 대출 또는 6–24개월 할부 대출 선택, 고정 대출 수수료(연 APR 아님).
  • 명확한 가격 정책의 프라임 기반 은행 라인: Wells Fargo BusinessLine® / Prime Line — BusinessLine: Prime + 1.75%~+9.75%; Prime Line: Prime + 0.50% (최소 5%); 일반 신용 한도 10k10k–150k.
  • 관계 기반 가격 및 “졸업” 경로: Bank of America — 무담보 Business Advantage 라인(관계 할인 0.25–0.75%); 또는 현금 보증 라인(예치금이 한도 설정, $1,000부터), 비즈니스 신용 구축에 도움.
  • 지점 + 전국 네트워크: Chase Business Line of Credit — 온라인으로 최대 $250k, 5년 회전 기간 후 5년 상환(48개 주 제공).
  • 연간 수수료 정책 명확: U.S. Bank Cash Flow Manager — 라인 최대 250k;무담보옵션250k; 무담보 옵션 100k까지; 라인 > 50k이면연수수료없음(그이하50k이면 연 수수료 없음(그 이하 150).
  • 속도가 필요한 신생 기업(비용 인지 필요): Headway Capital5k5k–100k, 계산기 상 월 3.3% 시작 + 2% 인출 수수료.
  • 빠른 승인하지만 일반적으로 고비용: OnDeck LOC — 최대 $200k; 기업 보고 평균 APR 56.6% (2025 상반기).
  • 규모가 크고 낮은 금리, 모니터링 라인(자격 충족 시): SBA 라인 — 전통적인 CAPLines 프로그램과 최신 7(a) Working Capital Pilot (WCP). WCP는 대출 기관이 최대 $5M까지 모니터링 회전 라인을 SBA 보증으로 발행 가능.

2025년에 바뀐 점 또는 중요한 점 📈

올해 비즈니스 신용 환경을 형성하는 두 가지 주요 트렌드:

  1. 프라임 금리가 2023년 최고치보다 낮아짐. 월스트리트 저널 프라임 레이트는 7.50% (2025년 9월 2일 기준)이며, 마지막 변경은 2024년 12월 19일. 이는 대부분의 변동 금리 은행 신용 라인의 가격 책정(보통 “Prime + 마진”)에 직접 영향을 줍니다. 안정적이고 낮은 프라임 금리는 차입자에게 더 예측 가능한 비용을 의미합니다.
  2. SBA가 모니터링 운전자본 라인을 확대/출시. 2024년 8월 1일 시행된 7(a) Working Capital Pilot (WCP) 프로그램이 계속 확대되고 있습니다. 이는 대출 기관이 자산 또는 거래 기반 모니터링 LOC를 발행하도록 허용하며, 재고, 매출채권 또는 특정 계약에 대한 자금이 필요한 기업에 큰 도움이 됩니다.

스냅샷: 실제로 얻을 수 있는 인기 신용 라인

제공업체최대 라인 규모가격 책정 방식주요 조건/수수료추천 대상
Bluevine$250,000“연 7.8% 이하” 단순 이자; 주간·월간 상환자금 조달 보통 24시간 이내빠르고 유연한 온라인 LOC, 간단한 인출
AmEx Business Blueprint®2,0002,000–250,000이자 대신 대출 수수료; 1–3개월 일시 상환 또는 6–24개월 할부 선택기간별 수수료 범위 확인; AmEx Business Checking 즉시 입금 옵션예측 가능한 수수료; 인출당 상환 기간 선택 가능
Wells Fargo BusinessLine®10,00010,000–150,000변동 프라임 + 1.75%~+9.75%무담보 회전 라인투명한 마진을 가진 프라임 기반 은행 라인
Wells Fargo Prime Line변동프라임 + 0.50% (최소 5%)강력한 프로필에 적합자격 충족 시 낮은 마진 옵션
Chase Business LOC온라인 최대 $250,000변동(온라인에 공개되지 않음)5년 회전 후 5년 상환; 알래스카·하와이 제외장기 회전 창을 제공하는 기존 은행 LOC
U.S. Bank Cash Flow Manager최대 $250,000변동; 보증·무보증 옵션무보증 최대 100k;라인>100k; 라인 > 50k이면 연 수수료 없음(그 이하 $150)명확한 수수료 정책; 광범위한 지점 네트워크
PNC Unsecured LOC20,00020,000–100,000WSJ 프라임 + 마진(변동)연 $175 수수료소규모 라인; 관계형 은행
Headway Capital5,0005,000–100,000월 3.3% 시작 + 2% 인출 수수료(주/주 기반)주간·월간 옵션속도가 필요한 신생 기업(비용 인지 필요)
OnDeck LOC최대 $200,000평균 APR 56.6% (2025 상반기)빠른 승인; 주간 상환 흔함단기 현금 부족; 고비용 자본
SBA CAPLines & 7(a) WCP최대 $5,000,000대출 기관을 통한 SBA 제한 금리; 모니터링 라인WCP는 최대 12개월, 갱신 가능; CAPLines는 최대 10년 만기규모가 크고 구조화된 운전자본 필요, 담보 제공 가능

올바른 LOC 선택을 위한 7가지 체크리스트 ✅

  1. 지표 & 마진: “Prime ± X%” 로 가격이 책정된 은행 라인이라면, 오늘의 프라임 금리(7.50%)에 제시된 마진을 더하면 현재 변동 연 APR이 됩니다.
  2. 수수료 기반 vs. 이자 기반: AmEx Blueprint와 같은 핀테크는 인출당 고정 “대출 수수료”를 부과합니다. 해당 수수료를 이자 기반 제안의 실효 APR과 비교하세요.
  3. 연간/인출 수수료: 라인을 자주 사용하지 않을 경우 수수료가 총 비용에 크게 영향을 미칩니다. U.S. Bank는 라인 > 50k이면50k이면 150 연수수료를 면제하고, PNC는 무담보 LOC에 $175 연수수료를 부과합니다.
  4. 상환 주기: 온라인 대출에서 흔히 보이는 주간 상환은 현금 흐름을 부드럽게 하지만 관리가 더 잦아야 합니다. 월간 상환은 회계 처리를 단순화합니다. Bluevine은 주간·월간 옵션을 모두 제공합니다.
  5. 자금 조달 속도: 현금이 급히 필요하다면 속도가 핵심입니다. Bluevine은 보통 24시간 이내에 자금을 제공하고, American Express는 인출을 AmEx Business Checking 계좌에 즉시 입금합니다.
  6. 자격·졸업 경로: 아직 무담보 라인 자격이 안 된다면, Bank of America의 현금 보증 라인($1,000부터 시작)을 통해 비즈니스 신용을 구축하고 이후 무담보 라인으로 “졸업”할 수 있습니다.
  7. SBA 활용 여부: 재고·매출채권·계약 등 특정 자산에 연계된 큰 규모의 운전자본이 필요하다면, SBA 7(a) WCP 또는 CAPLines 프로그램을 통해 규제 금리와 모니터링 라인을 활용하세요. 단, 심사 절차가 더 복잡합니다.

간단한 비용 비교 팁 🧮

제안을 비교하는 것은 까다로울 수 있습니다. 다음과 같이 생각해 보세요:

  • 프라임 기반 예시: 은행이 “Prime + 2.75%”를 제시한다면, 오늘의 시작 APR은 10.25% (7.50% + 2.75%)입니다. 프라임 금리가 변동하면 이 비율도 함께 변동합니다.
  • 수수료 기반 예시 (AmEx Blueprint): 12개월 인출에 총 6–18% 대출 수수료가 부과될 수 있습니다. 하지만 동일한 조건을 비교하려면 감소하는 잔액에 대한 실효 APR을 계산해야 합니다. 초기 인출 금액에 대한 고정 수수료는 감소하는 잔액에 대한 APR과는 다릅니다.

Beancount: 신용 라인 기록 방법

플레인 텍스트 회계 도구인 Beancount를 사용하는 경우, 신용 라인 추적은 간단합니다. LOC는 부채이며, 인출은 부채와 현금을 증가시키고, 이자와 수수료는 비용으로 처리합니다. 아래 예시의 계정 이름을 자신의 원장에 맞게 교체하세요.

1) LOC에서 $25,000을 체크 계좌로 인출

2025-03-15 * "LOC draw"
Assets:Bank:Checking 25,000.00 USD
Liabilities:LOC:Bluevine -25,000.00 USD

2) 2,300상환(2,300 상환 (300 이자, $2,000 원금)

2025-04-15 * "LOC payment (principal + interest)"
Liabilities:LOC:Bluevine 2,000.00 USD
Expenses:Interest:LOC 300.00 USD
Assets:Bank:Checking -2,300.00 USD

3) 은행 계좌에서 청구된 $150 연간 수수료 기록

2025-01-10 * "Annual LOC fee"
Expenses:BankFees:LOC 150.00 USD
Assets:Bank:Checking -150.00 USD

대안: 연간 수수료가 은행 계좌에서 차감되지 않고 라인 잔액에 추가되는 경우, 거래는 다음과 같이 기록합니다:

2025-01-10 * "Annual LOC fee added to balance"
Expenses:BankFees:LOC 150.00 USD
Liabilities:LOC:Bluevine -150.00 USD

SBA 보증 라인이 더 적합한 경우

SBA 보증 라인은 모든 기업에 맞는 것은 아니지만, 다음 상황에서는 강력한 도구가 됩니다:

  • 대부분의 핀테크·은행 무담보 제품이 제공하는 한도보다 큰 신용 한도가 필요할 때.
  • 운전자본 필요가 매출채권, 재고, 계약서 등 담보와 연결될 때.
  • 모니터링 요구사항(차입 기반 증명서 제출·정기 재무 보고 등)을 감당할 수 있을 때.

이러한 경우 SBA CAPLines 프로그램과 7(a) Working Capital Pilot (WCP)을 검토하세요. 프로그램에 따라 최대 $5M까지 라인을 제공하며, 일반 CAPLines는 최대 10년 만기를 가질 수 있습니다.


신청 체크리스트 📝

대부분의 대출 기관이 요구하는 서류:

  • 사업 기간·매출·신용 점수: 은행은 보통 1–2년 이상의 사업 기간과 높은 신용을 요구하고, 온라인 대출 기관은 더 유연하지만 위험에 대한 비용을 반영합니다.
  • 재무 자료: 최근 은행 거래 내역, 사업 세금 신고서, 필요 시 매출채권 연령표·재고 보고서 등을 준비하세요.
  • 개인 보증: 대부분의 비즈니스 신용 라인에서 표준 요구 사항이며, 사업이 채무를 이행하지 못할 경우 개인이 책임을 집니다.

주요 출처


결론

2025년 비즈니스 신용 라인은 프라임 기반 은행 라인, 핀테크 라인, 그리고 SBA 보증 라인 등 다양한 선택지를 제공합니다. 각 옵션의 가격 구조와 주요 조건을 이해하고, 자신의 현금 흐름과 성장 목표에 맞는 라인을 선택하세요. 그리고 Beancount를 활용해 인출·이자·수수료를 정확히 기록함으로써 재무 투명성을 높이고, 장기적인 비즈니스 성공을 위한 기반을 다질 수 있습니다.

Beancount에서 세금 기록하기 (실용적인 방법)

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

세금은 개인 재무 세계에서 특별하고 복잡한 존재처럼 느껴질 수 있습니다. 하지만 그렇지 않다면 어떨까요? 세금을 원장에 있는 다른 금전 흐름처럼 취급할 수 있다면요? 좋은 소식: 가능합니다. 세금을 단순한 가치 이동으로 취급하면 Beancount 원장이 깔끔하고 쿼리하기 쉬우며—무엇보다도—이해하기 쉬워집니다.

아래는 개인 또는 소규모 비즈니스 Beancount 파일에 바로 적용할 수 있는 실용적이고 간결한 패턴입니다. 급여, 세금 납부 및 새해로 넘어가는 성가신 환급까지 처리할 수 있는 간단한 시스템입니다. 필요한 핵심 계정들을 소개하고 실제 예시를 따라가며, 필요한 답을 얻기 위한 정확한 쿼리도 보여드립니다.

2025-08-25-recording-taxes-in-beancount

핵심 원칙

코드에 들어가기 전에 몇 가지 간단한 규칙에 동의합시다. 이러한 원칙은 논리적 흐름을 유지하고 미래의 골칫거리를 방지합니다.

  • "무엇인지"와 "현금이 이동하는 시점"을 구분하세요. 🗓️
    이것이 가장 중요한 개념입니다. 세금 비용은 소득을 얻은 연도(예: 2024)에 속하며, IRS에 2025년 4월에 청구서를 정산하더라도 마찬가지입니다. 비용 발생 시점과 현금 지급 시점을 구분하지 않으면 연도별 보고서가 혼란스럽고 오해를 불러일으킵니다.

  • 계정 계층 구조를 단순하고 지루하게 유지하세요. 📁
    세금 유형에 따라 계정을 명확히 이름 짓습니다(예: IncomeTax, SocialSecurity). 이렇게 하면 쿼리가 매우 간단해집니다. 계정 이름에 공급업체명이나 양식 번호(W-2, 1099 등)를 넣지 말고 메타데이터와 태그를 사용하세요.

  • 연말 조정을 위해 발생주의를 받아들이세요. ⚖️
    개인 원장이라도 연말에 간단한 발생주의 항목을 사용하는 것이 보고서를 정확하게 만드는 가장 깔끔한 방법입니다. 이는 돈이 다음 해에 이동하더라도 해당 연도에 비용이나 환급을 인식한다는 의미입니다. 작은 추가 단계 하나가 나중에 복잡한 사고를 방지해 줍니다.

  • 미래의 자신을 위해 작성하세요. 🧠
    목표는 명확성입니다. 세금 연도와 같은 추가 정보를 계정 이름에 넣는 것은 실제로 쿼리를 더 쉽게 만들 때만 적용하세요. 특별한 이유가 없는 한 매년 새로운 계정 집합(Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal 등)을 만들지 마세요. 평면 구조가 관리하기 더 쉽습니다.

최소 계정 골격

시작을 위한 기본 계정 세트를 소개합니다. 이 구조는 미국 중심이지만, 자신의 국가 세제에 맞게 이름을 쉽게 바꿀 수 있습니다. 아래 open 지시문을 Beancount 파일에 넣기만 하면 됩니다.

2024-01-01 open Income:Taxes:Federal:IncomeTax USD
2024-01-01 open Income:Taxes:Federal:SocialSecurity USD
2024-01-01 open Income:Taxes:Federal:Medicare USD
2024-01-01 open Income:Taxes:State:IncomeTax USD
2024-01-01 open Income:Taxes:State:SalesTax USD

2024-01-01 open Expenses:Taxes:Federal:IncomeTax USD
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD
2024-01-01 open Expenses:Taxes:State:IncomeTax USD
2024-01-01 open Expenses:Taxes:State:SalesTax USD

2024-01-01 open Liabilities:Taxes:Federal:IncomeTax USD
2024-01-01 open Liabilities:Taxes:Federal:SocialSecurity USD
2024-01-01 open Liabilities:Taxes:Federal:Medicare USD
2024-01-01 open Liabilities:Taxes:State:IncomeTax USD
2024-01-01 open Liabilities:Taxes:State:SalesTax USD

2024-01-01 open Assets:Tax:Receivable USD

이 설정은 원천징수된 세금과 직접 납부 및 환급을 구분하여 돈이 정확히 어디로 갔는지 쉽게 확인할 수 있게 합니다. LiabilitiesAssets 계정은 연말 보고를 정확하게 유지하기 위한 비밀 무기입니다.

예시 1: 급여

세금이 자동으로 원천징수되는 일반적인 급여를 기록해 봅시다. 핵심은 총 급여를 먼저 기록하고, 세금과 실제 은행 계좌에 입금된 현금으로 어떻게 나뉘었는지 보여주는 것입니다.

2025-07-15 * "급여 지급"
Assets:Bank:Checking -4341.00 USD
Expenses:Taxes:Federal:IncomeTax 1200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Income:Salary:Employer 6000.00 USD

이 하나의 거래가 전체 이야기를 전달합니다:

  • 총 $6,000의 총소득을 벌었습니다.
  • 그 중 $1,200은 연방 소득세로 IRS에 송금되었습니다.
  • 372은사회보장세,372은 사회보장세, 87은 메디케어에 사용되었습니다.
  • 나머지 $4,341이 실제 수령액입니다.

팁: 급여 명세서의 메타데이터(예: pay_period_end: "2025-07-15")를 거래에 첨부하면 감사 추적이 쉬워집니다.

예시 2: 신고하기 (연도 교차 문제)

많은 사람들이 헷갈려하는 상황입니다: 2025년 4월에 2024년 세금을 신고하고 있습니다. 원천징수 후에도 추가로 $3,000을 더 내야 한다는 것을 알게 되었습니다.

이를 어떻게 기록할까요? 비용은 2024년에 반영하고, 현금 지급은 2025년에 발생하도록 해야 합니다. 이를 처리하는 두 가지 훌륭한 방법을 소개합니다.

옵션 A: 수동 2단계 발생주의

이 방법은 순수 Beancount만 사용하며 플러그인이 필요 없습니다. 명확한 2단계 프로세스입니다.

단계 1: 세금 연도 말에 비용을 인식합니다. 2024년 마지막 날에 “정산” 항목을 생성합니다. 아직 현금 이동은 없으며, 비용을 인정하고 임시 부채 계정에 보관하는 것입니다.

2024-12-31 * "세금 정산"
Liabilities:Taxes:Federal:IncomeTax 3000.00 USD

이제 2024년 손익계산서에 $3,000 비용이 정확히 표시됩니다.

단계 2: 현금 지급이 발생할 때 기록합니다. 2025년 4월에 실제로 IRS에 돈을 송금하면 부채를 정산합니다.

2025-04-15 * "세금 납부"
Assets:Bank:Checking -3000.00 USD
Liabilities:Taxes:Federal:IncomeTax 3000.00 USD

2024년 보고서는 정확하고, 2025년 현금 흐름도 정확합니다. 완벽합니다! 환급의 경우에도 같은 패턴을 역으로 적용하면 되며, 부채 계정 대신 Assets:Tax:Receivable를 사용하면 됩니다.

옵션 B: 플러그인으로 자동화

지불을 하나의 거래로 유지하고 싶다면, beancount_reds_plugins.effective_date라는 훌륭한 커뮤니티 플러그인이 도움이 됩니다. 이 플러그인은 단일 항목에 다른 “유효일”을 지정할 수 있게 해줍니다.

먼저 메인 Beancount 파일에 플러그인을 활성화합니다: plugin "beancount_reds_plugins.effective_date"

이제 하나의 거래를 작성하면 플러그인이 자동으로 내부에서 분할하여 보고서를 정확하게 만들어 줍니다.

2025-04-15 * "세금 납부 (플러그인 사용)"
plugin "effective_date"
Assets:Bank:Checking -3000.00 USD
Expenses:Taxes:Federal:IncomeTax 3000.00 USD
effective_date: 2024-12-31

여기서는 현금 부분이 2025년 4월 15일에 기록되고, 비용 부분은 2024년 12월 31일에 소급 적용됩니다. 이는 옵션 A와 동일한 결과를 다른 워크플로우로 달성한 것입니다.

판매세는 어떻게 할까요?

대부분의 개인 원장에서는 판매세가 간단합니다. 환급을 청구하지 않는다면 구매 시 별도의 비용으로 분리하면 됩니다.

2025-03-10 * "구매 - 판매세 포함"
Expenses:Goods:OfficeSupplies -200.00 USD
Expenses:Taxes:Sales -15.00 USD
Assets:Bank:Checking 215.00 USD

이를 통해 연간 판매세 지출을 쉽게 추적할 수 있습니다. 부가가치세(VAT)를 다루는 사업을 운영한다면, 지급 및 수취 계정을 사용하는 보다 정식 시스템을 사용하지만 원리는 동일합니다.

실제로 실행할 쿼리

이 구조의 핵심은 답을 쉽게 얻는 것입니다. 아래는 세금 현황을 확인하기 위한 BQL 쿼리 예시입니다.

1. 2024년 연방 소득세 총액은 얼마인가요?

SELECT SUM(position) FROM "Expenses:Taxes:Federal:IncomeTax"
WHERE date >= '2024-01-01' AND date < '2025-01-01';

2. 그 총액이 원천징수, 납부, 환급으로 어떻게 구분되는가?

SELECT
SUM(CASE WHEN account LIKE '%IncomeTax%' THEN position ELSE 0 END) AS withholding,
SUM(CASE WHEN account LIKE '%Payments%' THEN position ELSE 0 END) AS payments,
SUM(CASE WHEN account LIKE '%Refunds%' THEN position ELSE 0 END) AS refunds
FROM "Expenses:Taxes:Federal"
WHERE date >= '2024-01-01' AND date < '2025-01-01';

3. 미결 세금 부채나 수취금이 있나요? (작업 확인에 유용!)

SELECT account, SUM(position) FROM "Liabilities:Taxes:Federal"
WHERE date >= '2024-01-01' AND date < '2025-01-01'
GROUP BY account;

요약

  • 세금을 간단한 거래로 취급합니다.
  • 제공된 계정 구조를 사용합니다.
  • 코드 블록을 활용하여 명확히 합니다.
  • 쿼리를 실행해 데이터를 검증합니다.

최종 생각

여기까지 읽었다면, Beancount에서 세금을 처리하기 위한 탄탄한 기반을 갖추게 된 것입니다. 원장을 깔끔하고 정확하며 이해하기 쉽게 유지하는 것이 목표임을 기억하세요. 회계 작업을 즐기세요!

Beancount에서 발생비용: 실전 가이드 (복사-붙여넣기 원장 예시 포함)

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

발생비용은 월말 마감이 쌓이기 시작할 때까지는 추상적으로 들릴 수 있습니다. 이는 적절한 발생주의 회계의 초석으로, 현금이 실제로 이동하는 시점이 아니라 경제적 실체를 재무보고에 반영하도록 합니다. 여기서는 발생비용이 무엇인지, 왜 중요한지, 그리고 평문 원장에 어떻게 기록·반전·보고하는지 Beancount 중심으로 명확히 안내합니다.

TL;DR ⚡

  • 발생비용은 이번 기간에 발생했지만 아직 지급되지 않은 비용입니다. 현금이 나갈 때까지 부채로 기록됩니다.
  • Beancount에서는 간단합니다: Expenses: 계정을 차변에, Liabilities:Accrued: 계정을 대변에 기록합니다. 이후 지급 시 부채를 정산합니다.
  • 보고하려면, CLOSE ONCLEAR 옵션을 사용한 bean-query를 실행하면 특정 날짜 기준으로 미지급 금액을 확인하고 깔끔한 대차대조표 스냅샷을 얻을 수 있습니다.

Beancount 발생비용 이미지

발생비용이란?

발생비용은 기업이 이미 발생했지만 아직 지급하지 않은 비용을 말합니다. 서비스가 제공되었거나 비용이 발생한 시점에 청구서가 아직 도착하지 않았거나 지급 기한이 오지 않았더라도 기록합니다. 이는 발생주의 회계의 매칭 원칙에 따라 비용을 해당 비용이 기여한 수익과 동일한 기간에 기록하도록 합니다.

  • 월말에 발생했지만 다음 달에 지급되는 직원 급여
  • 12월에 사용했지만 1월에 청구되는 전기·수도 등 공과금
  • 한 달 동안 누적됐지만 아직 계좌에서 인출되지 않은 대출 이자

이러한 비용을 발생 시점에 기록함으로써 해당 기간에 대한 기업의 재무성과를 보다 정확히 파악할 수 있습니다.

Beancount가 생각하는 방식 (30초 안에)

Beancount는 평문 기반의 복식부기 회계 시스템입니다. 모든 항목은 텍스트 파일에 날짜가 지정된 지시문이나 거래로 기록됩니다. 시스템은 다섯 가지 핵심 계정 유형인 자산(Assets), 부채(Liabilities), 자본(Equity), 수익(Income), 비용(Expenses) 위에 구축됩니다.

거래는 항상 날짜 순으로 정렬됩니다. 중요한 점은 balance 어설션이 같은 날의 거래가 처리되기 에 검증된다는 것입니다. 이는 체크와 반전 항목을 배치할 때 기억해야 합니다.

마지막으로 bean-query 언어는 강력한 SQL 유사 방식으로 보고서를 생성합니다. OPEN ON, CLOSE ON, CLEAR 같은 연산자를 사용하면 재무제표에 대한 정확한 '시점' 뷰를 만들 수 있습니다.

권장 계정표 (Chart of Accounts)

깨끗하고 계층적인 계정표는 최고의 파트너입니다. 발생비용의 경우 구조가 간단합니다. 다음과 같은 계정이 필요합니다:

  • 비용 계정: 예) Expenses:Utilities, Expenses:Payroll:Wages
  • 해당 부채 계정: 예) Liabilities:Accrued:Utilities, Liabilities:Accrued:Payroll
  • 현금 계정: 예) Assets:Bank:Checking

Beancount는 다섯 가지 최상위 계정 유형을 강제합니다. 계정명을 체계적으로 정리하면 향후 쿼리와 보고서 작성이 훨씬 쉬워집니다.

핵심 패턴 (플러그인·매직 없이)

Beancount에서 발생비용을 처리하는 가장 직접적인 방법입니다. 두 단계로 구성됩니다: 월말에 비용을 발생시키고, 지급 시 부채를 정산합니다.

단계 1: 월말에 비용 발생시키기

기간 마지막 날에 비용을 기록하고 부채를 생성합니다.

2025-01-31 * 월말 발생비용
Expenses:Utilities 100.00 USD
Liabilities:Accrued:Utilities

단계 2: 지급 시 발생비용 정산하기

청구서가 도착하고 지급하면 비용 계정을 다시 차변에 기록하지 않습니다. 대신 부채 계정을 차변에 기록해 정산합니다.

2025-02-15 * 청구서 지급
Liabilities:Accrued:Utilities 100.00 USD
Assets:Bank:Checking

이 방법은 소규모 팀에 가장 깔끔합니다. 비용을 2월에 정확히 배치하고 3월에 중복 계산되지 않도록 합니다. Beancount에서는 금액을 비워두면 시스템이 자동으로 거래를 맞춰줍니다.

대안: 다음 달 1일에 반전 항목 사용

클래식한 '자동 반전' 회계 방식을 선호한다면, 다음 달 1일에 발생 항목의 반대 거래를 기록하고, 실제 공급업체 청구서는 일반적으로 비용 계정에 기록합니다.

단계 1: 월말에 비용 발생시키기

2025-01-31 * 월말 발생비용
Expenses:Utilities 100.00 USD
Liabilities:Accrued:Utilities

단계 2: 다음 달 1일에 반전하기

2025-02-01 * 반전
Liabilities:Accrued:Utilities 100.00 USD
Expenses:Utilities

단계 3: 일반적으로 지급 기록하기

2025-02-15 * 청구서 지급
Liabilities:Accrued:Utilities 100.00 USD
Assets:Bank:Checking

체크에 대한 주의: balance 어설션은 같은 날 거래 전에 평가됩니다. Liabilities:Accrued:Utilities 계정 잔액을 확인하려면 2025-02-28에 어설션을 두어 발생을 확인하거나, 2025-03-01반전 거래 후에 어설션을 두어 잔액이 0인지 확인합니다. 2025-03-01에 반전 전 어설션을 두면 잘못된 실패가 발생합니다.

흔히 쓰이는 6가지 발생비용 (복사-붙여넣기 패턴) 📋

1. 아직 청구되지 않은 임대료

2025-01-01 open Expenses:Rent
2025-01-01 open Liabilities:Accrued:Rent
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Equity:RetainedEarnings

2025-01-31 * 발생비용 (청구서 없음)
Expenses:Rent 1500.00 USD
Liabilities:Accrued:Rent

2. 발생했지만 미지급된 급여

2025-01-01 open Expenses:Payroll
2025-01-01 open Liabilities:Accrued:Payroll
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Equity:RetainedEarnings

2025-01-31 * 발생비용 (급여)
Expenses:Payroll 3000.00 USD
Liabilities:Accrued:Payroll

3. 발생한 연차수당 (PTO)

2025-01-01 open Expenses:PTO
2025-01-01 open Liabilities:Accrued:PTO
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Equity:RetainedEarnings

2025-01-31 * 연차수당 발생
Expenses:PTO 500.00 USD
Liabilities:Accrued:PTO

4. 대출 이자 발생

2025-01-01 open Expenses:Interest
2025-01-01 open Liabilities:Accrued:Interest
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Equity:RetainedEarnings

2025-01-31 * 이자 발생
Expenses:Interest 200.00 USD
Liabilities:Accrued:Interest

5. 전문 수수료 (감사/법률)

2025-01-01 open Expenses:ProfessionalFees
2025-01-01 open Liabilities:Accrued:ProfessionalFees
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Equity:RetainedEarnings

2025-01-31 * 전문 수수료 발생
Expenses:ProfessionalFees 800.00 USD
Liabilities:Accrued:ProfessionalFees

6. 사용했지만 청구되지 않은 공과금

2025-01-01 open Expenses:Utilities
2025-01-01 open Liabilities:Accrued:Utilities
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Equity:RetainedEarnings

2025-01-31 * 공과금 사용 (청구서 아직 없음)
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities

보고: 특정 날짜 기준으로 내가 얼마나 빚졌는가?

bean-query는 답을 얻기 위한 도구입니다. 아래는 발생비용에 대한 정확한 대차대조표 스냅샷을 얻는 방법입니다.

기간 종료 시점 모든 발생부채 잔액 조회

bean-query --file ledger.beancount \
"SELECT account, SUM(position) FROM balances \
WHERE account LIKE 'Liabilities:Accrued:%' \
GROUP BY account"
  • OPEN ON은 기간 시작 시점의 시작 잔액을 설정합니다.
  • CLOSE ON은 이 날짜 이전의 거래를 잘라냅니다(포함되지 않음). 따라서 2025-04-01을 사용하면 2025-03-31까지의 데이터를 얻습니다.
  • CLEAR는 수익·비용을 0으로 만들어 자산·부채·자본만 남은 깔끔한 대차대조표 뷰를 제공합니다.

모든 발생비용 전표 내역 보기

bean-query --file ledger.beancount \
"SELECT * FROM transactions WHERE account LIKE 'Liabilities:Accrued:%'"

발생비용 계정의 원시 거래 내역을 보고 싶다면 위와 같이 조회합니다.

전체 발생비용 합계 조회

bean-query --file ledger.beancount \
"SELECT SUM(position) FROM balances WHERE account LIKE 'Liabilities:Accrued:%'"

전체 발생비용 총액을 빠르게 확인하려면 위와 같이 실행합니다.

Beancount 특유의 제어 및 주의사항

  • Balance 어설션 타이밍: 앞서 언급했듯이 어설션은 하루 시작 시점에 잔액을 검증합니다. 2025-03-01 balance ...는 해당 날짜의 거래가 처리되기 전에 실행됩니다. 이에 맞게 계획하세요.
  • 명명 및 계층 구조: Liabilities:Accrued:*와 같은 깔끔한 트리는 보기 좋을 뿐 아니라 쿼리를 단순화하고 보고서를 즉시 이해하기 쉽게 합니다.
  • Pad 사용 주의: pad 지시문은 시작 잔액을 맞출 때는 유용하지만, 반복 발생비용을 '수정'하는 용도로는 피하세요. 명시적인 거래를 기록하면 감사 추적이 명확해집니다.
  • 시점 기준 보고: 대차대조표 스냅샷을 만들 때는 항상 bean-query에서 OPEN ... CLOSE ... CLEAR를 사용하세요. 이렇게 하면 수익·비용 계정이 부채 총액에 섞이는 것을 방지합니다.

선불 vs. 발생 (빠르게)

발생비용은 기업이 이미 발생했지만 아직 지급되지 않은 비용이며, 재무제표에 부채로 기록됩니다. 선불은 미리 지급한 비용으로 자산으로 기록됩니다.

  • 발생비용: 비용이 발생했지만 현금이 아직 나가지 않은 경우 부채로 기록합니다.
  • 선불: 비용을 미리 지급하고, 이후 해당 비용을 차감합니다.

Beancount에서 발생비용을 다루는 실전 가이드 (옵션)

2022-01-01 open Assets:Cash
2022-01-01 open Expenses:Rent
2022-01-01 open Liabilities:Accrued:Rent
2022-01-01 open Equity:RetainedEarnings

누적 감가상각 (Beancount용): 실용적인 플레인‑텍스트 가이드

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

고정자산(노트북, 카메라, 기계, 사무용 가구 등)을 회계에서 추적한다면, 장부에 자산 가치가 감소하는 것을 반영해야 합니다. 여기에는 두 가지 핵심 개념이 있습니다: 감가상각(비용)과 그 누적 합계인 누적 감가상각. 이 가이드는 두 개념을 쉬운 언어로 설명하고, Beancount에서 복사‑붙여넣기 가능한 예시와 강력한 자동화 옵션을 통해 실제 모델링 방법을 보여줍니다.


2025-08-23-accumulated-depreciation

누적 감가상각이란?

누적 감가상각은 자산이 사용 개시된 이후 기록된 감가상각 총액을 의미합니다. 일종의 진행 중인 합계라고 생각하면 됩니다. 새로운 비용 종류가 아니라, 해당 자산에 대해 지금까지 발생한 모든 감가상각 비용을 합산한 값입니다.

재무제표에서는 누적 감가상각이 자산의 원가와 함께 표시됩니다. 이를 통해 장부를 보는 사람은 역사적 원가(구매 가격)와 순장부가액(현재 장부상 가치)를 동시에 확인할 수 있습니다.

핵심 포인트는 누적 감가상각이 대변자산(contra‑asset) 계정이라는 점입니다. 복잡하게 들릴 수 있지만 개념은 간단합니다:

  • 자산 계정이므로 Assets 섹션에 위치합니다.
  • 하지만 대변(credit) 잔액을 갖습니다(Beancount의 자산 계정에서는 음수 값). 이는 관련 고정자산의 가치를 감소시키는 역할을 합니다.

대차대조표에서 어디에 표시되나요?

누적 감가상각은 일반적으로 해당 고정자산 바로 아래에 표시됩니다. 예시:

장비: 컴퓨터$3,000.00
차감: 누적 감가상각($1,000.00)
장비: 컴퓨터, 순액$2,000.00

많은 재무제표에서는 이를 “유형자산, 순액” 한 줄로 요약합니다. 이 숫자는 모든 자산의 총 원가에서 총 누적 감가상각을 차감한 값으로, 최종 순장부가액을 나타냅니다.


감가상각은 어떻게 계산하나요?

감가상각을 계산하는 방법은 여러 가지가 있습니다. 선택한 방법에 따라 매 기간 기록하는 비용이 달라지고, 이는 누적 감가상각 총액에 누적됩니다. 흔히 쓰이는 두 가지 방법은 다음과 같습니다:

  • 정액법 (Straight‑Line, SL): 가장 단순하고 일반적인 방법입니다. 자산의 내용연수 전체에 걸쳐 매 기간 동일한 금액을 비용으로 인식합니다. 예를 들어, 3,000짜리노트북을36개월(3)동안사용한다면월감가상각액은3,000짜리 노트북을 36개월(3년) 동안 사용한다면 월 감가상각액은 83.33이 됩니다.
  • 세법 전용 방법 (예: 미국의 MACRS): 세무 목적을 위해 정부가 정한 가속 감가상각 일정이 있습니다. 미국의 경우, 수정 가속 원가 회수 시스템(MACRS)을 사용하면 초기 몇 년 동안 더 큰 감가상각 비용을 차감할 수 있습니다. Beancount는 이러한 일정도 손쉽게 처리할 수 있으며, 공식 표(예: IRS Publication 946)를 참고해 금액을 계산한 뒤 해당 분개를 생성하면 됩니다.

공식 (정액법)

기간별 감가상각 = 원가잔존가치내용연수\frac{\text{원가} - \text{잔존가치}}{\text{내용연수}}

누적 감가상각(시점 t 기준) = (기간별 감가상각 up to t)\sum (\text{기간별 감가상각 up to } t)

잔존가치는 내용연수 종료 시점에 예상되는 잔여 가치를 의미합니다. 실무에서는 보통 0으로 가정합니다.


Beancount 방식: 원가와 누적 감가상각 모델링

Beancount에서 고정자산을 원가와 함께 추적하려면 각 카테고리마다 두 개의 자산 계정과 하나의 비용 계정을 사용합니다.

  • Assets:Equipment:Computers:Cost – 원가를 보관
  • Assets:Equipment:Computers:AccumDep – 대변자산, 시간이 지남에 따라 대변 처리
  • Expenses:Depreciation:Computers – 기간별 감가상각 비용 기록

이 구조는 표준 회계 관행을 그대로 반영하며, Beancount에서 고정자산 감가상각을 관리하는 권장 방법입니다.


옵션 A: 수동 정액법 입력

가장 직접적인 방법으로, 모든 분개를 직접 입력합니다. 메커니즘을 이해하는 데 유용합니다.

1. 필요한 계정 열기

2025-01-01 open Assets:Bank:Checking
2025-01-01 open Assets:Equipment:Computers:Cost
2025-01-01 open Assets:Equipment:Computers:AccumDep
2025-01-01 open Expenses:Depreciation:Computers

2. 구매 기록 (원가 기준)

자산을 구입하면 Cost 계정에 차변을 잡습니다.

2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

3. 월별 감가상각 기록

3,000자산을36개월에걸쳐감가상각하면월감가상각액은3,000 자산을 36개월에 걸쳐 감가상각하면 월 감가상각액은 83.33입니다.

2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD ; 대변자산에 크레딧

이 항목을 36개월 동안 매월 반복하면 Assets:Equipment:Computers:AccumDep 잔액이 점점 더 음수로 누적되어 자산의 순장부가액을 감소시킵니다.

빠른 확인: Fava의 대차대조표나 아래와 같은 간단한 쿼리로 순장부가액을 확인할 수 있습니다.

bean-query myledger.bean "SELECT account, SUM(position) WHERE account   'Assets:Equipment:Computers:(Cost|AccumDep)' GROUP BY account"

두 계정의 합계가 바로 순장부가액입니다.


옵션 B: Fava amortize 플러그인으로 자동화

Fava(Beancount 웹 인터페이스)를 사용하고 매월 일정 금액을 감가상각한다면 자동화가 가능합니다.

먼저 파일 상단에 플러그인을 활성화합니다.

plugin "fava.plugins.amortize_over"

그 다음 전체 감가상각 일정을 한 번에 정의합니다.

; 1. 일반적인 구매 기록
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

; 2. 감가상각 일정 설정
2025-01-20 * "Depreciation schedule - MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USD

플러그인은 이 거래를 감지해 매월 $83.33씩 가상 포스팅을 자동 생성합니다. 파일에 실제 기록은 남지 않지만 모든 보고서에 표시됩니다. 정액법에 적합하지만 MACRS와 같은 비정형 일정에는 사용할 수 없습니다.


옵션 C: 서드파티 플러그인으로 실제 거래 자동 생성

실제 파일에 비가상 거래를 기록하고 싶다면 beancount-periodic 같은 플러그인을 사용할 수 있습니다. 이 플러그인은 지정된 주기에 따라 자동으로 분개를 생성해 주어, 수동 입력의 정확성과 자동화의 편리함을 동시에 제공합니다.


결과 확인: 원가, 누적 감가상각, 순장부가액

어떤 방법을 선택하든 대차대조표에는 CostAccumDep 두 계정이 모두 표시됩니다. 두 계정의 합계가 바로 순장부가액이며, 이는 회계사와 재무 분석가가 기대하는 “총 원가 – 누적 감가상각” 형태와 동일합니다.


자산 처분 (판매, 폐기, 은퇴)

자산이 수명 종료 시점에 판매, 폐기, 은퇴 등으로 장부에서 제거해야 합니다. 이때 다음 네 가지 작업이 필요합니다:

  1. 원가 계정 삭제
  2. 누적 감가상각 계정 삭제
  3. 현금 수령 기록
  4. 손익(이익 또는 손실) 기록

예시: 이익이 발생한 판매

2027‑06‑15에 MacBook Pro를 판매한다고 가정합니다.

  • 원가: $3,000
  • 누적 감가상각: -$2,500
  • 순장부가액: $500
  • 판매 금액: $800
  • 이익: $300
2027-06-15 * "Sell MacBook Pro"
Assets:Bank:Checking 800.00 USD ; 현금 수령
Assets:Equipment:Computers:AccumDep 2500.00 USD ; 대변자산 차감
Assets:Equipment:Computers:Cost -3000.00 USD ; 원가 차감
Income:Gains:AssetDisposals -300.00 USD ; 이익 기록

손실이 발생한 경우Income:Gains:AssetDisposals 대신 Expenses:Losses:AssetDisposals 계정을 사용하면 됩니다.


누적 감가상각에 대한 핵심 요약

  • 누적 감가상각은 고정자산에 대해 지금까지 차감된 모든 감가상각 비용의 합계입니다.
  • 대변자산 계정(Assets:…:AccumDep)은 원가와 같은 Assets 섹션에 존재하지만, 대변(credit) 잔액을 가짐으로써 자산 가치를 감소시킵니다.
  • Beancount에서는 Cost, AccumDep, Expenses:Depreciation 세 계정을 조합해 원가와 감가상각을 명확히 구분합니다.
  • 수동 입력, Fava 플러그인, 혹은 서드파티 자동화 플러그인 중 필요와 상황에 맞는 방식을 선택하면 됩니다.

참고 문서 및 추가 자료

  • Beancount 공식 문서 – 기본적인 파일 구조와 계정 관리 방법을 다룹니다.
  • Fava 사용자 가이드 – 플러그인 설정 및 보고서 커스터마이징 방법을 제공합니다.
  • 세법 전용 감가상각 표 – 미국 MACRS, 독일 AfA 등 국가별 표준 일정을 확인할 수 있습니다.
  • 재무 미니멀리즘 – 최소한의 계정 구조로 복잡성을 낮추고 투명성을 높이는 접근법을 소개합니다.

마무리

누적 감가상각은 고정자산의 실제 가치를 장부에 정확히 반영하기 위한 핵심 메커니즘입니다. Beancount의 유연한 계정 구조와 다양한 자동화 옵션을 활용하면, 복잡한 감가상각 일정을 손쉽게 구현하고, 재무 보고서를 깔끔하게 유지할 수 있습니다. 이 가이드가 여러분의 회계 워크플로우에 도움이 되길 바랍니다.

직원을 고용할 여유가 있나요?

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager
  • Beancount‑우선 가이드: 실제 비용 모델링, 현금 흐름 테스트, 그리고 원장에 연결하기.*

첫 직원을 고용하는 것은 큰 도전입니다. 미래에 대한 베팅이면서도, 제안서에 적힌 급여 숫자만큼이 아닌 훨씬 큰 재무적 약속이 따릅니다. 많은 창업자와 소기업 소유자는 급여만을 고집해 실제 “전체 포함” 비용을 간과하고 놀라게 됩니다.

2025-08-22-can-i-afford-to-hire-an-employee

이 가이드는 전체 비용을 정확히 모델링하고, 실제로 감당 가능한지 테스트한 뒤, 그 모델을 Beancount 원장에 바로 연결해 채용 결정을 채용 공고를 올리기 전에 위험을 최소화하는 방법을 안내합니다.

TL;DR

  • 급여만으로 멈추지 마세요. 미국에서는 실제 비용에 고용주 급여세(사회보장, 메디케어, FUTA/SUTA), 복리후생, 보험, 도구, 채용 비용이 포함됩니다. 민간 부문에서는 **복리후생만 평균 보상액의 30 %**를 차지해, 1.42 배의 “전체 포함” 승수로 급여에 더해집니다. 이는 기업·지역에 따라 크게 달라집니다.
  • 간단한 경험법칙: 전체 포함 비용 ≈ 급여 + 고용주 급여세 + 복리후생 + 보험 + 도구/소프트웨어 + 채용/적응 비용.
  • Beancount로 위험을 최소화하세요. Fava의 예산 기능을 사용해 원장에 월별 급여 예산을 만들고, 예측을 실행해 현금 흐름, 마진, 투자 회수 기간을 확인합니다.

1) “전체 포함” 비용을 실제로 좌우하는 요소는?

직원의 급여를 빙산의 일각이라고 생각하세요. 눈에 보이는 부분은 간단하지만, 물에 잠긴 비용이 현금 흐름을 침몰시킬 수 있습니다. 아래가 상세 내역입니다.

  • 기본 급여 (Wages/Salary): 연간 급여 또는 시급 등 합의된 금액. 가장 큰 항목이지만 시작점일 뿐입니다.

  • 고용주 급여세 (미국): 직원에게 급여를 지급할 뿐 아니라, 그 급여에 대한 세금도 고용주가 부담합니다.

    • 사회보장 (OASDI): 급여의 **6.2 %**를 연간 상한액까지 납부합니다. 2025년 기준 상한액은 $176,100.
    • 메디케어 (HI): 모든 급여에 **1.45 %**를 납부하며 상한액은 없습니다.
    • 실업세 (FUTA & SUTA): 연 $7,000까지 **6.0 %**를 부과하는 연방 실업세(FUTA). 대부분의 고용주는 주 실업세(SUTA) 납부로 크레딧을 받아 실제 FUTA율이 **0.6 %**로 낮아집니다. SUTA율은 주와 기업 이력에 따라 크게 차이납니다.
  • 복리후생: 두 번째로 큰 비용이며, 건강보험, 퇴직금(예: 401(k) 매치), 유급휴가 등을 포함합니다. 미국 민간 부문에서는 **복리후생이 전체 보상의 약 30 %**를 차지합니다. 2024년 기준 단일 건강보험 평균 연간 프리미엄은 8,951,가족보험은8,951**, **가족 보험은 25,572였습니다. 직원이 일부 부담하지만, 고용주가 대부분을 부담합니다.

  • 산재보험: 거의 모든 주에서 법적으로 요구되며, 업무 중 부상 시 의료비와 임금 손실을 보전합니다. 요율은 주·산업·직무에 따라 다르니 0으로 예산을 잡지 마세요.

  • 도구·간접비: 새 직원에게는 노트북, 소프트웨어 라이선스(SaaS), 사무실 책상, 급여 처리 소프트웨어 등이 필요합니다. 소규모 기업용 급여 서비스는 4949–50 기본료 + 직원당 66–10 정도입니다.

  • 채용·적응 비용: 일회성 비용을 잊지 마세요. 구인 광고비, 인터뷰 시간, 그리고 가장 중요한 적응 기간이 포함됩니다. 새 직원이 완전 생산성을 갖추려면 1–3개월이 걸리며, 이 기간 동안은 부분적인 산출에 대해 전체 비용을 지불하게 됩니다.


2) 구체적인 예시

실제 상황을 가정해 보겠습니다. 미국에 연 $80,000 급여를 제안하고, 단일 건강보험을 제공하며, 고용주가 평균 **84 %**를 부담한다고 가정합니다.

연간 비용 상세:

  • 고용주 급여세:

    • 사회보장 (OASDI): 80,000×6.280,000 × 6.2 % = 4,960
    • 메디케어: 80,000×1.4580,000 × 1.45 % = 1,160
    • FUTA (실제율): 7,000×0.67,000 × 0.6 % = 42
    • 총 고용주 급여세: $6,162
  • 건강보험 (고용주 부담):

    • 2024년 단일 평균 프리미엄 8,951×848,951 × 84 % = **7,519 연간** (≈ $627/월)
  • 급여 소프트웨어·도구:

    • 급여 소프트웨어: (50기본료+50 기본료 + 6/직원) × 12개월 = $672 연간
    • 도구/노트북/SaaS (예상): $2,000 연간

전체 합계:

항목연간 비용
급여$80,000
고용주 급여세$6,162
건강보험$7,519
급여 소프트웨어$672
도구·노트북$2,000
연간 총 비용$96,353
월간 비용$8,029

이 시나리오에서 전체 포함 비용은 **96,353,즉기본급여의1.20입니다.이는비교적절제된복리후생패키지이며,401(k)매치,더관대한유급휴가,가족보험등을추가하면평균1.42(96,353**, 즉 기본 급여의 **1.20 배**입니다. 이는 비교적 절제된 복리후생 패키지이며, 401(k) 매치, 더 관대한 유급휴가, 가족 보험 등을 추가하면 평균 **1.42 배**(≈ 113,800) 수준에 이를 수 있습니다.

핵심: 실제 비용은 **1.20 배(절제형)**에서 1.40 배 이상(풍부형) 사이가 될 가능성이 높습니다. 직접 계산해 보세요.


3) “감당할 수 있을까?” — 세 가지 실용 테스트

월간 비용이 $8,029라는 가정 하에, 이를 감당할 수 있는지 판단하는 방법은 다음과 같습니다.

  1. 총이익 마진 커버 여부: 역할이 스스로 비용을 회수할 수 있나요? 사업의 총이익률이 65 %라면, 새 직원은 최소 **12,352(=12,352**(=8,029 ÷ 0.65)의 월 매출을 창출해야 손익분기점에 도달합니다. 비용 절감 역할이라면 동일한 규모의 지속 가능한 비용 절감 효과가 필요합니다.

  2. 회수 기간·런웨이: 투자 회수까지 얼마나 걸리며, 그 기간 동안 살아남을 수 있나요? 역할에 대한 비즈니스 케이스는 6–12개월 회수 기간을 목표로 해야 합니다. 또한 적응 기간을 고려한 3–6개월의 현금 완충(전체 포함 비용)을 반드시 확보하세요.

  3. 적응 현실: 새 직원은 첫날 100 % 효율이 아닙니다. 1–3개월의 온보딩·생산성 저하를 예산에 포함시키세요. 현금 완충이 급여와 생산성 저하를 모두 커버하지 못한다면, 아직 준비가 안 된 것입니다. 먼저 계약직이나 파트타임으로 필요성을 검증하는 것이 좋습니다.

미국 특화 주의: 첫 고용이거나 새로운 주에서 고용한다면, 준수 요건을 반드시 재확인하세요. FUTA 크레딧 감소, 주별 SUTA 요율, 산재보험 규정 등은 주마다 크게 다릅니다. 잘못하면 벌금을 물게 됩니다.


4) Beancount에 모델 적용하기

채용 가능 여부를 판단하는 가장 확실한 방법은 원장에 직접 반영해 보는 것입니다. Beancount로 구현하는 단계는 다음과 같습니다.

A. Fava 예산 설정

먼저 custom "budget" 지시자를 사용해 예상 월 비용을 원장에 추가합니다. 이렇게 하면 새로운 비용이 수입 대비 어떻게 변하는지 시각화할 수 있습니다.

; 연 $96k 전체 포함 비용을 기준으로 한 직원 예산
2025-09-01 custom "budget" Expenses:Payroll:Wages "monthly" 6666.67 USD
2025-09-01 custom "budget" Expenses:Payroll:Taxes:Employer "monthly" 513.50 USD
2025-09-01 custom "budget" Expenses:Benefits:HealthInsurance "monthly" 626.57 USD
2025-09-01 custom "budget" Expenses:Tools:PayrollSoftware "monthly" 55.00 USD

추가하면 Fava의 손익계산서와 변동 보고서가 자동으로 새로운 비용 수준을 보여줍니다.

B. 실제 급여 처리 기록

급여를 실행할 때는 두 가지 일반적인 방법이 있습니다.

  • 상세 기록 (부채 포함): 가장 정확한 방식으로, 고용주 세금과 직원 원천징수를 구분해 부채로 기록합니다.
2025-09-30 * "Payroll - Alice (September)" ; 예시 원천징수 포함
Expenses:Payroll:Wages 6666.67 USD
; 고용주 측 세금 (직접 비용)
Expenses:Payroll:Taxes:Employer:SocialSecurity 413.33 USD
Expenses:Payroll:Taxes:Employer:Medicare 96.67 USD
Expenses:Payroll:Taxes:Employer:FUTA 3.50 USD
; 직원 원천징수 (부채)
Liabilities:Payroll:Withholding:Federal -1000.00 USD
Liabilities:Payroll:Withholding:State -300.00 USD
Liabilities:Payroll:FICA:Employee:SocialSecurity -413.33 USD
Liabilities:Payroll:FICA:Employee:Medicare -96.67 USD
; 은행 출금 (실제 직원에게 지급)
Assets:Bank:Checking -4853.54 USD

세금이 실제로 납부될 때는 부채를 정산하는 별도 거래를 기록합니다(예: Liabilities:Payroll:Withholding:FederalAssets:Bank:Checking).

  • 단순 기록 (일괄 처리): 급여 제공업체가 한 번에 전체 금액을 차감하고 상세 부채 추적이 필요 없을 경우 사용합니다.
2025-09-30 * "Gusto payroll run - Alice"
Expenses:Payroll:Wages 6666.67 USD
Expenses:Payroll:Taxes:Employer 513.50 USD
Expenses:Payroll:Fees:Provider 55.00 USD
Assets:Bank:Checking -7235.17 USD

C. 런웨이 예측

Expenses:Payroll 계정을 최상위에 두고, 거래마다 employee: "Alice" 같은 태그를 붙이면 인물별 보고서를 쉽게 필터링할 수 있습니다. 예산을 설정해 두면 Fava에서 계획 대비 실제를 월별로 겹쳐 볼 수 있습니다. 지속적으로 예산을 초과한다면 감당 가능성 테스트를 다시 수행하세요.


5) 채용이 타당한 경우·타당하지 않은 경우 (빠른 체크리스트)

타당할 가능성이 높은 경우 ✅

  • 수익성 있는 업무를 놓치고 있거나, 인력 부족으로 제품 출시가 지연될 때.
  • 구체적인 매출 목표 또는 비용 절감 목표를 정의하고, 새 직원이 이를 달성하도록 설계했을 때.
  • 현금 흐름과 마진이 충분히 양호하고, 예상 회수 기간이 합리적일 때.

타당하지 않을 가능성이 높은 경우 ❌

  • 현금 완충이 부족하거나, 적응 기간 동안 현금 흐름이 급격히 악화될 때.
  • 총이익 마진이 낮아 새 직원이 창출해야 할 매출이 비현실적으로 높을 때.
  • 법적·세무적 요건을 충족하지 못하거나, 주별 실업세·산재보험 요율을 정확히 파악하지 못했을 때.

6) 전체 포함 비용 계산 예시 (코드)

; 전체 포함 비용을 계산하는 간단한 경험법칙
2025-01-01 * "Fully Loaded Cost Calculation"
Expenses:Payroll:Wages 5000.00 USD
Expenses:Payroll:Taxes:Employer 750.00 USD
Expenses:Benefits:HealthInsurance 1500.00 USD
Expenses:Insurance:General 300.00 USD
Expenses:Tools:Software 200.00 USD
Expenses:Recruiting:Hiring 400.00 USD
; 전체 포함 비용 = 급여 + 고용주 세금 + 복리후생 + 보험 + 도구 + 채용
; (계산은 외부에서 수행하고, 결과만 원장에 기록)

이와 같이 Beancount와 Fava를 활용하면, 채용 전후의 재무 영향을 투명하게 파악하고, 위험을 최소화한 의사결정을 할 수 있습니다.

Amazon 판매자 수수료 (2025): 무엇이며—Beancount에서 기록하는 방법

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

Amazon에서 판매하는 것은 수백만 명의 고객에게 다가갈 수 있는 강력한 방법이지만, 플랫폼의 수수료 구조는 미로처럼 복잡하게 느껴질 수 있습니다. 깔끔하고 감사 가능한 복식부기를 중시하는 운영자라면, 이 비용을 정확히 추적하는 것은 선택이 아니라 필수입니다. 이 가이드는 2025년 미국 마켓플레이스의 Amazon 수수료를 상세히 풀어보고, 평문 회계 도구인 Beancount를 사용해 어떻게 기록하는지 단계별로 보여줍니다.

TL;DR ⚡

2025-08-21-amazon-seller-fees-2025

  • Amazon에서는 판매 플랜, 추천 수수료, 클로징 수수료(미디어), FBA 이행·보관료, 입고 배치료, 저재고료, 반품 처리료, 환불 관리료, 그리고 대규모 카탈로그에 대한 고용량 리스팅 수수료 등 여러 반복 비용이 발생합니다.
  • Assets:Amazon:Clearing 계정을 별도로 두고, 여기에서 매출과 수수료를 기록합니다. Amazon이 정산하면 순액을 은행 계좌로 이체하면 됩니다. 이렇게 하면 조정이 매우 쉬워집니다.
  • 각 SKU를 개별 상품(예: SKU:WATER-BOTTLE)으로 취급하면 Beancount가 로트별로 자동으로 매출원가(COGS)를 계산합니다.
  • 정산 파일이나 기간별 보고서를 가져와 Amazon의 “거래 유형”을 Beancount 비용 계정에 바로 매핑하면 빠르게 조정할 수 있습니다.

Amazon 수수료 지도 (미국 마켓플레이스)

2025년에 가장 흔히 보게 될 수수료를 정리했습니다.

판매 플랜 수수료

마켓플레이스 접근을 위한 기본 구독료입니다.

  • 개인 플랜: 월 구독료 없음. 대신 판매된 각 상품당 $0.99를 지불합니다.
  • 전문가 플랜: 월 $39.99 고정 요금이며, 개별 상품당 요금이 면제됩니다. 진지한 판매자라면 기본 선택이 됩니다. 이 외의 모든 판매 수수료는 별도로 부과됩니다.

추천 수수료

각 판매에 대해 Amazon이 부과하는 커미션입니다.

상품 판매 가격 전체(배송비·선물 포장비 포함)의 일정 비율이며, 카테고리마다 다릅니다. 대부분 8 %–15 % 구간에 속하지만, 일부는 단계별 비율(예: 첫 $500은 15 %, 그 이후는 8 %)을 적용합니다. 카테고리마다 최소 수수료가 존재하는 경우도 많으며, 보통 $0.30 정도입니다. 최신 요율표를 반드시 확인하세요.

클로징 수수료 (미디어 카테고리)

도서, 음악, 비디오, DVD 등 미디어 상품을 판매하면 **상품당 $1.80**의 고정 클로징 수수료가 추가됩니다.

FBA 이행 수수료

Fulfillment by Amazon(FBA) 이용 시 발생하는 픽·포장·배송 비용입니다. 상품의 크기·무게에 따라 달라지며, Amazon은 정기적으로 요율표를 업데이트합니다. 2025년 비피크 요율은 2024년 비피크 수준으로 1월 15일에 복귀했습니다. 최신 FBA 요율표에서 정확한 사이즈 티어와 수수료를 확인하세요.

월 보관료·노후 재고 추가 요금 (FBA)

Amazon 물류센터에 보관되는 재고 공간에 대해 부과됩니다.

  • 월 보관료: 입방피트당 청구.
  • 노후 재고 추가 요금: 일정 기간 이상 물류센터에 머물러 있는 재고에 대해 월별 추가 요금이 부과됩니다. 일반 보관료 위에 추가됩니다.

입고 배치 서비스 수수료 (FBA)

재고를 Amazon에 입고할 때 발생하는 단위당 비용으로, 물류망 전반에 제품을 배분하는 비용을 보전합니다. “New Selection” 등 특정 프로그램은 일정 한도 내에서 일시적으로 면제될 수 있습니다.

저재고료 (FBA)

고객 수요에 비해 지속적으로 재고가 낮은 표준 사이즈 제품에 적용됩니다. Amazon은 “historical days of supply”(과거 공급 일수) 지표로 판단합니다. 인기 상품의 재고가 28일 이하로 떨어지면 이 요금이 발생합니다.

반품 처리료 (FBA)

의류·신발 등 반품 비율이 높은 카테고리에서는 고객 반품당 반품 처리료가 부과됩니다. 일부 “New Selection” 상품은 일정 한도까지 면제됩니다.

환불 관리료

주문에 대해 고객에게 환불을 해줄 경우, Amazon은 이미 지급한 추천 수수료를 반환하지만, 일정 부분을 처리 수수료로 보유합니다. 이는 $5.00 또는 추천 수수료의 20 % 중 작은 금액이 적용됩니다.

고용량 리스팅 수수료 (대규모 카탈로그)

활성 SKU가 150만 개를 초과하는 대형 판매자에게만 적용됩니다. 초과 SKU당 월 $0.001이 부과됩니다.

참고: 국가·지역·카테고리별로 요율과 정책이 다를 수 있습니다. 기록하기 전에 반드시 현지 Seller Central 도움말 페이지를 확인하세요.


보고서에 수수료가 나타나는 방식 🧾

Seller Central에서 다음 두 보고서를 활용하면 회계 작업이 수월합니다.

  1. 기간별 보고서(Payments → Date Range Reports): 특정 기간의 수입·비용·세금·순이체를 요약해 줍니다. 원장 가져오기와 조정에 최적입니다.
  2. 정산 파일(예: Flat File V2): 모든 개별 거래를 상세히 보여 주며, 수수료 유형·주문 ID·금액·날짜 등이 포함됩니다. 이 데이터를 기반으로 정확히 매핑합니다.

Beancount‑First 방식으로 Amazon 활동 기록하기

아래는 Amazon 복잡한 비용 구조를 깔끔한 Beancount 항목으로 변환하는 단계입니다.

1. 최소 차트 오브 어카운트 설정

먼저 필요한 계정을 정의합니다. 아래 구조는 모든 항목을 포괄합니다.

; --- ASSETS ---
Assets:Amazon:Clearing ; Amazon “지갑”
Assets:Bank:Checking ; 정산금이 들어오는 은행 계좌
Assets:Inventory:SKU:<code> ; SKU당 서브 계정 하나씩

; --- INCOME & COGS ---
Income:Sales:Amazon
Expenses:COGS:Inventory

; --- EXPENSES ---
Expenses:Marketplace:Amazon:Referral
Expenses:Marketplace:Amazon:FBAFulfillment
Expenses:Marketplace:Amazon:Storage:Monthly
Expenses:Marketplace:Amazon:Storage:Aged
Expenses:Marketplace:Amazon:InboundPlacement
Expenses:Marketplace:Amazon:LowInventoryLevel
Expenses:Marketplace:Amazon:ReturnsProcessing
Expenses:Marketplace:Amazon:Other ; 기타 수수료

Beancount가 재고 로트와 원가를 추적하는 기능은 강력한 슈퍼파워입니다. Assets:Inventory:SKU:...{...} 형태로 원가를 지정해 “구매”하고, 판매 시 자동으로 매출원가가 계산됩니다.

2. 각 판매와 수수료 기록

예시: SKU:WATER-BOTTLE$30에 FBA로 판매했으며, 추천 수수료 $4.50, FBA 이행료 $4.24, 저재고료 $0.15가 발생했고, 해당 단위의 원가는 $5.00이었습니다.

2025-02-10 * "Amazon Order 113-2233445-6677889" "WATER-BOTTLE"
Assets:Amazon:Clearing 21.11 USD
Income:Sales:Amazon -30.00 USD
Expenses:Marketplace:Amazon:Referral 4.50 USD
Expenses:Marketplace:Amazon:FBAFulfillment 4.24 USD
Expenses:Marketplace:Amazon:LowInventoryLevel 0.15 USD
Assets:Inventory:SKU:WATER-BOTTLE -1 SKU:WATER-BOTTLE {5.00 USD}
Expenses:COGS:Inventory 5.00 USD

균형 이유: $30 매출은 Income에 크레딧, 수수료와 매출원가는 비용 계정에 차변 처리됩니다. 순 현금 $21.11Assets:Amazon:Clearing에 차변으로 들어갑니다. 재고 자산은 한 단위 감소하고, 해당 원가는 비용으로 인식됩니다.

3. 정산금 기록

Amazon이 정산금을 지급하면, Amazon “지갑”에서 실제 은행 계좌로 옮기는 간단한 이체가 됩니다.

2025-02-15 * "Amazon Payments" "Settlement disbursement"
Assets:Bank:Checking 2,500.00 USD
Assets:Amazon:Clearing -2,500.00 USD

정산 후 Assets:Amazon:Clearing 잔액이 거의 0에 가까워야 합니다. 기간별 보고서 합계와 비교해 차이를 찾아보세요.

4. 보관료·노후 재고·입고 배치료 처리

정산 파일에 별도 라인으로 나타나는 경우가 많으니, 바로 Clearing 계정에서 차변 처리합니다.

2025-03-15 * "Amazon FBA Storage Fees" "Monthly + aged inventory"
Expenses:Marketplace:Amazon:Storage:Monthly 125.40 USD
Expenses:Marketplace:Amazon:Storage:Aged 35.20 USD
Assets:Amazon:Clearing -160.60 USD

2025-03-20 * "FBA Inbound Placement Service" "Shipment split optimization"
Expenses:Marketplace:Amazon:InboundPlacement 62.00 USD
Assets:Amazon:Clearing -62.00 USD

5. 환불·반품 처리

고객이 반품하면, 정산 파일에 반품 처리료와 환불 관리료가 포함됩니다. 아래 예시는 위와 동일한 SKU를 $30에 판매했을 때 $5 환불을 진행하고, 환불 관리료가 $0.50 발생한 경우입니다.

2025-04-02 * "Amazon Refund 987-6543210" "WATER-BOTTLE refund"
Assets:Amazon:Clearing -21.11 USD ; 이전에 기록된 현금 반환
Income:Sales:Amazon 30.00 USD ; 매출 차감
Expenses:Marketplace:Amazon:Referral 4.50 USD ; 기존 수수료 차감
Expenses:Marketplace:Amazon:FBAFulfillment 4.24 USD
Expenses:Marketplace:Amazon:LowInventoryLevel 0.15 USD
Expenses:Marketplace:Amazon:RefundManagement 0.50 USD ; 환불 관리료
Assets:Inventory:SKU:WATER-BOTTLE 1 SKU:WATER-BOTTLE {5.00 USD}
Expenses:COGS:Inventory -5.00 USD

위와 같이 환불 금액을 매출에서 차감하고, 이미 발생한 수수료와 매출원가를 적절히 조정하면 회계가 정확히 맞춰집니다.


자동 조정을 위한 매핑 테이블

정산 파일을 가져올 때 Amazon의 거래 유형을 아래와 같이 Beancount 비용 계정에 바로 매핑하면 조정이 자동화됩니다.

Amazon 거래 유형                →  Beancount 비용 계정
---------------------------------------------------------
Referral Fee → Expenses:Marketplace:Amazon:Referral
FBA Fulfillment Fee → Expenses:Marketplace:Amazon:FBAFulfillment
Monthly Storage Fee → Expenses:Marketplace:Amazon:Storage:Monthly
Aged Inventory Fee → Expenses:Marketplace:Amazon:Storage:Aged
Inbound Placement Fee → Expenses:Marketplace:Amazon:InboundPlacement
Low Inventory Fee → Expenses:Marketplace:Amazon:LowInventoryLevel
Returns Processing Fee → Expenses:Marketplace:Amazon:ReturnsProcessing
Other Fees (e.g., Subscription) → Expenses:Marketplace:Amazon:Other

이 매핑을 스크립트나 CSV 임포트 템플릿에 넣어 두면, 정산 파일을 불러올 때마다 수동 입력 없이 자동으로 계정에 반영됩니다.


정리

Beancount와 같은 평문 회계 시스템은 복잡한 전자상거래 비용 구조를 투명하게 관리할 수 있는 강력한 도구입니다. 위에서 소개한 차트 오브 어카운트와 매핑 방식을 적용하면, Amazon 판매 활동을 정확히 기록·조정·보고할 수 있습니다. 이제 복잡한 수수료에 얽매이지 말고, 깔끔한 복식부기와 자동 매출원가 계산의 혜택을 마음껏 누리세요.

외상매입금이란? 텍스트 기반 Beancount 친화적 가이드: 공급업체 청구서 추적

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

외상매입금(AP)은 이미 물품이나 서비스를 받았지만 아직 결제하지 않은 공급업체에 대해 기업이 지고 있는 채무를 의미합니다. 회계상에서는 외상매입금이 대차대조표의 유동부채로 분류되며, 일반적으로 1년 이내, 보통 30~60일 내에 상환해야 하는 금액입니다.

이 개념은 발생주의 회계의 핵심으로, 청구서가 도착하는 순간 비용과 해당 부채를 동시에 기록합니다(현금이 실제로 이동하는 시점이 아니라). 이 가이드는 텍스트 기반 회계 도구인 Beancount를 사용해 외상매입금 전 과정을 깔끔하고 효율적으로 관리하는 방법을 보여줍니다.

2025-08-20-what-is-accounts-payable


빠른 요약

세부 내용에 들어가기 전에 핵심을 정리합니다:

  • 외상매입금(AP) 은 공급업체에 대한 단기 채무를 의미합니다. 대차대조표의 Liabilities 섹션에서 확인할 수 있습니다.
  • 발생주의 vs 현금주의: 외상매입금은 발생주의 회계 체계에서만 존재합니다. Beancount는 발생주의 워크플로를 완벽히 지원하며, 웹 인터페이스인 Fava가 부채를 정확히 표시합니다.
  • AP vs AR: 간단히 말해, 외상매입금은 기업이 빚진 금액이고, 외상매출금(AR) 은 다른 기업이 우리에게 빚진 금액입니다.

Beancount와 Fava에서 외상매입금이 위치하는 곳

외상매입금을 추적하려면 먼저 원장에 해당 계정을 선언해야 합니다. 일반적인 관례는 다음과 같습니다.

Liabilities:AccountsPayable

주요 공급업체별로 서브계정을 만들 수도 있습니다(예: Liabilities:AccountsPayable:ForestPaintSupply).

Fava에서는 이 계정이 대차대조표의 Liabilities 아래에 표시됩니다. 클릭하면 모든 미결 및 결제된 항목 목록을 확인할 수 있어 채무 현황을 한눈에 파악할 수 있습니다. 실제 예시는 Fava의 공개 예제 원장에서도 확인할 수 있습니다.


Beancount에서 사용할 핵심 구성 요소

견고한 외상매입금 워크플로는 몇 가지 핵심 기능에 의존합니다:

  1. 계정: Liabilities:AccountsPayable, 현금 계정(Assets:Bank:Checking) 및 다양한 비용 계정(Expenses:Supplies 등)을 주로 사용합니다.
  2. 메타데이터: 거래마다 키‑값 형태의 메타데이터를 첨부할 수 있습니다. 외상매입금에서는 invoice:, due:, terms:, document: 등을 활용합니다. Fava는 document: 키를 인식해 문서 폴더를 지정하면 클릭 가능한 링크를 자동 생성합니다.
  3. 태그 & 링크: #ap 같은 태그로 손쉽게 필터링하고, ^INV-10455 같은 링크로 청구서와 결제 거래를 논리적으로 연결합니다. 이렇게 하면 감사 가능한 흔적이 남습니다.
  4. 쿼리(BQL): Beancount의 SQL‑유사 언어인 BQL을 이용해 강력한 보고서를 만들 수 있습니다. 예를 들어 bean-query 명령어나 Fava의 “Query” 페이지에서 미결 외상매입금을 기한 순으로 나열하는 쿼리를 실행할 수 있습니다.

Beancount에서 외상매입금 핵심 워크플로

외상매입금 관리는 청구서 기록 → 결제 → (선택) 부분 결제·할인 처리의 2~3단계로 이루어집니다.

1) 공급업체 청구서 기록 (부채 생성)

청구서가 도착하면 비용을 기록하고 동시에 외상매입금을 생성합니다.

; 옵션: 문서 폴더 지정
option "documents" "documents"

2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
terms: "2/10, n/30"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

이 한 줄 입력은 두 가지 중요한 일을 합니다:

  1. 8월 회계기간에 500 USD 비용을 즉시 인식합니다.
  2. 동일 금액의 외상매입금 부채를 생성해 Forest Paint Supply에 대한 채무를 표시합니다.

^INV-10455 링크는 고유 식별자로, 이후 결제 거래에 동일 링크를 붙여 청구서와 결제를 논리적으로 연결합니다.

2) 청구서 결제 (부채 소멸)

청구서를 결제하면 은행 계좌에서 자금을 이동시켜 부채를 소멸시킵니다.

a) 일반 결제 (할인 없음)

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

이 거래는 외상매입금 잔액을 500 USD 감소시키고, 체크 계좌도 동일 금액만큼 감소시켜 부채를 정산합니다.

b) 조기 결제 할인 (예: “2/10, n/30”)

조건이 “2/10, n/30”이면 10일 이내 결제 시 2 % 할인을 받을 수 있습니다. 500 USD 청구서라면 10 USD 할인이 적용됩니다. 아래 두 방법 중 하나를 선택해 일관되게 기록합니다.

; 방법 1: 할인액을 기타수익으로 기록
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD

; 방법 2: 원래 비용을 직접 감소
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD

두 경우 모두 외상매입금 500 USD가 완전히 소멸하고, 실제 지급액 490 USD와 10 USD 할인(또는 수익)이 반영됩니다.

3) 부분 결제 처리

Beancount의 링크 기능을 활용하면 부분 결제도 깔끔하게 추적할 수 있습니다.

; 1,200 USD 청구서
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
invoice: "INV-9001"
due: "2025-09-09"
Expenses:Parts 1200.00 USD
Liabilities:AccountsPayable -1200.00 USD

; 첫 번째 결제 400 USD
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD

; 최종 결제 800 USD
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD

세 거래 모두 ^INV-9001 링크를 공유하므로, 해당 청구서와 연관된 모든 결제 내역을 한 번에 필터링할 수 있습니다.


유용한 BQL 쿼리

Fava의 “Query” 탭이나 bean-query 명령줄에서 다음 쿼리를 실행해 보세요.

팁: any_meta() 함수는 invoice:·document: 같은 메타데이터를 결과에 포함시키는 데 매우 유용합니다.

공급업체별 미결 외상매입금 (잔액 보기)

SELECT payee, COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

청구서·기한별 미결 외상매입금

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

첨부 PDF가 있는 청구서 목록

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account "^Liabilities:AccountsPayable"
ORDER BY date DESC;

Fava에서 외상매입금을 확인하는 위치

  • 대차대조표: Balance Sheet → Liabilities → AccountsPayable 로 이동하면 총 잔액과 세부 거래를 확인할 수 있습니다.
  • 원장: account:Liabilities:AccountsPayable 혹은 특정 링크(^INV-xxxx) 로 필터링하면 청구서의 전체 흐름을 볼 수 있습니다.
  • 문서 사이드바: document: 메타데이터와 option "documents" 지시자를 설정하면 사이드바에 연결된 PDF 목록이 표시됩니다.

외상매입금 Aging, Turnover, 현금 흐름 인식

  • Aging 스케줄: 미결 청구서를 1–30일, 31–60일, 60일 이상 등으로 구분합니다. Beancount에서는 “청구서·기한별 미결 외상매입금” 쿼리를 실행하고 결과를 CSV로 내보낸 뒤 스프레드시트나 간단한 Python 스크립트로 구간을 나누면 됩니다.
  • AP Turnover Ratio: 공급업체 구매 총액 ÷ 평균 외상매입금 으로 계산합니다. 연관 지표인 Days Payable Outstanding (DPO)365 ÷ Turnover Ratio 로 구합니다.
  • 지급 지연 시: 외상매입금은 단기 부채이므로, 장기 상환이 필요할 경우 해당 부채를 AccountsPayable에서 NotesPayable 등 장기 부채 계정으로 재분류합니다.
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
Liabilities:AccountsPayable -5000.00 USD
Liabilities:NotesPayable 5000.00 USD

외상매입금 관리 시 체크리스트

  1. 계정 선언Liabilities:AccountsPayable 를 원장에 반드시 포함합니다.
  2. 청구서 메타데이터invoice:·due:·terms:·document: 를 일관되게 사용합니다.
  3. 고유 링크^청구서번호 로 청구서와 결제 거래를 연결해 추적성을 확보합니다.
  4. 정기적인 리포팅 – BQL 쿼리와 Fava 대시보드를 활용해 미결 부채와 기한을 주기적으로 검토합니다.
  5. 문서 보관document: 메타데이터와 문서 폴더 옵션을 설정해 모든 청구서 PDF를 원장과 연결합니다.

실전 예시

아래 예시는 실제 비즈니스 상황에 적용 가능한 외상매입금 흐름을 보여줍니다. 코드 블록 내부는 그대로 유지됩니다.

option "title" "My Business"
option "operating_currency" "USD"
option "documents" "documents"

2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies USD
2025-01-01 open Income:Discounts:Payables USD

마무리

Beancount와 Fava를 활용하면 복잡한 외상매입금 관리도 텍스트 파일 하나간단한 메타데이터만으로 투명하게 기록하고, 필요할 때마다 강력한 BQL 쿼리로 즉시 보고서를 생성할 수 있습니다. 발생주의 원칙을 그대로 유지하면서도, 모든 거래 내역을 버전 관리 시스템(Git 등)으로 추적할 수 있다는 점이 가장 큰 장점입니다.


본 가이드는 교육 목적이며, 실제 회계 처리 시 기업 고유의 회계 정책 및 현지 법규를 반드시 검토하시기 바랍니다.