์ด์ข ํ๋ซํผ ๊ฒฐ์ ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ์คํค๋ง๋ก ํตํฉํ๋ Lightweight ETL ํ์ดํ๋ผ์ธ ๊ตฌํ
๐ ๏ธ merge_payment_ledger: Merge Gumroad, Stripe, and PayPal CSVs into a unified ledger for easy
AI ์์ฝ
Context
Gumroad, Stripe, PayPal ๋ฑ ์๋ก ๋ค๋ฅธ CSV ํฌ๋งท์ ๊ฒฐ์ ๋ฐ์ดํฐ๋ฅผ ํตํฉ ๊ด๋ฆฌํด์ผ ํ๋ ์๊ตฌ์ฌํญ ๋ฐ์. ํ๋ซํผ๋ณ ์์ดํ ์ปฌ๋ผ ๋ช ์นญ๊ณผ ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ์ธํด ์๋ ํตํฉ ์ ๋ฐ์ํ๋ ๋์ ์ด์ ๊ณต์์ ๋ฐ์ดํฐ ์ ํฉ์ฑ ์ ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ์๊ฐ ์์.
Technical Solution
- Header Pattern Analysis๋ฅผ ํตํ ์ ๋ ฅ ํ์ผ์ ํ๋ซํผ ์๋ ์๋ณ ๋ก์ง ๊ตฌํ
- ํ๋ซํผ๋ณ ์๋ก ๋ค๋ฅธ ํ๋ ๋งตํ ์ ๋ณด๋ฅผ ๊ณตํต ์คํค๋ง๋ก ๋ณํํ๋ Normalization Layer ์ค๊ณ
- External Dependency๋ฅผ ๋ฐฐ์ ํ Python Standard Library ๊ธฐ๋ฐ์ ๊ฒฝ๋ ์ํคํ ์ฒ ์ฑํ์ผ๋ก ๋ฐฐํฌ ๋ฐ ์คํ ํ๊ฒฝ ์ ์ฝ ์ต์ํ
- Date-based Sorting ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ์ ํตํ ์๊ณ์ด ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฐ ํตํฉ Ledger ์์ฑ
- KeyError ์์ธ ์ฒ๋ฆฌ๋ฅผ ํตํ ๊ฒฐ์ธก ๋ฐ์ดํฐ ๋ฐ์ ์ ์์คํ ์ค๋จ ๋ฐฉ์ง ๋ฐ ์๋ฌ ๋ก๊ทธ ๋ถ๋ฆฌ
- CLI ์ธํฐํ์ด์ค ๊ธฐ๋ฐ์ ์ ๋ ฅ-์ถ๋ ฅ ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ์ ํตํ ์๋ํ ๊ฐ๋ฅ ๊ตฌ์กฐ ์ค๊ณ
์ค์ฒ ํฌ์ธํธ
1. ๋ฐ์ดํฐ ์์ค๊ฐ ๋ค์ํ ๋ ํ๋ซํผ๋ณ ํน์ฑ์ ์บก์ํํ ํ์ฑ ๋ก์ง์ ๋ถ๋ฆฌํ๋๊ฐ?
2. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์กด์ฑ์ ์ต์ํํ์ฌ ๋ฐํ์ ํ๊ฒฝ์ ์ด์์ฑ์ ํ๋ณดํ๋๊ฐ?
3. ์์ดํ ๋ ์ง ํฌ๋งท์ ์ ๊ทํํ์ฌ ์๊ณ์ด ์ ๋ ฌ์ด ๊ฐ๋ฅํ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ณํํ๋๊ฐ?
4. ๋ฐ์ดํฐ ๋๋ฝ์ด๋ ํฌ๋งท ๋ณ๊ฒฝ์ ๋๋นํ Exception Handling ์ ๋ต์ด ํฌํจ๋์๋๊ฐ?