- ๊ณต์ ํํ์ด์ง: mirinaecalendar.store
๋ฏธ๋ฆฌ๋ด(Mirinae) ๋ Electron, Vite, React๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์๋ ์ฌํํ๊ณ ๊ฐ๋ ฅํ ๋ฐ์คํฌํฑ ์บ๋ฆฐ๋ ์์ ฏ์ ๋๋ค. ๋ณต์กํ ๊ธฐ๋ฅ์ ๋์ด๋ด๊ณ , ๋ฐํํ๋ฉด์์ ์ผ์ ์ ๋น ๋ฅด๊ฒ ํ์ธํ๊ณ ๊ด๋ฆฌํ๋ ํต์ฌ ๊ฒฝํ์ ์ง์คํ์ต๋๋ค.
"๋ฐํํ๋ฉด์์ ์ธ์ ๋ ๋ด ์ผ์ ์ ํ์ธํ ์ ์๋ค๋ฉด ์ด๋จ๊น?" ๋ฏธ๋ฆฌ๋ด๋ ์ด๋ฐ ๋จ์ํ ์๊ฐ์์ ์ถ๋ฐํ์ต๋๋ค. ๋ฌด๊ฑฐ์ด ์บ๋ฆฐ๋ ์ฑ์ ์ผ์ง ์์๋, ๋ฐํํ๋ฉด ํ๊ตฌ์์์ ๋น์ ์ ์ผ์ ์ ์ฑ๊ฒจ์ค๋๋ค.
-
๐ ๊ตฌ๊ธ ์บ๋ฆฐ๋ ์ฐ๋ (Google Calendar Sync)
- ๊ตฌ๊ธ ๊ณ์ ๊ณผ ์ฐ๋ํ์ฌ ์ค์๊ฐ์ผ๋ก ์ผ์ ์ ๋ถ๋ฌ์ค๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
-
๐ฑ๏ธ ๋ฐ์คํฌํฑ ์์ ฏ (Desktop Widget)
- ๋๋๊ทธ ์ค ๋๋กญ: ์์ ฏ์ ์ํ๋ ์์น๋ก ์์ ๋กญ๊ฒ ์ด๋ํ์ธ์.
- ํฌ๋ช ๋ ์กฐ์ : ๋ฐํํ๋ฉด๊ณผ ์์ฐ์ค๋ฝ๊ฒ ์ด์ฐ๋ฌ์ง๋๋ก ํฌ๋ช ๋๋ฅผ ์กฐ์ ํ ์ ์์ต๋๋ค.
-
๐จ ์ง๊ด์ ์ธ UI/UX
- ๋คํฌ ๋ชจ๋ (Dark Mode): ๋์ด ํธ์ํ ๋คํฌ ๋ชจ๋๋ฅผ ์ง์ํ๋ฉฐ, ์์คํ ์ค์ ์ ๋ง์ถ ์๋ ์์ต๋๋ค.
-
๐ ์ผ์ ๊ด๋ฆฌ (Event Management)
- ์ผ์ ์ ๊ฐํธํ๊ฒ ์ถ๊ฐ, ์์ , ์ญ์ ํ ์ ์์ต๋๋ค.
- ์๋ฃ๋ ์ผ์ ์ ์ฒดํฌํ์ฌ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
-
๐ฃ๏ธ ์ฌ์ฉ์ ์ํต (Feedback)
- ์ฑ ๋ด '๋ฌธ์ํ๊ธฐ' ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฐ์์๊ฒ ์ง์ ๋ฒ๊ทธ ์ ๋ณด๋ ๊ธฐ๋ฅ ์ ์์ ๋ณด๋ผ ์ ์์ต๋๋ค.
-
๐ ์๋ ์ ๋ฐ์ดํธ (Auto Update)
- ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์์ ์ฌํญ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค.
- Core: Electron, Vite, React, TypeScript
- Styling: Tailwind CSS, Radix UI, Lucide React
- State & Data: React Query (TanStack Query), Electron Store
- Architecture: FSD (Feature-Sliced Design)
src/renderer ํด๋ ๋ด๋ถ๋ FSD ์ํคํ
์ฒ ๊ท์น์ ๋ฐ๋ผ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
src/renderer/
โโโ app/ # ์ ์ญ ์ค์ , Provider, ๋ผ์ฐํ
๋ฑ
โโโ pages/ # ํ์ด์ง ๋จ์ ์ปดํฌ๋ํธ ์กฐํฉ
โโโ widgets/ # ๋
๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง UI ๋ธ๋ก (Calendar, Header ๋ฑ)
โโโ features/ # ๋น์ฆ๋์ค ๋ก์ง์ด ํฌํจ๋ ๊ธฐ๋ฅ ๋จ์ (Login, AddEvent, DarkMode ๋ฑ)
โโโ entities/ # ๋น์ฆ๋์ค ๋ชจ๋ธ ๋ฐ UI (User, Event ๋ฑ)
โโโ shared/ # ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณตํต ์ปดํฌ๋ํธ, ์ ํธ๋ฆฌํฐ, ์์
โโโ ...