# Double-entry bookkeeping을 방향성 그래프로 표현

> Clean Markdown view of GeekNews topic #14256. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=14256](https://news.hada.io/topic?id=14256)
- GeekNews Markdown: [https://news.hada.io/topic/14256.md](https://news.hada.io/topic/14256.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-04-11T09:43:25+09:00
- Updated: 2024-04-11T09:43:25+09:00
- Original source: [matheusportela.com](https://matheusportela.com/double-entry-bookkeeping-as-a-directed-graph)
- Points: 3
- Comments: 1

## Topic Body

다음은 회계를 그래프 관점에서 설명한 글을 요약 정리한 내용입니다.

### 기본 개념 소개 
* 회계(Accounting)의 핵심은 세어 셀 수 있는 것들을 시간에 따라 추적하는 것임. 현대 회계는 주로 돈을 추적하는데 관심이 있음.  
* 장부(Ledger)는 거래내역(Entry)의 모음임. 
* 거래내역은 계정(Account)에서 발생한 거래를 기록한 것임. 
* 계정의 잔액(Balance)은 특정 시점의 계정에 있는 돈의 양임.

### 단식부기(Single-Entry Bookkeeping) 
* 단식부기는 각 계정별로 별도의 장부를 두고 한 번에 하나의 계정에 영향을 미치는 거래를 기록하는 간단한 시스템임. 
* 단식부기에서는 잔액만 업데이트 하기 때문에 계정의 잔액 변화 내역을 추적하기 어려움.

### 복식부기(Double-Entry Bookkeeping)  
* 복식부기는 거래를 여러 개의 거래내역으로 기록하는 회계 시스템임. 
* 거래내역은 차변(Debit)과 대변(Credit)으로 구성됨. 
  * 차변은 계정으로 들어오는 돈을 나타냄. 
  * 대변은 계정에서 나가는 돈을 나타냄.
* 거래(Transaction)는 여러 계정에 영향을 미치는 관련 거래내역을 그룹화한 것임.  
* 복식부기의 기본 원칙은 모든 거래에서 차변과 대변의 합계가 같아야 한다는 것임. 이를 통해 시스템의 총 금액이 거래 후에도 일정하게 유지됨.

### 그래프로 복식부기 이해하기
* 복식부기는 방향성 그래프(Directed Graph)로 모델링 할 수 있음. 
  * 계정은 그래프의 노드(Node)임. 
  * 대변 거래내역은 금액과 함께 이 노드에서 나가는 아웃고잉 엣지(Outgoing Edge)임.
  * 차변 거래내역은 다른 노드로 흐르는 금액과 함께 인커밍 엣지(Incoming Edge)임.
* 거래는 엣지 집합에 대한 조건(아웃고잉 엣지 합 = 인커밍 엣지 합)을 적용한 것임.
* 계정의 잔액은 인커밍 엣지의 금액 합계에서 아웃고잉 엣지의 금액을 뺀 값임.

### GN⁺의 의견
* 그래프 관점에서 복식부기를 이해하는 것은 회계 개념을 직관적으로 만드는 좋은 접근법임. 대차대조표, 손익계산서, 현금흐름표 등이 이 그래프의 시각화에 불과하다는 것을 깨닫게 됨. 
* 자산, 부채, 자본, 수익, 비용 등의 범주는 그래프의 노드 그룹일 뿐이며, 대변이나 차변이 잔액을 증가시키는지 이해하기가 쉬워짐.  
* 이런 접근은 회계를 개발자에게 덜 위협적이고 더 이해하기 쉽게 만드는 좋은 방법이 될 수 있음.
* 이 글의 저자처럼 나도 시각적 사고를 좋아해서 이런 설명이 크게 와닿음. 특히 복식부기를 배울 때 헷갈리는 대변/차변 개념을 그래프로 이해하니 명쾌해짐. 
* Beancount, hledger 등 plain text accounting 도구를 사용하여 이런 개념을 실제로 적용해 볼 수 있을 듯함.

## Comments



### Comment 24347

- Author: neo
- Created: 2024-04-11T09:43:25+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=39988993) 
요약:

- Double-entry bookkeeping에서 "Alice에게 한 줄, Bob에게 한 줄" 같은 설명은 너무 단순화되어 핵심을 놓치고 있음. 한 거래의 각 당사자별로 두 개의 입력이 필요하다는 것이 중요함.

- 회계는 아름답고 영향력이 큼. 소수의 공식과 명세서만으로 모든 조직의 상황을 비교 가능한 방식으로 표현 가능함. 수학과 문자 언어의 기원이기도 함. 

- "차변(Debit)"과 "대변(Credit)" 용어를 버리면 복식부기가 이해하기 쉬움. 회계 등식(자산=부채+자본)이 항상 맞아야 하는 것이 핵심임.

- 거래 내역을 저장하고 계정은 그로부터 계산하는 것이 더 단순함. 은행 명세서에 익숙한 계정 중심 사고에서 벗어나 현금 흐름 중심으로 생각해야 함. 

- David P. Ellerman은 "Pacioli group"이라 부르는 것에 기반한 수학적 회계 접근법을 제시함.

- Double-entry bookkeeping을 방향성 있는 그래프로 보는 것은 흥미로운 관점이지만, 실제 업무에 도움될지는 의문임. 수백 년간 유용했던 용어를 바꾸는 것은 혼란만 가중시킬 수 있음.
