본문으로 건너뛰기

호스팅 원장에서 이제 관리형 가격 포함을 처리합니다

게시됨 마지막 업데이트 약 8분Mike ThriftMike Thrift
호스팅 원장에서 이제 관리형 가격 포함을 처리합니다
이 페이지에서

솔직히 말해봅시다: 여러분의 보유 자산은 이미 원장에 완벽하게 기록되어 있습니다. 여러분을 끝없는 재입력의 굴레에 가두는 것은 바로 가격입니다.

이 비대칭성은 플레인 텍스트 회계에서 가장 오래되고 가장 짜증나는 잡일입니다. 매수는 한 번만 기록하면 영원히 고정됩니다. 120 NWRB {41.80 USD, 2024-03-12}는 수량과 원가, 날짜를 영구적으로 못 박습니다. 그 이후에 일어나는 어떤 일도 이 사실을 바꾸지 못합니다. 그러나 가격은 정반대입니다—정확히 하루 동안만 맞고, 그 다음 조용히 틀려집니다. 더 나쁜 것은, 잔액 검사로는 절대 잡아낼 수 없는 방식으로 틀린다는 점입니다. 오래된 가격이 있는 원장도 완벽하게 균형이 맞기 때문입니다.

역사적으로 Beancount에서 이를 처리하는 방식은 스크립트로 가격을 가져와 그 출력을 커밋하는 것이었습니다. 이는 작동하며, 많은 사람들이 자동화해 왔습니다. 하지만 결국 그것은 여전히 여러분이 돌봐야 하는 스크립트이고, 유지해야 하는 크론 작업이며, 끊임없이 병합해야 하는 파일입니다.

이제 그만. beancount.io에서 호스팅되는 원장의 경우, 우리 엔진이 이제 이 처리를 네이티브로 수행합니다. 이 글은 정확히 무엇이 출시되었는지, 우리가 의도적으로 건드리지 않은 것, 그리고—그만큼 중요하게—아직 만들지 않은 것이 무엇인지를 다룹니다.


출시된 것​

호스팅된 beancount.io 원장은 이제 로컬 파일명 대신 URL을 가리키는 include 지시문을 가질 수 있습니다:

; main.bean, in a hosted beancount.io ledger.
;
; This page is Korean, so the quote currency is KRW. On another language of
; this site, use the currency in the list under the fence.
 
option "title" "Taxable brokerage"
option "operating_currency" "KRW"
 
; Only the hosted engine resolves the URL form, and upstream `include` takes a
; file glob — so the line is shown commented out here and this file still
; loads if you copy it to your own machine. Uncomment it in a hosted ledger.
; include "https://beancount.io/prices/AAPL-KRW"

주의: 해당 URL에 접근하기 전에 로그인해야 합니다. 익명 요청은 로그인 페이지로 리디렉션됩니다. 이 페이지는 한국어이므로 예시에서는 한국 원을 사용합니다—여기 독자들이 가장 흔히 장부를 작성하는 통화입니다. 인증한 후 https://beancount.io/prices/AAPL-KRW를 열어 표준 price 지시문을 보고 있는지 확인하세요. 그런 다음 해당 줄을 호스팅 원장에 추가하세요.

다른 언어를 사용한다면, 해당 언어의 일반적인 통화를 대신 사용하되, 카탈로그가 시세로 표시하는 경우에만 사용하세요:

https://beancount.io/prices/의 카탈로그도 같은 로그인 뒤에 있습니다. AAPL-USD 자체는 교차가 아닌 Databento의 직접 시세입니다. 다른 tier-1 주식도 같은 방식으로 작동합니다—티커를 바꾸고, 언어에 맞는 시세 통화를 유지하세요. ACME-USD는 404를 반환합니다.

업스트림 Beancount의 include는 기술적으로 파일명을 기대하므로, URL 포함은 엄격히 호스팅 엔진의 동작입니다. 결코 일반 Beancount인 척하지 않습니다. 다음은 우리 엔진이 내부적으로 수행하는 작업입니다:

  • 피드를 읽기 전용 가상 파일로 구체화합니다. URL은 엔진 자체의 include 해석 경로를 통해 해석되어—로컬 파일이 있었을 바로 그 자리에 위치합니다—모든 지시문이 실제 소스 위치를 유지합니다. 원본 바이트는 결코 다시 작성되지 않습니다. 여러분이 작성한 파일은 여러분이 작성한 그대로 남습니다.
  • 엄격한 페이로드 검증. 가져온 본문은 가격 전용으로 검증됩니다. price 지시문, 주석, 그리고 네 가지 특정 메타데이터 키(price-source, price-kind, observed-at, provisional)만 엄격히 허용합니다. 그 외의 것은 전체 본문을 거부합니다. 부분 수집은 없으므로, 악성 피드가 여러분의 장부에 트랜잭션을 몰래 넣을 수 없습니다.
  • 스마트 캐싱. 피드는 이동 포인터가 있는 불변 리비전으로 캐시됩니다. 새로 고침 주기는 캐시 만료가 아닌 타임스탬프로 구동되어, 업스트림 중단이 마지막 정상 리비전을 지우지 않도록 보장합니다.
  • 감사 가능한 신선도. 신선도는 원장을 읽을 때 동적으로 계산되며(최신, 오래됨, 사용 불가), 피드가 보고한 관측 시각과 함께 표시됩니다. 날짜를 알 수 없는 가격은 감사할 수 없는 가격입니다.
  • 엄격히 읽기 전용. 관리형 항목은 편집하거나 삭제할 수 없습니다(시도하면 소스를 명시한 오류가 발생합니다). 게다가 지시문 한도에 포함되지 않습니다—피드가 원장 예산을 잡아먹지 않도록 합니다.

이 중 어느 것도 Beancount에서 price 지시문이 근본적으로 의미하는 바를 바꾸지 않습니다. 엔진의 유일한 임무는 정확하고 날짜가 있으며 출처를 알 수 있는 가격을 로더 앞에 놓는 것입니다.


직접 작성한 가격이 언제나 우선합니다​

이는 원장을 진지하게 다루는 사람에게 결정적인 문제이므로, 명확히 하겠습니다:

같은 날짜와 같은 상품 페어(역방향 포함)에 대해, 직접 작성한 가격은 항상 관리형 피드보다 우선합니다.

"보통"이 아니고, "include를 마지막에 둔 경우에만"도 아닙니다. 이 섀도잉 결정은 가격 맵이 구축되기 전에 발생하므로, include가 파일 어디에 있든 완전히 독립적입니다. 맨 위에 두든, 맨 아래에 두든, 세 개의 파일에 나누어 두든—직접 작성한 가격이 항상 우선합니다.

역방향 규칙은 놓치기 쉽지만 필수적입니다. AAPL-USD 피드는 AAPL의 USD 가격입니다. 반대 방향—USD의 AAPL, 같은 날짜—으로 가격을 직접 작성했다면, 여러분의 항목이 여전히 피드를 이깁니다. 포함한 시세가 CNY든 JPY든 마찬가지입니다.

왜 이 규칙인가? 여러분 파일에 있는 가격은 의식적인 결정이기 때문입니다. 그것은 여러분이 조정 중인 명세서에 브로커가 인쇄한 정확한 종가일 수도 있고, 거래가 드문 자산의 동시 호가일 수도 있으며, 회계사가 요구한 특정 수치일 수도 있습니다. 피드는 여러분의 맥락을 알지 못합니다. 사람이 작성한 수치를 조용히 덮어쓰는 시스템은 더 이상 원장이 아니라 의견이 됩니다. 피드는 공백을 채우기 위해 존재하며, 여러분을 교정하지 않습니다.


가격은 가치 평가만 움직이고, 그 외에는 아무것도 아니다​

다음 안심은 정책 선택이라기보다 구조적이며, 실제 숫자로 보여주는 것이 가장 좋습니다. 날짜별 로트, 스테이킹, DeFi 포지션, 에어드롭을 포함한 암호화폐 예시 원장을 살펴보세요:

특정 항목 하나를 뽑아봅시다. 거버넌스 토큰 에어드롭이 도착하여 도착한 날의 공정 시장 가치로 수익으로 기록됩니다:

2024-03-20 * "Uniswap" "Receive UNI governance token airdrop"
  Assets:Crypto:Wallet:MetaMask:UNI       50.00 UNI {12.50 USD, 2024-03-20}
  Income:Crypto:Airdrops                -625.00 USD
 

그 $625.00의 수익과 로트에 붙은 단위당 $12.50의 기준은 이제 2024-03-20에 대한 불변의 사실입니다. 원장의 모든 price 지시문—관리형이든, 직접 작성한 것이든, 완전히 누락되었든—둘 다 건드리지 않습니다.

가격은 시장 가치를 바꾸며, 수량, 원가 기준, 현금 흐름, 수수료, 실현 이익은 결코 변경하지 않습니다. 이것이 바로 가격 피드가 의지할 수 있는 안전한 도구인 이유입니다: 나쁜 가격이 할 수 있는 최악의 일은 오늘 포지션의 가치를 일시적으로 잘못 표시하는 것뿐입니다. 세금 신고서에 기재할 확고한 숫자를 결코 훼손할 수 없습니다.


잘못된 가격 모델이 실제로 여러분을 오도하는 곳​

주식 및 ETF 예시 원장은 이 점의 더 날카로운 버전을 보여줍니다:

여기에는 올바른 방식으로 기록된 4대 1 주식 분할—수익 계정을 건드리지 않고 총 기준을 보존하는 수량 변경—이 포함되어 있습니다:

2025-07-15 * "Broker" "NWRB 4-for-1 share split — quantity change, not income"
  Assets:Brokerage:NWRB                   -120 NWRB {41.80 USD, 2024-03-12}
  Assets:Brokerage:NWRB                    480 NWRB {10.45 USD, 2024-03-12}
 

양쪽 모두 $5,016.00입니다. 시장 가치는 분할 전후로 변하지 않으며($7,440.00으로 동일), 중괄호 안의 취득 날짜가 유지됩니다—이것이 해당 주식을 2026년에 매도할 때 장기로 분류되게 하는 요인입니다.

흔한 함정은 분할을 가격 이벤트로 기록하고, 계산이 맞아떨어지도록 "분할 조정된" 가격 시리즈에 크게 의존하는 것입니다. 이는 여러분이 보는 모든 가격이 정확히 같은 방식으로 조정된 경우에만 작동합니다. 조정되지 않은 수치—오래된 확인 영수증, 스크린샷, 또는 과거를 재작성하지 않는 제3자 피드—가 원장에 들어오는 순간, 포지션은 갑자기 실제 가치의 네 배로 평가됩니다. 더 나쁜 것은, 원장의 주식 수가 더 이상 브로커 명세서와 일치하지 않아 연말 잔액 검증이 조용히 실패한다는 점입니다.

이것이 선언된 소스, 선언된 종류, 가시적인 관측 시각을 가진 가격 피드에 의존해야 하는 진짜 이유입니다. 편의성의 문제가 아니라, 가져온 숫자가 정확히 어떤 수학적 관례를 사용하는지 아는 문제입니다.

(임베드에 대한 짧은 참고: 호스팅 원장 뷰어는 계정 잔액을 원가로 렌더링하며 현재 페이지 내 가치 평가 컨트롤을 제공하지 않습니다. 위 원장들은 기본 메커니즘—로트, 분할, 매도—을 보여주기 위한 것입니다. 둘 다 공개되어 있으며 로컬에서 복제하여 실행할 수 있습니다.)


아직 없는 것​

우리는 변경 로그가 과장된 약속을 하면 쓸모없기 그지없다고 믿습니다. 그래서 우리가 아직 만들지 않은 것에 대한 꾸밈없는 진실을 일정 없이 여기 밝힙니다:

  • 인증이 필수입니다. https://beancount.io/prices/<ALIAS>에 대한 익명 요청은 로그인 페이지로 리디렉션됩니다.
  • 로컬 CLI 지원 없음. 로컬 bea CLI는 디스크에서 파일을 읽으므로, URL 포함은 일치하지 않는 파일 글롭으로 로컬에서 실패합니다. CLI에 로더 지원을 추가하는 것은 로드맵에 있습니다.
  • API 표면 없음. 현재 관리형 가격을 위한 REST, GraphQL, MCP 필드가 없습니다.
  • UI 대시보드 없음. "피드 연결" 화면도 없고 UI에 신선도 레이블도 아직 없습니다. (우리 엔진이 계산하는 신선도 데이터는 현재 표시할 곳이 없습니다).
  • 스냅샷, 내보내기, 수동 새로 고침 엔드포인트 없음.

오늘 출시한 것은 엄격히 엔진 계층입니다: include 해석, 검증, 리비전 캐싱, 우선순위 규칙, 신선도 계산. 이것은 다른 모든 것이 그 위에 서야 하는 기반 인프라이며, 바로 그래서 우리가 먼저 구축한 것입니다.


다음에 볼 곳​

위에 임베드된 두 원장은 우리의 예시 갤러리의 일부입니다—로컬에서 복제하여 실행할 수 있는 여섯 가지 완전한 패턴입니다. (둘 다 의도적으로 정적이고 체크인된 가격 파일과 함께 제공되어, 2년 후 복제해도 오늘과 정확히 같은 보고서를 생성합니다). 우리가 출시하는 다른 모든 것은 변경 로그에 직접 올라갑니다.

자체 페처로 가격을 최신 상태로 유지하는 것에 완전히 만족한다면, 그대로 유지하세요. 엄격히 로컬 원장에게는 여전히 최선의 답입니다. Beancount 자체의 가격 가져오기 문서와 유지 관리되는 beanprice 도구가 시작하기에 가장 좋은 곳입니다.

지루한 부분은 지루하게 유지하세요​

가격은 자동화할 가치가 있습니다. 플레인 텍스트 원장에서 시간이 지나면 썩는 유일한 부분이기 때문입니다. Beancount.io는 여러분의 것으로 남는 플레인 텍스트 회계—감사 가능하고, 버전 관리되며, 여러분 몰래 다시 작성되지 않는—를 제공하기 위해 만들어졌습니다. 그것이 우리가 관리형 피드를 출시하기 전에 충족해야 했던 기준선이었습니다.

무료로 시작하고, 실제로 읽을 수 있는 파일에 장부를 보관하세요.

출처: https://beancount.io/ko/blog/2026/09/17/managed-price-includes-hosted-ledgers

게시됨: 2026년 9월 17일

마지막 업데이트: 2026년 9월 19일