이 여섯 개의 실제 작동하는 Beancount 원장 중 하나에서 검증된 계정 구조를 복사한 뒤, 계정 이름을 바꾸고 가상의 금액을 자신의 것으로 교체하세요. 임베드된 모든 원장은 공개되어 있고 Git으로 버전 관리되며 bea check로 검증됩니다. 상장 기업 공시를 같은 방식으로 재현하려면 Beancount로 상장 기업 모델링하기를 참고하세요.
다운로드한 파일에서 시작하기
복사-붙여넣기를 건너뛰세요: 가계, 봉투, 프리랜서 패턴은 각각 가상의 샘플 데이터가 담긴 실행 가능한 스타터 원장으로 제공됩니다.
- 아래에서 패턴 하나를 고르세요: 현금과 카드는 가계, 예산 목표는 봉투, 청구서는 프리랜서입니다.
- 해당 패턴 옆의 링크에서 파일을 다운로드하세요.
- 저장한 파일을
bea --file <file> check로 검증하세요. 깨끗한 원장은bea check에서 종료 코드 0으로 끝나며, 오류가 있으면 0이 아닌 종료 코드와 함께 나열됩니다. fava로 열고 브라우저에 출력된 주소를 사용하세요.
일상적인 개인 재무
은행마다 자산 계정 하나, 신용카드마다 부채 하나, 그리고 보고서가 답하기를 원하는 질문에 대해 비용 계정을 사용하세요. 전체 예시는 급여, 복리후생, 이체, 잔액 검증, 투자 보유분까지 보여줍니다.
현금, 카드, 소득, 일반 지출을 하나의 장부로 관리하고 싶을 때 이 구조를 복사하세요:
option "operating_currency" "USD"
2026-01-01 open Assets:Bank:Checking USD
2026-01-01 open Liabilities:CreditCard USD
2026-01-01 open Equity:Opening-Balances USD
2026-01-01 open Expenses:Food:Groceries USD
2026-01-01 * "Opening balance"
Assets:Bank:Checking 3,000.00 USD
Equity:Opening-Balances -3,000.00 USD
2026-01-18 * "Corner Market" "Weekly groceries"
Liabilities:CreditCard -71.90 USD
Expenses:Food:Groceries 71.90 USD
2026-01-25 * "Credit card" "Statement payment"
Liabilities:CreditCard 71.90 USD
Assets:Bank:Checking -71.90 USD신용카드 계정은 구매 날짜와 현금 결제 날짜를 분리해서 유지합니다. 실제 계정마다 월별 balance 검증을 추가하면 가져오기 오류가 숨을 수 없습니다.
이 패턴을 household-starter.bean으로 다운로드한 뒤 bea --file household-starter.bean check와 fava household-starter.bean을 실행하세요. 이 파일은 위 코드 블록과 일치합니다: 당좌예금은 2928.10 USD, 식료품은 71.90 USD, 카드는 0으로 끝납니다. Corner Market, 3,000.00 시작 잔액, 71.90 금액을 자신의 은행, 카드, 지출로 교체하세요.
이월되는 봉투 예산
각 봉투를 실제 은행 계정 위에 얹힌 자본 하위 계정으로 모델링하세요. 급여를 할당하면 자본 내에서 가치가 이동하고, 구매는 현금 이동과 예산 결정을 모두 기록합니다.
Equity:Budget 트리를 복사하고 계획을 실제 돈과 분리해서 유지하세요:
option "operating_currency" "USD"
2026-01-01 open Assets:Bank:Checking USD
2026-01-01 open Income:Salary USD
2026-01-01 open Expenses:Groceries USD
2026-01-01 open Equity:Budget:Unallocated USD
2026-01-01 open Equity:Budget:Groceries USD
2026-01-05 * "Acme Corp" "January salary"
Assets:Bank:Checking 4,100.00 USD
Income:Salary -4,100.00 USD
2026-01-05 * "Budget" "Fund groceries"
Equity:Budget:Unallocated -550.00 USD
Equity:Budget:Groceries 550.00 USD
2026-01-08 * "Whole Foods" "Weekly shop"
Assets:Bank:Checking -128.44 USD
Expenses:Groceries 128.44 USD
Equity:Budget:Groceries -128.44 USD
Equity:Budget:Unallocated 128.44 USD구매 시 두 쌍이 독립적으로 균형을 이룹니다. 이 분리 덕분에 조정된 은행 잔액을 바꾸지 않고도 봉투를 초기화하거나 재할당할 수 있습니다. Fava의 목표 대비 실적 표시에는 대신 더 단순한 예산 지시문을 사용하세요.
이 패턴을 envelope-budgeting-starter.bean으로 다운로드한 뒤 bea --file envelope-budgeting-starter.bean check와 fava envelope-budgeting-starter.bean을 실행하세요. 이 파일은 위 코드 블록과 일치합니다: 당좌예금은 3971.56 USD로 끝나고, Groceries 봉투는 -421.56 USD의 Unallocated에 대응해 421.56 USD를 보유합니다. Acme Corp, 4,100.00 급여, 550.00 할당을 자신의 급여와 봉투로 교체하세요.
프리랜서 청구와 미수금
수익을 얻은 시점에 청구서를 기록한 뒤, 고객이 지불하면 미수금을 정리하세요. 고객마다 별도의 미수금 계정을 두면 미지급 및 부분 지급 청구서가 일반 잔액으로 드러납니다.
미수금 트리를 복사하고 두 이벤트 모두에 청구서 번호를 넣으세요:
option "operating_currency" "USD"
2026-01-01 open Assets:Bank:Business USD
2026-01-01 open Assets:Receivable:Northwind USD
2026-01-01 open Income:Consulting USD
2026-01-09 * "Northwind Traders" "January retainer"
invoice: "2026-001"
due: 2026-02-08
Assets:Receivable:Northwind 6,000.00 USD
Income:Consulting -6,000.00 USD
2026-02-05 * "Northwind Traders" "Payment — invoice 2026-001"
invoice: "2026-001"
Assets:Bank:Business 6,000.00 USD
Assets:Receivable:Northwind -6,000.00 USD판매세는 소득이 아니라 부채에 추가하고, 추정 세금 현금은 지불하기 전에 준비금 자산으로 옮기세요. 실제 원장은 두 패턴, 부분 지급, 재청구 비용, 대손 상각을 모두 보여줍니다.
이 패턴을 freelance-starter.bean으로 다운로드한 뒤 bea --file freelance-starter.bean check와 fava freelance-starter.bean을 실행하세요. 이 파일은 위 코드 블록과 일치합니다: Business는 6000.00 USD, Consulting은 -6000.00 USD, 미수금은 0으로 끝납니다. Northwind Traders, 청구서 2026-001, 6,000.00 금액을 자신의 고객과 청구서로 교체하세요.
임대 부동산과 주택담보대출 원금
부동산은 자산으로, 모기지는 부채로, 세입자의 보증금은 되돌려줘야 할 돈으로 취급하세요. 각 모기지 지불을 이자, 원금, 에스크로로 나누면 대차대조표와 손익계산서가 서로 다른 진실을 말하게 됩니다.
월별 활동을 추가하기 전에 부동산, 부채, 운영 계정 그룹을 복사하세요:
option "operating_currency" "USD"
1970-01-01 commodity PROP123MAIN
2024-01-01 open Assets:RealEstate:Property PROP123MAIN
2024-01-01 open Assets:Bank:Checking USD
2024-01-01 open Assets:Bank:EscrowImpound USD
2024-01-01 open Liabilities:Mortgage USD
2024-01-01 open Income:RealEstate:Rent USD
2024-01-01 open Expenses:RealEstate:MortgageInterest USD
2024-03-15 * "Escrow" "Buy rental property"
Assets:RealEstate:Property 1 PROP123MAIN {400,000.00 USD}
Assets:Bank:Checking -80,000.00 USD
Liabilities:Mortgage -320,000.00 USD
2024-04-01 * "Bank" "Mortgage payment"
Expenses:RealEstate:MortgageInterest 1,866.67 USD
Liabilities:Mortgage 262.39 USD
Assets:Bank:EscrowImpound 566.67 USD
Assets:Bank:Checking -2,695.73 USD토지, 감가상각 대상 건물 가치, 자본 개선, 누적 감가상각, 에스크로 활동을 구분해서 유지하세요. 임대 부동산 가이드는 이 잔액들이 보고서에 어떻게 반영되는지 설명합니다.
암호화폐 로트와 취득원가
모든 구매에 중괄호로 원가를 부여하고, 매도할 때 동일한 로트를 지정하세요. 그러면 Beancount가 취득 날짜와 취득원가를 지갑, 거래소, 과세 대상 처분 전반에 걸쳐 추적하며, 투자를 하나의 혼합 잔액으로 축소하지 않습니다.
상품, 거래소 계정, 명시적 실현 손익 분개를 복사하세요:
option "operating_currency" "USD"
1970-01-01 commodity BTC
2024-01-01 open Assets:Crypto:Coinbase:BTC BTC
2024-01-01 open Assets:Crypto:Coinbase:USD USD
2024-01-01 open Expenses:Crypto:Fees:Trading USD
2024-01-01 open Income:Crypto:CapitalGains:ShortTerm USD
2024-02-15 * "Coinbase" "Buy 0.10 BTC"
Assets:Crypto:Coinbase:BTC 0.10 BTC {43,800.00 USD, 2024-02-15}
Assets:Crypto:Coinbase:USD -4,380.00 USD
2024-08-20 * "Coinbase" "Sell the February lot"
Assets:Crypto:Coinbase:BTC -0.10 BTC {43,800.00 USD, 2024-02-15}
Assets:Crypto:Coinbase:USD 5,900.00 USD
Expenses:Crypto:Fees:Trading 8.85 USD
Assets:Crypto:Coinbase:USD -8.85 USD
Income:Crypto:CapitalGains:ShortTerm -1,520.00 USD자기 지갑 간 이체는 소득을 발생시키지 않고 로트를 보존합니다. 실제 원장은 스테이킹, 채굴, 탈중앙화 금융, NFT까지 이어집니다. 재고 가이드는 부기 방법과 로트 감소를 설명합니다.
암호화폐 예시는 보고서를 재현할 수 있도록 정적인 날짜별 가격을 사용합니다. 호스팅 원장에서 자신이 보유한 지원 자산에 대해서는 실시간 가격 설정으로 평가 시세를 자동으로 유지하세요. 심볼과 시세 통화를 일치시키는 것이 중요합니다. 피드는 이 거래 예시들을 변경하지 않습니다.
주식 로트, 배당금, 분할
주식은 숫자가 아니라 로트입니다: 알려진 날짜에 알려진 원가로 취득한 수량입니다. 모든 증권사 매수를 명시적 {cost, date}로 기록하면 이후 매도 시 처분하는 정확한 로트를 지정할 수 있어, Beancount가 두 로트를 평균 내는 대신 실현 손익과 보유 기간을 계산합니다. 배당금은 조정된 주가에 묻히지 않고 소득으로 드러납니다.
증권 계정 구성, 날짜가 있는 로트, 특정 로트 매도를 복사하세요:
option "operating_currency" "USD"
option "booking_method" "STRICT"
1970-01-01 commodity ACME
2024-01-01 open Assets:Brokerage:Cash USD
2024-01-01 open Assets:Brokerage:ACME ACME
2024-01-01 open Equity:Opening USD
2024-01-01 open Income:Dividends:Qualified USD
2024-01-01 open Income:CapitalGains:LongTerm USD
2024-01-01 open Expenses:Brokerage:Commissions USD
2024-01-08 * "Broker" "Wire funding to taxable brokerage account"
Assets:Brokerage:Cash 50,000.00 USD
Equity:Opening -50,000.00 USD
2024-06-18 * "Broker" "Buy 150 ACME @ $68.20"
Assets:Brokerage:ACME 150 ACME {68.20 USD, 2024-06-18}
Expenses:Brokerage:Commissions 4.95 USD
Assets:Brokerage:Cash -10,234.95 USD
2025-03-14 * "Broker" "ACME quarterly cash dividend"
Assets:Brokerage:Cash 63.00 USD
Income:Dividends:Qualified -63.00 USD
2026-02-20 * "Broker" "Sell 60 ACME from the 2024 lot — long-term gain"
Assets:Brokerage:ACME -60 ACME {68.20 USD, 2024-06-18}
Assets:Brokerage:Cash 5,778.00 USD
Expenses:Brokerage:Commissions 4.95 USD
Assets:Brokerage:Cash -4.95 USD
Income:CapitalGains:LongTerm -1,686.00 USD
2026-02-21 balance Assets:Brokerage:ACME 90 ACME
2026-02-21 balance Assets:Brokerage:Cash 45,601.10 USD손익 분개는 맞춤 값이 아니라 산술입니다: 60주를 주당 96.30 USD에 매도하면 5,778.00 USD의 매도 대금이 4,092.00 USD의 취득원가에 대응하며, 로트의 2024-06-18 날짜가 이를 장기 보유로 만듭니다. 실제 원장은 재투자된 ETF 분배금, 총 취득원가를 보존하는 4대 1 분할, 두 번째 로트에서의 단기 매도, 연말 주식 수 검증으로 이어집니다. option "booking_method" "STRICT"가 "ACME 40주 매도"를 조용한 평균이 아니라 오류로 만드는 설정입니다. 옵션 가이드는 대안을 다룹니다.
주식 예시는 ACME 같은 가상 심볼과 정적 가격 파일을 사용합니다. 가상의 상품에 실제 티커 피드를 대신 사용하지 마세요. 재현 가능한 이 예시에는 수동 가격을 유지하면서, 자신이 보유한 자산에는 실시간 가격으로 지원되는 쌍을 선택하세요.