본문으로 건너뛰기

Beancount의 옵션 설정

Beancount의 동작은 메인 원장 파일 상단에 배치된 option 지시어를 사용하여 사용자 정의할 수 있습니다. 이러한 키-값 쌍은 루트 계정 이름부터 통화 변환 처리 방식에 이르기까지 모든 것을 제어합니다. 이러한 옵션을 올바르게 구성하는 것은 Beancount를 특정 요구 사항에 맞게 조정하는 데 필수적입니다. ⚙️

핵심 구성 옵션

options-configuration

이러한 옵션은 원장의 기본적인 설정을 제어합니다.

기본 설정

가장 일반적으로 설정하는 옵션은 다음과 같습니다.

option "title" "개인 원장"
option "render_commas" "TRUE"
option "plugin_processing_mode" "raw"
  • title: 보고서 및 웹 인터페이스의 제목을 설정합니다.
  • render_commas: TRUE인 경우 보고서의 숫자는 천 단위 구분 기호로 형식이 지정됩니다 (예 : 1,000,000.00).
  • plugin_processing_mode: 플러그인 로드 방식을 제어합니다. raw는 명시적으로 지정한 플러그인만 로드하고, default는 표준적인 유용한 플러그인 세트를 포함합니다.

계정 이름 사용자 정의

Beancount의 5가지 기본 계정 유형의 이름을 바꿀 수 있습니다. 이는 순전히 외관상의 변경이며 보고서에 표시되는 방식만 변경합니다.

option "name_assets" "자산"
option "name_liabilities" "부채"
option "name_equity" "자본"
option "name_income" "수익"
option "name_expenses" "비용"

자본 계정 설정

Beancount는 개시 잔액 및 소득 계산을 처리하기 위해 여러 특별한 자본 계정을 자동으로 만듭니다. 이러한 계정에 대한 사용자 정의 이름을 지정할 수 있습니다.

option "account_previous_balances" "개시-잔액"
option "account_previous_earnings" "수익:이전"
option "account_current_earnings" "수익:현재"
option "account_previous_conversions" "변환:이전"
option "account_current_conversions" "변환:현재"
option "account_rounding" "반올림"
  • account_previous_balances: 개시 잔액을 원장에 삽입하는 데 사용되는 계정입니다.
  • account_current_earnings: 현재 기간의 모든 수익 및 비용 합계를 누적하여 실질적으로 순이익을 계산하는 계정입니다.
  • account_rounding: 자동 반올림으로 인한 작은 불일치가 게시되는 계정입니다.

정밀도 및 허용 오차 설정

이러한 옵션은 Beancount가 트랜잭션의 반올림 및 작은 불균형을 처리하는 방식을 제어합니다.

기본 허용 오차 설정

Beancount는 여러 통화 또는 비용이 있는 트랜잭션에 대한 허용 오차를 자동으로 추론하여 오류를 발생시키지 않고 작은 반올림 차이를 허용할 수 있습니다.

option "inferred_tolerance_default" "USD:0.01"
option "inferred_tolerance_multiplier" "1.1"
option "infer_tolerance_from_cost" "True"
  • inferred_tolerance_default: 주어진 통화에 대한 기본 허용 오차를 설정합니다. *:0.5를 사용하여 모든 통화에 대한 기본값을 설정할 수 있습니다.
  • inferred_tolerance_multiplier: 약간 더 큰 오차 범위를 제공하기 위해 허용 오차에 적용되는 계수입니다.
  • infer_tolerance_from_cost: True인 경우 허용 오차는 비용의 자릿수에서 추론됩니다.

부기 방법

이 옵션은 Beancount가 한쪽 레그가 추론된 트랜잭션을 처리하는 방법을 정의합니다.

option "booking_method" "SIMPLE"
  • SIMPLE: 트랜잭션 당 하나의 상품만 자동으로 균형을 맞출 수 있습니다. 이것은 권장되는 가장 일반적인 방법입니다.
  • FULL: 여러 상품의 균형을 맞출 수 있으며, 이는 더 복잡하고 거의 필요하지 않은 방법입니다.

통화 관리

정확한 보고를 위해서는 올바른 통화 구성이 중요합니다.

운영 통화

하나 이상의 "운영 통화"를 선언할 수 있습니다. 이는 주로 거래하고 보고서에서 보고 싶어하는 통화입니다.

option "operating_currency" "USD"
option "operating_currency" "EUR"
option "conversion_currency" "NOTHING"

운영 통화를 선언하면 Beancount는 보고서에 해당 통화에 대한 전용 열을 만들어 가장 많이 사용하는 통화로 재무 상태를 쉽게 확인할 수 있습니다. conversion_currencyNOTHING으로 설정하면 자동 변환 열이 비활성화되므로 더 깔끔한 보고서에 선호되는 경우가 많습니다.

문서 관리

Beancount는 영수증 또는 송장과 같은 외부 파일에 트랜잭션을 연결할 수 있습니다. documents 옵션은 이러한 파일이 저장된 루트 폴더를 지정합니다.

option "documents" "/path/to/documents/archive"

요구 사항:

  • 파일 이름은 YYYY-MM-DD.description.ext 형식 (예 : 2025-07-28.amazon-order.pdf)을 사용해야 합니다.
  • 서로 다른 폴더에 대해 여러 documents 옵션을 지정할 수 있습니다.
  • 경로는 메인 원장 파일을 기준으로 절대 경로 또는 상대 경로일 수 있습니다.

플러그인 시스템

Beancount의 기능은 플러그인으로 확장될 수 있습니다.

플러그인 설정

모듈 경로를 지정하여 플러그인을 활성화합니다.

option "plugin" "beancount.plugins.module_name"

앞서 언급했듯이 plugin_processing_mode 옵션은 Beancount가 지정된 플러그인만 로드할지 (raw) 아니면 기본 세트도 함께 로드할지 (default)를 제어합니다.

기술 제한 사항

이러한 옵션은 Beancount 파서의 기술적 측면을 제어합니다.

문자열 처리

구문 분석 오류를 방지하기 위해 여러 줄 문자열에서 허용되는 줄 수에 제한을 설정할 수 있습니다.

option "long_string_maxlines" "64"

실험적 기능

Beancount에는 옵션을 사용하여 활성화할 수 있는 실험적 기능이 포함되어 있는 경우가 있습니다. 예를 들어 명시적 허용 오차 구문을 활성화하려면:

option "experiment_explicit_tolerances" "True"

이를 통해 532.23 ~ 0.001 USD와 같이 트랜잭션 게시에서 직접 허용 오차를 지정할 수 있습니다.

시스템 동작 제어

이러한 옵션은 호환성 또는 특정 시스템 동작을 유지하기 위한 것입니다.

레거시 지원

이 옵션은 이전 원장과의 이전 버전과의 호환성을 위해 이전의 고정 허용 오차 값을 활성화합니다.

option "use_legacy_fixed_tolerances" "True"

고정 레거시 허용 오차는 다음과 같습니다.

  • Balance/Pad 지시어: 0.015 단위
  • 트랜잭션: 0.005 단위

권장 구성 ✅

대부분의 사용자에게 다음 구성은 강력하고 합리적인 시작점을 제공합니다.

기본 설정

option "title" "개인 원장"
option "operating_currency" "USD" // 기본 통화로 변경
option "documents" "/home/user/Documents/beancount" // 문서 경로로 변경
option "render_commas" "TRUE"

정밀도 제어

option "inferred_tolerance_default" "USD:0.01" // 기본 통화로 변경
option "inferred_tolerance_multiplier" "1.1"
option "infer_tolerance_from_cost" "True"

계정 구조

option "account_previous_balances" "자본:개시-잔액"
option "account_current_earnings" "자본:현재-수익"
option "account_rounding" "비용:반올림"

이 설정은 명확한 보고, 합리적인 정밀도 제어 및 논리적인 자본 계정 구조를 보장하여 새로운 Beancount 원장에 대한 견고한 토대를 제공합니다.