본문으로 건너뛰기

"재무" 태그로 연결된 15개 게시물개의 게시물이 있습니다.

모든 태그 보기

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에서 감가상각 이해하기

· 약 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

감가상각 거래 스크린샷