본문으로 건너뛰기

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

모든 태그 보기

플레인-텍스트 혁명: 현대 재무 팀이 코드 기반 회계를 통해 기술 ROI를 10배로 높이는 방법

· 약 4분
Mike Thrift
Mike Thrift
Marketing Manager

최근 맥킨지 설문조사에서 CFO의 78%가 기존 레거시 재무 시스템이 디지털 전환을 방해하고 있다고 보고했습니다. 더 복잡한 소프트웨어 솔루션을 추가하기보다는, 앞서가는 재무 팀은 플레인-텍스트 회계를 통해 장부를 코드처럼 다루어 성공을 거두고 있습니다.

민첩한 스타트업부터 대기업에 이르기까지 다양한 조직이 텍스트 기반 재무 관리가 기술 비용을 크게 절감하고 정확성과 자동화 기능을 향상시킨다는 것을 발견하고 있습니다. 버전 관리와 프로그래밍 가능한 재무 기록을 도입함으로써, 이들 팀은 효과적으로 확장 가능한 탄력적인 시스템을 구축하고 있습니다.

2025-05-19-maximizing-technology-roi-in-financial-management-a-plain-text-accounting-approach

전통적인 재무 소프트웨어의 숨겨진 비용: 총소유비용(TCO) 분석

명백한 라이선스 비용 외에도, 전통적인 재무 소프트웨어는 상당한 숨겨진 비용을 동반합니다. 업데이트와 유지보수는 종종 예상치 못한 비용을 초래하는데, 2022년 Fintech Magazine 조사에 따르면 재무 팀의 64%가 이러한 영역에서 예상보다 높은 비용을 겪었다고 합니다.

기존 시스템의 경직성은 자체적인 비용을 발생시킵니다. 간단한 커스터마이징조차도 몇 주 또는 몇 달이 걸릴 수 있어, 팀이 소프트웨어 제한을 우회하는 데 시간을 소비함으로써 생산성이 손실됩니다. 교육 요구사항도 또 다른 비용 요소이며, 기업은 초기 소프트웨어 투자액의 최대 20%를 직원 온보딩에 사용하는 경우가 일반적입니다.

보안 역시 추가적인 과제입니다. 사이버 위협이 진화함에 따라 조직은 지속적으로 새로운 방어 조치에 투자해야 합니다. 우리의 직접적인 경험에 비추어 보면, 구식 재무 소프트웨어는 기업을 더 큰 보안 위험에 노출시키는 경우가 많습니다.

플레인-텍스트 회계: 버전 관리와 재무 정밀성이 만나는 지점

플레인-텍스트 회계는 텍스트 파일의 투명성과 복식부기의 엄격함을 결합합니다. Git과 같은 버전 관리 도구를 사용하면 재무 팀은 소프트웨어 개발자가 코드 변경을 추적하는 것과 동일한 정밀도로 변경 사항을 추적할 수 있습니다.

이 접근 방식은 감사를 두려운 작업에서 간단한 검토로 전환합니다. 팀은 특정 거래가 언제, 왜 수정되었는지를 즉시 확인할 수 있습니다. 최근 사례 연구에서는 한 스타트업이 Beancount를 사용해 장기간 지속된 청구 오류를 식별하고, 원인을 추적하며, 예방 조치를 구현한 사례가 소개되었습니다.

유연성은 데이터 무결성을 해치지 않으면서 다양한 보고 구조를 실험할 수 있게 합니다. 우리의 작업에서 스타트업은 데이터 관리 효율화와 협업 강화로 월 마감 시간을 약 40% 단축했습니다.

자금 흐름 자동화: 코드로 확장 가능한 재무 워크플로우 구축

코드 기반 자동화는 일상적인 재무 작업을 효율적인 워크플로우로 전환하고 있습니다. 스프레드시트를 밤새 검토하는 대신, 팀은 조정을 자동화하고 전략적 분석에 집중할 수 있습니다.

중견 기술 기업들이 비용 보고서와 청구서 처리를 위한 맞춤 스크립트를 만들어 마감 시간을 약 40% 단축하는 모습을 보았습니다. 이는 보고 속도를 높일 뿐만 아니라, 예측과 같은 고부가가치 활동에 집중할 수 있게 하여 팀 사기도 향상시킵니다.

코드 기반 시스템의 확장성은 조직이 성장함에 따라 중요한 이점을 제공합니다. 전통적인 스프레드시트는 규모가 커질수록 다루기 어려워지지만, 프로그래밍된 워크플로우는 신중한 자동화를 통해 복잡성이 증가해도 우아하게 처리할 수 있습니다.

통합 인텔리전스: 플레인-텍스트 시스템으로 재무 스택 연결

플레인-텍스트 회계의 진정한 힘은 이질적인 재무 시스템을 연결할 수 있는 능력에 있습니다. 인간과 기계가 모두 읽을 수 있는 형식을 사용함으로써, 다양한 도구와 플랫폼 사이의 범용 번역기로 작동합니다.

플레인-텍스트 회계를 통해 시스템을 통합하면 수동 입력 오류를 약 25% 감소시키는 것을 확인했습니다. 프로그래밍 가능한 특성은 조직의 요구에 정확히 맞는 맞춤형 통합을 가능하게 합니다.

하지만 성공적인 통합을 위해서는 신중한 계획이 필요합니다. 팀은 자동화 기회를 활용하면서도 적절한 통제와 감시를 유지해야 합니다. 목표는 정확성과 규정 준수를 보장하면서도 반응성이 높은 재무 생태계를 구축하는 것입니다.

성공 측정: 플레인-텍스트 회계를 사용하는 팀들의 실제 ROI 지표

초기 도입자들은 여러 지표에서 설득력 있는 결과를 보고합니다. 직접적인 비용 절감 외에도, 팀은 정확성, 효율성, 전략적 역량의 향상을 경험하고 있습니다.

우리는 조직이 자동화된 데이터 처리를 통해 분기 보고 시간을 크게—때로는 약 50%까지—단축하는 사례를 보았습니다. 또한 거래 추적 및 버전 관리가 개선되어 감사 준비 시간이 약 25% 감소한 것도 확인했습니다.

가장 큰 이익은 전략적 업무를 위한 여유 자원에서 비롯됩니다. 팀은 수동 조정에 소요되는 시간을 줄이고, 데이터 분석을 통해 비즈니스 결정을 내리는 데 더 많은 시간을 할애합니다.

결론

플레인-텍스트 회계로의 전환은 재무 관리의 근본적인 진화를 의미합니다. 우리의 직접적인 경험에 따르면, 처리 시간이 40-60% 감소하고 조정 오류가 크게 줄어듭니다.

하지만 성공은 단순히 새로운 도구를 도입하는 것만으로는 충분하지 않습니다. 조직은 교육에 투자하고, 워크플로우를 신중히 설계하며, 견고한 통제를 유지해야 합니다. 신중하게 진행한다면, 전환은 재무를 비용 센터에서 비즈니스 가치를 창출하는 전략적 동력으로 바꿀 수 있습니다.

문제는 플레인-텍스트 회계가 표준 관행이 될지 여부가 아니라, 누가 업계에서 선점자 이점을 얻을 것인가입니다. 도구와 실무는 실용적인 구현에 충분히 성숙했으며, 앞장서는 조직에게는 여전히 큰 경쟁적 이점을 제공합니다.

Beancount와 함께하는 Amazon 판매자를 위한 회계 기본

· 약 6분
Mike Thrift
Mike Thrift
Marketing Manager

마진이 몇 센트에 불과할 때, 정밀함이 추측보다 앞선다.

Amazon에서 판매하는 것은 양과 속도의 게임입니다. 하지만 매출과 배송이 급증하는 뒤에는 복잡한 수수료, 반품, 재고 이동, 세금 의무가 얽혀 있습니다. 일반 회계 소프트웨어는 이러한 미묘함을 포착하기 어려워, 판매자는 실제 수익성을 흐릿하게 파악하게 됩니다.

2024-07-16-bookkeepin  g-basics-for-amazon-sellers-with-beancount

이때 평문 텍스트 회계 시스템인 Beancount가 빛을 발합니다. 거래를 기록하는 방식을 완전히 제어함으로써, Amazon 마켓플레이스의 고유한 도전을 정확히 모델링하는 재무 진실의 원천을 구축할 수 있습니다. 이 가이드는 수수료, 세금, 재고 문제를 앞서 나갈 수 있도록 단계별 워크플로우를 제공합니다.

Amazon 회계가 다른 이유

Amazon 정산금을 은행 명세서와 맞추어 보았다면, 그 과정이 간단하지 않다는 것을 이미 알고 있을 것입니다. Amazon 비즈니스의 재무 현실은 여러 층의 추상화 뒤에 숨겨져 있습니다.

  • 격주 일시불 지급: Amazon은 각 판매마다 매출을 보내지 않습니다. 대신 2주마다 한 번씩 단일 입금을 보냅니다. 이 일시불 금액은 금액이며, 매출 총액에서 추천 수수료, FBA 수수료, 광고 비용, 반품 및 기타 공제액이 차감된 금액입니다. 비즈니스를 이해하려면 이 단일 숫자를 구성 요소별로 다시 나누어야 합니다. (doola: A Business-in-a-Box™)
  • 전천후 재고: 재고는 공급업체 → 프리프 센터 → 전국 각지의 FBA 물류센터 → 고객 순으로 끊임없이 이동합니다. 매출 원가(COGS)를 정확히 추적하려면 각 판매에 사용된 재고 배치(비용)를 알아야 합니다. (Bean Ninjas)
  • 마켓플레이스 수수료 및 프로모션: 매출의 상당 부분이 즉시 수수료에 소진됩니다: 추천 수수료, FBA 피킹·포장 수수료, 월 보관료, 광고 비용 등. 각 비용 항목을 별도로 추적해야만 실제 총 마진을 계산하고 제품의 진정한 수익성을 판단할 수 있습니다. (Profitwise Accounting)
  • 판매세 패치워크: 대부분의 주에서 Amazon의 마켓플레이스 퍼실리테이터 법이 판매세 징수·납부를 처리하지만, 완전한 해결책은 아닙니다. FBA 창고에 재고를 보관하면 “넥서스”(사업 존재)가 발생해 해당 주에 등록·신고가 필요할 수 있습니다. 이는 세심한 추적이 요구되는 복잡한 컴플라이언스 영역입니다. (TaxDo)
  • 낮아진 1099‑K 기준: 2024년부터 Form 1099‑K 보고 기준이 20,000에서20,000에서 5,000으로 낮아졌으며(2026년부터는 $600), 거의 모든 진지한 판매자는 Amazon으로부터 연간 총 거래액을 보고하는 양식을 받게 됩니다. 장부는 이 금액과 완벽히 일치해야 합니다. (IRS)

7단계 Beancount 청사진

이 청사진은 Beancount의 정밀성을 활용해 Amazon의 복잡성을 정면으로 해결합니다.

1. 초기 채널 분리

여러 플랫폼에서 판매한다면, 각 플랫폼별 회계를 별도로 유지하세요. 법인용 단일 Beancount 파일 안에 각 마켓플레이스 전용 계층형 계정을 만들면 분석이 간편해지고 세금 일정 생성도 쉬워집니다.

2025-07-22 open Income:Amazon               USD
2025-07-22 open Expenses:Amazon:FBAFee USD
2025-07-22 open Assets:Amazon:Payouts USD

2. 모든 지급금 분해

가장 중요한 습관입니다. Amazon 입금을 단일 수입 라인으로 기록하지 마세요. 대신 해당 기간의 “All Transactions” 정산 보고서를 Seller Central에서 다운로드하고, 이를 사용해 지급금을 구성 요소별로 나누는 단일 Beancount 거래를 만듭니다.

은행에 들어오는 입금은 균형 잡힌 항목이며, 총 매출은 Income에 크레딧, 모든 수수료와 환불은 해당 Expenses 계정에 차변 처리됩니다.

; 정산 보고서 기반 격주 지급
2025-07-14 * "Amazon Settlement #4361"
Assets:Bank:Operating 8432.17 USD
Income:Amazon:Sales -12274.50 USD
Expenses:Amazon:FBAFee 2454.80 USD
Expenses:Amazon:Adverts 1012.06 USD
Expenses:Amazon:Refunds 375.47 USD
Assets:Amazon:Reserve -100.00 USD

3. 로트(Lot)로 재고·COGS 추적

Beancount는 “lots”라는 일급 재고 추적 시스템을 제공합니다. 재고를 구매할 때는 단위 수와 개별 비용을 기록하고, 판매 시 해당 정확한 비용을 비용 처리함으로써 매출원가(COGS)를 완벽히 계산할 수 있습니다.

; 공급업체로부터 1,000개 구매
2025-07-01 * "Supplier PO-7421"
Assets:Inventory:WidgetA 1000 WidgetA {@ 4.20 USD}
Assets:Bank:Operating

; 이후 단일 판매에 대한 원가 기록
2025-07-16 * "FBA sale WidgetA | COGS"
Expenses:COGS 1 WidgetA {4.20 USD}
Assets:Inventory:WidgetA

4. 명확성을 위한 발생주의 선택

재고 기반 비즈니스라면 발생주의가 우수합니다. 현금주의는 재고를 구매한 달에 큰 비용을, 판매한 달에 인위적으로 높은 이익을 보여 성과를 왜곡합니다. 발생주의 회계는 매출과 매출원가를 동일 기간에 매칭해 총 이익을 명확히 파악하게 해줍니다. (Bean Ninjas)

5. 자동화된 가져오기

정산 보고서를 수동으로 입력하는 것은 처음엔 교육적이지만 규모를 키우면 한계가 있습니다. 평문 텍스트 생태계는 자동화에 강점이 있습니다:

  • bean-extract를 사용해 A2X와 같은 서비스가 내보낸 CSV에서 데이터를 추출
  • 간단한 Python 스크립트로 Amazon SP‑API에서 직접 데이터 가져오기
  • 기존 임포터를 활용해 은행 CSV 파일을 가져와 입금 및 카드 수수료와 직접 대조

6. 주간 조정

숫자를 정기적으로 확인하는 습관을 들이세요. Beancount의 강력한 CLI 도구를 사용해 잔액을 빠르게 검증하고 성과를 검토합니다.

# 현재 재고 수량 및 가치를 확인
bean-balance books.bean "Assets:Inventory" "2025-07-21"

# 최근 기간 손익계산서 생성
bean-report books.bean income_statement -e 2025-07-21

7. 원본 문서 보관

주요 거래마다 원본 문서에 링크를 걸어두세요. 공식 Amazon 정산 PDF, 재고 구매 공급업체 인보이스, 배송 영수증 등을 Beancount 메타데이터(document:) 구문으로 첨부하면 자체 포함형 감사 준비 재무 기록이 완성됩니다.

판매세·컴플라이언스 체크리스트

  • 마켓플레이스 퍼실리테이터 법: 대부분의 주에서 Amazon이 판매세를 대신 납부하지만, 캘리포니아, 텍사스, 펜실베니아 등에서 재고를 보관하면 경제적 넥서스가 발생해 해당 주에 사업자를 등록해야 할 수 있습니다. (TaxGPT)
  • 1099‑K 조정: 연간 Income:Amazon:Sales에 기록한 총액이 Form 1099‑K에 보고된 총액과 정확히 일치하는지 확인하세요. 차이는 감사 플래그가 됩니다. (IRS)
  • 직접 판매세: 퍼실리테이터가 적용되지 않는 다른 채널을 통해 판매한다면, Liabilities:SalesTaxPayable:State 계정 하위 트리를 만들어 직접 납부해야 할 세금을 추적하세요.

흔히 저지르는 실수 (및 해결책)

  • 실수: Amazon에서 받은 순 입금만 기록
    • 해결: 항상 전체 정산 보고서를 사용해 지급금을 분해
  • 실수: 환불된 반품이나 파손된 상품을 무시
    • 해결: 초기 환불 비용과 Amazon으로부터 받은 재보상을 별도 크레딧으로 기록
  • 실수: 롤링 리저브를 놓침
    • 해결: 특히 신규 계정에서 Amazon이 지급액에서 “리저브”를 보류합니다. 이를 Assets:Amazon:Reserve 전용 계정에 추적
  • 실수: 시스템과 Amazon 간 SKU 별칭 불일치
    • 해결: 모든 SKU 코드를 임포트 스크립트에서 정규화해 COGS 조회가 실패하지 않도록 함

빠른 시작 체크리스트

  • Seller Central에서 첫 정산 보고서를 활성화하고 다운로드
  • Beancount 스타터 레포를 클론하고 Amazon 전용 차트 오브 어카운트를 구축
  • 정산 CSV를 Beancount 거래(.txn 파일)로 변환하는 작은 임포터 스크립트 작성
  • 매주 새 보고서를 가져와 bean-check를 실행해 파일 유효성 검증 알림 예약
  • 매월 손익계산서를 검토해 광고비, 가격 정책, 재고에 대한 데이터 기반 의사결정

추가 읽을거리

더 많이 판매하고, 덜 걱정하세요—빈을 균형 있게 유지하세요. 성공적인 판매 되세요!

Beancount에서 부동산 거래 모델링

· 약 4분
Mike Thrift
Mike Thrift
Marketing Manager

부동산 거래는 한 가정의 평생 동안 가장 큰 재무 활동이 될 수 있습니다. 이 글에서는 Beancount에서 부동산을 모델링하는 방법을 설명합니다. 저는 부동산을 자산으로 보고, 주택의 가치 상승을 실현되지 않은 이익으로 처리합니다. 또한 모기지는 부채로 모델링하고, 이자를 비용으로 간주합니다.

예를 들어, A씨가 2020년 1월 1일에 캘리포니아 주 XYZ 시 123 ABC 스트리트에 위치한 고급 주택을 100만 달러에 구매했다고 가정해 보겠습니다. 금리는 3.0%, 계약금은 20%, 대출금액은 800,000 달러입니다.

항목금액
대출 금액800,000
금리3%
대출 기간30년
대출 총 비용1,478,219.62
월 상환액4,106.17
주택 보험연 1,300 달러 (총 39,000)
재산세연 7,500 달러 (총 225,000)
대출 상환 완료 시점2049년 12월
총 이자 지급액414,219.62

2023-06-09-tracking-real-estate

모기지 상세 스크린샷

계정 생성

먼저 주택을 자산(Asset)으로 취급합니다. 자산으로 등록되므로 단위를 지정해야 합니다. 여기서는 단위 수량을 1로 두며, 여러 채가 있을 경우 각각 별도의 자산 계정을 만들게 됩니다. 즉, 한 채는 하나의 자산이며, 이 자산의 특별한 단위는 값이 1일 수밖에 없습니다.

2019-12-31 commodity HOUSE.ABC
name: "123 ABC Street, XYZ City, CA, 12345"

2019-12-31 open Assets:Property:US:CA:123ABC HOUSE.ABC
2019-12-31 open Liabilities:Bank:US:SomeBank:Mortgage:Loan USD

첫 번째 줄에서 주택을 나타내는 상품 단위를 정의했습니다. 네 번째 줄에서는 앞서 정의한 상품 단위를 보유하는 자산 계정을 만들었고, 다섯 번째 줄에서는 대출 은행을 위한 부채 계정을 정의했습니다. 부채이므로 Liabilities 카테고리에 속합니다.

구매

위와 같이 계정을 만든 뒤 주택을 구매하는 행위는 다음과 같습니다.

borrowing money (debt) + spending money (down payment) = 1 house in asset

부동산을 구매할 때 가장 중요한 참고 자료는 구매자 정산서(Buyer’s Settlement Statement)이며, 여기에는 자금 흐름이 명확히 표시됩니다.

2020-01-01 * "Buying the house"
Assets:Property:US:CA:123ABC 1 HOUSE.ABC {1,000,000 USD}
Assets:Bank:US:SomeBankA -100,000 USD
Assets:Bank:US:SomeBankB -101,000 USD
Liabilities:Bank:US:SomeBank:Mortgage:Loan -800,000.00 USD
Expenses:Home:Insurance 1,000 USD
Expenses:Home:Mortgage:Loan:ClosingCost

위 거래는 주택을 구매하면서 은행에서 돈을 인출(계약금 및 기타 비용)하고, 대출을 받아 부채를 증가시키며, 주택을 자산으로 추가하는 과정을 보여줍니다.

모기지 상환

위 구매 기록에 따르면 현재 800,000 달러를 빚지고 있습니다. 이자는 매월 상환액에 포함되며, 초기에는 이자 비중이 높습니다.

대출 상환을 기록하려면 은행 명세서에서 매월 원금 상환액을 확인하고, 나머지는 이자로 처리하면 됩니다.

2020-02-01 * "Mortgage payment"
Assets:Bank:US:SomeBank:Saving:Joint -3,372.83 USD
Liabilities:Bank:US:SomeBank:Mortgage:Loan 1,376.26 USD
Expenses:Home:Mortgage:Loan:Interest

이 항목은 공동 저축 계좌에서 월 상환액을 차감하고, 원금 상환은 부채를 감소시키며, 이자 부분은 비용으로 기록합니다.

가치 상승

부동산의 가치 상승을 기록하고 싶다면 별도의 계정을 만들 수도 있습니다. 하지만 저는 다음과 같은 이유로 이 방법을 사용하지 않습니다.

  1. 현재 주택 가치는 추정치에 불과하며, Redfin이나 Zillow와 같은 사이트에서 얻는 평가액은 실질적인 가치를 반영하지 못합니다. 따라서 실시간으로 총 자산에 반영하는 것은 의미가 적습니다.
  2. 모기지를 모두 상환하기 전까지 현금 흐름이 마이너스라면, 주택은 여전히 부채 성격을 가지고 있습니다. 따라서 자산에 미리 포함시키면 실제보다 부가된 것처럼 보일 수 있어 이를 피하고자 합니다.

제가 사용하는 방법은 가상 통화 단위(virtual currency)인 USD.UNVEST를 활용하는 것입니다. 기본 통화가 USD라면, USD.UNVEST는 새로운 Commodity을 만들 필요 없이 특별 통화로 자산 가치를 표시합니다. 이렇게 하면 주택 가치 상승은 별도 통화에 기록되어 재무제표에는 반영되지 않습니다.

2020-01-01 price HOUSE.ABC                          1,000,000 USD
2025-01-01 price HOUSE.ABC 1,400,000 USD.UNVEST

정기적으로 USD.UNVEST 가격을 업데이트하면 Fava의 Commodity 페이지에서 주택 가격 추이를 확인할 수 있습니다. 하지만 대차대조표에서는 여전히 최초 거래 시점의 가격이 표시됩니다. 즉, 총 자산은 계약금과 현재까지 상환한 원금만을 포함하며, 주택을 실제로 매입했을 때만 변동됩니다.

Property price chart screenshot

판매

아직 실제 매각 사례가 없고 중간에 발생하는 다양한 비용이 명확하지 않으므로 가상의 시나리오를 제시합니다.

2025년 1월 1일에 주택 가치가 1,400,000 달러로 상승했고, 다음과 같은 참고 데이터가 있다고 가정합니다.

항목금액
잔액709,656.20
중개 수수료 (6%)72,000
기타 마감 비용10,000

A씨가 주택을 1,300,000 달러에 매각한다고 하면 다음과 같이 기록합니다.

2025-01-01 * "Selling the house"
Assets:Property:US:CA:123ABC -1 HOUSE.ABC {1,300,000 USD}
Liabilities:Bank:US:SomeBank:Mortgage:Loan 709,656.20 USD
Expenses:Home:Agent:Fee 72,000 USD
Expenses:Home:ClosingCost 10,000 USD
Expenses:Home:Tax 90,000 USD
Assets:Bank:US:SomeBankA

여기서는 5년 중 2년을 자가 거주했으므로 500,000 달러의 가치 상승에 대해 세금을 부과하지 않았다고 가정했습니다. 최종적으로 A씨의 계좌에 입금되는 금액은 418,343.8 달러이며, 이 중 200,000 달러는 계약금, 약 100,000 달러는 이미 지급한 이자입니다. 따라서 순수익은 약 100,000 달러 정도가 됩니다. 실제로는 임대료 절감, 유지보수 비용 등 다양한 요소가 추가로 고려되어야 합니다.

대차대조표에 이를 반영하려면 다음과 같이 가격을 업데이트합니다.

2025-01-01 price HOUSE.ABC                          1,300,000 USD

Beancount에서 매출채권 및 매입채무 이해하기

· 약 2분
Mike Thrift
Mike Thrift
Marketing Manager

여러분, 안녕하세요! 오늘 블로그 포스트에서는 단순함과 강력함으로 많은 사랑을 받고 있는 복식회계 도구 Beancount의 세계로 들어가 보겠습니다. 특히 두 가지 핵심 개념인 매출채권과 매입채무에 대해 이야기하겠습니다.

이 용어들을 이해하는 것은 Beancount(또는 모든 복식회계 시스템)를 효과적으로 사용하기 위해 필수적입니다. 초보자라면 걱정하지 마세요—단계별로 차근차근 설명해 드리겠습니다!

매출채권 및 매입채무: 기본 개념

2023-05-30-receiveable-and-payable

회계에서 “매출채권”과 “매입채무”는 빚진 돈을 추적하기 위해 사용되는 용어입니다. “매출채권”은 타인이 당신에게 빚진 돈을 의미하고, “매입채무”는 당신이 타인에게 빚진 돈을 의미합니다.

  1. Accounts Receivable (A/R): 당신이 서점을 운영하고 고객이 신용으로 책을 구매했다고 가정해 보세요. 그 책에 대해 고객이 당신에게 빚진 금액이 매출채권이 됩니다.

  2. Accounts Payable (A/P): 반대로, 출판사에 새 책 세트를 주문했지만 선불로 지불하지 않았다고 상상해 보세요. 출판사에게 당신이 빚진 금액이 매입채무가 됩니다.

Beancount에서는 이러한 항목들을 해당 계정을 통해 추적합니다. 주요 장점은 언제든지 재무 상태를 명확하고 정확하게 파악할 수 있다는 점입니다.

Beancount에서 매출채권 및 매입채무 설정하기

Beancount 파일 구조는 필요에 따라 단순하게도, 복잡하게도 만들 수 있습니다. 매출채권과 매입채무를 위해서는 자산과 부채 섹션 아래에 별도 계정을 생성하는 것이 일반적입니다.

1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:AccountsPayable

거래 추적

채권자 측

계정을 설정한 후, 매출채권 및 매입채무와 관련된 거래를 추적할 수 있습니다. 예시를 살펴보겠습니다:

2023-05-29 * "Sold books to customer on credit"
Assets:AccountsReceivable 100 USD
Income:BookSales -100 USD

여기서는 고객이 100을빚졌으므로매출채권에100을 빚졌으므로 매출채권에 100을 추가합니다. 동시에 아직 현금을 받지 않았으므로 수익을 동일 금액만큼 감소시켜 균형을 맞춥니다.

고객이 나중에 결제하면 다음과 같이 기록합니다:

2023-06-01 * "Received payment from customer"
Assets:Bank:Savings 100 USD
Assets:AccountsReceivable -100 USD

채무자 측

매입채무에도 동일한 원리가 적용되지만 부호가 반대입니다:

2023-05-30 * "Bought books from publisher on credit"
Liabilities:AccountsPayable 200 USD
Expenses:BookPurchases -200 USD

채무를 상환할 때는 다음과 같이 기록합니다:

2023-06-02 * "Paid off debt to publisher"
Liabilities:AccountsPayable -200 USD
Assets:Bank:Checking 200 USD

마무리

매출채권과 매입채무는 모든 회계 시스템의 핵심입니다. 이를 정확히 추적함으로써 재무 상태를 포괄적으로 이해할 수 있습니다.

이는 시작에 불과하며 Beancount는 훨씬 더 많은 기능을 제공합니다. 이 블로그 포스트가 중요한 개념을 명확히 이해하는 데 도움이 되길 바랍니다. 언제나 그렇듯 즐거운 회계 되세요!

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

감가상각 거래 스크린샷