๐ hledger ์๊ฐ ๋ฐ ์ค์น: ํ ์คํธ ํ์ผ๋ก ํ๊ณํ๊ธฐ
Why
๋ง์ ๊ฐ๊ณ๋ถ/์์ฐ๊ด๋ฆฌ ์ฑ๋ค์ด ์๊ณ , ๋ง์ด๋ฐ์ดํฐ๊ฐ ์๊ฒจ๋ ์ดํ ๊ฑฐ์ ๋ชจ๋ ๊ธ์ต/์ํ ์ฑ๋ค์ด ๊ธฐ์กด ๊ธ์ต์ฌ๋ค๊ณผ ์ฐ๋๋ ๊ฐ๊ณ๋ถ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ์๋ค.
ํ์ง๋ง ๊ฐ์ธ์ ๋ณด ๋ฌธ์ ๋ ๋์งธ์น๊ณ ๊ทธ๋ฐ ์ฑ๋ค์ ๊ธฐ๋ฅ์ ์ผ๋ก ๊ฝค๋ ๋ถ์กฑํ๋ค. ๋ง์ ๊ฒฝ์ฐ ๊ทธ๋ฅ ์์ฐ ์กฐํ ์ ์ ๊ทธ์น๊ณ ๊ฐ๊ณ๋ถ๋ ๊ฐ๋จํ ๋จ์๋ถ๊ธฐ์ ๊ธฐ๋ก์ ๊ทธ์น๊ธฐ๋๋ฌธ์ ํ๊ณ๊ฐ ๋ช
ํํ๋ค. ๊ฑฐ๊ธฐ์ ์๋ง์ ๊ฐํธ๊ฒฐ์ ์๋น์ค๋ค์ด ๋๋ฆฝํ๋ฉด์, ๋ง์ ๊ฒฝ์ฐ ๊ฑฐ๋๋ด์ญ์ prefix๋ก OOํ์ด_๊ฐ ๋ถ๊ฒ๋๋ฉด์ ์ ๋๋ก ๊ฑฐ๋ ๋ถ๋ฅ๋ฅผ ํ์ง ๋ชปํ๋๊ฐํ๋ฉด, ๊ฑฐ๋ ๋ด์ญ ์์ฒด๊ฐ ์ฃผ์ํ์ฌ OOO ๋ฑ ๋ช
ํํ์ง ์์ ๊ฒฝ์ฐ๋ ์ ์ง ์์์ seamlessํ ๊ฒฝํ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ์๋ ๋ฌด๋ฆฌ๊ฐ ์๋ค. ์ผ๋ก๋ก ์ฉ์ฐ ์์ดํํฌ๋ชฐ์์๋ ์ด๋๊ณณ์์ ๊ฒฐ์ ํ๋ ๊ฑฐ์ ๋ชจ๋ ์์ด์น๋์จ์์ดํํฌ๋ชฐ ์ฃผ์ํ์ฌ๋ก ๋จ๊ธฐ๋๋ฌธ์ ์๋น ์นดํ
๊ณ ๋ฆฌ ๋ถ๋ฅ๊ฐ ์ ๋๋ก ๋์ง ์๋๋ค1.
๊ทธ๋ฐ์๋ 1) Migration/Backup์ด ์ ํ๋๋ ์ 2) ๋๋ถ๋ถ ํ ํ๋ซํผ(๋ชจ๋ฐ์ผ)์ ์ข ์๋๋ ์ , 3) ์นด๋ ๊ฒฐ์ ์ฒ๋ฆฌ, ํนํ ๊ฒฐ์ (๋ถ๋ถ/์ ์ฒด) ์ทจ์์ ๋ฐ์์ด ๋ฆ๋ ์ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋จ์ ์ด ์๋ค. ๊ทธ๋์ ์กฐ๊ธ ๋ฒ๊ฑฐ๋กญ๋๋ผ๋ ์คํ์์ค๋ก ๋์์ ์ฐพ๊ธฐ ์์ํ๋ค.
PTA, ๊ทธ๋ฆฌ๊ณ hledger
์ฌ๋ฌ ๋์์ค ๊ฐ์ฅ ๋์ ๋ค์ด์จ ๊ฒ์ GNU/Cash์ Plain-text-accounting(์ดํ PTA) ์ํํธ์จ์ด๋ค์ด์๋ค. PTA๋ ์ด๋ฆ์์ ์ ์ ์๋ค์ํผ ํน์ ์ํํธ์จ์ด๋ฅผ ์ง์นญํ๋ ๋ง์ด ์๋ Plaintext, ์ฆ ํ๋ฌธ ํ์ผ์ ํ๊ณ ์ ๋ณด๋ฅผ ๊ธฐ๋กํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๊ฐ์ฅ ๊ฐ๋จํ๊ฒ๋ ๋ ธํธ ํ์์ daybook๋ PTA์ ์ผ์ข ์ผ๋ก ๋ณผ ์ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก PTA๋ผ ๋งํ๋ฉด PTA์์ ๊ฐ์ฅ ๋ํ์ ์ธ ํ๋ก๊ทธ๋จ์ธ ledger์ ํฌ๋งท๊ณผ ๊ทธ์ ๋น์ทํ ledger-like ํ๋ก๊ทธ๋จ๋ค๊ณผ ํฌ๋งท์ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ๋ก ํ๋ค. ์๋๋ ์์ฃผ ๊ฐ๋จํ hledger ํ์์ ๊ฑฐ๋์ด๋ค:
2025-04-20 ๊ต๋ณด๋ฌธ๊ณ
expenses:books 10,000 KRW
assets:cash -10,000 KRW
2025-04-20 ์๊ธ
income:salary -100,000 KRW
assets:bank 100,000 KRW์ฑ ์ 10,000์์ ์ฐ๊ณ , ์๊ธ์ 100,000์ ๋ฐ์ ๊ฒ์ ์ด๋ ๊ฒ ๊ฐ๋จํ๊ฒ ๊ธฐ๋ก๋ง ํด ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ณด๊ณ ์2๋ฅผ ๋ฐ์๋ณผ ์ ์๋ค:
$ hledger is
Income Statement 2025-04-20
|| 2025-04-20
================++=============
Revenues ||
----------------++-------------
income:salary || 100,000 KRW
----------------++-------------
|| 100,000 KRW
================++=============
Expenses ||
----------------++-------------
expenses:books || 10,000 KRW
----------------++-------------
|| 10,000 KRW
================++=============
Net: || 90,000 KRWhledger๋ ๋ณต์๋ถ๊ธฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค. ์ฒ์์๋ ์กฐ๊ธ ์ง๊ด์ ์ด์ง ์์ ์ ์์ง๋ง(ํนํ ๋/์ฐจ๋ณ์ +/- ๋ถํธ๋ก ๊ตฌ๋ถํ๊ธฐ๋๋ฌธ์ ์๊ธฐ๋ ์คํด๋ค์ด ์๋ค) ์ต์ํด์ง๋ฉด ๋ค๋ฅธ ์๋น์ค์๋ ์ฐจ๋ณ๋๋ semanticity๋ฅผ ์๋ํ๋ค.
์ด ์๋ฆฌ์ฆ์์๋ ๋ณต์๋ถ๊ธฐ ๋ฐฉ๋ฒ ์์ฒด์ ๋ํด ๋ค๋ฃจ์ง ์๊ฒ ๋ค. ํ๊ณ ๊ธฐ์ค์ด ์๋ ๋ณต์๋ถ๊ธฐ ์์คํ ์์ฒด๋ ์ดํดํ๊ธฐ ๋งค์ฐ ์ฝ๊ธฐ๋๋ฌธ์ 10๋ถ ๋ด์ธ๋ก ์ถฉ๋ถํ ๋ฐฐ์ธ ์ ์๋ค. hledger docs์์ ์๊ฐํ๋ ๋ณต์๋ถ๊ธฐ๋ฅผ ์๊ฐํ๋ ์์์ ์ถ์ฒํ๋ค.
๋ค์ ํฌ์คํธ์์๋ ๊ธฐ๋ณธ์ ์ธ hledger์ ํ์๊ณผ ๋ช๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ๋ช ๋ น์ด๋ค์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
-
๋ฌผ๋ก PTA๋ ๋น์ฐํ ์๊ธฐ๋ก ํด์ค์ผํ๋ค. ๋จ์ง “๊ฐํธํ ๊ฐ๊ณ๋ถ” ์ฑ๋ค์ด ํ๊ธฐ์ ์ผ๋ก ๋ ๊ฐํธํ์ง ์๋ค๋ ๋ง์ผ ๋ฟ์ด๋ค. ↩︎
-
์๋์ ๋ณด๊ณ ์๋ฅผ Income statement, ํฌ๊ด์์ต๊ณ์ฐ์๋ผ๊ณ ํ๋ค. ์ค์ ๊ธฐ์ ์์ ์ฌ์ฉํ๋ ๋ณด๊ณ ์ ํ์๊ณผ ํฐ ์ฐจ์ด๊ฐ ์๋ค. ↩︎