본문으로 건너뛰기

스타트업을 위한 Beancount 설정

Plain text 환경에서 스타트업 회계를 운영하기 위한 실용적이고 복사 가능한 기본 설정입니다. 시드 전 단계부터 시리즈 A까지 적용 가능합니다. 법률 또는 세무 자문이 아닙니다.


beancount-setup-for-startups

스타트업을 운영한다는 것은 다양한 역할을 수행해야 함을 의미하며, 가장 중요한 역할 중 하나는 "회계 담당자"입니다. 값비싼 소프트웨어나 정규 회계사를 고용하기 전에 정확하고 감사 가능하며 독점적인 생태계에 갇히지 않는 시스템이 필요합니다. 오픈 소스 plain text 회계 시스템인 Beancount를 사용해 보세요.

Beancount를 사용하면 재무 원장이 Git 저장소의 코드와 함께 텍스트 파일에 존재합니다. 버전 관리가 가능하고 투명하며 무한대로 사용자 정의할 수 있습니다. 이 가이드는 건전한 발생주의 회계 원칙을 기반으로 설립부터 시리즈 A까지 스타트업의 회계를 운영할 수 있도록 완벽하고 복사 가능한 설정을 제공합니다.

1) 설정할 내용

이 가이드에서는 완벽한 전문가 수준의 회계 설정을 만드는 방법을 안내합니다. 완료되면 다음을 갖게 됩니다.

  • Git (main.beancount)에서 관리되는 단일 소스 원장으로 회사 재무의 완벽하고 감사 가능한 기록을 제공합니다.
  • Fava를 통한 아름다운 보고서 및 그래프. Fava는 Beancount를 위한 웹 인터페이스로, 텍스트 파일을 대화형 손익 계산서, 대차 대조표 및 현금 흐름 분석으로 변환합니다.
  • 은행, 신용 카드, PayPal 및 Stripe 계정에서 거래 내역 입력을 자동화하기 위해 나중에 추가할 수 있는 수입자(importer) 구조. 시스템을 배우기 위해 수동으로 시작한 다음 자동화합니다.
  • 이연 수익, 선급 비용 및 급여 부채에 대한 기본 지원이 내장된 최신 스타트업을 위해 설계된 발생주의 준비가 완료된 계정 체계.
  • 부채 또는 자본으로 기록되는 SAFE 노트와 이자가 있는 전환 사채를 포함한 시드 자금 조달을 위한 기본 요소.

2) 프로젝트 구조 (리포지토리에 추가)

먼저 회사 Git 리포지토리 내부에 이 디렉토리 구조를 만듭니다. 이 구성을 통해 원장을 깔끔하고 확장 가능하게 유지할 수 있습니다.

/ledger
main.beancount
/includes
accounts.beancount
opening-balances.beancount
policies.beancount
/documents
/bank
/invoices
/receipts
/importers # 선택 사항; CSV 수집을 자동화할 때 추가
bank_importer.py
card_importer.py
  • main.beancount: 모든 것을 함께 묶는 중앙 파일입니다.
  • /includes: 계정 체계, 초기 잔액 및 회계 정책을 보관합니다.
  • /documents: 깨끗한 감사 추적을 위해 은행 명세서, 송장 및 영수증의 PDF를 저장하는 장소입니다.
  • /importers: 은행 CSV를 구문 분석하기 위한 미래의 Python 스크립트가 저장될 위치입니다.

3) 최소한의 합리적인 main.beancount

이것은 원장의 진입점입니다. 몇 가지 전역 옵션을 설정하고 다른 구성 요소 파일을 포함합니다. 이 콘텐츠를 ledger/main.beancount에 복사하고 제목을 사용자 정의합니다.

option "title" "Acme, Inc. 원장"
option "operating_currency" "USD"
option "documents" "ledger/documents"

include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"

; 나중에 수입자를 추가하면 여기에 플러그인 라인을 추가합니다.
; plugin "beancount.plugins.implicit_prices"

4) 시작 계정 체계 (발생주의 우선)

계정 체계는 회사의 재무 거래에 대한 전체 카테고리 목록입니다. 이 시작 템플릿은 발생주의 회계를 위해 구축되었으며, 이는 현금 기준 회계보다 회사의 건전성에 대한 훨씬 더 정확한 그림을 제공합니다.

이것을 includes/accounts.beancount에 넣습니다. 지금 당장 필요하지 않은 계정은 자유롭게 제거하십시오.

; --- 자산 ---
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:Bank:Savings USD
1970-01-01 open Assets:AR USD ; 매출 채권
1970-01-01 open Assets:Prepaid:Software USD
1970-01-01 open Assets:Prepaid:Insurance USD
1970-01-01 open Assets:Deposits USD ; 보증금
1970-01-01 open Assets:Equipment USD
1970-01-01 open Assets:Intangibles USD
1970-01-01 open Assets:Crypto:BTC BTC
1970-01-01 open Assets:Other

; --- 부채 ---
1970-01-01 open Liabilities:AP USD ; 매입 채무
1970-01-01 open Liabilities:CreditCard:Corporate USD
1970-01-01 open Liabilities:DeferredRevenue USD
1970-01-01 open Liabilities:Payroll:Withholding USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes USD
1970-01-01 open Liabilities:SalesTax:CA USD
1970-01-01 open Liabilities:SAFE USD
1970-01-01 open Liabilities:NotesPayable USD
1970-01-01 open Liabilities:Other

; --- 자본 ---
1970-01-01 open Equity:CommonStock USD
1970-01-01 open Equity:APIC USD ; 주식 발행 초과금
1970-01-01 open Equity:SAFE USD ; SAFE를 자본으로 분류하는 경우
1970-01-01 open Equity:RetainedEarnings USD
1970-01-01 open Equity:OpeningBalances USD

; --- 수익 (음수 잔액) ---
1970-01-01 open Income:Revenue:SaaS USD
1970-01-01 open Income:Revenue:Services USD
1970-01-01 open Income:Other USD

; --- 비용 ---
1970-01-01 open Expenses:COGS USD
1970-01-01 open Expenses:Payroll:Wages USD
1970-01-01 open Expenses:Payroll:EmployerTaxes USD
1970-01-01 open Expenses:Benefits USD
1970-01-01 open Expenses:Contractors USD
1970-01-01 open Expenses:Software:Subscriptions USD
1970-01-01 open Expenses:Cloud USD
1970-01-01 open Expenses:Rent USD
1970-01-01 open Expenses:Meals USD
1970-01-01 open Expenses:Travel USD
1970-01-01 open Expenses:Marketing USD
1970-01-01 open Expenses:Legal USD
1970-01-01 open Expenses:Accounting USD
1970-01-01 open Expenses:Insurance USD
1970-01-01 open Expenses:BankFees USD
1970-01-01 open Expenses:Taxes:Income USD
1970-01-01 open Expenses:Taxes:Sales USD
1970-01-01 open Expenses:Other USD

참고 사항

  • 수익 계정은 음수인데, 이는 복식 부기에서 대변을 나타내기 때문입니다. 걱정하지 마십시오. Fava는 보고서에서 자동으로 부호를 뒤집어 수익이 손익 계산서에 양수로 표시됩니다.
  • 좁고 목적에 맞는 카테고리로 시작하십시오. 지저분하고 지나치게 세분화된 계정 체계를 정리하는 것보다 나중에 새 계정을 추가하는 것이 훨씬 쉽습니다.

5) 초기 잔액 (첫날)

원장의 첫 번째 거래는 무대를 설정합니다. 추적을 시작하는 날 계정의 초기 상태를 기록합니다. 이 거래를 includes/opening-balances.beancount에 넣고 실제 시작 위치를 반영하도록 날짜와 금액을 조정합니다.

2025-01-01 * "초기 잔액"
Assets:Bank:Checking 5,000.00 USD
Liabilities:CreditCard:Corporate -500.00 USD
Equity:OpeningBalances -4,500.00 USD

이 항목은 회사가 은행에 $5,000가 있고 신용 카드에 $500 잔액이 있는 상태로 시작했음을 설정합니다. Equity:OpeningBalances 계정은 복식 부기에서 요구하는 대로 거래 잔액을 0으로 맞추기 위해 사용되는 특수 계정입니다.


6) 일반적인 스타트업 거래 (복사-붙여넣기)

다음은 초기 단계 스타트업에서 가장 일반적인 재무 이벤트에 대한 레시피입니다. 복사, 붙여넣기하고 자신의 용도에 맞게 조정하십시오.

창업자 주식 구매 (간단한 통화 전용)

창업자가 액면가로 초기 주식을 구매하면 현금이 회사로 들어오고 자본으로 기록됩니다. 캡 테이블(Carta, Pulley 또는 스프레드시트)은 주식 수의 진실 공급원입니다. 원장은 달러만 기록합니다.

2025-01-05 * "액면가 기준 창업자 주식 구매"
Assets:Bank:Checking 800.00 USD
Equity:CommonStock -0.80 USD
Equity:APIC -799.20 USD
; 8,000,000 보통주 @ $0.0001 — 원장 외부에서 유지되는 수

(선택 사항) 자신의 주식을 상품으로 추적

원장이 발행된 주식 수를 추적하도록 하려면 주식을 "상품"으로 정의할 수 있습니다. 이것은 더 복잡하지만 원장 내에서 더 완전한 기록을 제공합니다.

2025-01-05 commodity ACME
name: "Acme, Inc. 보통주"

2025-01-05 * "창업자 주식 발행"
Assets:Bank:Checking 800.00 USD
Equity:APIC -799.20 USD
Equity:CommonStock -8,000,000 ACME {0.0001 USD}

SAFE 현금 유입 (분류 선택)

SAFE (Simple Agreement for Future Equity)는 부채 또는 자본(특히 "메자닌 자본")의 형태로 취급할 수 있습니다. 회계사와 상담하여 올바른 접근 방식을 선택하고 일관성을 유지하십시오.

; (A) 자본 분류 (메자닌)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Equity:SAFE -500,000.00 USD

; (B) 부채 분류 (전환될 때까지)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Liabilities:SAFE -500,000.00 USD

가격이 책정된 라운드가 종료되면 SAFE 잔액을 종료 문서에 따라 우선주와 주식 발행 초과금으로 재분류합니다.

발생 이자가 있는 전환 사채

SAFE와 달리 전환 사채는 명확하게 이자가 발생하는 부채입니다. 초기 현금을 기록한 다음 주기적으로(예: 분기별) 이자 비용을 기록합니다.

2025-03-01 * "전환 사채 — 연 6%"
Assets:Bank:Checking 250,000.00 USD
Liabilities:NotesPayable -250,000.00 USD

2025-06-30 * "Q2 노트 이자 발생"
Expenses:Interest 3,750.00 USD
Liabilities:NotesPayable -3,750.00 USD
; 250,000 * 6% * 0.25 = 3,750

연간 SaaS 판매 (이연 수익 + 월별 인식)

이것은 발생주의 회계의 초석입니다. 고객이 1년 동안 선불로 지불하면 해당 수익을 한 번에 모두 얻는 것은 아닙니다. 부채 (DeferredRevenue)로 기록한 다음 매달 1/12을 인식합니다.

2025-03-10 * "연간 구독 — AcmeCo — INV-001"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
narration: "SaaS 연간 선불"

2025-03-20 * "결제 INV-001"
Assets:Bank:Checking 1,200.00 USD
Assets:AR -1,200.00 USD

; 1/12개월 인식 (매월 반복하거나 스크립팅)
2025-04-01 * "수익 인식 1/12 — INV-001"
Liabilities:DeferredRevenue 100.00 USD
Income:Revenue:SaaS -100.00 USD

선급 비용 및 상각

이것은 이연 수익의 역입니다. 연간 소프트웨어 또는 보험과 같은 서비스에 대해 선불로 지불하면 자산 (Prepaid)으로 기록한 다음 매달 일부를 "상각"하거나 비용 처리합니다.

2025-03-01 * "연간 소프트웨어 선불"
Assets:Prepaid:Software 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD

2025-04-01 * "선불 1/12 상각"
Expenses:Software:Subscriptions 100.00 USD
Assets:Prepaid:Software -100.00 USD

급여 (순 현금, 원천 징수 + 고용주 세금 포함)

급여 항목에는 여러 부분이 있습니다. 총 임금 비용, 고용주의 세금 비용, 직원에게 지급된 순 현금, 정부에 납부해야 하는 원천 징수 세금에 대한 부채입니다.

2025-04-15 * "급여 — 4월 15일"
Expenses:Payroll:Wages 15,000.00 USD
Expenses:Payroll:EmployerTaxes 1,200.00 USD
Liabilities:Payroll:Withholding -4,000.00 USD
Assets:Bank:Checking -12,200.00 USD

판매세 징수 및 송금 (예: CA)

판매세를 징수할 때 그것은 당신의 돈이 아닙니다. 주에 빚진 부채입니다. 판매를 할 때 부채를 기록하고 세금을 송금할 때 정리합니다.

2025-05-10 * "송장 #123 — CA 과세 대상"
Assets:AR 1,088.75 USD
Income:Revenue:SaaS -999.00 USD
Liabilities:SalesTax:CA -89.75 USD

2025-06-05 * "결제 #123"
Assets:Bank:Checking 1,088.75 USD
Assets:AR -1,088.75 USD

2025-07-20 * "CA 판매세 Q2 송금"
Liabilities:SalesTax:CA 89.75 USD
Assets:Bank:Checking -89.75 USD

FX 및 암호화폐 (경량)

Beancount는 여러 통화를 기본적으로 처리합니다. price 지시문을 사용하여 환율을 기록하고 특정 거래에 {} 비용 구문을 사용합니다.

2025-03-01 price EUR 1.0832 USD

2025-03-02 * "AWS EU 청구"
Expenses:Cloud 90.00 EUR
Liabilities:CreditCard:Corporate -90.00 EUR

2025-03-05 * "테스트용 BTC 구매"
Assets:Crypto:BTC 0.0200 BTC {3400.00 USD}
Assets:Bank:Checking -3,400.00 USD

7) Fava 사용 (하나의 명령으로 보고서)

Fava는 Beancount 데이터를 생생하게 만드는 훌륭한 웹 인터페이스입니다. 신중한 데이터 입력에 대한 보상입니다.

  • 설치: $ pip install fava
  • 실행: $ fava ledger/main.beancount
  • 유용한 보기: 손익 계산서, 대차 대조표, 저널 (계정/태그별 필터링), 쿼리 (사용자 지정 SQL 유사 쿼리).

빠른 Fava 필터:

  • account:DeferredRevenue: 이연 수익 계정의 모든 활동을 표시합니다.
  • tag:#invoice-001: 특정 송장과 관련된 거래에 태그를 지정하고 필터링합니다.
  • from:2025-01-01 to:2025-12-31: 특정 재무 기간에 집중합니다.

8) 월별 마감 체크리스트 (15–45분)

매월 말에 이 체크리스트를 실행하여 장부가 정확하고 최신인지 확인합니다. 이 규율은 세금 신고 및 투자자 실사를 간편하게 만듭니다.

  • 은행/신용 카드: 모든 거래를 가져오거나 수동으로 입력합니다. 명세서와 비교하여 잔액을 조정합니다.
  • AR/AP: 발행된 모든 송장과 수신된 청구서를 게시합니다. 결제된 항목을 지워진 것으로 표시합니다.
  • 수익: 모든 선불 계약에 대한 월별 수익 인식 항목을 게시합니다.
  • 선불: 모든 선불 비용의 1/12 (또는 적절한 비율)을 상각합니다.
  • 급여: 급여 제공업체의 보고서에서 분개 항목을 기록합니다.
  • 판매세: 해당 월의 판매세 부채를 기록합니다.
  • 시드 상품: 전환 사채에 대한 이자를 발생시킵니다.
  • 정상성 검사:
    • 손익 계산서 수익이 예상 MRR/ARR과 거의 일치합니까?
    • 소진율과 런웨이가 재무 계획과 일치합니까?
    • $ bean-check가 오류 없이 실행됩니까? Fava의 보고서가 올바르게 보입니까?
  • 간결하고 일관된 메모로 Git에 커밋합니다 (예: close: 2025-04).

9) 메타데이터 및 문서 (감사를 쉽게 만들기)

원장은 자체 문서화되어야 합니다. 메타데이터를 사용하고 소스 문서에 연결하여 완벽한 감사 추적을 만듭니다. 미래의 당신 (그리고 당신의 회계사)이 감사할 것입니다.

  • 명확성을 위해 payee:, narration:, invoice:, customer:, 또는 link:와 같은 메타데이터를 거래에 추가합니다.
  • 소스 PDF (송장, 영수증, 은행 명세서)를 ledger/documents/ 폴더에 첨부하고 document: 메타데이터 태그를 사용하여 연결합니다.
  • 쉬운 필터링 및 분석을 위해 태그 (#payroll, #saas, #vendor-aws, #invoice-001)를 사용합니다.

예시:

2025-03-10 * "연간 구독 — AcmeCo" #saas #invoice-001
payee: "AcmeCo"
invoice: "INV-001"
document: "documents/invoices/INV-001.pdf"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD

10) 나중에 가져오기 (시간이 있을 때)

처음 한두 달 동안 거래를 수동으로 입력하여 시작하십시오. 이것은 시스템과 자신의 지출 패턴을 배우는 가장 좋은 방법입니다. 익숙해지면 간단한 Python 수입자를 작성하여 프로세스를 자동화하고 수고를 줄일 수 있습니다.

일반적인 수입자 순서:

  1. 은행 CSV → Assets:Bank:Checking
  2. 신용 카드 CSV → Liabilities:CreditCard:Corporate
  3. Stripe/PayPal 지급 보고서 → 수익 및 현금 매핑

수입자를 /ledger/importers에 보관하고 다른 코드 변경과 마찬가지로 생성된 거래를 검토합니다.


11) 정책 ( includes/policies.beancount에 넣기)

이 파일은 일관성을 위해 회계 결정을 문서화하는 곳입니다. 간단한 텍스트 파일이지만 규율을 유지하는 데 중요합니다.

  • 발생주의 기준; SaaS 수익을 비례 배분하여 인식합니다.
  • 기능 통화는 USD입니다. 일일 환율 또는 거래 환율로 FX를 기록합니다.
  • 자본화 임계값 (예: $2,500가 넘는 항목은 Assets:Equipment 항목이 됩니다. 그렇지 않으면 즉시 비용 처리됩니다).
  • 출장/식사: 비즈니스 목적은 narration 필드에 문서화되어야 합니다.
  • 자본 기록: 통화 전용 또는 주식-상품 방법을 사용하는지 명시적으로 명시합니다.
  • SAFE/노트: 선택한 분류 (부채 또는 자본)를 문서화합니다.

예시 policies.beancount:

; 정책: 발생주의 기준, 수익은 이연되어 매월 인식됩니다.
; 정책: USD 기능 통화. FX 손익은 비용/가격 데이터에서 파생됩니다.
; 정책: $2,500 이상의 유형 자산은 3년 정액 상각으로 자본화합니다.
; 정책: SAFE는 가격이 책정된 라운드에서 전환될 때까지 부채로 기록됩니다.

12) 빠른 문제 해결

  • 저널에서 수익이 음수로 보임: 이것은 정확합니다! 수익은 대변입니다. Fava 보고서는 이를 양수로 표시합니다.
  • 잔액이 0이 아님: 거래가 불완전할 가능성이 높습니다. 거래의 분개는 0이 되어야 합니다. Fava의 저널 보기를 사용하여 원인을 찾으십시오. 임시 조치로 Equity:Suspense 계정에 잔액 조정 항목을 추가하여 파일을 유효하게 만든 다음 근본 원인을 조사하고 수정할 수 있습니다.
  • FX 불일치: 관련 날짜에 대한 price 지시문이 있는지 또는 90.00 EUR {97.49 USD}와 같이 운영 통화로 비용 기준을 지정했는지 확인합니다.

13) 원장 외부에서 추적할 항목 (링크 유지)

Beancount는 재무 거래를 위한 것이지만 일부 항목은 전용 시스템에서 더 잘 관리됩니다. 핵심은 원장에서 해당 시스템에 연결하는 것입니다.

  • 캡 테이블: Carta, Pulley 또는 스프레드시트를 사용합니다. Beancount의 자금 조달 거래에서 서명된 종료 문서에 연결합니다.
  • 이사회 동의, 주식 계획, 409A 보고서: 안전한 위치에 보관하고 관련 주식 거래에 link: 메타데이터를 추가합니다.
  • 세금 신고서: 최종 PDF를 저장하고 연말 마감 거래에서 연결합니다.

복사 준비 완료된 시작 파일 (올인원)

포함 구조로 확장하기 전에 단일 파일로 시작하려는 경우 위의 섹션에서 파일의 내용을 하나의 큰 main.beancount에 붙여넣기만 하면 됩니다. 원장이 커짐에 따라 언제든지 나중에 리팩터링할 수 있습니다.

이 프레임워크는 스타트업 재정에 대한 견고하고 확장 가능한 기반을 제공합니다. 버전 제어 하에 plain text로 장부를 유지함으로써 비할 데 없는 투명성과 제어력을 확보하여 처음부터 재정 규율을 확립할 수 있습니다.