회계 ERP 개발을 위한 도메인 공부:
2024. 3. 14. 23:53ㆍ개발 외 공부
728x90
반응형
#1. 회계(accounting) 기본 분석
1. 전표(Voucher)
https://blog.naver.com/robot179/220758971019
- 위 블로그처럼 전표메인과 전표상세를 담는 테이블로 나뉘어야함
- 전표메인
- 전표상세의 집합
- 하나의 전표안에 해당 전표를 나타내는 값들과 여러 계정과목 차대 내역을 가지고 있음.
- 계정과목 내역은 전표상세 테이블로 미루고, 나머지 값들을 전표메인 테이블로
- 전표상세
- 계정과목 값들을 넣는 행을 담는 테이블
- 전표관리항목
- 전표상세에서 계정과목 값들 중, 계정과목 세팅에서 관리항목을 가지고 있는 값들에 대해 관리항목 값을 담는 테이블
- 계정과목의 관리항목 세팅에 따라 전표상세 행 하나당 전표관리항목 행이 안 생길 수도, 하나 생길 수도, 두 개 이상 생길 수도 있음.
- 전표상세에서 계정과목 값들 중, 계정과목 세팅에서 관리항목을 가지고 있는 값들에 대해 관리항목 값을 담는 테이블
- 전표메인
2. 재무상태표 (balance sheet)
- 전표에서 파생
- 재무제표
- 특정 시점 기업의 재무상태
- 분기 / 반기
- 기업 자산 / 부채 / 자본
- 자본
- 자본금
- 이익잉여금
- 수익 - 비용
- 자산
- 유동자산 (current asset)
- 당좌자산
- 현금 / 현금성자산
- 단기매매금융자산
- 수취채권
- 계약자산
- 재고자산
- 상품 / 제품 / 원재료
- 당좌자산
- 유동자산 (current asset)
- 부채
- 자본
- 기업의 재무 상태를 특정 시점에 대해 보여주는 보고서.
- 계정별보조부의 자산, 부채, 자본 정보를 기반으로 작성됨.
- 자산 - 차변
- 부채, 자본 - 대변
- 계정별보조부의 자산, 부채, 자본 정보를 기반으로 작성됨.
3. 손익계산서 (income statement)
- 전표에서 파생
- 기존에 있는 테이블을 전표에서 오는 쿼리로 대체 해야할 수도 있음.
- 비용 수익
- 특정 기간 동안의 수익과 비용을 보여주는 보고서.
- 순이익, 순손실 계산
- 분개장의 수익, 비용 항목을 기반으로 작성됨.
- 수익 — 대변
- 비용 — 차변
4. 계정별보조부(ledger) - 전표 상세
- 전표에서 파생
- 특정 계정에 대한 자세한 내용을 보충적으로 기록하는 장부(보조 기입장, 보조 원장)
- 분개장의 sub 테이블
- 종류가 여러개 있음
- 자산 / 부채 / 자본 / 수익과 비용
- 보조부. 기록사항
- 분개장에서 발생한 모든 거래가 계정별 보조부에 정리되어, 해당 계정의 잔액을 유지한다.
- 각 계정의 현재 잔액을 확인하는 데 사용됨
5. 분개장(journal) - 거래 기록
- 전표에서 파생
- 거래를 모두 나열한 것
- 전표 데이터 자체와 거의 흡사하다고 생각해도 될듯
- 기업 거래를 총괄적으로 파악하고, 재무제표를 작성하는데 기초가 되는 장부
- 차변 대변으로 구분하여 계정과목과 금액을 거래발생 순서로 기입하는 장부 == 전표
- 거래를 시간 순서별로 분개하여 기입하는 정보
- 각 거래의 출처와 세부 내역을 추적하는 데 사용
- 분개장의 모든 거래가 정확하게 기록되었는지를 합계잔액시산표를 통해 확인할 수 있음
6. 합계잔액시산표(trial balance)
- 전표에서 파생
- 회계 상 일정 기간 동안 모든 계정과목의 합계와 잔액을 나타낸 시산표 형식
- 차변, 대변의 항목을 각각 합계 및 잔액으로 구분하여 작성.
- 차변 합계 / 대변 합계 / 차변 대변 차이
- 차변합계, 대변합계, 그리고 잔액끼리는 반드시 일치해야 됨
- 대차 평균의 원리
- 테이블이 아니라 그냥 통계로 구현해도 될 것 같음.
- dto만 따로 구현해서.
- 차변, 대변의 항목을 각각 합계 및 잔액으로 구분하여 작성.
- 최종적인 재무제표를 작성하기 위한 자료
- 줄여서 합잔
#2. 전표데이터 분석
1. 계정과목 (account item)
https://blog.naver.com/PostView.naver?blogId=im_chungbin&logNo=221814567364
- 계정대분류 및 차대에 대한 이해를 돕는 블로그
1) 계정과목
- 계정과목 세팅을 담고 있는 템플릿
- 차대 / 계정대분류 등 정보를 담음
- 계정과목끼리의 구조는 해당 테이블에서 관리하지 않음
- 계정과목 데이터만 관리
- 계정과목 구조가 전표기준에 따라서 다르고, 전표기준을 사용자가 추가할 수 있기 때문.
- 같은 이름의 계정과목인데 전표기준에 따라서 계정과목 내의 세팅 값(예를 들면 관리항목 유형) 등이 바뀔 여지가 있으면, 전표기준 대체 아이디, 혹은 전표기준 유형 column을 넣어줘서, 계정과목 템플릿 구성 시 특정 기준에서만 쓸 수 있는 계정과목을 만들어줄 수 있음.
2) 계정과목 템플릿
- 전표기준에 따라 계정과목 구조를 어떻게 세팅할 건지를 담는 테이블
- 트리구조
- 계정과목 테이블에서 오는 데이터를 기준으로 현재 / 상위를 저장하여 트리 구성
- 기존 메뉴테이블 구조랑 흡사
- 차이점은 메뉴는 구조가 하나기에 테이블 하나로 메뉴 자체 데이터와 메뉴의 구조를 하나의 테이블에서 담을 수 있음.
- 그러나 계정과목은 구조가 여러개라서, (또한 구조의 이름을 사용자가 지을 수 있어서) 테이블을 세 개로 나눠서 관리.
- 계정과목: 계정과목 데이터 자체만 관리
- 계정과목 템플릿: 계정과목의 id만 가지고 구조만 관리
- 전표기준: 계정과목 구조의 명칭과 전표기준을 관리
- 기존 메뉴테이블 구조랑 흡사
3) 전표기준(회계기준)
- 사용자가 추가하는 전표기준을 관리하는 테이블
- 대략 회사당 4개의 행 예상
2. 관리항목 (management item)
1) 관리항목
- 계정과목 테이블과 흡사.
- 관리항목의 세팅 값만 저장
- 관리항목의 묶음, 혹은 계정과목과의 연결은 고려하지 않음.
- 이는 관리항목유형 / 관리항목유형 상세로 관리
- 관리항목의 세팅 값만 저장
- 해당 테이블에는 처음 제공되는 값이 있음.
- 해당 값들은 아래 테이블들이랑 관리항목시스템코드 값과 서버단 코드로 미리 연결이 되고, 전표 관리항목 테이블에서 해당 값들을 연결 지을 수 있음.
- 거래처
- 임직원
- 계좌
- 은행
- 부서
- 해당 값들은 아래 테이블들이랑 관리항목시스템코드 값과 서버단 코드로 미리 연결이 되고, 전표 관리항목 테이블에서 해당 값들을 연결 지을 수 있음.
- 그 후의 값들은 사용자가 직접 추가.(대신 외부 테이블 참조는 관리항목시스템코드 내의 값들에 대해서만 가능)
- 사실 위의 값들도, 미리 관리항목시스템코드를 구성하고, 각 시스템코드에 대한 대응이 이미 코드에서 구현이 되어있는 경우, 사용자가 해당 시스템코드들에 대해서 추가, 수정할 수 있음.
- 관리항목시스템코드 중에 외부 테이블을 표현하는 값 제외하고, “텍스트” 라는 값을 넣어서, 해당 값은 관리항목이 그냥 key - value 형식으로 나타나게끔함.
2) 관리항목유형
- 관리항목유형명만 담는 테이블
- 비정규화를 통해 관리항목유형상세 테이블과 합칠 수 있지만, 의의가 크지 않아보여 우선 분리.
- 관리항목과 관리항목유형은 N:N 구조
- 그렇기에 관리항목유형상세 테이블을 따로 구현해, 각 관리항목유형은 어떤 관리항목들을 담고 있는 지 나타냄.
- (같은 관리항목도 여러개의 관리항목유형을 가질 수 있음)
- 각 VC마다 관리항목유형의 명칭과 구성을 다르게 지정할 여지가 있기에 해당 테이블을 시스템코드가 아닌 테이블로 구현
3) 관리항목유형상세
- 각 관리항목유형이 어떤 관리항목으로 구성되어있는 지 나타내는 테이블
- relationship 테이블
- 따로 대체아이디 부과를 하지 않아도 될 것 같음.
#3. 대변, 차변 (Credit, Debit)
- 양 측의 금액이 항상 균형을 이뤄야함
1) 차변 (Debit):
- 빌리는 쪽
- 자산(Assets)의 증가
- 비용(Expenses)의 감소
- 수익(Revenue)의 증가
- 부채(Liabilities)의 감소
- 자본(Equity)의 감소
2) 대변 (Credit):
- 빌려주는 쪽
- 자산(Assets)의 감소
- 비용(Expenses)의 증가
- 수익(Revenue)의 감소
- 부채(Liabilities)의 증가
- 자본(Equity)의 증가
728x90
반응형