โ ํ์๊ฐ์ , ๋ก๊ทธ์ธ / ๋ก๊ทธ์์ ๊ธฐ๋ฅ๊ณผ ๋ค์ํ ๋ฉ๋ด๋ฅผ ๊ฐ์ง๊ณ ์๋ ํํ์ด์ง, ๊ด๋ฆฌ์ ํ์ด์ง ๊ตฌํํ๊ธฐโ
๐ ๊ณผ์ ์๊ตฌ์ฌํญ ๋ณด๊ธฐ
1. ์๋ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ํ์๊ฐ์ ํ์ด์ง๋ฅผ ๊ตฌํํ๊ณ ๋ก๊ทธ์ธ/๋ก๊ทธ์์ ๊ธฐ๋ฅ์ ๊ตฌํํด์ฃผ์ธ์.
- ์ฃผ์ (ํ์ ์ ์ด์ฉํด์ ์ ๋ ฅ๋ฐ์)
- ์ ์ฉ์นด๋ ์ ๋ณด (ํ์ ์ ์ด์ฉํด์ ์ ๋ ฅ๋ฐ์)
- ๋์ด
1.1 ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ์ ํ๋ฉด ๋ฑ๋กํ ๊ณ์ ์ ๋ณด๋ฅผ ์๋ ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ์๊ฐํ ํด ์ฃผ์ธ์.
- ํ ์ด๋ธ Component ํ์ด์ง ๋ง๋ค๊ธฐ
- Data Table ๊ตฌํ
- ํ์ด์ง๋ค์ด์ ๊ตฌํ
- ๊ฒ์๊ธฐ๋ฅ ๊ตฌํ
1.2 ์ ๋ณด๋ ๋ก์ปฌ ์ ์ฅ์ ๋ฑ ์์ ๋กญ๊ฒ ์ ์ฅํด๋ ๋ฉ๋๋ค.
1.3 ์ฃผ์๋ ๋ค์์์ ์ ๊ณตํ๋ ์ ๋ ฅ์ฐฝ์ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
1.4 ๊ด๋ฆฌ์ ๊ณ์ ์ ์์๋ก ์ ์ํด๋ ๋ฉ๋๋ค.
2.1 ๊ณ์ , ๋น๋ฐ๋ฒํธ๋ง ์ ๋ ฅํ๋ฉด ๋ก๊ทธ์ธ์ด ๋์ด์ผ ํฉ๋๋ค.
2.2 ๋ก๊ทธ์ธ ๋ ๊ณ์ ์ ์์ ์๊ฒ ํ์ฉ๋ ๋ฉ๋ด๋ง ๋ณด์ฌ์ผ ํฉ๋๋ค.
2.3 ๊ด๋ฆฌ์๋ ๊ณ์ ์ ์์๋ก ์์ฑํ ์ ์๊ณ ๊ณ์ ๋ณ๋ก ๋ณผ ์ ์๋ ๋ฉ๋ด๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
2.4 ๊ด๋ฆฌ์ ๊ณ์ ์ ์์๋ก ์ ์ํด๋ ๋ฉ๋๋ค.
2.5 ์ ๋ณด๋ ๋ก์ปฌ ์ ์ฅ์ ๋ฑ ์์ ๋กญ๊ฒ ์ ์ฅํด๋ ๋ฉ๋๋ค.
2.6 ๋ฉ๋ด๋ ์์๋๋ก ์ ์ํด๋ ๋๋ฉฐ ๋ฉ๋ด๋ฅผ ์ ํํ์ ๋ ๋์ค๋ ํ๋ฉด์๋ ๋ฉ๋ด๋ช ์ด ์ถ๋ ฅ๋๋ฉด ๋ฉ๋๋ค.
2.7 ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ์ ํ๋ฉด ๋ฑ๋กํ ๊ณ์ ์ ๋ณด๋ฅผ ์๋ ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ ์๊ฐํ ํด ์ฃผ์ธ์.
- ํ ์ด๋ธ Component ํ์ด์ง ๋ง๋ค๊ธฐ
- Data Table ๊ตฌํ
- ํ์ด์ง๋ค์ด์ ๊ตฌํ
- ๊ฒ์๊ธฐ๋ฅ ๊ตฌํ
๊ธฐ์กด์๋ ์ฒดํฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌ๋ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด ์ด๊ฒ์ ํตํด ์ฒดํฌ๋์ด ์๋ ์ง ํ์ธํ๊ณ ๋ณด๋ด์ฃผ๋ ๋ฐฉ๋ฒ์ ํํ๋ค.
์ด๋ฅผ ์ข ๋ ๊ฐ๋จํ๊ฒ ์ฒดํฌ๋ฅผ ๋๋ฅด๊ฑฐ๋ ํ ๋ db๋ก๋ถํฐ ์๋ต๋ฐ์ data state๋ฅผ ๊ฐฑ์ ํ์ฌ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ณ , submit๋ฒํผ์ ๋๋ฅผ ๋ ๋ฐ์์จ ๋ฐ์ดํฐ๋ง ์ ๋ฌํ๋ค.
๋ํ db์ธ loalStorage์ ๊ฐฑ์ ํ๋ ์์ ์ด ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๊ฒ๊ณผ ์์ฌ์์ด์ FE์ BE๊ฐ ์์ฌ์๋ค๋ ๋๋์ด ๋ค์๋ค. ๊ทธ๋์ ๊ฐ๋ณ๋ ํจ์๋ฅผ ๋ง๋ค์ด db๋ฅผ ๊ฐฑ์ ํ๊ณ , ์๋ก pagination์ ํตํด db์ ํ๋ฉด์ ๋๊ธฐํ์ํจ๋ค.
localStorage์ ์ ๊ทผํ๋ ๊ฒ์ ํด๋ผ์ด์ธํธ์์ ์ง์ ์ ์ผ๋ก ์ ๊ทผํ ์ ์๊ณ ์๋ฒ๋ฅผ ํตํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋๋ ์ฃผ๊ณ ์ถ์๊ณ , ๋ฐ์์จ ๋ฐ์ดํฐ๊ฐ ๊ฒฐ๊ตญ์ ๊ฐฑ์ ํ๊ธฐ ์ํด ๋ณด๋ด์ค์ผ ํ ๋ฐ์ดํฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก state๋ฅผ ๋ง๋ค์ด์ฃผ์ง ์๊ณ ๋ณธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ ์ถ์๋ค.
ํ์ ๊ฐ์
- ์์ด๋, ๋น๋ฐ๋ฒํธ, ์ด๋ฆ, ๋์ด, ์ฃผ์, ์ ์ฉ์นด๋ ๋ฑ๋ก์ ํตํ ํ์ ๊ฐ์ ๊ธฐ๋ฅ
- ๊ฐ
input
(์์ด๋, ํ์๊ฐ์ , ์นด๋)์ ๋ํ Validate ์ค์ (์ ํจ์ฑ ๊ฒ์ฌ, ์ค๋ณต ๊ฒ์ฌ, ๋น๋ฐ๋ฒํธ ํ์ธ) - ๋ชจ๋ input ๊ฐ์ด ์กด์ฌํ ๋ ํ์๊ฐ์ ์๋ฃ (๋ฏธํก ์ ๋ ฅ ์กด์ฌ ์ ํด๋น ์ธํ์ผ๋ก cursor ์ด๋)
- ์ฃผ์ ๋ฑ๋ก์ ๋ค์ API ํ์ฉ, ์นด๋ ๋ฑ๋ก์ ํ์ ์ฐฝ ๊ตฌํ.
๋ก๊ทธ์ธ
- ์์ด๋, ํจ์ค์๋ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ ํจ์ฑ ๊ฒ์ฌ ํ ์กด์ฌํ๋ ์ ์ ์ธ์ฆ ํ token ๋ฐ๊ธ
- ๋ฐ๊ธ๋ token์ผ๋ก admin, user ํ์ด์ง ์ด๋
๊ด๋ฆฌ์
- localStorage์ ์กด์ฌํ๋ userData ์ถ๋ ฅ
- ๊ฒ์๊ธฐ๋ฅ์ผ๋ก name, userId์์ ํค์๋ ๊ฒ์
- localStorage์ ์กด์ฌํ๋ userId์ menuItem ์์ ๊ฐ๋ฅ
- ๊ด๋ฆฌ์ ํน์ ์ ์ ๋ก ๊ณ์ ์ถ๊ฐ
๋ฉ๋ด๋ฐ
- ๊ด๋ฆฌ์ ํ์ด์ง์์ ๊ณ์ ๋ณ ๋ฉ๋ด ์ค์ ์ ํด๋น ๊ณ์ ์๊ฒ ์ ํ๋ ๋ฉ๋ด๋ง ๋ณด์ฌ์ง
- ์ ์ ๊ฐ ๊ถํ์ด ์๋ ํ์ด์ง์ฃผ์๋ฅผ ์ ๋ ฅํ๋ฉด ํ์ด์ง ์ ๊ทผ๋ถ๊ฐ, ๋ฉ์ธํ์ด์ง๋ก ์ด๋
- Not Found ํ์ด์ง
๋ผ์ฐํธ
&& ์ ๊ทผ ๊ถํ
- ๋ก๊ทธ์ธ ์
- ๋ก๊ทธ์ธ ์์ด ์ ๊ทผ ๊ฐ๋ฅํ ๋ฉ๋ด ๋ ๋๋ง (๋ก๊ทธ์ธ/ํ์๊ฐ์ ํ์ด์ง)
- ๋ก๊ทธ์ธ ํ
- ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ Admin ํ์ด์ง ๋ ๋๋ง
- ์ผ๋ฐ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ๊ฒ์คํธ๋ฉ๋ด์์ ์ ์ ๋ณ ํ๊ฐ๋ ๋ฉ๋ด ๋ ๋๋ง
- ๋ก๊ทธ์ธ ํ์๋ ๋ก๊ทธ์ธ/ํ์๊ฐ์ ํ์ด์ง ์ ๊ทผ ๋ถ๊ฐ
- ๋ก๊ทธ์์
npm install
npm start
Admin : admin1 / admin123!
User : user1 / user123!
ํด๋ / ํ์ผ | ์ค๋ช |
---|---|
Assets | jaranda ๋ก๊ณ ๋ฐ ์์ด์ฝ. |
Components | ๊ฐ Page์ ์ฌ์ฉ๋๋ Component ๋ชจ์. |
Modal | ํ์ ์ฐฝ Modal. |
Pages | Route๋ฅผ ์ํ Page ๋ชฉ๋ก. |
Services | ๊ถํ๋ณ ์ธ๊ฐ ์ฑ ์ . |
Styles | ๊ธฐ๋ณธ ๊ณตํต Style. |
Utils | localStorage ์ ๊ทผ ๋ฐ ๊ณตํต ํจ์. |
App.js | public, private Route ์ ๋ฆฌ. |
routes.js | ๊ณ์ ๋ณ ํ์ด์ง ๊ถํ ๊ตฌ๋ถ. |