마야에게는 네 살짜리 아이가 있고, 뒷마당에 "야망"이라고 부르는 퇴비통이 있으며, 이 글의 끝까지 이야기하고 싶지 않은 식료품 구매 습관이 있습니다. 그녀는 12년 차 백엔드 엔지니어이며, 지난 8년 동안 그녀 가정에서 벌고 쓴 모든 돈은 Git 저장소의 일반 텍스트 파일에 기록되어 있습니다.

그전에는 대부분의 사람들처럼 했습니다. 첫 직장부터 서비스가 종료될 때까지 Mint를 사용했습니다. 그다음 6개월 동안 스프레드시트를 사용했는데, 그녀의 말로는 "더 나쁜 도구로 하는 두 번째 직업"이 되었습니다. 동료가 일반 텍스트 회계(plain-text accounting)를 언급했고, 그녀는 토끼굴에 빠져들었으며 결코 빠져나오지 못했습니다. "화요일 밤에 Beancount 문서를 읽고 그 주말에 3년 치 내역을 마이그레이션했어요. 파트너는 내가 해킹당했다고 생각했죠. 컴퓨터 앞에서 웃고 있었거든요."
의식: 주 1회, 20분, 노트북만
마야의 규칙은 대부분의 앱 사용자와 반대입니다: 재정은 휴대폰이 아닌 책상에서 이루어집니다. 매주 일요일 아이가 잠든 후, 그녀는 beancount.io에서 Fava로 원장을 열고 같은 루틴을 실행합니다. 그 주의 거래를 검토합니다. 가져오기 도구가 모호하게 남긴 항목을 분류합니다. 순자산 차트를 살펴봅니다. 노트북을 닫습니다.
"CI(지속적 통합)를 좋아하는 이유와 같아요." 그녀가 말합니다. "작고, 지루하고, 반복 가능합니다. 20분이면 끝나고, 일주일 내내 그것에 대해 생각하지 않아요."
하지만 휴대폰은 한 가지 역할을 맡습니다: 캡처입니다. 식료품점에서 계산을 마치기 전에 beancount.io 모바일 앱으로 영수증을 찍습니다. 일요일이 되면 초안 거래로 받은 편지함에 들어가 확인을 기다립니다. "영수증은 예전에 재킷 주머니에 넣었다가 결국 쓰레기통에 갔어요. 이제는 원장으로 들어갑니다. 그것이 전부입니다 — 지출 시점에 캡처하고, 주 1회 판단하는 거죠."
잔액 확인: 돈을 위한 단위 테스트
가장 좋아하는 기능을 물어보면 그녀는 망설이지 않습니다 — 하지만 차트는 아닙니다. 바로 balance 확인(assertion)입니다: 파일에 있는 한 줄짜리 문장으로 "이 날짜에, 이 계좌에 정확히 이 금액이 있었습니다"라고 명시합니다. 원장과 은행 기록이 일치하지 않으면 파일은 bean-check 통과를 거부합니다.
"재정을 위한 실패하는 테스트입니다. 내 원장은 현실에서 조용히 벗어날 수 없어요. 사람들은 계좌 조정을 위해 돈을 내고 앱을 사용하는데, 나는 컴파일되지 않는 텍스트 파일에서 그 기능을 얻습니다."
그녀가 가장 과소평가하는 기능은 문서입니다 — 영수증 PDF나 사진을 거래에 직접 첨부하는 것입니다. "세금 시즌에 회계사가 내 기록이 어디 있냐고 물었어요. Git 번들을 보냈죠. 그녀는 농담이라고 생각했어요. 그런데 시산표(trial balance)를 열고는 웃음을 멈췄어요."
어린이집 질의
시스템이 진가를 발휘한 순간은 BQL 질의였습니다. 네 살짜리 아이의 어린이집 비용이 비싸다고 느꼈지만, 느낌은 숫자가 아니므로 Fava 질의 페이지에서 한 줄을 실행했습니다 — 월별 총액, 그룹화, 12개월 기간.
"어린이집이 비싸다는 걸 알려주는 소프트웨어는 필요 없었어요. 하지만 그 선이 1년 내내 오른쪽 위로 올라가는 것을 보니 드디어 가격을 비교하게 되었어요. 우리는 실제로 더 마음에 드는 곳으로 이사했고, 20분 더 가까워졌으며, 그 차액이 식료품비를 충당합니다. 하나의 질의였어요. 8년간의 부기(bookkeeping)에 대한 전체 ROI입니다. 점수를 매기자면, 당연히 저는 매기고 있어요."
또한 분기마다 한 번씩 같은 방법으로 구독 서비스를 확인합니다: 하나의 질의, 하나의 목록, 10분 안에 취소. "항상 스트리밍 서비스예요. 마치 번식하는 것 같아요."
하지만 커피도
엔지니어들도 지출 항목이 있습니다. 만약 그녀의 원장이 그녀를 비판한다면, 결정타는 Expenses:Food:Coffee일 것입니다. "V60 커피 메이커가 있었어요. 그다음 저울. 그다음 Fellow 주전자. 그다음 내 첫 모니터보다 비싼 그라인더." 물론 그녀는 모든 것의 정확한 비용을 알고 있습니다 — git log로 푸어오버 시대의 커밋이 더 잦아지는 것을 볼 수 있습니다.
일반 텍스트로 돈을 추적하는 것에 대해 사람들이 오해하는 부분이 바로 이것이라고 그녀는 말합니다. 규제에 관한 것이 아닙니다. "다이어트가 아니에요. 거울입니다. 커피 항목을 보면 죄책감이 전혀 없어요. 왜냐하면 내가 선택했기 때문입니다. 원장은 내가 눈을 뜨고 선택하도록 할 뿐입니다."
8년이 지난 지금, 그 저장소는 그녀가 유지해온 프로젝트 중 가장 오래된 것입니다. "직장에서 내가 작성한 모든 것은 다시 쓰여지거나 삭제되었어요. 이 파일은 계속 컴파일될 뿐입니다."
자신만의 일요일 의식을 원하시나요? beancourt.io에 가입하고, Smart Import로 첫 번째 명세서를 가져온 후, 원장이 기억하게 하세요.