Beancount.io 소개
이 가이드는 강력한 오픈 소스 텍스트 기반 회계 도구인 Beancount를 사용하여 일반 텍스트 회계를 위한 모범 사례를 종합합니다. 여기에는 기본 철학, 기본에서 고급 구문, 복잡한 자산에 대한 실제 사례 연구 및 장기 원장 관리 전략이 포함됩니다.
파트 1: "왜" - 스마트 부기의 기초
"어떻게"를 살펴보기 전에 "왜"를 이해하는 것이 중요합니다. 효과적인 부기는 개인 재정 관리의 기반이자 재정적 명확성과 자유를 향한 필수 단계입니다.
지출 추적 그 이상: 재정적 명확성을 향한 길
간단한 지출 추적 앱은 돈이 어디로 갔는지 알려줍니다. 강력한 회계 시스템은 그것은 물론 훨씬 더 많은 것을 알려줍니다. 순자산, 현금 흐름 및 투자 성과를 포함하여 재정 상태에 대한 완전한 그림을 제공합니다. 주요 목표는 관찰 가능성입니다. 즉, 재정 생활에 대한 명확하고 데이터 기반의 이해를 얻어 정보에 입각한 결정을 내리고 위험을 평가하며 은퇴와 같은 장기 목표를 향해 노력할 수 있습니다.
왜 복식 부기인가? 균형 잡힌 시스템의 힘
단식 부기(단순한 지출 목록)와 달리 복식 부기 방식은 모든 거래를 최소 두 계정 간의 가치 흐름으로 기록합니다. 핵심 원칙은 기본적인 회계 방정식입니다.
이 시스템은 장부가 항상 균형을 이루도록 보장하여 오류를 크게 줄입니다. 대차 대조표(소유 및 부채) 및 손익 계산서(수입 및 지출)와 같은 필수 보고서를 생성하여 완전한 재정적 그림을 제공합니다.
파트 2: Beancount 시작하기
Beancount는 강력한 Python 기반의 일반 텍스트 회계 도구입니다.
Beancount.io의 Fava로 첫 경험하기
Beancount.io는 Beancount 엔진과 모바일 앱(iOS, Android) 및 웹 앱인 Fava(원장을 시각화하기 위한 훌륭한 웹 기반 인터페이스)를 결합한 강력한 환경을 제공합니다. 설치가 필요하지 않습니다. 플랫폼을 사용하면 원장 파일(예: main.bean
)에 대한 텍스트 편집기와 직접 상호 작용하고 Fava에서 생성된 보고서가 실시간으로 업데이트되는 것을 볼 수 있습니다.
Fava는 사용자가 작성한 일반 텍스트를 대화형 차트, 재무 제표 및 필터링 가능한 거래 목록으로 변환하여 재무 보고서에 대한 명확한 보기를 제공합니다.
다섯 가지 핵심 계정 유형
Beancount는 원장의 구조를 형성하는 다섯 가지 최상위 계정 유형을 사용합니다.
계정 유형 | 설명 | 일반적인 잔액 |
---|---|---|
자산 | 소유하고 있는 것(현금, 은행 계좌, 투자, 부동산). | 양수 |
부채 | 빚지고 있는 것(신용 카드 부채, 대출, 모기지). | 음수 |
수입 | 돈이 들어오는 곳(급여, 보너스, 이자). | 음수 |
지출 | 돈이 나가는 곳(음식, 임대료, 여행, 세금). | 양수 |
자본 | 순자산; 초기 잔액에 사용됩니다. | 음수 |
Beancount 방정식
Beancount는 전체 원장의 모든 분개 합계가 0이 되는 자체 버전의 회계 방정식을 적용합니다.
이것이 관례상 수입
, 부채
및 자본
계정이 음수 값을 갖는 이유입니다. 이는 자산
과 지출
을 증가시키는 자금의 출처입니다.
파트 3: Beancount의 언어 - 핵심 구문
Beancount의 모든 항목은 날짜로 시작하는 지시문입니다.
계정(open
) 및 상품 정의
계정을 사용하기 전에 open
지시문으로 선언해야 합니다. 선택적으로 통화 또는 "상품"을 지정할 수도 있습니다.
; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:Google
상품은 실제 통화(예: USD
, JPY
) 또는 항공 마일리지(MILES_UA
) 또는 주식 티커(HOOL
)와 같이 사용자가 정의하는 사용자 지정 단위일 수 있습니다.
첫 번째 거래 기록하기(*
)
거래는 가장 일반적인 항목입니다. 날짜, 플래그(*
는 완료된 거래, !
는 불완전한 거래), 선택적 수취인 및 설명으로 시작합니다. 다음에 오는 각 줄(두 칸 공백으로 들여쓰기됨)은 계정에 대한 "분개"입니다.
; YYYY-MM-DD * "Payee" "Description"
; Account1 Amount Commodity
; Account2 -Amount Commodity
2024-07-28 * "Trader Joe's" "주간 식료품"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover -125.50 USD
편의를 위해 거래에 분개가 두 개만 있는 경우 두 번째 줄에서 금액을 생략할 수 있으며 Beancount가 자동으로 계산합니다.
2024-07-28 * "Trader Joe's" "주간 식료품"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover
거래 수준 균형 조정: 일상적인 사용에서 더욱 중요한 것은 모든 개별 거래도 균형을 이루어야 합니다. 즉, 단일 거래 내의 모든 분개 합계는 0이어야 합니다. 거래가 균형을 이루지 못하면 Beancount는 다음과 같은 오류를 표시합니다.
다중 통화 거래 처리하기(@
및 @@
)
Beancount는 다중 통화 회계에 탁월합니다.
@
를 사용하여 단위당 환전 가격을 지정합니다.@@
를 사용하여 총 환전 비용을 지정합니다.
; USD 카드로 EUR로 항공편 구매
2024-08-01 * "Lufthansa" "베를린행 항공편"
Expenses:Travel:Flights 500.00 EUR @@ 545.00 USD ; 500 EUR는 총 545 USD의 비용이 들었습니다.
Liabilities:CreditCard:US:Discover -545.00 USD
파트 4: 정확성 보장 - 조정 기술
정확한 원장을 유지하기 위한 핵심 방법은 정기적인 조정입니다. 여기에는 Beancount 원장의 잔액을 금융 기관의 공식 명세서와 비교하는 것이 포함됩니다.