๋๊ตฌ๋ ๊ฐ๋จํ๊ฒ ์์ฑํ๋ ๋์ ์ญ์ฌ, My๋ ฅ์
์์ ํ๊ณ ๊ฐํธํ ์จ๋ผ์ธ ์ด๋ ฅ์ ์์ฑ ์๋น์ค
- ํ๋ก์ ํธ ์ด๊ธฐ ์ค์ (2024-09-05)
- ๊ธฐ๋ณธ ๋ ์ด์์ ๊ตฌํ (2024-09-27)
- shadcn/ui ๋ง์ด๊ทธ๋ ์ด์ ์ค
- ๋ฐ์ํ ๋์์ธ ๊ฐ์ ์ค ...
My๋ ฅ์๋ Next.js ๊ธฐ๋ฐ์ ์จ๋ผ์ธ ์ด๋ ฅ์ ์์ฑ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค. ์ด๋ ฅ์์๋ ๊ฐ์ธ์ ํ๋ ฅ, ๊ฒฝ๋ ฅ, ์ฐ๋ฝ์ฒ ๋ฑ ๋ฏผ๊ฐํ ๊ฐ์ธ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ์ ๋ณด๋ฅผ ์๋ฒ์ ์ ์ฅํ๋ ์๊ฐ, ์ ์ถ ์ํ์ด ๋ฐ์ํ ์ ์๋ค๋ ์ ์ ๊ณ ๋ฏผํ์ต๋๋ค.
๊ทธ๋์ My๋ ฅ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ง ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์๋ง ์ ์ฅํ๊ณ , ์๋ฒ๋ฅผ ์ ํ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ์์ ์ ํํ์ต๋๋ค. ๋ง์น ๊ฐ์ธ ์ปดํจํฐ์์ ๋ฌธ์ ์์ ์ ํ๋ ๊ฒ์ฒ๋ผ, ์ฌ์ฉ์์ ์์คํ ์ ๋ณด๋ ์ฌ์ฉ์์ ๊ธฐ๊ธฐ์๋ง ์์ ํ๊ฒ ๋ณด๊ด๋ฉ๋๋ค.
-
๊ฐ์ธ์ ๋ณด ๋ณดํธ:
- ์๋ฒ ์์ด ๋ธ๋ผ์ฐ์ ์์๋ง ๋์ํ์ฌ ๋ฐ์ดํฐ ์ ์ถ ์์ฒ ์ฐจ๋จ
- AES-256 ์ํธํ๋ก ๋ก์ปฌ ๋ฐ์ดํฐ ๋ณดํธ
- IndexedDB๋ฅผ ํตํ ์์ ํ ๋ฐ์ดํฐ ์ ์ฅ
- CSP๋ฅผ ํตํ ๋ฆฌ์์ค ๋ณด์ ๊ฐํ
-
์์ ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ:
- ์ค์๊ฐ ์๋ ์ ์ฅ
- ๋ธ๋ผ์ฐ์ ์ถฉ๋ ๋๋น ๋ฐ์ดํฐ ๋ฐฑ์
- JSON ํ์ ๋ฐ์ดํฐ ์ด์์ฑ
- ์์ ํ ์ด๊ธฐํ ๋ฐ ๋ณต์ ์์คํ
-
์ฌ์ฉ์ ๊ฒฝํ ๊ณ ๋ ค:
- ๋๋๊ทธ ์ค ๋๋กญ ์น์ ์ ๋ ฌ
- ์ปค์คํ ์น์ ์ง์
- PC ํ๊ฒฝ ์ต์ ํ UI
- PDF ์ถ๋ ฅ ์ง์
-
์ฑ๋ฅ ๋ฐ ์ ๊ทผ์ฑ:
- ๋์ ์ํฌํธ๋ฅผ ํตํ ๋ฒ๋ค ์ต์ ํ
- ์ด๋ฏธ์ง ์์ถ ๋ฐ ์ต์ ํ
- ์๋งจํฑ HTML๊ณผ ARIA ๋ ์ด๋ธ
๐ก ์ฌ์ฉ์์ ์์คํ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์งํค๊ธฐ ์ํ ์๋ด
My๋ ฅ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ์์ ํ๊ฒ ๋ณด๊ดํฉ๋๋ค. ํ์ง๋ง ๋ ์ฒ ์ ํ ๋ณด์์ ์ํด์๋ ์ฌ์ฉ์์ ์ปดํจํฐ๋ ์์ ํ๊ฒ ๊ด๋ฆฌ๋์ด์ผ ํฉ๋๋ค.
- ์ ๋ขฐํ ์ ์๋ ๋ฐฑ์ ํ๋ก๊ทธ๋จ ์ฌ์ฉ
- ์ด์์ฒด์ ์ ๋ธ๋ผ์ฐ์ ์ ์ต์ ๋ณด์ ์ ๋ฐ์ดํธ ์ ์ง
- ์ค์ํ ์์ ํ์๋ ๋ฐ์ดํฐ ๋ด๋ณด๋ด๊ธฐ ๊ธฐ๋ฅ์ผ๋ก ๋ฐฑ์ ํ๊ธฐ
- ๐ ์ค์๊ฐ ์๋ ์ ์ฅ
- ๐ ๋ก์ปฌ ๋ฐ์ดํฐ ์ํธํ
- ๐ค ๋ฐ์ดํฐ ์ด์์ฑ
- JSON ํ์ ๋ด๋ณด๋ด๊ธฐ/๊ฐ์ ธ์ค๊ธฐ
- ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ์ง์
- ๊ธฐ๊ธฐ ๊ฐ ๋ฐ์ดํฐ ์ด๋
- ๐ ์ด๊ธฐํ ๋ฐ ๋ณต์
- โ๏ธ ๊ธฐ๋ณธ ์น์ (๊ฒฝ๋ ฅ, ํ๋ ฅ)
- โ ์ปค์คํ ์น์ ์ถ๊ฐ/์์ /์ญ์
- ๐ ๋๋๊ทธ ์ค ๋๋กญ ์์ ๋ณ๊ฒฝ
- ๐ ์น์ ์ ๊ธฐ/ํผ์น๊ธฐ
- ๐จ๏ธ PDF ์ถ๋ ฅ
- ๐ฑ ๋ฐ์ํ ๋์์ธ (PC ์ต์ ํ)
- Next.js 14
- React 18
- Tailwind CSS
- Zustand (์ํ๊ด๋ฆฌ)
-
UI/UX
- @dnd-kit/* : ๋๋๊ทธ ์ค ๋๋กญ ๊ตฌํ
- react-modal : ์ ๊ทผ์ฑ์ด ๊ณ ๋ ค๋ ๋ชจ๋ฌ
- react-transition-group : ๋ถ๋๋ฌ์ด ์ ๋๋ฉ์ด์ ์ฒ๋ฆฌ
-
๋ฐ์ดํฐ & ๋ณด์
- crypto-js : AES-256 ์ํธํ
- dexie : IndexedDB ๋ํผ
- browser-image-compression : ์ด๋ฏธ์ง ์ต์ ํ
-
๊ธฐ๋ฅ
- react-to-print : PDF ์ถ๋ ฅ (๋์ ์ํฌํธ)
- react-daum-postcode : ์ฃผ์ ๊ฒ์ (๋์ ์ํฌํธ)
- ESLint : ์ฝ๋ ํ์ง ๊ด๋ฆฌ
- @next/bundle-analyzer : ๋ฒ๋ค ์ต์ ํ
- Vercel : ๋ฐฐํฌ ๋ฐ ๋ถ์
# ์ ์ฅ์ ๋ณต์
git clone https://github.com/gr22nist/MYR.git
# ์ข
์์ฑ ์ค์น
npm install
# ๊ฐ๋ฐ ์๋ฒ ์คํ
npm run dev
.env.local
ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ๋ณ์๋ฅผ ์ค์ ํ์ธ์:
NEXT_PUBLIC_SECRET_KEY=your-secret-key # AES-256 ์ํธํ์ ์ฌ์ฉ๋ ํค
- Chrome (์ต์ ๋ฒ์ )
- Firefox (์ต์ ๋ฒ์ )
- Safari (์ต์ ๋ฒ์ )
- Edge (์ต์ ๋ฒ์ )
โ ๏ธ Internet Explorer๋ ์ง์ํ์ง ์์ต๋๋ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ๊ณ ํ์ธ์.