๋จ๊ธฐ ๊ทผ๋ก์์ ์๊ท๋ชจ ์์์ ๊ณ ์ฉ์ฃผ๋ฅผ ์ํ ํฌ๋ช ํ๊ณ ๊ฐํธํ ๊ธ์ฌ ๊ด๋ฆฌ ์๋ฃจ์ ์ ๊ณต
- ๊ทผ๋ฌด ๊ธฐ๋ก ๋ถํฌ๋ช ์ฑ ๋ฐ ์๋ ์ ์ฐ์ผ๋ก ์ธํ ๊ธ์ฌ ์ฒด๋ถ/์ค๋ฅ
- ๊ทผ๋ก์-๊ณ ์ฉ์ฃผ ๊ฐ ์ ๋ขฐ ๋ถ์กฑ
- ๊ณ ์ฉ์ฃผ์ ๋ฐ๋ณต์ ์ธ ๊ธ์ฌ ๊ด๋ฆฌ ์ ๋ฌด ๋ถ๋ด
- ์ค์๊ฐ ๊ทผ๋ฌด ๊ธฐ๋ก ๊ณต๊ฐ๋ฅผ ํตํ ๊ทผ๋ก์ ๊ถ์ต ๋ณดํธ
- ๊ธ์ฌ ๊ณ์ฐ/์ ์ฐ ๋ฐ์๋ํ๋ก ๊ณ ์ฉ์ฃผ ๊ด๋ฆฌ ๋น์ฉ ์ ๊ฐ
- ๊ฐ๊ด์ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์ ์ฐ์ผ๋ก ๋ถ์ ๊ฐ์ ๋ฐ ์ํธ ์ ๋ขฐ ๊ตฌ์ถ
์ต๊ทผ ๋ ธ๋ ์์ฅ์ ๋จ๊ธฐ ๊ทผ๋ก์ ์ฆ๊ฐ์ ํ๋ซํผ ๊ธฐ๋ฐ ๊ธฑ ์์ปค(Gig Worker) ํ์ฐ์ผ๋ก ๊ธ๋ณํ๊ณ ์์. ํ์ง๋ง ๊ธฐ์กด์ ๊ฒฝ์ง๋ ๊ธ์ฌ ๊ด๋ฆฌ ์์คํ ์ ์ด๋ฌํ ๋ณํ์ ๋์ํ์ง ๋ชปํ๊ณ ์์.
์๊ธฐ๋ก ๊ทผ๋ฌด ์๊ฐ์ ๊ธฐ๋กํ๊ณ , ์์ ๋ก ๊ธ์ฌ๋ฅผ ๊ณ์ฐํ๊ณ , ์ผ์ผ์ด ์ก๊ธํ๋ ๊ณผ์ ์์ ์ค์์ ๋ถ์์ด ๋ฐ์ํจ. ๊ทผ๋ก์๋ ์ ๋๋ก ๋ฐ์๋์ง ๋ถ์ํ๊ณ , ๊ณ ์ฉ์ฃผ๋ ๋งค๋ฒ ๋ฐ๋ณต๋๋ ์ ์ฐ ์ ๋ฌด์ ์ง์นจ.
"์ผํ ๋งํผ ์ ํํ, ๊ด๋ฆฌ ๋ถ๋ด ์์ด ๊ฐํธํ๊ฒ" โ ์ด ๋จ์ํ ๋ชฉํ๋ฅผ ์คํํ๊ธฐ ์ํด ์๊ธ ๊ด๋ฆฌ์๋ฅผ ๋ง๋ค๊ฒ ๋จ.
| ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|
| ๐ ์ผ์ผ ์ค์ผ์ค ๊ด๋ฆฌ | ๋ ์ง๋ณ ๊ทผ๋ฌด์ ํ์๋ผ์ธ ์กฐํ ๋ฐ ๊ทผ๋ฌด ์๊ฐ ํธ์ง |
| ๐ฅ ๊ทผ๋ก์ ๊ด๋ฆฌ | ๊ทผ๋ก์ ๋ฑ๋ก/์์ /ํด์ฌ ์ฒ๋ฆฌ, ๊ทผ๋ฌด ์ค์ผ์ค ์ค์ |
| ๐ข ๊ทผ๋ฌด์ง ๊ด๋ฆฌ | ๋ค์ค ๊ทผ๋ฌด์ง ์์ฑ/์์ /์ญ์ |
| ๐ฐ ๊ธ์ฌ ์ ์ฐ | ์๋ณ ๊ธ์ฌ ๊ณ์ฐ ๋ฐ ์ก๊ธ ๊ด๋ฆฌ |
| ๐ ๊ณ์ฝ ๊ด๋ฆฌ | ์๊ธ, ๊ทผ๋ฌด ์ค์ผ์ค, ๊ณต์ ์ ํ ์ค์ |
| ๊ธฐ๋ฅ | ์ค๋ช |
|---|---|
| ๐ ์๊ฐ ์บ๋ฆฐ๋ | ์๋ณ ๊ทผ๋ฌด ๊ธฐ๋ก ์กฐํ ๋ฐ ์ผ์๋ณ ์์ธ ํ์ธ |
| ๐ ์ฃผ๊ฐ ์บ๋ฆฐ๋ | ์ฃผ ๋จ์ ๊ทผ๋ฌด ์ค์ผ์ค ์กฐํ |
| โ๏ธ ๊ทผ๋ฌด ์ ์ ์์ฒญ | ์๋ชป๋ ๊ทผ๋ฌด ๊ธฐ๋ก ์ ์ ์์ฒญ |
| ๐ต ๊ธ์ฌ ๋ด์ญ | ์๋ณ ๊ธ์ฌ ๋ฐ ์ ๊ธ ์ํ ํ์ธ |
| ๐ ๋ฉ๋ชจ | ์ผ์๋ณ ๋ฉ๋ชจ ์์ฑ |
| ๐ค ๋ง์ดํ์ด์ง | ํ๋กํ ๊ด๋ฆฌ, ๊ทผ๋ฌด์ง ๊ด๋ฆฌ, ๋ณด๋ธ ๊ทผ๋ฌด ์์ฒญ ์กฐํ |
- ์นด์นด์ค ์์ ๋ก๊ทธ์ธ - ๊ฐํธํ ํ์๊ฐ์ /๋ก๊ทธ์ธ
- ์ค์๊ฐ ์๋ฆผ - ๊ธ์ฌ ์ ์ฐ, ์ ์ ์์ฒญ ๋ฑ ์๋ฆผ
| ๋ถ๋ฅ | ๊ธฐ์ |
|---|---|
| Frontend | React 19.2, Vite 5.2, TypeScript 5.9 |
| ๋ผ์ฐํ | React Router DOM v7.9 |
| ์คํ์ผ๋ง | TailwindCSS 4.1, ์ปค์คํ CSS |
| HTTP ํด๋ผ์ด์ธํธ | Axios 1.13 |
| ํ ์คํธ | Vitest 1.6, React Testing Library 16 |
| UI ์ปดํฌ๋ํธ | React-Icons, SweetAlert2, React-Toastify |
| ์ด๋ฆ | ๋ด๋น |
|---|---|
| ์กฐ์ฉ๊ทผ | PM & Backend |
| ๊น๋ํ | Design & Frontend |
| ์ด์ฃผํ | Frontend |
| ๊ฐ์์ | Backend |
| ์ต์์ฐฌ | Backend |
Notion: click
src/
โโโ api/ # API ํต์ ๋ชจ๋ (Axios ์ธ์คํด์ค, ํ ํฐ ์๋ ๊ฐฑ์ )
โโโ components/ # ์ฌ์ฌ์ฉ UI ์ปดํฌ๋ํธ (common, layout, employer, worker)
โโโ pages/ # ๋ผ์ฐํธ ํ์ด์ง (auth, employer, workers)
โโโ hooks/ # ์ปค์คํ
ํ
(ํ์ด์ง๋ณ ๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ฆฌ)
โ โโโ worker/ # ๊ทผ๋ก์ ์ ์ฉ ํ
โ โโโ employer/ # ๊ณ ์ฉ์ฃผ ์ ์ฉ ํ
(useDailyCalendar ๋ฑ Hook Composition ํจํด)
โโโ types/ # TypeScript ํ์
์ ์
โ โโโ common/ # ๊ณตํต ํ์
(์๋น ๋ฑ)
โ โโโ worker/ # ๊ทผ๋ก์ ๊ด๋ จ ํ์
โ โโโ employer/ # ๊ณ ์ฉ์ฃผ ๊ด๋ จ ํ์
โโโ utils/ # ์ ํธ๋ฆฌํฐ ํจ์ (๋ ์ง, ํฌ๋งทํ
, ๊ธ์ฌ ๊ณ์ฐ)
โ โโโ employer/ # ๊ณ ์ฉ์ฃผ ์ ์ฉ ์ ํธ๋ฆฌํฐ
โโโ constants/ # ์์ ์ ์ (๊ฒ์ฆ ๋ฉ์์ง, ์๋น ์ค์ ๋ฑ)
โโโ layouts/ # ํ์ด์ง ๋ ์ด์์ ๋ํผ
โโโ styles/ # CSS ์คํ์ผ ํ์ผ
โโโ assets/ # ์ ์ ๋ฆฌ์์ค (์ด๋ฏธ์ง ๋ฑ)
ํ๋ก์ ํธ๋ Vitest์ React Testing Library๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธํฉ๋๋ค.
| ๋ถ๋ฅ | ํ ์คํธ ํ์ผ |
|---|---|
| API | axios.test.ts, employerApi.test.ts |
| ์ธ์ฆ ํ์ด์ง | LoginPage.test.tsx, SignupPage.test.tsx, KakaoRedirect.test.tsx |
| ๊ณ ์ฉ์ฃผ ํ์ด์ง | EmployerMyPage.test.tsx, EmployerRemittanceManagePage.test.tsx |
| ๊ทผ๋ก์ ํ์ด์ง | WorkerMonthlyCalendarPage.test.tsx, WorkerRemittancePage.test.tsx, WorkerMyPage.test.tsx |
| ๊ทผ๋ก์ ์ปดํฌ๋ํธ | ProfileBox.test.tsx, ProfileEdit.test.tsx, WorkplaceManage.test.tsx, WorkEditRequestList.test.tsx |
# ํ
์คํธ ์คํ (watch ๋ชจ๋)
npm run test
# ๋จ์ผ ์คํ
npm run test:run
# ์ปค๋ฒ๋ฆฌ์ง ๋ฆฌํฌํธ
npm run test:coverage- Node.js 18+
- npm 9+
# ์ ์ฅ์ ํด๋ก
git clone https://github.com/Team-PayCheck/PayCheck-frontend.git
cd PayCheck-frontend
# ์์กด์ฑ ์ค์น
npm install
# ํ๊ฒฝ ๋ณ์ ์ค์
cp .env.example .envDependencies
| ํจํค์ง | ๋ฒ์ | ์ค๋ช |
|---|---|---|
| react | ^19.2.0 | UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
| react-dom | ^19.2.0 | React DOM ๋ ๋๋ง |
| react-router-dom | ^7.9.6 | ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ผ์ฐํ |
| axios | ^1.13.2 | HTTP ํด๋ผ์ด์ธํธ |
| react-icons | ^5.5.0 | ์์ด์ฝ ์ปดํฌ๋ํธ |
| react-toastify | ^11.0.5 | ํ ์คํธ ์๋ฆผ |
| sweetalert2 | ^11.26.3 | ์๋ฆผ ๋ค์ด์ผ๋ก๊ทธ |
DevDependencies
| ํจํค์ง | ๋ฒ์ | ์ค๋ช |
|---|---|---|
| vite | ^5.2.0 | ๋น๋ ๋๊ตฌ |
| typescript | ^5.9.0 | ์ ์ ํ์ |
| tailwindcss | ^4.1.17 | CSS ํ๋ ์์ํฌ |
| vitest | ^1.6.0 | ํ ์คํธ ํ๋ ์์ํฌ |
| @testing-library/react | ^16.0.0 | React ํ ์คํ ์ ํธ๋ฆฌํฐ |
| eslint | ^9.39.1 | ์ฝ๋ ๋ฆฐํฐ |
# ๊ฐ๋ฐ ์๋ฒ ์คํ
npm run dev
# ๋น๋
npm run build
# ๋ฆฐํธ ๊ฒ์ฌ
npm run lint
# ๋น๋๋ ์ฑ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
npm run preview-
์ด ์ ์ฅ์๋ฅผ Fork ํฉ๋๋ค
https://github.com/Team-PayCheck/PayCheck-frontend.git
-
์ ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค
git checkout -b feature/your-new-feature-name
-
๋ณ๊ฒฝ ์ฌํญ์ ์ปค๋ฐํฉ๋๋ค
git commit -m "feat: add your-change-logs" -
๋ธ๋์น๋ฅผ Push ํฉ๋๋ค
git push your-remote-name feature/your-new-feature-name
-
GitHub์์ Pull Request๋ฅผ ์์ฑํฉ๋๋ค
MIT License
