ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toBackend
์๋ฌธ ์ฝ๊ธฐ
TypeScript ๊ธฐ๋ฐ JSON ์คํ ๋ฆฌ์ง ์ค๊ณ๋ฅผ ํตํ CLI ํ์ ํธ๋์ปค ๊ณ ๋ํ
A Powerful Node.JS CLI Time Tracker โฑ๏ธ๐
AI ์์ฝ
Context
๊ธฐ์กด track-time-cli์ ์ ํ์ ์ธ ๋ช ๋ น์ด ์ฒด๊ณ์ ๋ฎ์ ์ ์ฐ์ฑ์ผ๋ก ์ธํ ์ฌ์ฉ์ ๊ฒฝํ ํ๊ณ ๋ฐ์. ํ๋ก์ ํธ ๋ฐ ํด๋ผ์ด์ธํธ ๋จ์์ ๊ทธ๋ฃนํ ๊ด๋ฆฌ์ ์ ๋ฐํ ์๊ฐ ๊ธฐ๋ก ์ ์ด ๊ธฐ๋ฅ์ ํ์์ฑ ์ฆ๋.
Technical Solution
- TypeScript ๋์ ์ ํตํ ์ ์ ํ์ดํ ๊ธฐ๋ฐ์ ์์ ์ ์ธ CLI ๋ช ๋ น์ด ์ธํฐํ์ด์ค ๊ตฌํ
- ~/.super-time-tracker/db.json ๊ฒฝ๋ก์ ๋จ์ผ JSON ํ์ผ ๊ธฐ๋ฐ Persistence Layer ์ค๊ณ๋ฅผ ํตํ ๋ฐ์ดํฐ ์ด์์ฑ ๋ฐ Git ๋ฒ์ ๊ด๋ฆฌ ์ง์
- Natural Language Processing ๊ธฐ๋ฐ์ ์๊ฐ ์ ๋ ฅ ํ์ฑ ๋ก์ง์ ์ ์ฉํ์ฌ ์ ์ฐํ Start/End Time ์ค์ ๊ฐ๋ฅ ๊ตฌ์กฐ ์ค๊ณ
- Timesheet-Entry ๊ฐ์ 1:N ๊ด๊ณ ๋ชจ๋ธ๋ง์ ํตํ ํ๋ก์ ํธ๋ณ ํ์คํฌ ๊ทธ๋ฃนํ ๋ฐ ํํฐ๋ง ์ต์ ํ
- Entry ID ๊ธฐ๋ฐ์ ์ง์ ์ฐธ์กฐ ๋ฐฉ์์ ์ ์ฉํ ํน์ ๊ธฐ๋ก์ ์์ (Edit) ๋ฐ ๋ณต์ (Resume) ๊ธฐ๋ฅ ๊ตฌํ
- Human-readable ๋ฐ Relative Time ๋ ๋๋ง ์ต์ ์ ๋ถ๋ฆฌํ ์ถ๋ ฅ ๋ ์ด์ด ์ค๊ณ
์ค์ฒ ํฌ์ธํธ
- ์๊ท๋ชจ ๋ฐ์ดํฐ ์ ์ฅ ์ DB ๋์ ๋์ JSON ํ์ผ ๊ธฐ๋ฐ ์คํ ๋ฆฌ์ง๋ฅผ ์ฑํํ์ฌ ๋ฐฑ์ ๋ฐ ์ด์์ฑ ํ๋ณด ๊ฒํ - CLI ๋๊ตฌ ์ค๊ณ ์ Natural Language Input์ ์ง์ํ์ฌ ์ฌ์ฉ์ ์ ๋ ฅ ํ๋ค์ ๋ฎ์ถ๋ UX ์ ๋ต ์ ์ฉ - ๋ฐ์ดํฐ ์ํธ๋ฆฌ ๋ณต์ (Resume) ๊ธฐ๋ฅ์ ํตํ ๋ฐ๋ณต ์์ ๊ธฐ๋ก์ ์ ๋ ฅ ํจ์จ์ฑ ๊ฐ์