회계하면 손익계산표, 현금흐름표, 대차대조표 이 세가지가 기본인데, 매번 회계관련 이벤트 발생마다 이것들을 업데이트 하는 데이터 중심 언어를 설계하고 있다.
예를들어, 고정자산을 구입한다고 해봐. 그럼 JSON 스타일로 이렇게 표현하는거지
{:book :buy-pp&e
:transaction
[{:book :transfer
:amount amount
:from {:class :cash :account cash-account-id}
:to {:class :fixed-assets@cost :account fixed-asset-account-id}}
]
}
회계엔진은 이걸 받아들이면
1. 대차대조표에 들어갈 항목을 알아냄 - 현금이 고정자산 쪽으로 이동
2. 현금흐름표에 들어갈 항목을 알아냄 - 고정자산 클래스 쪽으로 현금이 이동 했으므로 고정자산 취득 발생
3. 손익계산표에 들어갈 항목을 알아냄 - 이건 임금지불, 제품관련 트랜잭션, 영업비용발생, 연구개발비용발생, 이런 경우에만 해당
몇가지 기본규칙만 정해주면 간단한 언어로 구성된 데이터를 받아서 타당한 데이터인지 검사할 뿐 아니라 각종 회계표를 자동으로 업데이트 하게 할 수 있는 시스템이 됨.
난 개노가다 없는 이런 시스템을 선호함
존나쉽네.. 계정과목 등록할때마다 저 3가지 체크하면 되는거아니냐