ํผ๋๋ก ๋์๊ฐ๊ธฐ
Dev.toBackend
์๋ฌธ ์ฝ๊ธฐ
Natural Language ๊ธฐ๋ฐ TypeScript CLI ํ์ ํธ๋์ปค ์ค๊ณ
A Powerful Node.JS CLI Time Tracker โฑ๏ธ๐
AI ์์ฝ
Context
๊ธฐ์กด track-time-cli์ ์ ํ์ ์ธ ์ปค๋งจ๋ ์ฒด๊ณ์ ์ ์ฐํ์ง ๋ชปํ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ์ฌ์ค๊ณ ์ํ. ๋จ์ ๊ธฐ๋ก์ ๋์ด ํ๊ทธ ๊ธฐ๋ฐ ๋ถ๋ฅ์ ์์ธ ๋ ธํธ ๊ธฐ๋ฅ์ด ํฌํจ๋ ํ์ฅ ๊ฐ๋ฅํ CLI ์ธํฐํ์ด์ค ์๊ตฌ์ฌํญ ๋ฐ์.
Technical Solution
- TypeScript ๋์ ์ ํตํ ์ ์ ํ์ดํ ๊ธฐ๋ฐ์ ์์ ์ ์ธ CLI ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ ์ค๊ณ
- Natural Language Parsing ๋ก์ง์ ํตํ '2 hours ago' ํํ์ ์ ์ฐํ ์๊ฐ ์ ๋ ฅ ์ฒ๋ฆฌ
- ~/.super-time-tracker/db.json ๊ฒฝ๋ก์ Local JSON File Storage ์ฑํ์ผ๋ก ๋ณ๋ DB ์์ด Git ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ฐฑ์ ๊ฐ๋ฅ ๊ตฌ์กฐ ๊ตฌํ
- Timesheet-Entry ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ๋ฅผ ํตํ ํ๋ก์ ํธ ๋ฐ ํด๋ผ์ด์ธํธ ๋จ์์ ๋ฐ์ดํฐ ๊ทธ๋ฃนํ
- Command Alias ๋ฐ Flag ์์คํ ๊ตฌ์ถ์ผ๋ก ์ฌ์ฉ์ ์ ๋ ฅ ํธ์์ฑ๊ณผ ๊ฒฐ๊ณผ ์ถ๋ ฅ ํฌ๋งท(Human-readable, Relative time)์ ์ ์ด๋ ฅ ๊ฐํ
- Resume ๋ฐ Edit ๋ก์ง ๋ด Override ๋ฉ์ปค๋์ฆ์ ๊ตฌํํ์ฌ ๊ธฐ์กด ์ํธ๋ฆฌ์ ์์ฑ์ ์ ์งํ ์ฑ ํน์ ํ๋๋ง ์์ ํ๋ ์ ์ฐํ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ ์ง์
์ค์ฒ ํฌ์ธํธ
- CLI ๋๊ตฌ ์ค๊ณ ์ Local JSON ๊ธฐ๋ฐ ์ ์ฅ์๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ด์์ฑ๊ณผ ๋ฒ์ ๊ด๋ฆฌ ๊ฐ๋ฅ ์ฌ๋ถ ๊ฒํ - ์ฌ์ฉ์ ๊ฒฝํ ํฅ์์ ์ํด ์ ๋ ์๊ฐ ์ ๋ ฅ ์ธ์ Natural Language Parsing ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ ๊ณ ๋ ค - ๋ฐ๋ณต์ ์ธ ์์ ํจํด์ ์ํด Resume(๋ณต์ ํ ์์ ) ๊ธฐ๋ฅ์ ํตํ ๋ฐ์ดํฐ ์ ๋ ฅ ๋น์ฉ ์ต์ํ ์ค๊ณ ์ ์ฉ