대부분의 소규모 기업의 계정과목표 파일을 열어보면 비슷한 풍경을 마주하게 됩니다. 247개의 계정 중 잔액이 있는 것은 고작 십여 개뿐이고, 그중 절반은 적절한 카테고리를 찾지 못한 피곤한 장부 담당자가 한밤중에 급하게 만든 것들입니다. 손익계산서는 네 페이지에 걸쳐 길게 늘어져 있고, 대표는 사업이 돈을 벌고 있는지조차 파악하기 어렵습니다. 구조를 고칠 생각을 하면 벌써 기운이 빠지기에 아무도 6년 동안 이 구조를 건드리지 않았습니다.
계정과목표(COA, Chart of Accounts)는 원래 "우리의 돈이 어디서 왔고, 어디로 갔는가?"라는 단순한 질문에 답하기 위한 것입니다. 이 질문에 답하지 못하게 되는 순간, 재무제표는 그저 은행에 제출하기 위해 출력하고 남은 기간 내내 무시되는 배경지처럼 전락합니다. 해결책은 계정을 늘리는 것이 아닙니다. 의도를 가지고 더 적은 계정을 배치하는 것입니다.
이 가이드는 실제로 읽고 싶은 재무제표를 만드는 계정과목표 설계 방법을 다룹니다. 번호를 매기는 방법, 하위 계정과 차원(Dimensions)을 구분하여 사용하는 시점, 부서 및 위치 처리 방법, 그리고 유용한 보고서를 소음으로 만드는 불필요한 계정을 포착하는 방법을 설명합니다.
계정과목표의 진짜 목적
계정과목표는 총계정원장의 색인과 같습니다. 송장, 급여, 은행 수수료 등 비즈니스에서 기록하는 모든 거래는 이 계정 중 하나에 기록됩니다. 그런 다음 이 계정들은 재무제표를 구성하는 다섯 가지 범주로 집계됩니다.
- 자산 (1000번대) — 기업이 소유한 것: 현금, 매출채권, 장비, 선급비용.
- 부채 (2000번대) — 기업이 갚아야 할 것: 매입채무, 신용카드, 대출금, 이연수익.
- 자본 (3000번대) — 기업에 대한 소유주의 권리: 자본금, 이익잉여금, 배당금.
- 수익 (4000번대) — 고객이 지불한 금액.
- 비용 (5000, 6000, 7000번대) — 수익을 얻기 위해 들어간 비용. 매출원가는 주로 5000번대, 판관비는 6000번대, 이자 비용과 같은 영업외 항목은 주로 7000번대에 배치합니다.
이 다섯 가지 버킷 구조는 보편적입니다. 카페, SaaS 스타트업, 개인 재단, 화물 중개업체 모두 동일한 다섯 가지 범주를 사용합니다. 차이는 각 버킷 내부의 세분화 정도에서 발생하며, 여기서 대부분의 계정과목표가 엉망이 되기 시작합니다.
번호 매기기: 성장을 위한 여유 두기
번호를 매기는 규칙은 생각보다 중요합니다. 좋은 체계는 사용자가 거래 내역을 힐끗 보기만 해도 생각할 필요 없이 그 범주를 알 수 있게 해줍니다. 나쁜 체계는 모든 회계사가 사용자 지정 맵을 일일이 암기하게 만듭니다.
가장 일반적인 규칙은 4자리 시스템입니다. 첫 번째 숫자는 유형을 나타내고 나머지 세 자리는 해당 유형 내에 999개의 슬롯을 제공합니다. 아주 작은 규모의 사업체라면 3자리 시스템도 작동하지만, 4자리 시스템을 사용해도 추가 비용이 들지 않으며 나중에 회사가 성장할 때 번호를 다시 매겨야 하는 수고를 방지해 줍니다. 다중 법인 그룹에서 회사나 법인을 식별하는 선행 숫자가 필요한 경우에는 5자리 시스템이 유용합니다.
여기 나중의 고생을 덜어줄 핵심 팁이 있습니다. 바로 간격을 두는 것입니다. 계정 번호를 10이나 20 단위로 늘려가며 지정하세요.
1000 현금
1010 보통예금 — 운영
1020 보통예금 — 급여
1030 저축예금
1040 MMA (머니마켓계좌)6개월 후 새로운 고금리 계좌를 개설하더라도 기존 번호들을 수정할 필요 없이 1015번에 바로 넣을 수 있습니다. QuickBooks와 같은 소프트웨어는 계정 번호별로 정렬할 수 있으므로, 새 계정은 자동으로 적절한 위치에 자리 잡게 됩니다. 순차적인 번호 매기기(1000, 1001, 1002)는 깔끔해 보일 수 있지만, 계정을 추가할 때마다 전체 번호를 다시 매기거나 비즈니스 흐름을 반영하지 못하는 정렬 순서를 감수해야 합니다.
소규모 기업을 위한 실용적인 번호 체계는 다음과 같습니다.
- 1000–1099 현금 및 현금성자산
- 1100–1199 매출채권 및 대손충당금
- 1200–1299 재고자산
- 1300–1499 선급비용, 보증금, 기타 유동자산
- 1500–1799 유형자산 및 감가상각누계액
- 1800–1999 무형자산 및 장기자산
- 2000–2099 매입채무
- 2100–2199 미지급비용 (급여, 세금, 이자)
- 2200–2399 신용카드
- 2400–2499 단기차입금 및 유동성장기부채
- 2500–2999 장기부채, 이연수익
- 3000–3999 자본 (출자금, 이익잉여금, 배당)
- 4000–4999 수익
- 5000–5999 매출원가
- 6000–6999 영업비용 (판관비)
- 7000–7999 영업외손익 및 비용 (이자, 자산처분손익, 세금)
이것은 시작점일 뿐 절대적인 법칙은 아닙니다. 핵심은 각 범위가 명확한 의미를 가지고 있으며, 다음 범주를 밀어내지 않고도 내부에 계정을 추가할 공간이 있어야 한다는 점입니다.
작게 시작하세요. 민망할 정도로 작게.
초보 사업주가 저지르는 가장 큰 실수는 템플릿에서 가져온 80개의 계정으로 장부를 시작하는 것입니다. 그중 60개는 절대 쓰이지 않습니다. 사용하지 않는 60개의 계정은 공짜가 아닙니다. 거래를 코딩하기 어렵게 만들고, 계정 조정을 느리게 하며, 보고서를 읽기 힘들 정도로 길게 만듭니다.
1인 컨설턴트라면 사업 운영에 약 20개의 계정만 있으면 충분할 것입니다. 현금 계정 하나, 신용카드 하나, 매출채권, 몇 개의 수익 라인, 급여가 있다면 급여 계정, 그리고 십여 개의 정기적인 운영 범주(임차료, 소프트웨어, 외주비, 여비교통비, 식대, 수수료, 마케팅, 세금, 은행 수수료) 정도입니다. 이것이 계정과목표의 전부입니다. 나중에 언젠가 할 일을 예상해서 계정을 미리 만들지 말고, 실제로 비즈니스에서 새로운 카테고리가 정말로 필요할 때 계정을 추가하세요.
특정 계정이 그 자리를 차지할 자격이 있는지 판단하는 기준은 간단합니다. "이 계정이 별도로 존재함으로써 내 의사결정이 달라질 것인가?" 그렇다면 유지하세요. 아니라면 상위 계정으로 합치세요.
"사무용품"은 계정과목이 될 수 있지만, "볼펜"은 계정과목이 아닙니다.
하위 계정: 사용하되 깊이를 제한하세요
하위 계정은 상세 내역과 전체 합계(rollup)를 동시에 확인해야 할 때 유용합니다. 대표적인 예는 여비교통비입니다:
6400 여비교통비
6410 여비교통비 — 항공료
6420 여비교통비 — 숙박비
6430 여비교통비 — 지상 교통비
6440 여비교통비 — 식대손익계산서(P&L)에서는 네 가지 하위 계정을 모두 표시하여 세부 구성을 확인하거나, 은행 제출용으로 하나의 "여비교통비" 항목으로 통합하여 보여줄 수 있습니다. 부모-자식 관계를 활용하면 하나의 분개 데이터 세트에서 이 두 가지 뷰를 모두 얻을 수 있습니다.
하위 계정 관리를 위한 실무 원칙은 다음과 같습니다: 계층 구조를 3단계 이내로 유지하십시오. 3단계를 넘어서면 그것은 계정 과목 일람표가 아니라 데이터베이스를 구축하는 꼴이 됩니다. 만약 4단계나 5단계까지 필요하다면, 실제로 필요한 것은 더 깊은 계정 체계가 아니라 '디멘션(dimensions)'입니다.
더 많은 계정 대신 디멘션을 사용해야 할 때
이 부분에서 대부분의 소규모 기업들이 난관에 봉착합니다.
예를 들어 세 개의 지점을 운영하고, 다섯 개의 제품 라인이 있으며, 두 개의 고객 세그먼트를 응대한다고 가정해 보겠습니다. 그래서 다음과 같이 계정을 만듭니다:
6010 임차료 — 지점 A
6011 임차료 — 지점 B
6012 임차료 — 지점 C
6110 마케팅비 — 제품 라인 1
6111 마케팅비 — 제품 라인 2
...지점, 제품 라인, 고객 세그먼트를 계정 구조에 모두 곱해서 반영하다 보면, 관리 불가능한 매트릭스가 만들어지고 계정 과목이 600개에 달하게 됩니다. 지점이 새로 생길 때마다 새로운 계정들이 쏟아져 나옵니다. 모든 계정을 기억하고 일관되게 사용해야 하며, 신입 사원 교육도 매번 새로 해야 합니다.
더 깔끔한 패턴은 **디멘션 회계(dimensional accounting)**입니다. 계정 체계는 작게 유지하고, 각 거래에 지점, 프로젝트, 부서, 고객 등의 속성(attribute)을 태그로 지정하는 방식입니다. 대부분의 현대적인 회계 플랫폼은 클래스, 태그, 프로젝트, 위치 또는 사용자 정의 세그먼트를 통해 이를 지원합니다. Beancount와 같은 텍스트 기반 회계 도구는 모든 포스팅에 메타데이터와 명명된 태그(named tags)를 사용하여 이를 기본적으로 처리합니다.
디멘션 접근 방식을 사용하면 다음과 같은 구조가:
6010 임차료 — 지점 A
6011 임차료 — 지점 B
6012 임차료 — 지점 C다음과 같이 바뀝니다:
6010 임차료 [location: A]
6010 임차료 [location: B]
6010 임차료 [location: C]계정은 하나지만 보고서는 세 개를 얻을 수 있습니다. 지점 D를 오픈해도 계정 체계에는 아무런 수정이 필요 없습니다. 그저 새로운 거래에 location: D 태그를 붙이기만 하면 됩니다. 계정 과목 일람표는 깔끔하게 유지되고, 보고서는 더욱 풍부해집니다.
계정과 디멘션의 구분은 간단한 원칙을 따릅니다. 계정 과목 일람표는 '무슨 일이 일어났는가'에 답합니다. 디멘션은 '어디서, 누구를 위해, 무엇에 대해' 일어났는가에 답합니다. 임차료는 지점에 관계없이 임차료입니다. 급여는 부서에 관계없이 급여입니다. '항목의 종류'는 계정으로 가고, '맥락'은 디멘션으로 갑니다.
참고할 만한 산업별 패턴
모든 비즈니스는 결국 고유의 계정 과목 일람표(COA)를 갖게 되지만, 산업별로 반복되는 특정 패턴이 있으며 이를 모방하는 것이 새로 만드는 것보다 효율적입니다.
유통 및 이커머스
재고(Inventory)가 핵심입니다. 원재료, 미착품, 완제품, 반품을 위해 재고 아래에 하위 계정을 두는 것이 좋습니다. 매출원가(COGS)는 상품 원가와 매입 운반비, 결제 수수료, 재고 감모 손실을 구분해야 합니다. 배송 수입과 배송 비용은 총액/순액 구분이 마진 분석에 중요하므로 보통 각각 별도의 계정을 사용합니다.
서비스 및 컨설팅
재고 항목이 거의 없습니다. 매출은 고정 수수료, 시간당 청구, 리테이너(자문료) 등 서비스 유형별로 세분화하여 어떤 계약 모델이 실제로 수익성이 높은지 확인합니다. 외주비와 전문 자격증 비용은 금액이 크고 가변적이며 의사 결정에 중요하므로 별도 계정을 사용하는 것이 일반적입니다.
SaaS 및 구독형 모델
ASC 606 수익 인식 기준에 따라 재무상태표에 이연 수익, 미수 수익, 이연 계약 원가가 포함됩니다. 매출 계정은 구독 매출, 구축/일회성 매출, 사용량 기반 매출로 나뉩니다. 비용 측면에서는 호스팅/인프라 비용을 "소프트웨어" 비용에 묻어두지 않고 별도의 영업 비용 항목으로 분리하는 것이 좋습니다.
비영리 단체
자본(Equity) 대신 순자산(Net assets)을 사용하며, 계정 체계는 무제약(unrestricted), 일시적 제약(temporarily restricted), 영구적 제약(permanently restricted)으로 나뉩니다. 비용은 IRS Form 990 및 회계 감사를 위해 프로그램, 관리, 모금과 같은 기능별로 보고할 수 있어야 합니다. 대부분의 비영리 단체는 모든 비용 계정을 세 배로 늘리는 대신 부서나 클래스 디멘션을 사용하여 기능별 구분을 처리합니다.
가장 유사한 패턴을 선택하여 단순화한 후, 필요에 맞게 커스터마이징하세요.
비대화 테스트: 연말 정리 의례
계정 과목 일람표도 서랍장처럼 시간이 지나면 지저분해집니다. 누군가 밤 11시에 코스트코에서 장을 본 후 "사무실 간식비"라는 새 계정을 만듭니다. 6개월 후에는 "간식비", "탕비실 용품", "주방 소모품" 계정이 모두 활성화되어 있고, 어느 것이 표준인지 아무도 모르게 됩니다. 이러한 변화는 서서히 보이지 않게 진행되다가, 세 군데에 흩어져 있는 카테고리에 대해 예산을 세우려 할 때 문제가 드러납니다.
매년 1월이나 회계 담당자가 바뀔 때마다 이 정리 과정을 수행하세요:
- 시산표(Trial Balance)를 뽑으세요. 일 년 내내 잔액이 0이었던 계정은 삭제 대상입니다.
- 모든 계정이 표시된 손익계산서를 금액순으로 정렬하여 뽑으세요. 소규모 기업의 경우 의미 있는 기준값(보통 1,000달러 미만) 이하의 항목은 상위 계정으로 통합하는 것을 고려하세요.
- 중복 항목을 찾으세요. "소프트웨어 구독료", "SaaS 도구", "온라인 서비스"는 하나로 합치는 것이 좋습니다. 하나를 선택하고 나머지를 통합하세요.
- 하위 계정의 깊이를 검토하세요. 3단계를 넘어가는 곳이 있다면, 그 깊은 단계가 정말 계정이어야 하는지, 아니면 디멘션/태그/클래스여야 하는지 자문해 보세요.
- 계정 체계를 문서화하세요. 각 계정에 대한 한 줄 설명이 있으면, 다음 회계 담당자가 오더라도 체계가 유지되지만, 설명이 없으면 사람이 바뀔 때마다 계정 체계가 새로 만들어지게 됩니다.
회계사는 시간당 비용을 청구합니다. 깔끔한 계정 체계는 매달 결산 비용을 줄여주며, 매년 감사 및 세무 신고 비용을 절감해 줍니다.
왜 장부 기록의 규율이 계정 과목표 자체보다 더 중요한가
완벽하게 설계된 계정 과목표(COA)라 할지라도 그 바탕이 되는 장부 기록이 부실하다면 무용지물입니다. 일관성 없는 코딩은 아무리 깔끔한 5페이지 분량의 차트라도 엉망으로 만듭니다. 신입 사원 교육 부재로 마케팅 비용이 세 개의 계정으로 나뉘거나, 소유주 인출(owner draws)이 어떤 달에는 배당(distributions)으로, 다음 달에는 급여(salary)로 처리되기도 합니다. 매출원가(COGS) 항목을 장부 기록자가 임의로 판단해 운영비로 처리하는 경우도 발생합니다. 결국 보고서는 거짓말을 하기 시작합니다.
계정 과목표를 유용하게 유지하는 규율은 화려하지 않습니다. 모든 기록자가 차트를 동일하게 해석할 수 있도록 작성된 명문 코딩 가이드, 오류가 누적되기 전에 잡아내는 월 마감, 그리고 계정이 추가, 변경 또는 폐기된 이유를 추적할 수 있는 버전 관리 기록 등이 필요합니다. 장부를 단순히 연말 세무 신고용이 아니라 살아있는 문서로 취급하는 기업은, 다른 곳에서는 소음만 발생하는 동일한 차트에서 유용한 보고서를 도출해낼 수 있습니다.
텍스트 기반 회계(Plain-Text Accounting)가 규율을 더 쉽게 만듭니다
위의 계정 과목표 문제 중 상당수는 사실 도구의 문제입니다. 247개의 항목이 있는 드롭다운 메뉴는 클릭 실수를 유발하기 쉽습니다. 미리 생성된 계정들로 가득 찬 템플릿은 불필요한 확장을 부추깁니다. UI 뒤에 계정 과목표를 숨기는 소프트웨어는 구조 전체를 파악하기 어렵게 만듭니다.
텍스트 기반 회계는 이를 뒤집습니다. 계정 과목표는 30초면 처음부터 끝까지 읽을 수 있는 파일 내의 계정 이름 목록일 뿐입니다. 계층 구조는 이름에 포함된 콜론에서 나옵니다. Expenses:Travel:Airfare는 자동으로 Expenses:Travel의 하위 계정이 되며, 이는 다시 Expenses로 합산됩니다. 차원(Dimensions)은 하드코딩된 세그먼트가 아니라 개별 포스팅의 태그로 관리됩니다. 차트의 모든 변경 사항은 git diff에 나타나며, 커밋 메시지를 통해 그 이유를 설명합니다. 연말 정리는 퀵북스(QuickBooks)에서의 스트레스 받는 주말이 아니라 풀 리퀘스트(pull request) 하나로 끝납니다.
계정 과목표를 한 화면에서 다 읽을 수 있다면, 그 정직함을 유지할 수 있습니다. 그렇지 않다면, 구조는 이미 통제 범위를 벗어난 것입니다.
첫날부터 장부의 정직함을 유지하세요
계정 과목표는 작은 결과물이지만 엄청난 영향력을 발휘합니다. 이를 제대로 설정하면 월 마감, 세무 신고, 은행과의 예산 상담, 그리고 다음 1달러를 어디에 쓸지에 대한 결정이 모두 쉬워집니다. 반대로 잘못 설정하면 이 모든 과정이 영원히 힘들어집니다.
Beancount.io는 투명하고 버전 관리가 가능하며 AI 시대를 준비하는, 예외가 아닌 기본으로서 깔끔하고 의도적인 계정 과목표를 만드는 텍스트 기반 회계 환경을 제공합니다. 무료로 시작하기를 통해 개발자와 재무 팀이 왜 실제로 읽을 수 있는 텍스트 기반 회계로 전환하고 있는지 확인해 보세요.