소개
.Net Ledger (NLedger)는 .NET 플랫폼용으로 포팅된 Ledger 명령줄 회계 시스템입니다. Dmitry Merzlyakov이 개발한 이 소프트웨어는 원본 Ledger의 기능을 모두 지원하며, Windows 사용자가 한 번의 클릭으로 설치하여 Ledger 문서대로 사용할 수 있도록 설계되었습니다. NLedger는 순수 C#로 작성되어 외부 라이브러리 의존성이 없으며, .NET 호환 시스템에서 실행 가능합니다. 이 도구는 복식부기, 다중 게시 트랜잭션, 스마트 금액 처리 등 Ledger의 핵심 기능을 그대로 제공합니다.
상세정보
복식부기 및 다중 게시 트랜잭션
NLedger는 복식부기 원칙을 완벽히 지원하며, 하나의 트랜잭션에 여러 금액 이동을 포함할 수 있는 다중 게시 기능을 제공합니다. 예를 들어 현금 인출, 카드 계좌 출금 및 은행 수수료를 하나의 논리적 작업으로 처리할 수 있습니다.
스마트 금액 및 통화 처리
금액은 숫자와 해당 상품(통화, 주식, 시간 등)을 결합한 ‘스마트’ 형태로 처리되어, 서로 다른 단위의 금액을 자동으로 변환하거나 오류를 방지합니다. 예를 들어 10.00 USD와 5 AAPL 주식은 직접 더할 수 없지만, 환율 정보를 통해 변환 후 계산이 가능합니다.
자동 균형 및 저널링
거래의 차변과 대변이 맞는지 자동으로 검증하고, 일부 조건에서는 잔액을 자동으로 계산하여 저널 작성을 간소화합니다. 저널, 계정 등 기본 회계 요소도 모두 포함됩니다.
명령줄 인터페이스 및 보고서
텍스트 파일을 유일한 입력 소스로 사용하며, 파일을 수정하지 않고 읽기만 하여 보고서를 생성합니다. 다양한 보고서 옵션을 통해 재무 상태를 효율적으로 분석할 수 있으며, 배치 파일을 통해 반복 작업을 자동화할 수 있습니다.
확장성 및 통합
.NET 네이티브 애플리케이션으로서, 추가 기능을 통해 다른 .NET 제품과의 통합이 가능하며, NuGet 패키지를 통해 라이브러리로도 활용할 수 있습니다. Python 확장 모듈을 통해 Python 인터프리터에서도 Ledger 기능을 사용할 수 있습니다.
다운로드·설치 방법
Windows 사용자는 GitHub 릴리스 페이지에서 최신 MSI 설치 파일을 다운로드하여 실행하면 됩니다. 설치 시 관리자 권한이 필요하며, 설치 완료 후 nledger.html 파일을 확인하여 사용 방법을 안내받을 수 있습니다.
ZIP 바이너리 패키지를 선호하는 경우, 동일한 릴리스 페이지에서 zip 파일을 다운로드 후 압축을 해제하고, nledger.html 파일을 열어 설치 지침을 따릅니다. 또는 압축 해제 후 프로그램 파일에 복제하고, Contrib 폴더의 nledger-tools.ps1 스크립트를 실행하여 시스템 경로에 등록할 수 있습니다.
소스 코드로부터 직접 빌드하려면 Git으로 저장소를 클론한 후, Contrib/nledger-tools.ps1 및 get-nledger-up.ps1 스크립트를 차례로 실행합니다. Python 관련 테스트를 위해서는 python-connect 명령어도 함께 실행해야 합니다.
기본 사용법
설치 후 ‘.Net Ledger Tools’ 콘솔을 시작 메뉴에서 찾아 실행합니다. 콘솔에서 ledger --version을 입력하면 설치된 버전을 확인할 수 있습니다. 예제 장부 파일을 사용하여 잔액을 확인하려면 ledger bal -f testinputdrewr3.dat 명령을 입력하면 됩니다.
명령줄에서 직접 사용하려면 시작 메뉴에서 ‘.Net Ledger Folder’를 찾아 cmd를 실행한 후, 동일한 ledger 명령을 입력하면 됩니다. Live Demo 기능을 사용하려면 콘솔에서 live-demo 명령을 입력하여 브라우저 기반 대화형 문서를 실행할 수 있습니다.
이런 경우에 유용합니다
개인 또는 소규모 사업장에서 복잡한 회계 소프트웨어 없이도 텍스트 기반으로 정확한 재무 기록을 유지하고자 하는 사용자에게 적합합니다. 특히 개발자나 기술에 익숙한 사용자가 배치 파일이나 스크립트를 통해 회계 작업을 자동화하고 싶을 때 유용합니다. 또한 .NET 애플리케이션에 회계 기능을 내장해야 하는 개발자는 NLedger를 라이브러리 형태로 통합하여 사용할 수 있습니다.
제한 사항·확인 사항
.NET DateTime 파서가 원본 Ledger보다 덜 구체적인 오류 메시지를 보여, 일부 날짜 형식 처리 테스트가 현재 비활성화되어 있습니다. 이 문제는 향후 릴리스에서 개선될 예정입니다. 또한 Python 확장은 Python 3.6 이상에서만 지원되며, Python 2용 테스트는 더 이상 사용되지 않아 비활성화되어 있습니다. 특정 조건에서 원본 Ledger의 stream_out_mpq 단계에서 발생하던 반올림 오류는 이미 테스트 케이스를 통해 수정되었습니다.
시스템 요구사항
.NET Framework 4.7.2 이상 또는 .NET Core SDK 3.1 이상이 필요합니다. 테스트 프레임워크 및 헬퍼 도구 사용을 위해 PowerShell 5.0 이상이 권장되며, Python 확장을 사용하려면 Python 3.6 이상이 필요합니다. PowerShell은 필수가 아니지만 설치 시 테스트 스크립트 실행을 통해 사용성이 향상됩니다.


