본문으로 건너뛰기

beancount.io 웹 인터페이스 가이드

beancount.io 웹 인터페이스 (Fava 기반)는 재무 데이터를 관리, 쿼리 및 시각화하는 포괄적인 도구 모음을 제공합니다. 이 가이드는 기본적인 데이터 입력부터 고급 사용자 정의 및 문제 해결에 이르기까지 주요 기능을 다룹니다.

1. 편집 및 데이터 입력

내장 편집기

인터페이스에는 Beancount 파일을 직접 변경할 수 있는 강력한 텍스트 편집기가 포함되어 있습니다. 주요 기능은 다음과 같습니다.

  • 자동 완성: Tab 키를 눌러 계정 이름, 지급인, 태그 및 링크를 완성합니다.

  • 단축키:

    • Ctrl+Space: 자동 완성 트리거.
    • Ctrl+/: 줄 주석 처리 또는 주석 해제.
    • Ctrl+D: 현재 줄 복제.
    • Alt+Up/Down: 현재 줄 위 또는 아래로 이동.
  • 스마트 커서 배치: 파일에서 $insert-entry$ 옵션을 사용하여 편집기가 열릴 때 특정 계정의 가장 최근 항목에 커서를 자동으로 배치합니다.

    option "insert-entry" "Expenses:Food:Dining-Out"

거래 추가

+ 버튼을 클릭하거나 n 키를 눌러 거래 양식을 엽니다.

  • 빠른 입력: 양식은 최근 계정을 제안하고 지급인에 대한 일반적인 금액을 기억합니다.

  • 인라인 태그/링크: 내러티브 필드에 직접 태그와 링크를 추가합니다 (예: 점심 #food ^receipt-001).

  • 거래 템플릿: #template 태그로 미래 날짜 항목을 만듭니다. 그런 다음 양식을 사용하여 항목을 찾고 채울 수 있습니다.

    2099-01-01 * "월세 지불" #template
    Expenses:Housing:Rent 1500.00 USD
    Assets:Checking -1500.00 USD

2. 문서 관리

영수증, 명세서 및 기타 파일을 거래에 효율적으로 연결합니다.

  • 드래그 앤 드롭을 통한 업로드:

    • 계정 이름에 파일을 놓아 해당 계정의 폴더에 저장합니다.
    • 저널의 거래에 파일을 놓아 직접 연결합니다.
  • 문서 저장: 파일은 Beancount 파일의 $option "documents" "path/to/your/documents"$ 지시문에 지정된 폴더에 저장됩니다.

  • 자동 연결: Beancount는 자동으로 문서를 검색하여 거래에 연결할 수 있습니다. 다음 플러그인을 사용하여 활성화합니다.

    plugin "fava.plugins.link_documents"
    plugin "fava.plugins.tag_discovered_documents"

3. BQL을 사용한 쿼리 및 분석

쿼리 페이지를 사용하면 명령줄 bean-query 도구와 유사한 Beancount Query Language (BQL) 쿼리를 실행할 수 있습니다.

  • 시각화: 쿼리 결과는 자동으로 표로 렌더링됩니다. 쿼리가 두 개의 열 (예: 날짜/문자열 및 숫자)을 반환하는 경우 인터페이스는 선, 막대 또는 트리맵 차트도 생성합니다.
  • 내보내기: 쿼리 결과를 CSV 파일로 다운로드합니다.

실제 쿼리 예제

  • 월별 비용 요약:

    SELECT account, SUM(position) AS total
    FROM postings
    WHERE account ~ '^Expenses' AND date >= 2024-01-01 AND date < 2024-02-01
    GROUP BY account
    ORDER BY total DESC;
  • 월별 수입 대 비용:

    SELECT YEAR(date) as year, MONTH(date) as month,
    SUM(IIF(account ~ '^Income', -position, 0)) as income,
    SUM(IIF(account ~ '^Expenses', position, 0)) as expenses
    FROM postings
    GROUP BY year, month
    ORDER BY year, month;

4. 사용자 정의 및 워크플로우

보기 사용자 정의

Beancount 파일에서 다음 옵션을 사용하여 인터페이스 표시를 조정합니다.

  • 계정 가시성: 사이드바에 나타나는 계정을 제어합니다.

    option "show-closed-accounts" "false"
    option "show-accounts-with-zero-balance" "false"
    option "collapse-pattern" "Assets:Investments:.*"
  • 최신 상태 표시기: 계정 옆에 있는 색상 점은 상태를 나타냅니다 (녹색은 잔액 통과, 빨간색은 실패, 노란색은 최근 잔액 확인 없음). 계정의 open 지시문에서 활성화합니다.

    2020-01-01 open Assets:Checking   fava-uptodate-indication: "TRUE"

사이드바 링크

자주 사용하는 보고서 또는 필터링된 보기에 대한 사용자 정의 링크를 사이드바에 추가합니다.

2024-01-01 custom "fava-sidebar-link" "이번 달 비용" "/income_statement/?time=month"
2024-01-01 custom "fava-sidebar-link" "모든 문서" "/journal/?show=document"

일반 구성

  • 여러 파일: 여러 .beancount 파일을 로드하는 경우 왼쪽 상단의 드롭다운을 사용하여 파일을 전환할 수 있습니다.
  • 외부 편집기: $use-external-editor$ 옵션과 URL 처리기를 사용하여 로컬 편집기에서 파일을 직접 열도록 UI를 구성합니다.
  • 언어: $language$ 옵션으로 인터페이스 언어를 설정하거나 브라우저에서 자동 감지하도록 합니다.
  • 내보내기: 내보내기 버튼을 사용하여 필터링된 저널 보기를 Beancount 형식으로 내보냅니다.

5. 성능 및 문제 해결

대용량 파일 처리

수천 건의 거래가 있는 원장의 경우 다음을 통해 성능을 향상시킵니다.

  • Include 사용: 원장을 연도 또는 월별로 여러 파일로 분할하고 include 지시문을 사용합니다.

    include "accounts.beancount"
    include "transactions/2023.beancount"
    include "transactions/2024.beancount"
  • 필터링: 시간 및 필터 옵션을 사용하여 한 번에 표시되는 데이터 양을 제한합니다.

일반적인 문제 및 해결 방법

  • 인터페이스 로드 안 됨:

    1. bean-check 명령줄 도구를 사용하여 파일에 구문 오류가 있는지 확인합니다.
    2. 웹 페이지 하단에 오류 메시지가 있는지 확인합니다.
    3. 브라우저 캐시를 지웁니다.
  • 느린 성능:

    1. UI에서 활성 날짜 범위를 줄입니다.
    2. 복잡한 BQL 쿼리를 단순화합니다.
  • 구성 오류: 옵션 이름과 사용자 정의 지시문 유형이 따옴표로 묶여 있는지 확인합니다.

    ; 올바른 예
    option "documents" "/path/to/docs"
    custom "fava-sidebar-link" "레이블" "URL"

    ; 잘못된 예 (오류 발생)
    option documents "/path/to/docs"
    custom fava-sidebar-link "레이블" "URL"