본문으로 건너뛰기

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

모든 태그 보기

Beancount 치트 시트

· 약 2분
Mike Thrift
Mike Thrift
Marketing Manager

예시 계정명

Assets:US:BofA:Checking

치트시트

계정 유형

Assets          +
Liabilities -
Income -
Expenses +
Equity -

상품

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

지시문

일반 구문

YYYY-MM-DD <Directive> <Parameters...>

계정 개설 및 종료

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; 통화 제약

2015-04-23 close Assets:Checking

상품 선언 (선택 사항)

1998-07-22 commodity AAPL
name: "Apple Computer Inc."

가격

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

메모

2013-03-20 note Assets:Checking "Called to ask about rebate"

문서

2013-03-20 document Assets:Checking "path/to/statement.pdf"

거래

2015-05-30 * "Some narration about this transaction"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Cable Co" "Phone Bill" #tag ˆlink
id: "TW378743437" ; 메타데이터
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; 금액을 하나 생략할 수 있습니다

포스팅

  ...    123.45 USD                             Simple
... 10 GOOG {502.12 USD} With per-unit cost
... 10 GOOG {{5021.20 USD}} With total cost
... 10 GOOG {502.12 # 9.95 USD} With both costs
... 1000.00 USD @ 1.10 CAD With per-unit price
... 10 GOOG {502.12 USD} @ 1.10 CAD With cost & price
... 10 GOOG {502.12 USD, 2014-05-12} With date
! ... 123.45 USD ... With flag

잔액 검증 및 패딩

; 지정된 통화에 대해서만 금액을 검증합니다:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; 다음 검증을 만족시키기 위해 자동으로 거래를 삽입합니다:
2015-06-01pad Assets:Checking Equity:Opening-Balances

이벤트

2015-06-01 event "location" "New York, USA"
2015-06-30 event "address" "123 May Street"

옵션

option "title" "My Personal Ledger"

기타

pushtag #trip-to-peru
...
poptag #trip-to-peru
; 주석은 세미콜론으로 시작합니다

Beancount와 함께하는 플레인 텍스트 회계의 마법

· 약 4분
Mike Thrift
Mike Thrift
Marketing Manager

Discover the Magic of Plain Text Accounting with Beancount

Beancount.io banner

Introduction

2023-04-18-introduction-to-beancount

플레인 텍스트 회계가 더 이상 두려운 작업이 아닌 세상에 오신 것을 환영합니다. 오늘은 강력하고 유연하며 직관적인 플레인 텍스트 회계 도구인 Beancount를 소개합니다. Beancount는 투명하고 직관적인 접근 방식을 제공함으로써 여러분이 재무를 직접 관리할 수 있도록 돕습니다.

이 포괄적인 가이드에서는 Beancount의 기본 개념을 살펴보고 핵심 개념을 설명하며, 간단하지만 강력한 기능들을 단계별로 안내합니다. 이 블로그를 모두 읽고 나면 Beancount에 대한 확고한 이해를 갖게 되며, 재무 생활을 조직하고 분석하는 데 바로 활용할 수 있게 됩니다.

What is Beancount?

Beancount는 Martin Blais가 만든 오픈 소스 플레인 텍스트 회계 시스템입니다. John Wiegley의 Ledger 시스템에서 영감을 받아, 플레인 텍스트 파일만으로 개인 및 소규모 사업 재무를 관리할 수 있는 견고하고 신뢰할 수 있는 방법을 제공하고자 합니다. Beancount를 사용하면 수입, 지출, 투자 등을 손쉽게 추적할 수 있습니다.

Why Beancount?

플레인 텍스트 회계는 전통적인 스프레드시트 기반 또는 소프트웨어 기반 회계 시스템에 비해 여러 장점을 제공합니다.

  • 투명성: Beancount 파일은 사람이 읽을 수 있는 형식이므로 재무 데이터를 이해하고 감사하기가 쉽습니다.
  • 유연성: Beancount는 필요에 맞게 쉽게 커스터마이징할 수 있으며, 좋아하는 텍스트 편집기와 버전 관리 시스템을 사용해 재무 데이터를 관리할 수 있습니다.
  • 휴대성: 재무 데이터는 어떤 기기에서도 접근 가능하며, 시스템 간 이전이나 다른 사람과 공유도 간편합니다.
  • 미래 대비: 플레인 텍스트 파일은 보편적으로 호환되므로 기술이 변하더라도 재무 데이터에 계속 접근할 수 있습니다.

Beancount's Core Concepts

Beancount를 효과적으로 사용하려면 핵심 개념을 이해하는 것이 중요합니다.

  • 트랜잭션: 수입, 지출, 계정 간 이체 등 재무 이벤트는 트랜잭션으로 기록됩니다.
  • 계정: 트랜잭션은 자산, 부채, 수입, 지출 등 하나 이상의 계정을 포함합니다.
  • 복식부기: Beancount는 복식부기를 강제하여 모든 트랜잭션이 차변과 대변이 균형을 이루도록 합니다.
  • 지시문: Beancount는 트랜잭션, 계정 개설, 기타 재무 이벤트를 정의하기 위해 일련의 지시문을 사용합니다.

Getting Started with Beancount

Beancount를 시작하려면 다음 간단한 단계를 따르세요.

  • Beancount 설치: 운영 체제에 맞는 설치 안내에 따라 Beancount를 설치합니다.
  • Beancount 파일 생성: .beancount 확장자를 가진 새 플레인 텍스트 파일을 만듭니다 (예: my_finances.beancount).
  • 계정 정의: open 지시문을 사용해 트랜잭션에 사용할 계정을 정의합니다.
  • 트랜잭션 기록: txn 지시문을 사용해 재무 트랜잭션을 기록합니다.

또는 https://beancount.io 에서 바로 가입할 수도 있습니다. 아래는 플레인 텍스트 회계 예시입니다.

Example 1: Basic Transaction

2023-04-01 open Assets:Checking
2023-04-01 open Expenses:Groceries

2023-04-10 txn "Grocery Store" "Buying groceries"
Assets:Checking -50.00 USD
Expenses:Groceries 50.00 USD

이 예시에서는 Assets:CheckingExpenses:Groceries 두 계정을 개설합니다. 2023년 4월 10일에 식료품 구매 트랜잭션을 50에기록합니다.트랜잭션은Assets:Checking잔액을50에 기록합니다. 트랜잭션은 `Assets:Checking` 잔액을 50 차감(차변)하고, Expenses:Groceries 잔액을 $50 증가(대변)시킵니다.

Example 2: Income and Expense Transaction

2023-04-01 open Assets:Checking
2023-04-01 open Income:Salary
2023-04-01 open Expenses:Rent

2023-04-05 txn "Employer" "Salary payment"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Landlord" "Monthly rent payment"
Assets:Checking -1000.00 USD
Expenses:Rent 1000.00 USD

이 예시에서는 Assets:Checking, Income:Salary, Expenses:Rent 세 계정을 개설합니다. 2023년 4월 5일에 2,000급여트랜잭션을기록하면Assets:Checking잔액이2,000 급여 트랜잭션을 기록하면 `Assets:Checking` 잔액이 2,000 증가(대변)하고 Income:Salary 잔액이 2,000감소(차변)합니다.46일에2,000 감소(차변)합니다. 4월 6일에 1,000 월세 트랜잭션을 기록하면 Assets:Checking 잔액이 1,000차감(차변)하고Expenses:Rent잔액이1,000 차감(차변)하고 `Expenses:Rent` 잔액이 1,000 증가(대변)합니다.

Example 3: Transfer Between Accounts

2023-04-01 open Assets:Checking
2023-04-01 open Assets:Savings

2023-04-15 txn "Bank" "Transfer from Checking to Savings"
Assets:Checking -500.00 USD
Assets:Savings 500.00 USD

이 예시에서는 Assets:CheckingAssets:Savings 두 계정을 개설합니다. 2023년 4월 15일에 체크 계좌에서 저축 계좌로 500을이체하는트랜잭션을기록하면Assets:Checking잔액이500을 이체하는 트랜잭션을 기록하면 `Assets:Checking` 잔액이 500 차감(차변)하고 Assets:Savings 잔액이 $500 증가(대변)합니다.

위 예시들은 Beancount의 복식부기 시스템 기본 개념을 보여줍니다. 트랜잭션을 올바르게 기록함으로써 사용자는 정확한 재무 기록을 유지하고, 재무 상황을 파악할 수 있는 보고서를 생성할 수 있습니다.

Generating Reports and Analyzing Data

Beancount는 대차대조표, 손익계산서 등 다양한 재무 보고서를 생성할 수 있는 강력한 도구 세트를 제공합니다. 또한 웹 기반 사용자 인터페이스인 Fava를 사용해 재무 데이터를 시각화하고 상호작용할 수 있습니다. https://beancount.io 는 MIT 라이선스로 제공되는 Fava 위에 구축되었습니다.

Conclusion

플레인 텍스트 회계의 힘과 단순함을 Beancount와 함께 누려보세요. 핵심 개념을 이해하고 이 가이드의 단계들을 따라 하면 개인이나 소규모 사업 재무를 손쉽고 정확하게 관리할 수 있습니다. Beancount에 익숙해지면 고급 기능과 커스터마이징 옵션을 탐색해 여러분만의 요구에 맞게 시스템을 최적화할 수 있습니다.

지출을 추적하든, 미래를 계획하든, 재무 습관을 분석하든, Beancount는 목표 달성을 위한 유연성과 투명성을 제공합니다. 사용자 친화적인 접근 방식을 통해 Beancount는 여러분의 재무 관리 방식을 혁신하고, 재무 미래를 스스로 통제할 수 있게 해줍니다.

이제 Beancount에 대한 탄탄한 기반을 갖추었으니 플레인 텍스트 회계 여정을 시작할 시간입니다. 번거로운 스프레드시트와 복잡한 소프트웨어는 이제 안녕하고, Beancount의 세계를 환영하세요. 즐거운 회계 되세요!

맞춤 링크와 쿼리로 Beancount 경험 향상

· 약 3분
Mike Thrift
Mike Thrift
Marketing Manager

Beancount는 개발자와 재무 매니아 모두에게 사랑받는 복식부기 회계 시스템으로, 단순함 속에 강력함을 가지고 있습니다. 하지만 Fava와 같은 Beancount 웹 인터페이스에서 더 많은 제어와 빠른 탐색을 원하는 사용자에게는 맞춤 사이드바 링크와 SQL 쿼리가 워크플로우를 한 단계 끌어올릴 수 있습니다.

이 가이드에서는 다음과 같은 방법을 보여드립니다:

  • Fava 사이드바에 빠른 접근 링크 추가
  • 고급 필터링 및 분석을 위한 SQL 쿼리 사용
  • 월간 검토 또는 이상 탐지를 위한 워크플로우 맞춤화

왜 Fava를 맞춤화할까요?

Fava는 이미 Beancount 원장을 보기 위한 아름다운 인터페이스이지만, 저널이 커짐에 따라 더 나은 바로가기와 스마트한 쿼리에 대한 필요성도 커집니다.

해결되는 문제점:

  • 시간 범위를 반복적으로 탐색
  • 중첩된 계정 전체의 거래 필터링
  • 음수 잔액이나 이상 현상을 더 빠르게 발견

✨ 맞춤 사이드바 링크

간단한 사이드바 바로가기로 일일 워크플로우를 개선해봅시다. 이 링크들은 Fava 왼쪽 사이드바에 표시되며 이번 달 거래나 지난 달 수입과 같은 필터링된 뷰로 바로 이동할 수 있습니다.

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

동작 방식:

  • Current Month: 현재 달로 필터링된 거래 뷰를 엽니다.
  • Last Month: 이전 달로 즉시 이동합니다—월말 검토에 유용합니다.
  • Clear All: 필터를 초기화하여 모든 항목을 다시 표시합니다.

이 바로가기는 수동 시간 입력을 없애고 Fava 사용 경험을 보다 유연하고 개인화된 느낌으로 만들어 줍니다.

🔍 맞춤 SQL 쿼리

보다 깊은 인사이트를 위해 Fava의 SQL 인터페이스는 매우 강력합니다. 아래 쿼리는 패턴에 맞는 계정에서 모든 음수 잔액을 찾아줍니다—비정상적이거나 문제 있는 거래를 표시하기에 완벽합니다.

SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)

상세 설명:

  • account '.*:BCM:.*': 이름에 :BCM:을 포함하는 계정을 필터링합니다.
  • number(units(position)) < 0: 음수 잔액을 표시합니다(예: 초과 지출된 예산).
  • 날짜 필터는 결과를 특정 1개월 기간으로 제한합니다.

활용 사례:

  • 중복 지출이나 잘못된 전표와 같은 오류 발견
  • 특정 공급업체나 카테고리 감사
  • 예산 책정을 위한 실행 가능한 인사이트를 빠르게 추출

🛠 전문가 팁: 링크와 쿼리 결합

Fava는 맞춤 쿼리로 직접 연결을 지원하지 않지만, 다음과 같이 월간 검토 습관을 만들 수 있습니다:

  • “Current Month” 링크를 사용해 검토 시작
  • 다른 창에서 저장된 쿼리 탭 열기
  • 두 화면을 동시에 검토—먼저 필터링하고, 그 다음 깊이 파고들기

이 조합은 이상이 확대되기 전에 포착하고 원장을 깨끗하게 유지하는 데 도움이 됩니다.

마무리 생각

Beancount는 설계상 최소주의이지만, 이러한 작은 개선이 효율성을 크게 높입니다. 예산을 검토하든, 이상한 잔액을 디버깅하든, 클릭을 절약하든, 맞춤 링크와 SQL 쿼리는 더 많은 힘과 적은 마찰을 제공합니다.

보너스: Fava의 맞춤 보고서를 사용한다면, 개인 재무 루틴에 맞춘 전체 대시보드까지 구축할 수 있습니다.

통제할 준비가 되셨나요?

작게 시작하세요: “Current Month” 링크를 추가합니다. 그런 다음 자신만의 쿼리를 구축하세요. 미래의 자신이 감사할 것입니다.

이와 같은 팁을 더 원하신다면, 뉴스레터를 구독하거나 Beancount.io에서 더 많은 Beancount 레시피를 살펴보세요.

Beancount에서 미래 거래 예측

· 약 1분
Mike Thrift
Mike Thrift
Marketing Manager

Beancount에는 미래 반복 거래를 예측하는 플러그인이 있습니다. beancount.io에 적용하려면 어떻게 할까요? 다음 내용을 귀하의 원장 파일에 넣으세요.

; import the plugin
plugin "fava.plugins.forecast"

; add a monthly HOA fee
2022-05-30 # "HOA fee [MONTHLY]"
Expenses:Hoa 1024.00 USD
Assets:Checking -1024.00 USD

예측 플러그인 스크린샷

2022-05-30-예측 플러그인

그럼 순이익 차트에서 예측 결과를 확인할 수 있습니다.

예측 플러그인

위의 [MONTHLY] 태그는 해당 거래가 영원히 반복됨을 의미합니다. 적용할 조건이 더 있다면 [MONTHLY UNTIL 2022-06-01], [MONTHLY REPEAT 5 TIMES], [YEARLY REPEAT 5 TIMES], 혹은 [WEEKLY SKIP 1 TIME REPEAT 5 TIMES] 를 시도해 보세요.

Beancount와 청구서 만들기 및 추적

· 약 5분
Mike Thrift
Mike Thrift
Marketing Manager

플레인‑텍스트 템플릿, 반복 가능한 워크플로, 그리고 “누가 아직 나에게 빚을 지고 있나요?” 라는 단일 쿼리


2022-02-12-crafting-tracking-invoices-with-beancount

청구서는 끝낸 작업과 기다리는 결제 사이에 끼어 있는 번거로운 일처럼 느껴질 수 있습니다. 하지만 좋은 청구서 프로세스는 건전한 현금 흐름의 핵심입니다. 두 가지 역할을 수행합니다: 고객에게 무엇을 언제 지불해야 하는지 명확히 알려주고, 회계 시스템에 필요한 확실한 사실을 제공합니다.

전용 SaaS 앱은 깔끔하고 자동화된 PDF를 보낼 수 있지만, 월 구독료가 발생하고 데이터를 독점적인 사일로에 가두는 경우가 많습니다. Beancount를 활용한 가볍고 플레인 텍스트 방식은 강력한 대안을 제공합니다. 각 청구서를 명확한 회계 항목 집합으로 전환하면 버전 관리, 풍부한 메타데이터, 즉시 쿼리와 같은 모든 이점을 누릴 수 있습니다—구독이 필요 없습니다.

최소 실행 가능한 청구서 (절대 빼먹어서는 안 될 항목들)

장부에 기록하기 전에 전문적인 청구서가 필요합니다. 형식은 간단할 수 있지만 내용은 정확해야 합니다. 오랜 시간 검증된 소기업 관행에서 차용한 이 항목들은 절대 협상할 수 없습니다.

  • 판매자 정보: 사업자명 및 실제 주소.
  • 고객 정보: 고객 이름 및 (가능하면) 주소.
  • 청구서 번호: 재사용되지 않는 고유하고 순차적인 ID. INV-045INV-044 다음 번호입니다.
  • 발행일 및 만기일: 청구서 발행일과 결제 예정일을 명확히 기재합니다.
  • 항목: 서비스 또는 제품에 대한 명확한 설명, 수량, 단가, 그리고 항목 합계.
  • 소계, 세금 및 총액: 계산식을 보여줘서 고객이 쉽게 이해할 수 있게 합니다.
  • 선택 메모: 감사 인사, 송금 안내, 혹은 고객이 제공한 구매 주문 번호 등을 적을 수 있습니다.

시작을 돕기 위해 모든 필드를 포함한 바로 편집 가능한 템플릿 세트를 만들었습니다. 스프레드시트 버전은 합계를 미리 계산해 줍니다.

Note: 청구서 템플릿은 곧 제공됩니다! 그 사이에 위에 나열된 필드를 사용해 Google Docs, Word, Sheets, Excel 또는 기타 문서 형식으로 직접 만들 수 있습니다.

청구서를 장부에 기록하기

청구서 PDF를 고객에게 보낸 후에는 Beancount에 기록해야 합니다. 이는 수익을 발생 시점에 인식하는 중요한 단계이며, 결제 시점이 아니라 수익이 발생했을 때 인식합니다. 이 과정은 두 개의 별도 거래로 구성됩니다.

1. 청구서를 발행할 때:

총액을 Income 계정에서 Assets:AccountsReceivable 로 이동하는 거래를 생성합니다. 이는 장부에 디지털 IOU를 만들게 됩니다.

; 2025‑07‑21 Invoice #045  Web design sprint for Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Web design sprint"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "ap@acme.example"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

여기서 AccountsReceivable 를 차변에, Income 계정을 대변에 기록합니다. 풍부한 메타데이터에 주목하세요: 만기일, 고유 invoice_id, 그리고 보낸 PDF에 대한 직접 link: 가 포함됩니다.

2. 고객이 결제할 때:

현금이 은행 계좌에 들어오면 두 번째 거래를 기록해 IOU 를 “정산”합니다. 이는 AccountsReceivable 잔액을 체크 계좌로 옮깁니다.

2025-08-01 * "Acme Corp" "Payment INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

INV-045Assets:AccountsReceivable 잔액이 이제 0이 되었으며, 장부는 완벽히 균형을 이룹니다.

PDF 첨부: link: 메타데이터 키는 Fava( Beancount의 웹 인터페이스)와 함께 사용할 때 특히 강력합니다. Fava는 거래 보기에서 클릭 가능한 링크를 바로 렌더링하므로 원본 문서를 클릭 한 번으로 열 수 있습니다. 이 워크플로는 2016년 기능 요청에서 이미 구상되었습니다(GitHub).

모든 미결 청구서를 나열하는 하나의 쿼리

그렇다면 아직 누가 나에게 돈을 빚지고 있나요? 이 시스템을 사용하면 이메일이나 스프레드시트를 뒤질 필요가 없습니다. 단 하나의 간단한 쿼리만 있으면 됩니다.

open-invoices.sql 라는 파일로 저장하세요:

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

터미널에서 실행합니다:

bean-query books.beancount open-invoices.sql

몇 초 만에 모든 미결 청구서에 대한 최신 연령 보고서를 받아볼 수 있습니다. 청구서 ID, 고객, 발행일, 미지급 금액이 표시됩니다. 별도의 소프트웨어는 필요 없습니다.

반복 작업 자동화

플레인 텍스트의 가장 큰 장점은 스크립트화가 가능하다는 점입니다. 이 워크플로의 지루한 부분을 자동화할 수 있습니다.

  • 템플릿 + Pandoc = PDF: 청구서 템플릿을 Markdown 으로 유지합니다. 작은 Python 스크립트가 변수(고객명, 항목, 청구서 번호 등)를 채워주고, 명령줄 도구 Pandoc이 즉시 전문 PDF 로 변환합니다.
  • Git Pre‑commit Hook: 장부를 Git 으로 관리한다면, 간단한 pre‑commit 훅을 만들어 커밋 전에 검사를 실행할 수 있습니다. 새 invoice_id 가 고유한지, 거래 포스팅이 0 으로 균형을 이루는지, link: 메타데이터에 지정된 파일이 실제 존재하는지 확인합니다.
  • Cron Job: 예약 작업(cron)을 설정해 open-invoices.sql 쿼리를 매일 밤 실행하고 요약을 이메일로 받아보세요. 매일 아침 누가 친절히 리마인드가 필요한지 바로 알 수 있습니다.

현실적인 주의사항

Beancount는 회계 도구이며 청구서 서비스가 아닙니다. 고객에게 자동 결제 알림을 보내거나 신용카드 결제를 처리해 주지는 않습니다. 워크플로는 다음과 같습니다: 템플릿 등을 사용해 청구서를 만들고 전송한 뒤, 장부에 회계 항목을 기록합니다.

대부분의 프리랜서와 소규모 사업체에게 이 수동 단계는 견고하고 감사 가능한 무료 회계 시스템을 완전히 소유하고 제어할 수 있다는 큰 장점에 비해 작은 비용에 불과합니다(beancount.io).

다음 단계

청구서를 직접 관리하고 싶으신가요? 시작 방법은 다음과 같습니다.

  1. 템플릿을 다운로드하고 다음 실제 청구서를 만들 때 순차적인 청구서 번호를 사용하세요.
  2. 보낸 PDF 를 docs/invoices/ 와 같은 전용 폴더에 저장하고, Beancount 거래에 link: 메타데이터 키로 참조하세요.
  3. open-invoices.sql 쿼리를 저장하고 주간 재무 검토 시 실행하도록 습관화하세요.

플레인 텍스트 회계가 폴리시나 제어를 포기한다는 의미는 아닙니다— 데이터베이스가 grep 가능할 뿐입니다. 간단한 템플릿과 위 스니펫만 있으면 더 빨리 결제받고 장부는 언제나 깔끔하게 유지됩니다.

Beancount에서 조정 분개: 월말 정비

· 약 4분
Mike Thrift
Mike Thrift
Marketing Manager

회계는 마지막 매출이 은행에 입금될 때 끝나는 것이 아닙니다. 비즈니스 건전성을 진정으로 파악하려면 월말 정비가 필요합니다. 매 기간 마감 시 조정 분개를 수행하게 되며, 이는 수익과 비용을 올바른 기간에 배치하고 대차대조표를 정확하게 유지하는 저널 수정 작업입니다.

플레인‑텍스트 Beancount 원장에서는 이러한 핵심 분개가 투명하게 버전 관리되고 감사하기 쉬워, 번거로운 작업을 명확하고 반복 가능한 프로세스로 전환합니다.

2022-01-25-조정-분개-Beancount-월말-정비


조정 분개의 중요성

이러한 조정을 수행하는 것은 건전한 회계의 기본입니다. 재무제표가 정확하고 신뢰할 수 있게 됩니다.

  • 발생주의 정확성: 조정 분개는 발생주의 회계의 엔진입니다. 현금 흐름과 무관하게 실제로 수익이 발생하거나 비용이 발생한 기간으로 소득과 비용을 이동시킵니다. 이는 현대 회계의 핵심인 수익 인식대응 원칙을 충족합니다 (AccountingCoach.com).

  • 신뢰할 수 있는 KPI: 핵심 성과 지표는 그 뒤에 있는 데이터가 정확할 때만 의미가 있습니다. 총이익률, 순이익, 현금 흐름 예측 등은 이연, 발생 및 추정이 올바르게 반영될 때만 진실을 말합니다 (Corporate Finance Institute).

  • 깨끗한 감사 흔적: 명시적인 월말 조정은 재무 판단의 명확한 기록을 남깁니다. 이는 감사인(및 미래의 자신)이 무엇이 왜 변경되었는지 쉽게 추적하도록 도와주어 숫자에 대한 신뢰를 구축합니다 (Accountingverse).


여섯 가지 일반적인 카테고리 (Beancount 스니펫 포함)

아래는 가장 흔히 사용되는 여섯 가지 조정 분개 유형과 Beancount 원장에 기록하는 예시입니다. adj:"accrual" 같은 메타데이터를 활용해 나중에 쉽게 찾고 분석할 수 있습니다.

1. 발생 수익

이미 획득했지만 아직 청구하거나 결제받지 않은 수익에 대한 분개입니다.

2025-07-31 * "Consulting—July hours"
Assets:AccountsReceivable 12000.00 USD
Income:Consulting
; adj:"accrual" period:"Jul-25"

2. 발생 비용

이미 발생했지만 아직 지급하지 않은 비용, 예를 들어 다음 달에 청구될 공과금에 대한 분개입니다.

2025-07-31 * "Attorney—July retainer"
Expenses:Legal 2500.00 USD
Liabilities:AccruedPayables
; adj:"accrual"

3. 이연 (선수) 수익

고객이 미리 결제했을 때 적용합니다. 시간이 지나면서 수익을 점진적으로 인식합니다.

2025-07-31 * "Annual SaaS prepayment (recognize 1/12)"
Liabilities:UnearnedRevenue 833.33 USD
Income:SaaS
; adj:"deferral"

4. 선불 (이연) 비용

연간 보험료와 같이 비용을 미리 지급했을 때, 매월 일정 부분을 비용으로 전환합니다.

2025-07-31 * "Insurance—1 mo. expense from prepaid"
Expenses:Insurance 400.00 USD
Assets:PrepaidInsurance
; adj:"deferral"

5. 감가상각 및 무형자산 상각

컴퓨터나 차량 등 장기 자산의 비용을 사용 기간에 걸쳐 배분합니다.

2025-07-31 * "Mac Studio depreciation"
Expenses:Depreciation 1250.00 USD
Assets:Computers:AccumDepr
; asset_id:"MAC-03" adj:"estimate"

6. 대손충당금

수금이 어려울 것으로 예상되는 매출채권에 대한 추정으로, 대손비용으로 기록합니다.

2025-07-31 * "Bad-debt provision (2% of A/R)"
Expenses:BadDebt 700.00 USD
Assets:AllowanceForBadDebt
; basis:"A/R" rate:0.02 adj:"estimate"

반복 가능한 워크플로우

월말 마감을 효율적이고 오류 없이 진행하려면 일관된 워크플로우를 채택하세요.

  • 별도 파일 사용: adjustments-2025-07.bean 와 같이 기간별 조정을 한 파일에 모아두고, 메인 원장 파일에서는 include 지시문으로 마지막에 불러옵니다. 이렇게 하면 최종 보고서를 생성하기 직전에 조정이 적용됩니다.

  • 메타데이터 표준화: adj:"accrual|deferral|estimate"period:"Jul-25" 와 같이 일관된 키와 값을 항상 사용합니다. 이렇게 하면 특정 유형의 조정을 쿼리하고 검토하기가 쉬워집니다.

  • 사전 검증 실행: Git에 커밋하기 전에 bean-check 로 조정 파일을 검사해 오타나 불균형 포스팅을 잡아냅니다.

  • 한 줄 검증 수행: 아래 쿼리는 해당 기간의 모든 조정이 균형을 이루는지 확인해 주어 오류가 없음을 확신시켜 줍니다.

    bean-query main.bean "SELECT account, SUM(number) WHERE meta('adj') AND meta('period') = 'Jul-25' GROUP BY account"

빠른 문제 해결 팁 🤔

  • Liabilities:UnearnedRevenue 잔액이 계속 늘어나나요? 계약 마일스톤을 검토하세요. 작업 진행에 비해 수익 인식이 너무 늦어질 수 있습니다.

  • Assets:PrepaidInsurance 잔액이 음수인가요? 자산 일정보다 빠르게 비용을 인식하고 있을 가능성이 높습니다. 상각 일정을 다시 확인하세요.

  • 이연 후 DSO(매출채권 회수일)가 악화되나요? 발생 수익이 실제 회수 문제를 가릴 수 있습니다. KPI와 함께 A/R 에이징 보고서를 활용해 연체 고객을 조기에 파악하고 현금 흐름 문제를 예방하세요.


마무리 생각

조정 분개는 번거롭게 느껴질 수 있지만, “조정 전”과 “조정 후” 손익계산서를 비교하면 그 가치가 명확히 드러납니다. Beancount와 함께라면 이러한 조정은 작은 검색 가능한 패치가 되어 코드처럼 자동화하고 검토할 수 있습니다.

월말 습관을 길들여 두면 숫자는 엔지니어링만큼 정확하게 유지됩니다.

행복한 대차대조!

Beancount.io와 함께하는 개인 재무 관리 혁신

· 약 3분
Mike Thrift
Mike Thrift
Marketing Manager

Beancounters는 전통적으로 명령줄 도구나 사설 네트워크가 있는 자체 호스팅 서버를 사용했으며, 모바일에서는 컴퓨터나 일반 텍스트 편집기를 통해 작업해야 했습니다. Beancount.io는 오픈소스 Android 및 iOS 모바일 앱과 보안 클라우드를 제공하여 원장을 이제 지문 몇 번만으로 접근할 수 있게 하여 번거로움을 크게 줄였습니다.

Beancount는 텍스트 파일에서 복식부기를 가능하게 하는 컴퓨터 언어입니다. 파일에 금융 거래를 정의하면 다양한 보고서를 생성합니다. 이 언어의 설계자인 Martin Blais는 명령줄 회계가 빠르고, 휴대 가능하며, 개방적이고, 맞춤화가 가능하다고 주장합니다.

우리는 그의 주장을 강력히 지지하며, Beancount 언어가 제공하는 힘을 체감합니다. 그리고 더 많은 사람에게 이 기술을 소개하고 싶었습니다. 이는 사용성을 개선하고 더 넓은 청중에게 접근성을 높여야 함을 의미합니다.

2022-01-08-instant-access-to-your-beancount-cloud-ledger-anytime-anywhere

모두가 명령줄을 좋아하는 것은 아니기에, Beancount.io를 만들었습니다—모두를 위한 개인 재무 관리 도구입니다. 작동 방식은 다음과 같습니다:

무거운 작업을 위해 Beancounters는 여전히 컴퓨터에서 https://beancount.io에 접속하거나 Dropbox와 동기화하여 원장을 편집·조회할 수 있습니다. 이렇게 하면 명령줄 도구의 유연성을 유지하면서도 클라우드 기반 솔루션의 크로스 디바이스 접근성을 잃지 않습니다.

일상적인 가벼운 작업, 예를 들어 즉시 항목을 추가하고 싶을 때는 모바일 앱을 통해 보안 클라우드에 연결하면 됩니다.

이 제품의 백엔드 엔지니어인 Mike Thrift는 이렇게 말합니다.

매일 노트북을 열어 bean 파일에 기록을 입력하라는 알림을 설정하곤 했습니다. 이제 Beancount.io 덕분에 외출 중에 매장에서 물건을 구매하면서도 언제든지 원장을 수정할 수 있어 훨씬 편리합니다.

Facebook 출신 소프트웨어 엔지니어 Zhi Li는 이렇게 전합니다.

모든 Beancount 파일을 Beancount.io로 이전했으며, 이제 일상 사용에 완벽히 맞습니다. 자동 데이터 백업 같은 Pro 기능을 이용하고 있지만, 서비스 개선을 위해 여러분이 더 할 수 있는 부분이 있다고 생각합니다.

지금 바로 https://beancount.io/sign-up/ 에서 가입하거나 iOS 또는 Android App 을 다운로드하세요. 우리는 최소한의 정보만 수집하도록 회원가입 과정을 간소화했습니다. 그러면 바로 사용할 수 있는 빈 원장이 제공되어 즉시 항목을 추가할 수 있습니다.

자주 묻는 질문

Beancount.io가 내 원장 데이터를 제3자에게 판매하나요?

  • 아니요. 우리는 여러분의 데이터를 안전하고 비공개로 유지하기 위해 최선을 다하며, 원장 데이터를 절대 판매하지 않습니다.

내 데이터는 안전한가요?

  • 네. 우리는 이메일과 원장을 AES256으로, 비밀번호는 BCrypt으로, 네트워크 요청은 SSL로 보호합니다.

내 원장 데이터가 종단 간 암호화되어 있나요?

  • 아니요. 기술적 제약으로 인해 프로덕션 서버에서 원장 파일을 인덱싱할 때 데이터를 메모리로 복호화해야 합니다. 따라서 팀 구성원 중 누구도 직접 접근할 수 없도록 제한하고 있습니다. 비용 문제로 Intel SGX나 기타 보안 금고를 사용할 수 없습니다.

앞으로 몇 년간 신뢰할 수 있는 서비스인가요?

  • 네. 우리는 2019년 7월 4일 Beancount.io를 처음 출시했으며, 2년 이상 안전하고 안정적으로 서비스를 운영해 왔습니다. 따라서 앞으로도 서비스를 지속할 충분한 이유가 있습니다.

새로운 기능을 요청하거나 프로젝트를 후원할 수 있나요?

Beancount에서 다중 파일 지원 도입

· 약 2분
Mike Thrift
Mike Thrift
Marketing Manager

우리 고객 중 많은 분들이 2월부터 하나의 원장에 여러 파일을 추가하는 방법을 문의해 왔습니다. 파일 구조를 통해 거래를 보관하거나 분류하고자 했습니다. 그래서 몇 달간의 작업 끝에, 이 기능을 무료로 출시하게 되어 기쁩니다.

사용 방법은 다음과 같습니다:

파일 > 새 파일 만들기

2021-09-24-multi-file-one-ledger

왼쪽 탐색 사이드바의 파일 편집기 탭으로 이동합니다. 그런 다음 “파일” 드롭다운을 따라 “새 파일 만들기”를 클릭합니다.

File > create a new file

새 파일 이름 지정

유효한 파일명을 입력하고 저장합니다. 모든 파일명은 “.bean”으로 끝나야 합니다.

Name your new file

파일 포함하기

여기서 중요한 단계입니다. 새로 만든 파일을 main.bean에 포함시켜야 합니다.

예를 들어 stock.bean을 추가했다면, main.beaninclude "stock.bean" 를 지정합니다.

Include the file

새로 고침 후 파일 이동

페이지를 새로 고침하면 “파일” 드롭다운에 파일이 나타납니다.

Refresh and go to file

파일 이름 바꾸기 또는 삭제하기

파일로 이동한 뒤 “편집” 드롭다운에서 파일 이름을 바꾸거나 삭제할 수 있습니다.

Rename or delete the file

문제가 있나요?

https://t.me/beancount 에서 질문해 주세요.

Fava 버전 1.19 업그레이드: 주요 변경 사항 및 개선점

· 약 1분
Mike Thrift
Mike Thrift
Marketing Manager

우리는 MIT 라이선스 오픈소스 소프트웨어인 Fava를 버전 1.19로 업그레이드했습니다. 지난 업데이트 이후 변경 사항은 다음과 같습니다:

  • v1.19 (2021-05-18)
    • conversioninterval 옵션에서 default-page 옵션으로 마이그레이션
    • invert-income-liabilities-equity 옵션 추가
    • CodeMirror 6으로 업그레이드
    • 불가리아어 번역 추가
    • 기타 작은 개선 및 버그 수정
  • v1.18 (2021-01-16)
    • 몇 가지 작은 개선 및 다양한 버그 수정.

흥분되시나요? 지금 바로 https://beancount.io/ledger/에서 사용해 보세요

2021-07-16-upgrade-fava-to-1-19

질문이 있으신가요? https://t.me/beancount 에서 언제든 도와드리겠습니다 :)

Beancount에서 감가상각 이해하기

· 약 2분
Mike Thrift
Mike Thrift
Marketing Manager

감가상각은 지급액을 시간에 걸쳐 여러 할부로 나눕니다. beancount.io에서는 플러그인 fava.plugins.amortize_over를 사용하여 이를 구현할 수 있습니다.

2021-01-09-amortize

감가상각을 사용하지 않으면, 차량 보험을 6개월 동안 $600 비용으로 가입하고자 할 경우, 해당 비용을 특정 날짜에 일회성 비용으로 기록해야 합니다.

2017-06-01 open Assets:Bank:Checking
2017-06-01 open Assets:Prepaid-Expenses
2017-06-01 open Expenses:Insurance:Auto


2017-06-01 * "Pay car insurance"
Assets:Bank:Checking -600.00 USD
Assets:Prepaid-Expenses

하지만 감가상각을 사용하면 파일 상단에 plugin "fava.plugins.amortize_over"를 추가하고 거래에 amortize_months: 6을 지정하여 비용을 6개월에 걸쳐 배분할 수 있습니다.

plugin "fava.plugins.amortize_over"

2020-06-01 open Assets:Bank:Checking
2020-06-01 open Assets:Prepaid-Expenses
2020-06-01 open Expenses:Insurance:Auto

2020-06-01 * "Amortize car insurance over six months"
amortize_months: 6
Assets:Prepaid-Expenses -600.00 USD
Expenses:Insurance:Auto

그 후 저널에서 해당 거래가 6개의 포스팅으로 분할된 것을 확인할 수 있습니다.

2020-11-01 * Amortize car insurance over six months (6/6) am
2020-10-01 * Amortize car insurance over six months (5/6) am
2020-09-01 * Amortize car insurance over six months (4/6) am
2020-08-01 * Amortize car insurance over six months (3/6) am
2020-07-01 * Amortize car insurance over six months (2/6) am
2020-06-01 * Amortize car insurance over six months (1/6) am

감가상각 거래 스크린샷