본문으로 건너뛰기

"Journal Entries" 태그로 연결된 2개 게시물개의 게시물이 있습니다.

모든 태그 보기

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 저널 항목: 방법, 정의 및 예시

· 약 4분
Mike Thrift
Mike Thrift
Marketing Manager

비즈니스에서 발생하는 모든 재무 거래는 기록되어야 하며, 플레인 텍스트 회계 세계에서는 이것이 저널 항목으로 시작됩니다. Beancount를 사용한다면, 저널 항목을 이해하는 것이 정확하고 감사 가능하며 깔끔한 재무 기록을 구축하는 핵심입니다.

This guide will walk you through:

2025-06-27-journal-entries

  • 저널 항목이란 무엇인가
  • 저널 항목이 왜 중요한가
  • Beancount 구문으로 저널 항목을 작성하는 방법
  • 저널 항목을 효과적으로 사용하는 방법
  • 실제 거래 예시 (고객 결제, 구매, 대출 등)

🧾 Beancount에서 저널 항목이란?

Beancount에서 저널 항목은 사람이 읽을 수 있는 플레인 텍스트 형식으로 작성된 날짜가 있는 거래입니다. 각 항목은 복식부기 원칙을 따르며—돈이 어디서 들어오는지(대변)와 어디로 나가는지(차변)를 기록하여 장부가 항상 균형을 이루도록 합니다.

2024-06-01 * "Client payment for invoice #123"
Assets:Bank:Checking 600.00 USD
Income:Sales
  • *는 거래가 확정되었음을 나타냅니다.
  • 설명은 항목의 맥락을 보여줍니다.
  • Assets:Bank:Checking이 차변(데빗)됩니다.
  • Income:Sales가 대변(크레딧)됩니다 (값은 암시됨).

모든 항목은 .beancount 파일 안에 존재합니다—버전 관리, 백업, 그리고 Vim이나 VSCode에서 편집할 수 있는 일반 텍스트 파일입니다.

📒 저널 항목이 중요한 이유

저널 항목은 원장의 기본 단위입니다.

  • 총계정원장계정 잔액에 반영됩니다.
  • 모든 보고서를 구동합니다: 손익계산서, 대차대조표, 현금 흐름표
  • 각 달러를 한 줄씩 추적하여 원천을 확인할 수 있습니다.

적절한 도구를 사용하면 이러한 거래가 UI에 표시되어—카테고리화되고, 검색 가능하며, 필터링할 수 있습니다. 하지만 모든 것은 그 간단한 플레인 텍스트 항목에서 시작됩니다.

📚 Beancount에서 복식부기가 작동하는 방식

Beancount는 복식부기를 강제합니다. 모든 거래는 균형을 이루어야 합니다: 차변 총합 = 대변 총합.

빠른 규칙

  • 차변은 자산과 비용(현금을 얻거나 비용이 발생)입니다.
  • 대변은 수익과 부채(돈을 벌거나 부채를 짊어짐)입니다.
2024-06-02 * "Bought printer ink"
Expenses:OfficeSupplies 100.00 USD
Assets:Bank:Checking

🧠 항목 시각화

저장하면 https://beancount.io/ledger/0/income_statement/ 의 왼쪽 탐색 메뉴에서 다음을 볼 수 있습니다...

  • 저널 보기: 검색, 태그, 필터링으로 거래를 확인
  • 계정 필터 드롭다운: 현재 잔액과 계정별 항목 확인
  • 손익계산서: Income:*Expenses:* 계정의 합계
  • 대차대조표: 자산에서 부채를 뺀 값

Fava는 원시 Beancount 항목을 실행 가능한 보고서로 변환해 줍니다—데이터베이스 설정이 필요 없습니다.

💡 일반적인 저널 항목 예시

✅ 고객으로부터 결제받음

2024-06-05 * "Payment for invoice #456"
Assets:Bank:Checking 1,200.00 USD
Income:Consulting

옵션: 매출채권을 사용하는 경우:

2024-05-20 * "Invoice #456 sent"
Assets:AccountsReceivable 1,200.00 USD
Income:Consulting

2024-06-05 * "Payment for invoice #456"
Assets:Bank:Checking 1,200.00 USD
Assets:AccountsReceivable -1,200.00 USD

🖨️ 사무용품 구매

2024-06-07 * "Staples run"
Expenses:OfficeSupplies 85.00 USD
Assets:Bank:Checking

🏦 대출 상환

예시: 연 $1,000을 상환하는데, 이자 $200, 원금 $800을 상환한다고 가정합니다:

2024-06-10 * "Loan repayment"
Liabilities:Loan -800.00 USD
Expenses:LoanInterest 200.00 USD
Assets:Bank:Checking -1,000.00 USD

🔒 연말 마감 항목

‘장부를 마감’하려면 일반적으로 모든 IncomeExpenses 계정을 Equity로 이전합니다.

2024-12-31 close Income:*
2024-12-31 close Expenses:*

또는 수동으로:

2024-12-31 * "Close books"
Equity:RetainedEarnings 45,000.00 USD
Income:Consulting -45,000.00 USD

🛠️ 조정 항목

만약 발생주의 회계를 적용한다면, 선불 비용, 발생 수익 등에 대한 조정 항목을 추가해야 합니다.

예시: 연간 결제된 월 $100 소프트웨어 구독

2024-01-01 * "Annual software payment"
Assets:Prepaid 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD

2024-01-31 * "Monthly amortization"
Expenses:Software 100.00 USD
Assets:Prepaid -100.00 USD

스크립트나 사용 가능한 Beancount 도구로 자동화하세요.

🧰 Beancount: 가볍고, 감사 가능하며, 강력함

Beancount는 단순한 회계 도구가 아니라 투명하고 플레인 텍스트 기반의 재무 진실이라는 개념입니다. 현대적인 원장 시스템으로서:

  • 버전 관리가 쉬움 (Git!)
  • 완전 이식 가능 (독점 데이터베이스 없음)
  • 개발자, 프리랜서, 소규모 비즈니스에 최적

시작 준비 완료?

Beancount 파일을 다음과 같이 시작합니다:

option "title" "My Business Ledger"
option "operating_currency" "USD"

2024-01-01 open Assets:Bank:Checking USD
2024-01-01 open Income:Sales USD
2024-01-01 open Expenses:OfficeSupplies USD
2024-01-01 open Equity:OpeningBalances USD

2024-01-01 * "Initial balance"
Assets:Bank:Checking 10,000.00 USD
Equity:OpeningBalances

그런 다음 선호하는 시각화 도구로 파일을 로드하면 마법을 볼 수 있습니다.

더 쉬운 시작을 원하시나요? 템플릿, 임포터, 혹은 bean-extract 같은 커뮤니티 도구를 사용해 보세요.

Beancount와 함께라면 장부가 마침내 당신만의 것이 됩니다—단순하고, 스크립트화 가능하며, 감사에 강합니다.

PDF 다운로드 버전이나 소규모 비즈니스에 특화된 예시 변형이 필요하면 알려 주세요.