본문으로 건너뛰기

"beancount" 태그로 연결된 83개 게시물개의 게시물이 있습니다.

모든 태그 보기

비즈니스 vs 개인 부기: Beancount 로 명확한 경계 그리기

· 약 4분
Mike Thrift
Mike Thrift
Marketing Manager

번성하는 기업과 건전한 지갑은 한 가지 특성을 공유합니다: 경계.

사업주라면, 프리랜서부터 성장 중인 스타트업 창업자까지, 가장 중요한 재무 규율 중 하나는 비즈니스와 개인 재무를 엄격히 구분하는 것입니다. 자금을 섞어 쓰면—비즈니스 계좌로 식료품을 구입하거나 개인 체크에서 비즈니스 공급업체에 비용을 지불하는 경우—재무 상황이 혼란스럽고 불투명해집니다. 이는 세무 당국의 감시를 초래할 뿐만 아니라 기업의 실제 성과에 대한 명확한 통찰을 빼앗습니다.

2023-08-12-business-vs-personal-bookkeeping-with-beancount

다행히도, Beancount와 같은 플레인‑텍스트 회계 시스템은 원장에 이러한 필수 경계를 강제할 완벽한 프레임워크를 제공합니다.

구분이 중요한 이유

재무를 구분하지 않는 것은 단순히 나쁜 습관이 아니라, 큰 위험을 내포하고 비즈니스 인사이트를 가립니다.

  • IRS 명확성: IRS는 별도 은행 계좌를 유지하라고 단순히 제안하는 것이 아니라 강력히 권고합니다. 비즈니스와 개인 자금이 섞이면 어떤 비용이 정당한 비즈니스 비용인지 입증하기 어려워집니다. 이러한 모호성은 질문과 복잡성을 초래해 피하고 싶은 상황을 만들 수 있습니다.
  • 감사 위험: 거래를 섞는 것은 감사인에게 큰 레드 플래그가 됩니다. 장부가 개인과 비즈니스 활동이 뒤섞인 엉킨 상태라면, 정당한 공제액이 거부되거나 벌금을 물게 될 위험이 있습니다. 깔끔하고 구분된 원장은 전문성을 보여주며 잠재적인 감사가 더 원활하고 스트레스가 적게 진행되도록 합니다.
  • 깨끗한 인사이트: 개인 지출이 뒤섞인 현금 흐름으로는 실제 이익률을 알 수 없습니다. 독립된 비즈니스 원장은 기업 재무 건전성을 필터링 없이 보여줍니다. 매출을 정확히 추적하고, 비용을 분석하며, 개인 재무 “소음” 없이 세금 부채를 계산할 수 있습니다.

한눈에 보는 주요 차이점

비즈니스와 개인 부기의 목적, 규칙, 구조는 근본적으로 다릅니다. 이러한 차이를 이해하는 것이 정확한 기록을 유지하는 열쇠입니다.

구분비즈니스 장부개인 장부
목적세무 및 성장 결정을 위한 수익, 비용, 자산, 부채 추적가계 예산 관리 및 저축 목표 설정
세무 규칙Schedule C, 1120‑S, 또는 1065 적용; 엄격한 공제 기준기본 기록 보관 외 별도 요구사항 없음
계정Equity, Payables, Receivables, Sales Tax, PayrollChecking, Savings, Investments, Loans
소유자 급여급여 (W‑2) 또는 Equity 를 통한 소유자 인출해당 없음 — 개인 인출로 생활비 충당

Beancount 4단계 청사진

Beancount는 두 재무 세계 사이에 확고한 장벽을 세우는 일을 간단하게 만들어 줍니다. 아래 실용적인 워크플로우를 따라 보세요.

• 1 — 전용 계정 개설

첫 Beancount 항목을 작성하기 전에 비즈니스 전용 체크 계좌와 비즈니스 신용카드를 개설하세요. 물리적인 구분이 깔끔한 부기의 기반이 됩니다. 이후 이 구조를 Beancount 원장에 그대로 반영합니다.

2025-07-23 open Assets:Bank:Business   USD
2025-07-23 open Assets:Bank:Personal USD

이 간단한 설정은 모든 거래가 발생 순간부터 비즈니스와 개인 재무 중 어느 쪽에 속하는지 명확히 지정할 수 있게 합니다.

• 2 — 소유자 출자 및 인출 기록

소유자는 개인 자금과 비즈니스 자금 사이를 이동시킵니다. 이는 수익이나 비용이 아니라 Equity 계정을 통해 추적됩니다.

  • 출자: 비즈니스를 시작하거나 부족분을 메우기 위해 개인 자금을 비즈니스에 넣는 경우.
  • 인출: 개인 사용을 위해 비즈니스 자금을 꺼내는 경우(많은 개인사업자가 자신에게 “급여”를 지급하는 방식).
; 비즈니스 시작을 위한 자본 투입
2025-07-23 * "Owner contribution"
Assets:Bank:Business 10,000.00 USD
Equity:Owner:Contrib

; 개인 생활비를 위한 인출
2025-08-05 * "Owner draw for rent"
Equity:Owner:Draw 2,500.00 USD
Assets:Bank:Business

이러한 거래를 Equity 로 기록함으로써 비즈니스 비용을 부풀리거나 보고된 이익을 감소시키는 오류를 방지합니다.

• 3 — 혼합 영수증 즉시 처리

실수는 발생합니다. 비즈니스 카드로 개인 저녁 식사를 결제했을 수도 있죠. 핵심은 원장에서 즉시 수정하는 것입니다. 거래를 삭제하지 말고 소유자 인출로 재분류하세요.

2025-08-07 * "Personal groceries on biz card"
Equity:Owner:Draw 72.35 USD
Assets:Bank:Business

이 항목은 비즈니스 자금이 개인 비용에 사용되었음을 정확히 반영하며, 비공제 개인 비용을 세금 신고에 잘못 포함하는 일을 방지합니다.

• 4 — 정기적인 조정 및 검토

일관성은 지저분한 장부에 대한 최고의 방어책입니다. 매주 또는 매월 시간을 내어 비즈니스 계정을 조정하세요. Beancount 도구를 활용해 원장이 은행 명세서와 일치하는지 확인하고 기업 성과를 검토합니다.

# 비즈니스 은행 잔액을 명세서와 비교
bean-balance books.bean "Assets:Bank:Business"

# 손익계산서를 생성해 수익성 검토
bean-report books.bean income_statement -e 2025-08-31

이 정기 검토 습관은 IRS 기록 보관 요건을 충족시키고 비즈니스 재무 건전성을 지속적으로 파악하게 해 줍니다.

세무 고려사항

  • 예상 세금: 고통스러운 세금 청구서를 피하려면 향후 세금을 지속적인 비즈니스 비용으로 처리하세요. Liabilities:Tax:Federal, Liabilities:Tax:State 와 같은 부채 계정을 만들고 모든 입금의 일정 비율을 정기적으로 이동시킵니다. 분기별 납부 시 현금이 이미 준비되어 있습니다.
  • 비공제 개인 비용: IRS 규칙을 기억하세요: 비즈니스 비용은 “통상적이며 필요”해야 합니다. 개인 식사, 통근 비용, 비업무 구독은 해당되지 않으며 비즈니스 손익계산서에서 완전히 제외해야 합니다.

빠른 시작 체크리스트

  • 비즈니스 전용 은행 및 신용 계좌 개설
  • Assets:Bank:Business, Equity:Owner:Contrib, Equity:Owner:Draw 로 구성된 Beancount 차트 오브 어카운트 구축
  • 현금주의 또는 발생주의 중 회계 기준 선택 후 options 에 명시
  • 비즈니스 카드에서 발생한 실수 개인 비용을 즉시 Equity:Owner:Draw 로 태깅
  • 주간 조정; .bean 파일을 개인 Git 원격 저장소에 백업
  • 매월 손익계산서, 대차대조표, 현금 흐름 보고서 검토

핵심 요약: 돈은 구분하고, 원장은 구분하세요. Beancount는 비즈니스와 개인 재무 사이의 장벽을 명확히 하고 버전 관리까지 해 주어, 기업은 감사 준비가 되어 있으면서도 라떼 비용은 오롯이 당신만의 일입니다. 즐거운 빈 회계 생활!

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

오늘 블로그 포스트에서는 비즈니스를 위한 Beancount 원장을 상세히 분석하여, 이 평문 복식부기 회계 시스템의 복잡성을 이해하도록 도와드리겠습니다.

Beancount 원장 해부: 비즈니스 회계를 위한 사례 연구

먼저 코드를 살펴보겠습니다:

2023-05-22-business-template

1970-01-01 open Assets:Bank:Mercury
1970-01-01 open Assets:Crypto

1970-01-01 open Equity:Bank:Chase

1970-01-01 open Income:Stripe
1970-01-01 open Income:Crypto:ETH

1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:COGS:Contabo
1970-01-01 open Expenses:COGS:AmazonWebServices

1970-01-01 open Expenses:BusinessExpenses
1970-01-01 open Expenses:BusinessExpenses:ChatGPT

2023-05-14 * "CONTABO.COM" "Mercury Checking ••1234"
Expenses:COGS:Contabo 17.49 USD
Assets:Bank:Mercury -17.49 USD

2023-05-11 * "Amazon Web Services" "Mercury Checking ••1234"
Expenses:COGS:AmazonWebServices 14490.33 USD
Assets:Bank:Mercury -14490.33 USD

2023-03-01 * "STRIPE" "Mercury Checking ••1234"
Income:Stripe -21230.75 USD
Assets:Bank:Mercury 21230.75 USD

2023-05-18 * "customer_182734" "0x5190E84918FD67706A9DFDb337d5744dF4EE5f3f"
Assets:Crypto -19 ETH {1,856.20 USD}
Income:Crypto:ETH 19 ETH @@ 35267.8 USD

코드 이해

  1. 계정 개설: 코드는 1970‑01‑01에 일련의 계정을 개설하면서 시작합니다. 여기에는 자산 계정(Assets:Bank:Mercury, Assets:Crypto), 자본 계정(Equity:Bank:Chase), 수익 계정(Income:Stripe, Income:Crypto:ETH), 그리고 비용 계정(Expenses:COGS, Expenses:COGS:AmazonWebServices, Expenses:BusinessExpenses, Expenses:BusinessExpenses:ChatGPT)이 포함됩니다.

  2. 거래: 이후 2023‑03‑01부터 2023‑05‑18까지 여러 거래가 기록됩니다.

    • 2023‑05‑14 거래는 CONTABO.COM에 $17.49를 Mercury Checking ••1234에서 지불한 내용이며, 비용(Expenses:COGS:Contabo)과 Assets:Bank:Mercury 계정에서의 차감으로 기록됩니다.

    • 2023‑05‑11 거래는 Amazon Web Services에 $14,490.33을 동일한 은행 계좌에서 지불한 것으로, Expenses:COGS:AmazonWebServices 아래에 기록됩니다.

    • 2023‑03‑01 거래는 STRIPE로부터 수익이 입금된 것으로, 총액 $21,230.75가 Assets:Bank:Mercury에 추가되고, 수익(Income:Stripe)으로 기록됩니다.

    • 2023‑05‑18 마지막 거래는 고객으로부터 19 ETH를 받은 암호화폐 거래이며, Assets:CryptoIncome:Crypto:ETH에 각각 기록됩니다. {1,856.20 USD}는 거래 시점의 ETH 가격을, @@ 35267.8 USD는 19 ETH 전체 가치(USD)를 나타냅니다.

모든 거래에서 복식부기 원칙이 적용되어 자산 = 부채 + 자본 방정식이 항상 성립하도록 유지됩니다.

최종 생각

이 Beancount 원장은 재무 거래를 추적하기 위한 간단하면서도 강력한 시스템을 제공합니다. 특히 마지막 거래에서 보듯이 Beancount는 암호화폐와 같은 비전통적 자산도 손쉽게 기록할 수 있어, 디지털 금융 환경에 매우 적합합니다.

이번 분석이 Beancount의 구조와 기능을 이해하는 데 도움이 되었기를 바랍니다. 회계 전문가이든 개인 재무를 처음 관리하는 초보자이든, Beancount는 여러분의 요구에 맞는 유연한 솔루션을 제공합니다. 다음 포스트에서는 보다 고급 Beancount 활용법을 다룰 예정이니 많은 기대 바랍니다.

새 고객을 위한 무료 플랜 재도입

· 약 2분
Mike Thrift
Mike Thrift
Marketing Manager

우리는 2023년 5월 1일부터 신규 고객을 위한 무료 플랜을 재도입하게 되어 매우 기쁩니다. 이번 결정은 플랫폼을 크게 개선하고 자원을 최적화하여 무료 및 유료 고객 모두에게 더 나은 서비스를 제공하기 위해 이루어졌습니다.

새로운 무료 플랜을 소개합니다

무료 플랜은 모두에게 접근 가능하고 사용하기 쉬운 서비스를 제공하겠다는 우리의 비전에서 언제나 핵심적인 부분이었습니다. 지난 몇 달 동안 우리가 만든 변화가 사용자에게 더욱 뛰어난 경험을 제공하면서 Pro 플랜 고객에게는 서비스 품질을 유지할 수 있게 할 것이라 믿습니다.

2023-04-28-start-serving-free-users

2023년 5월 1일 이후에 등록하는 신규 고객은 무료 플랜을 이용할 수 있습니다.

여러분의 지원과 충성도가 이번 무료 플랜 재도입을 재정적으로 가능하게 했습니다. 여러분의 기여 덕분에 우리는 인프라와 지원 시스템에 투자할 수 있었으며, 기대하시는 고품질 서비스를 지속적으로 제공하면서 새로운 사용자를 위한 플랫폼 접근성을 확대할 수 있었습니다. 여러분이 우리의 비전에 보여준 헌신은 우리를 성장하고 진화하게 만들었으며, 진심으로 감사드립니다. 함께 우리는 활기찬 커뮤니티를 구축하고 모든 배경의 사용자가 목표를 달성하도록 돕고 있습니다.

궁금한 점이나 우려 사항이 있으면 언제든지 연락해 주세요. 여러분의 피드백을 듣고 문제를 해결하기 위해 항상 대기하고 있습니다. 지속적인 지원에 감사드리며, 최상의 서비스를 제공하기 위해 최선을 다하겠습니다.

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와 청구서 만들기 및 추적

· 약 5분
Mike Thrift
Mike Thrift
Marketing Manager

플레인‑텍스트 템플릿, 반복 가능한 워크플로, 그리고 “누가 아직 나에게 빚을 지고 있나요?” 라는 단일 쿼리


2022-02-12-crafting-tracking-invoices-with-beancount

청구서는 끝낸 작업과 기다리는 결제 사이에 끼어 있는 번거로운 일처럼 느껴질 수 있습니다. 하지만 좋은 청구서 프로세스는 건전한 현금 흐름의 핵심입니다. 두 가지 역할을 수행합니다: 고객에게 무엇을 언제 지불해야 하는지 명확히 알려주고, 회계 시스템에 필요한 확실한 사실을 제공합니다.

전용 SaaS 앱은 깔끔하고 자동화된 PDF를 보낼 수 있지만, 월 구독료가 발생하고 데이터를 독점적인 사일로에 가두는 경우가 많습니다. Beancount를 활용한 가볍고 플레인 텍스트 방식은 강력한 대안을 제공합니다. 각 청구서를 명확한 회계 항목 집합으로 전환하면 버전 관리, 풍부한 메타데이터, 즉시 쿼리와 같은 모든 이점을 누릴 수 있습니다—구독이 필요 없습니다.

최소 실행 가능한 청구서 (절대 빼먹어서는 안 될 항목들)

장부에 기록하기 전에 전문적인 청구서가 필요합니다. 형식은 간단할 수 있지만 내용은 정확해야 합니다. 오랜 시간 검증된 소기업 관행에서 차용한 이 항목들은 절대 협상할 수 없습니다.

  • 판매자 정보: 사업자명 및 실제 주소.
  • 고객 정보: 고객 이름 및 (가능하면) 주소.
  • 청구서 번호: 재사용되지 않는 고유하고 순차적인 ID. INV-045INV-044 다음 번호입니다.
  • 발행일 및 만기일: 청구서 발행일과 결제 예정일을 명확히 기재합니다.
  • 항목: 서비스 또는 제품에 대한 명확한 설명, 수량, 단가, 그리고 항목 합계.
  • 소계, 세금 및 총액: 계산식을 보여줘서 고객이 쉽게 이해할 수 있게 합니다.
  • 선택 메모: 감사 인사, 송금 안내, 혹은 고객이 제공한 구매 주문 번호 등을 적을 수 있습니다.

시작을 돕기 위해 모든 필드를 포함한 바로 편집 가능한 템플릿 세트를 만들었습니다. 스프레드시트 버전은 합계를 미리 계산해 줍니다.

Note: 청구서 템플릿은 곧 제공됩니다! 그 사이에 위에 나열된 필드를 사용해 Google Docs, Word, Sheets, Excel 또는 기타 문서 형식으로 직접 만들 수 있습니다.

청구서를 장부에 기록하기

청구서 PDF를 고객에게 보낸 후에는 Beancount에 기록해야 합니다. 이는 수익을 발생 시점에 인식하는 중요한 단계이며, 결제 시점이 아니라 수익이 발생했을 때 인식합니다. 이 과정은 두 개의 별도 거래로 구성됩니다.

1. 청구서를 발행할 때:

총액을 Income 계정에서 Assets:AccountsReceivable 로 이동하는 거래를 생성합니다. 이는 장부에 디지털 IOU를 만들게 됩니다.

; 2025‑07‑21 Invoice #045  Web design sprint for Acme Corp.
2025-07-21 * "Acme Corp" "INV-045 Web design sprint"
Assets:AccountsReceivable 3500.00 USD ; due:2025-08-04
Income:Design:Web
invoice_id: "INV-045"
contact_email: "[email protected]"
link: "docs/invoices/2025-07-21_Acme_INV-045.pdf"

여기서 AccountsReceivable 를 차변에, Income 계정을 대변에 기록합니다. 풍부한 메타데이터에 주목하세요: 만기일, 고유 invoice_id, 그리고 보낸 PDF에 대한 직접 link: 가 포함됩니다.

2. 고객이 결제할 때:

현금이 은행 계좌에 들어오면 두 번째 거래를 기록해 IOU 를 “정산”합니다. 이는 AccountsReceivable 잔액을 체크 계좌로 옮깁니다.

2025-08-01 * "Acme Corp" "Payment INV-045"
Assets:Bank:Checking 3500.00 USD
Assets:AccountsReceivable
invoice_id: "INV-045"

INV-045Assets:AccountsReceivable 잔액이 이제 0이 되었으며, 장부는 완벽히 균형을 이룹니다.

PDF 첨부: link: 메타데이터 키는 Fava( Beancount의 웹 인터페이스)와 함께 사용할 때 특히 강력합니다. Fava는 거래 보기에서 클릭 가능한 링크를 바로 렌더링하므로 원본 문서를 클릭 한 번으로 열 수 있습니다. 이 워크플로는 2016년 기능 요청에서 이미 구상되었습니다(GitHub).

모든 미결 청구서를 나열하는 하나의 쿼리

그렇다면 아직 누가 나에게 돈을 빚지고 있나요? 이 시스템을 사용하면 이메일이나 스프레드시트를 뒤질 필요가 없습니다. 단 하나의 간단한 쿼리만 있으면 됩니다.

open-invoices.sql 라는 파일로 저장하세요:

SELECT
meta('invoice_id') AS id,
payee,
narration,
date,
number(balance) AS outstanding
WHERE
account = "Assets:AccountsReceivable"
AND balance != 0
ORDER BY
date;

터미널에서 실행합니다:

bean-query books.beancount open-invoices.sql

몇 초 만에 모든 미결 청구서에 대한 최신 연령 보고서를 받아볼 수 있습니다. 청구서 ID, 고객, 발행일, 미지급 금액이 표시됩니다. 별도의 소프트웨어는 필요 없습니다.

반복 작업 자동화

플레인 텍스트의 가장 큰 장점은 스크립트화가 가능하다는 점입니다. 이 워크플로의 지루한 부분을 자동화할 수 있습니다.

  • 템플릿 + Pandoc = PDF: 청구서 템플릿을 Markdown 으로 유지합니다. 작은 Python 스크립트가 변수(고객명, 항목, 청구서 번호 등)를 채워주고, 명령줄 도구 Pandoc이 즉시 전문 PDF 로 변환합니다.
  • Git Pre‑commit Hook: 장부를 Git 으로 관리한다면, 간단한 pre‑commit 훅을 만들어 커밋 전에 검사를 실행할 수 있습니다. 새 invoice_id 가 고유한지, 거래 포스팅이 0 으로 균형을 이루는지, link: 메타데이터에 지정된 파일이 실제 존재하는지 확인합니다.
  • Cron Job: 예약 작업(cron)을 설정해 open-invoices.sql 쿼리를 매일 밤 실행하고 요약을 이메일로 받아보세요. 매일 아침 누가 친절히 리마인드가 필요한지 바로 알 수 있습니다.

현실적인 주의사항

Beancount는 회계 도구이며 청구서 서비스가 아닙니다. 고객에게 자동 결제 알림을 보내거나 신용카드 결제를 처리해 주지는 않습니다. 워크플로는 다음과 같습니다: 템플릿 등을 사용해 청구서를 만들고 전송한 뒤, 장부에 회계 항목을 기록합니다.

대부분의 프리랜서와 소규모 사업체에게 이 수동 단계는 견고하고 감사 가능한 무료 회계 시스템을 완전히 소유하고 제어할 수 있다는 큰 장점에 비해 작은 비용에 불과합니다(beancount.io).

다음 단계

청구서를 직접 관리하고 싶으신가요? 시작 방법은 다음과 같습니다.

  1. 템플릿을 다운로드하고 다음 실제 청구서를 만들 때 순차적인 청구서 번호를 사용하세요.
  2. 보낸 PDF 를 docs/invoices/ 와 같은 전용 폴더에 저장하고, Beancount 거래에 link: 메타데이터 키로 참조하세요.
  3. open-invoices.sql 쿼리를 저장하고 주간 재무 검토 시 실행하도록 습관화하세요.

플레인 텍스트 회계가 폴리시나 제어를 포기한다는 의미는 아닙니다— 데이터베이스가 grep 가능할 뿐입니다. 간단한 템플릿과 위 스니펫만 있으면 더 빨리 결제받고 장부는 언제나 깔끔하게 유지됩니다.