Emacs에서 Ledger 모드로 재무 관리하는 방법

Ledger 모드는 Emacs의 명령줄 회계 프로그램인 Ledger를 위한 패키지입니다. 이를 통해 Emacs 사용자는 자신이 선호하는 텍스트 편집기에서 Ledger의 강력한 기능을 활용할 수 있습니다.
목차
- Emacs에서 Ledger 모드를 사용하고 회계 처리를 하는 이유는?
- Ledger 작동 방식
- Ledger에서 계정 카테고리 정의하기
- Ledger 설치하기
- Emacs에서 Ledger 모드 사용하기
- 자주 묻는 질문들
또한 읽어보세요: Doom Emacs란 무엇이며 설치 방법
Emacs에서 Ledger 모드를 사용하고 회계 처리를 하는 이유는?
Ledger 모드는 사용하기 간단하고 직관적입니다. 재무를 자동으로 조정하고 기록에 문제가 있을 경우 알림을 제공합니다. 또한 지출과 수입 출처를 분류할 수 있어 패키지 자체에서 정렬하고 분석할 수 있습니다.

간단히 말해, Ledger 모드는 Emacs를 생산성 도구로 사용하는 사람에게 훌륭한 추가 기능입니다. 스프레드시트의 필요성을 없애면서도 Ledger 데이터를 Emacs의 다른 부분에서 사용할 수 있게 해줍니다.
Emacs는 상호 운용성의 개념으로 작동합니다. 이는 Emacs에서 생성된 모든 데이터를 Emacs 내의 다른 패키지에서 재사용할 수 있음을 의미합니다. Ledger 모드는 사용자가 Ledger를 위해 작성한 데이터를 Emacs의 다른 도구와 결합할 수 있도록 합니다.

예를 들어, 이를 통해 아카이브된 이메일과 Ledger 파일에 링크된 Org 모드 문서를 생성할 수 있습니다. 뿐만 아니라 Ledger 항목을 이메일로 쉽게 복사하고 그 반대도 가능합니다. 이는 Ledger 모드의 항목이 일반 텍스트이기 때문에 Emacs가 이를 어떤 버퍼로도 쉽게 이동할 수 있기 때문입니다.

또한 읽어보세요: Emacs 내에서 이메일 사용하기
Ledger 유틸리티
위에서 논의한 바와 같이, Emacs의 Ledger 모드는 Ledger 명령줄 유틸리티에 접근하는 방법일 뿐입니다. 따라서 Ledger 프로그램이 무엇인지, 기본적으로 무엇을 할 수 있는지 아는 것이 중요합니다.
또한 읽어보세요: Magit으로 Emacs에서 Git 관리하기
Ledger 작동 방식
Ledger는 일반 텍스트 장부를 읽고 그로부터 회계 보고서를 생성하는 간단한 프로그램입니다. 전통적인 회계 프로그램과 달리 데이터베이스 파일을 생성하거나 수정하지 않습니다. 이는 Ledger가 재무 상태를 추적하는 데 있어 간결하고 유연한 솔루션이 되게 합니다.

Ledger가 이를 가능하게 하는 방법은 파일의 각 항목이 특정 형식을 따르도록 기대하기 때문입니다. 다음 예를 고려해 보세요:
2022/02/16 지출
지출:음식:점심 140 PHP
지출:음식:간식 50 PHP
자산:법정통화:현금 -190 PHP여기서 Ledger는 일반 텍스트 파일에서 세 가지를 기대합니다:
- 날짜와 장부 항목의 이름을 지정하는 제목 행. 이 경우, 2월 16일에 지출 항목을 추가했습니다.
- 돈이 어디서 왔고 어디로 갔는지를 보여주는 계정 그룹. 이 경우, 현금 자산을 사용하여 지출 계정으로 이동했습니다.
- 내가 이동한 금액. 여기서 점심과 간식으로 두 번 현금 자산을 이동했습니다. 그러나 하루가 끝날 때 모든 것이 한 번에 자산에서 차감되었습니다.
이 세 가지 기본 가정은 Ledger를 어떤 상황에도 쉽게 적응할 수 있게 만듭니다. 예를 들어, Ledger는 통화와 상품 모두를 처리할 수 있습니다. 이는 자신의 지출 습관을 추적하는 것뿐만 아니라 투자도 추적하는 사람들에게 유용합니다.
또한 읽어보세요: Elfeed로 Emacs에서 RSS 사용하기
Ledger에서 계정 카테고리 정의하기
Ledger에서 각 거래의 카테고리는 완전히 임의적이라는 점을 주목해야 합니다. 그러나 개인 재무를 추적하는 일반적인 관행은 다섯 부분으로 나눌 수 있습니다:
- 자산 계정은 당신이 소유한 상품과 통화입니다. 이는 단일 통화일 수도 있고, 여러 통화, 주식 및 품목 재고의 혼합일 수도 있습니다.
- 지출 계정은 당신이 자산으로 구매한 상품입니다.
- 수입 계정은 당신의 부의 출처에서 돈을 인출할 수 있는 곳입니다. 예를 들어, 이 계정에 당신이 받는 급여를 첨부할 수 있습니다.
- 부채 계정은 현재 당신이 빚지고 있는 모든 상품을 할당할 수 있는 곳입니다.
- 자본 계정은 현재 순자산을 결정하는 데 사용할 수 있는 특별한 계정입니다. 이는 Ledger에서 개시 잔액을 생성할 때 일반적으로 사용됩니다.
각 거래를 더 구체적으로 지정하려면 이 다섯 카테고리 각각 뒤에 콜론(:)을 추가할 수 있습니다. 예를 들어, 지출:음식:점심이라는 레이블이 있는 거래는 세 수준의 계층 구조로 표현될 수 있습니다.

또한 읽어보세요: Emacs를 개선하기 위해 사용할 수 있는 5가지 숨겨진 기능
Ledger 설치하기
이를 염두에 두고 Ledger 설치는 간단합니다. 대부분의 리눅스 배포판의 저장소에서 찾을 수 있습니다. 예를 들어, Debian 및 Ubuntu에서 apt를 사용하여 ledger를 설치할 수 있습니다:
sudo apt install ledgerFedora에서는 dnf를 사용할 수 있습니다:
sudo dnf install ledgerArch Linux에서는 pacman을 사용할 수 있습니다:
sudo pacman -S ledger제 경우에는 Debian을 사용하고 있으므로 apt를 통해 ledger를 설치할 것입니다.

또한 읽어보세요: Emacs에서 ERC로 IRC 사용하기
Emacs에서 Ledger 모드 사용하기
Emacs와 함께 Ledger 프로그램을 사용하려면 Ledger 모드라는 동반 패키지를 설치해야 합니다. 이 패키지는 기본 ELPA 저장소에서 사용할 수 있습니다. 따라서 Emacs의 패키지 관리자를 통해 이미 설치할 수 있습니다.

- 그렇게 하려면 Alt + X를 누르고
package-install을 입력할 수 있습니다. 그러면 Emacs에 추가하고 싶은 패키지를 입력할 수 있는 명령 버퍼가 열립니다.ledger-mode를 입력하세요. - 그 후 Emacs는 패키지의 소스 코드를 다운로드하고 컴파일합니다. 그 후, 이제 Ledger 모드를 통해 Emacs에서 Ledger를 사용할 수 있습니다.

Emacs에서 첫 번째 Ledger 만들기
기본적으로 Ledger 모드는 Emacs가 .ledger로 끝나는 파일을 열 때 자동으로 활성화됩니다.
따라서 Control + X, Control + F를 눌러 Emacs에서 자신의 Ledger 파일을 만들기 시작할 수 있습니다.
그러면 생성할 파일의 이름을 입력할 수 있는 버퍼가 열립니다.
example.ledger를 입력하세요.그 후 Emacs는 현재 디렉토리에 “example.ledger” 파일을 생성하고 이를 열어줍니다. 여기서부터 거래로 Ledger 파일을 채우기 시작할 수 있습니다.
또한 읽어보세요: Emacs로 아름다운 Beamer 슬라이드 만들기
Emacs에서 개시 잔액 만들기
Ledger에서 재무를 추적하기 시작하려면 먼저 현재 잔액을 제공해야 합니다. 이는 자산과 부채를 차감하여 자본 계정에 제공할 수 있습니다. 예를 들어, 다음은 자산과 부채가 있는 사람의 개시 잔액입니다:
2022/02/10* 개시 잔액
자산:비트코인:저축 0.045 BTC
자산:비트코인:당좌 0.00050712 BTC
자산:법정통화:당좌 15,000.00 PHP
자산:법정통화:저축 255,944.00 PHP
부채:법정통화:자동차 대출 -450,000.00 PHP
부채:법정통화:신용 지급 -5,000.00 PHP
부채:법정통화:주택 대출 -755,831.34 PHP
자본:개시 잔액개시 Ledger 항목의 구조는 위의 예와 유사하지만 한 가지 중요한 차이가 있습니다. 여기서는 Ledger에게 이 거래가 이미 “정리됨”을 알리기 위해 항목 제목 앞에 별표를 추가했습니다. 이는 Ledger가 이 계정에서 추가하고 차감할 수 있음을 의미합니다.
현재 잔액 확인하기
작업이 완료되면 Ledger가 파일을 제대로 감지하는지 테스트할 수 있습니다.
- 그렇게 하려면 Control + C, Control + O, Control + R을 누를 수 있습니다. 그러면 Ledger 모드가 보고서를 생성하도록 요청합니다.
bal을 입력하여 현재 잔액을 표시합니다.

- 그렇게 하면 Ledger 파일에 추가한 모든 계정의 계층 구조가 생성됩니다. 이 모든 것은 마지막 줄에서 총합이 0이 되어야 합니다.
새로운 거래 추가하기
작업이 완료되면 이제 Ledger 파일에 새로운 거래를 추가할 수 있습니다.
- Control + C, Control + A를 눌러 Ledger 모드에 새로운 거래를 생성하겠다고 알릴 수 있습니다.
- 그러면 이 거래의 날짜를 묻는 메시지가 표시됩니다. 이는 특정 날짜 이후에만 정리되는 수표를 발행할 경우 유용합니다. 제 경우에는 현재 날짜를 사용하고 싶으므로 여기서 Enter를 누릅니다.

- 그 후 Ledger 모드는 이전에 기록된 거래의 이름을 묻습니다. 반복 지불을 하고 이전 거래를 복사하고 싶을 경우 이 기능을 사용할 수 있습니다. 제 경우에는 새로운 거래를 생성하고 싶으므로 여기서도 Enter를 누릅니다.

- 그렇게 하면 Ledger 모드는 현재 날짜로 새로운 빈 줄을 생성합니다. 여기서 원하는 거래를 추가할 수 있습니다. 예를 들어, 개시 잔액 이후에 다음 거래를 추가했습니다:
2022/02/10* 개시 잔액
자산:PHP:당좌 5,000.00 PHP
자산:PHP:저축 10,000.00 PHP
부채:PHP:신용 지급 -5,000.00 PHP
자본:개시 잔액
2022/02/11 나의 첫 거래
지출:음식:간식 250.00 PHP
자산:PHP:당좌 -250.00 PHP
또한 읽어보세요: 리눅스를 위한 7가지 더 나은 USENET 리더
기본 보고서 생성하기
- 위에서 논의한 바와 같이 Control + C, Control + O, Control + R을 눌러 보고서를 생성할 수 있습니다. 그러나
bal외에도 Ledger 내에서 다양한 보고서를 생성하기 위해 여러 다른 명령을 사용할 수 있습니다. - 예를 들어, 특정 카테고리에 대한 계좌 명세서를 생성하기 위해
account와 계좌 이름을 입력할 수 있습니다. 제 경우에는 “자산”을 입력하여 자산 카테고리에 대한 명세서를 생성했습니다.

- 반면에, 제공한 문자열로 제목이 붙은 모든 거래를 표시하기 위해
payee를 입력할 수 있습니다. 예를 들어, “간식”을 입력하여 간식이라는 단어가 포함된 모든 거래만 표시할 수 있습니다.

- 마지막으로, 전체 Ledger의 등록 보고서를 생성하기 위해
reg를 입력할 수 있습니다. 이는 Ledger가 각 상품과 그 균형을 추적하는 보다 자세한 잔액 보고서입니다.

축하합니다! 이제 Emacs를 사용하여 재무를 추적하는 방법을 알게 되었습니다. 또한 Ledger 프로그램과 이를 사용하여 재무 상태에 대한 자세한 보고서를 생성하는 방법에 대해서도 배웠습니다.
또한 읽어보세요: 더 나은 생산성을 위한 5가지 유용한 Emacs 패키지
자주 묻는 질문들
1. Ledger가 내 Ledger가 균형이 맞지 않다는 오류를 발생시킵니다. 내가 뭘 잘못했나요?
이는 여러 가지 문제로 인해 발생할 수 있습니다. 그러나 가장 일반적인 문제는 Ledger에서 거래를 닫는 것을 잊어버린 것입니다. 이를 수정하는 한 가지 방법은 음수 값이 없는 거래가 있는지 확인하는 것입니다.
Ledger에서 음수 값은 계정에서 금액을 인출하는 것을 의미합니다. 반면에 양수 값은 이를 추가하는 것을 의미합니다. 이 두 값은 자산 흐름을 나타내며 Ledger에서 계정을 균형 있게 유지하는 데 필요합니다.
따라서 Ledger에서 거래를 할 때마다 양수와 음수 값을 모두 가져야 합니다.
2. Ledger는 실제 자산과만 사용할 수 있나요?
전혀 그렇지 않습니다. 위에서 논의한 바와 같이 Ledger에서 사용되는 모든 계정은 완전히 임의적입니다. 이는 이 가이드의 예가 실제 자산을 가리키고 있지만, Ledger를 사용하여 가상 자산을 추적할 수도 있음을 의미합니다.
예를 들어, 다음은 인기 있는 MMO 게임인 EVE Online에서 자산을 추적하는 Ledger의 발췌입니다:
2022/01/04 벤처 수익
Main:자산:유동:ISK 150,000,000.00 ISK
Alt 1:수입:광물 채굴 -10,000,000.00 ISK
Alt 1:수입:상점 거래 -40,000,000.00 ISK
Alt 2:수입:데이터 실행 (0.0)-100,000,000.00 ISK
2022/01/07 유지 비용
Alt 1:지출:선박 보험 10,000.00 ISK
Alt 2:지출:신규 선박 53,450,000.00 ISK
Main:자산:유동:ISK -53,460,000.00 ISK3. 은행 명세서와 유사하게 거래 순서를 반전할 수 있나요?
예, 그리고 아니요. Ledger가 생성하는 보고서에서 거래 순서를 반전할 수 있습니다. 그러나 Ledger 파일에서 거래 순서를 반전할 수는 없습니다. 전자를 수행하려면 보고서 버퍼에서 Shift + R을 눌러 순서를 반전할 수 있습니다.
이미지 출처: Unsplash