์ฝ๋์ ์คํ๋ฆฐํธ : ํ๋ก ํธ์๋ 4๊ธฐ Part3 - Tenten(10ํ)
ํ๋ก์ ํธ๋ช : Synergy(The Julge)
ํ๋ก์ ํธ ์๊ฐ : ๊ธํ๊ฒ ์ผ์์ด ํ์ํ ์๋ฆฌ์ ๋ ๋ง์ ์๊ธ์ ์ ๊ณตํด์ ์๋ฅด๋ฐ์ดํธ์์ ๊ตฌํ ์ ์๋ ์๋น์ค
๊ฐ๋ฐ ๊ธฐ๊ฐ: 2024. 4. 15 ~ 5. 1
[ํ์ฅ] ๊น์์ง |
[ํ์] ์ด์ ์ง |
[ํ์] ์ด์ฌ์ฑ |
[ํ์] ์กฐํ๋น |
[ํ์] ํํํ |
๋ถ๋ฅ | ๊ธฐ์ |
---|---|
ํ๋ ์์ํฌ | |
์ธ์ด | |
Styles | |
HTTP | |
์ฝ๋ ์ปจ๋ฒค์ | |
ํ์ Tools | |
๋ฐฐํฌ | |
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ถ๊ฐ Extension |
-
๋ง์ถค ๊ณต๊ณ
- ๋ก๊ทธ์ธํ์ง ์์ ์ํ๊ฑฐ๋ ์ฌ์ฅ์ผ ๊ฒฝ์ฐ ๋ณด์ฌ์ฃผ์ง ์์
- ์๋ฐ๋ก ๋ก๊ทธ์ธํ์ ๋ ๋ด ํ๋กํ์ ๋ฑ๋กํ์ง ์์์ ๊ฒฝ์ฐ, ์ ํธ ์ง์ญ์ ์ ํํ์ง ์์์ ๊ฒฝ์ฐ ๋ด ํ๋กํ๋ก ์ด๋ํด ๋ฑ๋กํ ์ ์๊ฒ ๋ฐ์ค ํ์
- ์ ํธ ์ง์ญ์ด ์์ ๊ฒฝ์ฐ ํด๋นํ๋ ์ง์ญ ๊ณต๊ณ ์ค ๋ง๊ฐ๋์ง ์์ ๊ณต๊ณ ๋ฅผ ์ต๋ 8๊ฐ๋ฅผ ๋ณด์ฌ์ฃผ์ง๋ง 8๊ฐ๊ฐ ์ฑ์์ง์ง ์์์ ๊ฒฝ์ฐ ์ธ๊ทผ ์ง์ญ ๋ฐ์ดํฐ๋ ๋ณด์ฌ์ค
- ์ธ๊ทผ ์ง์ญ์๋ ๊ณต๊ณ ๊ฐ ์์ ๊ฒฝ์ฐ ๊ณต๊ณ ๊ฐ ์๋ค๋ ๋ฌธ๊ตฌ ํ์
- ํ ๋ฒ์ 3๊ฐ๊ฐ ๋ณด์ด๊ณ ์๊ฐ์ด ์ง๋๋ฉด ํ๋์ฉ ๋์ด๊ฐ๋ค(ํ ๋ธ๋ฆฟ, ๋ชจ๋ฐ์ผ์์๋ ํ๋ฒ์ 2๊ฐ๋ณด์ฌ์ค)
-
์ ๋ ฌ ๋ฐ ์์ธ ํํฐ
- ์ ๋ ฌ
- 4๊ฐ์ง๋ก ์ ๋ ฌ ๊ฐ๋ฅ
- ์์ธ ํํฐ
- ์์น, ์์์ผ, ๊ธ์ก์ ๊ฐ์ ์ ๋ ฅํ๋ฉด ๊ทธ์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ ํํ ํํฐ ๊ฐ์์ ๋ฐ๋ผ ๋ฒํผ์ ๊ฐ์ ํ์
- ์์ ๋ก์ด ์ฃผ์ ์ ํ, ์ญ์ . ์ ํํ ์ฃผ์๋ ํ์ํด์ ๊ตฌ๋ถ
- ์ฌ์ฉ์ ๊ฒฝํ์ ๊ณ ๋ คํด ์์์ผ์ ์ค๋๋ก ์ค์ ๋์ด์๊ณ , ์ด๊ธฐํํด์ ์ง๋ ๊ณต๊ณ ๋ฅผ ๋ณผ ์๋ ์์
- ์ ๋ ฌ
-
ํ์ด์ง๋ค์ด์
- offset, limit ๊ฐ์ ๋ฐ์์์ ํ์ด์ง ๋ฒํธ๋ฅผ ๋๋ฅผ ๋๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์จ๋ค
- ์ฌ์ฉ์ ์ ์ฅ์ ๊ณ ๋ คํด ํ์ดํ๋ฅผ ๋๋ ์ ์ ๋ค์ ์น์ (์ต๋ 7๊ฐ์ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค ๊ฒฝ์ฐ 1~7์์ ํ์ดํ๋ฅผ ๋๋ฅด๋ฉด 8๋ก)์ผ๋ก ์ด๋ํ๋ค
- ํ์ด์ง ์ด๋์ ๊ณต๊ณ ์ ์๋จ์ผ๋ก ์ด๋ํด ์ฌ์ฉ์๊ฐ ๋ณด๊ธฐ ํธํ๋๋ก ์ค์
- ๊ฒ์์ฐฝ์ ๊ฐ์ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ๋๋ฅด๋ฉด ์ฟผ๋ฆฌ๊ฐ์ ์ด์ฉํด ๊ฒ์์ด์ ํด๋นํ๋ ๊ณต๊ณ ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง
- ์คํผ๋
- ์ฌ์ฉ์ ์ ์ฅ์ ๊ณ ๋ คํด ๋ก๋ฉ๋๋ ๋์ ๋ํ๋๋ ํ๋ฉด์์ ๊ตฌํ
- ํ๋กํ ๋ฐ์ดํฐ, ์๋ฐ์ ์ ์ฒญ๋ด์ญ ๋ฐ์ดํฐ๋ฅผ GET Method๋ฅผ ํตํด ๋ฐ์๋ค์
- userId, token์ด ์๊ฑฐ๋, userType์ด employee๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฉ์ธํ์ด์ง๋ก redirect
- ๋ฑ๋ก๋ ํ๋กํ์ด ์์ผ๋ฉด 'ํ๋กํ์ ๋ฑ๋กํ์ธ์' ๋ ๋๋ง
- ํ๋กํ์ ์์ผ๋ ์ ์ฒญ ๋ด์ญ์ด ์์ผ๋ฉด '์ ์ฒญ๋ด์ญ์ด ์์ด์' ๋ ๋๋ง
- ์ฌ์ฅ์ ์ง์์ ๋ด์ญ ๋ฐ์ดํฐ๋ฅผ GET Method๋ฅผ ํตํด ๋ฐ์๋ค์
- ์ง์์๊ฐ ์์ผ๋ฉด table ๋ ๋๋ง, ์์ผ๋ฉด '์ ์ฒญ์๊ฐ ์์ด์' ์์ ๋ ๋๋ง
- AlarmSet, AlarmContainer Component
- ์๋ ๋ฐ์ดํฐ GET, ์๋ ์ฝ์ผ๋ฉด ์ฝ์์ฒ๋ฆฌ PUT
- ์๋ ์ฝ๊ฑฐ๋, ์๋์์ด์ฝ์ ๋๋ฅด๋ฉด ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ฌ๋ ๋๋ง
- ์๋ ๋ฐ์ดํฐ์์ ์๋ฐ ๋ณธ์ธ์ด ์ทจ์ํ ์๋์ filter
- ์ฝ์ง ์์ ์๋ ์ ๋ฌด์ ๋ฐ๋ผ ์๋ ์์ด์ฝ ๋ค๋ฅด๊ฒ ๊ตฌํ
- getFromTimeํจ์ ๊ตฌํ
- Label Component
- ์์น๋ผ๋ฒจ๊ณผ ์ํ๋ผ๋ฒจ์ ๊ณตํต ์ปดํฌ๋ํธ๋ก ์ถ์ํ
- NoList Component
-
ApplyTable Component
- ๋ฐ์ํ ๊ตฌํ
- userType์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ
- ์ฌ์ฅ์ด ์น์ธํ๊ธฐ/๊ฑฐ์ ํ๊ธฐ ๋ฒํผ ๋๋ฅด๋ฉด ๋ชจ๋ฌ ๋์ฐ๊ธฐ, ๋ชจ๋ฌ์ โ์โ ๋๋ฅด๋ฉด status ๋ฐ๊พธ๊ธฐ
- ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๋ฐ๋ก ๋ฐ๋๋๋ก ๊ตฌํ
- ์ฌ์ฅ์ด ์น์ธํ๊ธฐ ๋ฒํผ ๋๋ฅด๋ฉด pending์ค์ธ ๋ค๋ฅธ ์ง์๋ค์ ๊ฑฐ์ ๋ผ๋ฒจ๋ก ๋ณด์ด๋๋ก ๊ตฌํ
- ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๋ฐ๋ก ๋ฐ๋๋๋ก ๊ตฌํ
- ํ์ด์ง๋ค์ด์ ์ฐ๊ฒฐ
-
MyProfile Component
- react-hook-form ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ ๋ ฅ๊ฐ ๊ด๋ฆฌ
- ์
๋ ฅ๊ฐ ๋ฆฌ์คํธ : ์ด๋ฆ, ์ฐ๋ฝ์ฒ, ์ ํธ์ง์ญ, ์๊ธฐ์๊ฐ
- ํ์ ์ ๋ ฅ๊ฐ์ ์ค์ ํ์ง ์๊ณ ์ ์ถ ์ ์๋ฌ ๋ฉ์ธ์ง ๋ ธ์ถ
- ์ฐ๋ฝ์ฒ์ ๊ฒฝ์ฐ 010-0000-0000 ์ ํ์์ ์งํค์ง ์์ ์ ์๋ฌ ๋ฉ์ธ์ง ๋ ธ์ถ
- ์ ํธ์ง์ญ์ ๊ฒฝ์ฐ Dropdown ํ์์ผ๋ก UI ๊ตฌ์ฑ
- ์๊ธฐ์๊ฐ์ ๊ฒฝ์ฐ ๊ธ์ ์๋ฅผ ์ ํํ์ฌ ์ด๊ณผํ ์ ํ ์คํธ ์ ๋ ฅ์ ๋ง์
- ๋ด ํ๋กํ ๋ฑ๋ก ๋ฐ ์์ ํ์ด์ง๋ ๊ฐ์ ํ์ด์ง๋ฅผ ๊ณต์ ํ๋ฉฐ url์ ์ฟผ๋ฆฌ๊ฐ์ผ๋ก ๋ฑ๋ก, ์์ ์ฌ๋ถ๋ฅผ ํ๋จ
- ๋ฑ๋ก ํ์ด์ง (/myprofile/register), ์์ ํ์ด์ง(/myprofile/register/?action=edit)
- ์์ ํ์ด์ง๋ก ํ๋จ ๋ ์ ๊ธฐ์กด ์ ์ ์ ์ ๋ณด๋ฅผ fetch ํ์ฌ ์ ๋ ฅ์ฐฝ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์
- ์์ ํ์ด์ง ์ง์ ์ ์ ์ ์ ๋ณด๊ฐ fetch ๋๊ธฐ ์ ๊น์ง spinner๋ฅผ ๊ตฌํํ์ฌ ์ ์ ํธ์์ฑ ๊ณ ๋ ค
- ๋ชจ๋ ์ ๋ ฅ๊ฐ์ ์ค์ํ๊ณ ์ ์ถ ์ API ์ฑ๊ณต ์ฌ๋ถ์ ๋ฐ๋ผ ํ์ธ ๋ชจ๋ฌ์ฐฝ์ ๋ฉ์ธ์ง ๋ ธ์ถ
- ๋ด ํ๋กํ ๋ฑ๋ก์ด ๋์ด ์๋๋ฐ url๋ก ๋ฑ๋ก ํ์ด์ง ์ ๊ทผ ์ โ/โ ๋ฃจํธ ํ์ด์ง๋ก redirect ๋๋๋ก ๊ตฌํ
- ์
๋ ฅ๊ฐ ๋ฆฌ์คํธ : ๊ฐ๊ฒ์ด๋ฆ, ๋ถ๋ฅ, ์ฃผ์, ์์ธ์ฃผ์, ๊ฐ๊ฒ์ด๋ฏธ์ง, ๊ธฐ๋ณธ์๊ธ, ๊ฐ๊ฒ์ค๋ช
- ํ์ ์ ๋ ฅ๊ฐ์ ์ค์ ํ์ง ์๊ณ ์ ์ถ ์ ์๋ฌ ๋ฉ์ธ์ง ๋ ธ์ถ
- ๊ธฐ๋ณธ ์๊ธ์ ๊ฒฝ์ฐ 24๋ ๊ธฐ์ค ์ต์ ์๊ธ ์ดํ๋ก ์ ๋ ฅ ์ ์๋ฌ๋ฉ์ธ์ง ๋ ธ์ถ
- ๊ฐ๊ฒ ์ด๋ฏธ์ง
- S3 ์ธ๋ถ ํด๋ผ์ฐ๋ ์ ์ฅ์๋ฅผ ์ด์ฉํ์ฌ ์ด์ฉ์๊ฐ ์ฒจ๋ถํ ์ฌ์ง ํ์ผ์ ์ด๋ฏธ์ง url๋ก ๋ณํํ์ฌ ์ฌ์ฉ
- ๊ฐ๊ฒ ์ด๋ฏธ์ง Box๋ฅผ ํด๋ฆญํ๋ฉด display: none; ์ผ๋ก ์ค์ ๋์ด์๋ file type์ input์ Ref๋ฅผ ์ฐธ์กฐํ์ฌ click ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๊ฒ ๊ตฌํ
- ์๊ธฐ์๊ฐ์ ๊ฒฝ์ฐ ๊ธ์ ์๋ฅผ ์ ํํ์ฌ ์ด๊ณผํ ์ ํ ์คํธ ์ ๋ ฅ์ ๋ง์
- ๊ฐ๊ฒ ๋ถ๋ฅ์ ์ฃผ์๋ Dropdown ํ์์ผ๋ก UI ๊ตฌ์ฑ
- ๋ด ๊ฐ๊ฒ ๋ฑ๋ก ๋ฐ ์์ ํ์ด์ง๋ ๊ฐ์ ํ์ด์ง๋ฅผ ๊ณต์ ํ๋ฉฐ url์ ์ฟผ๋ฆฌ๊ฐ์ผ๋ก ๋ฑ๋ก, ์์ ์ฌ๋ถ๋ฅผ ํ๋จ
- ๋ฑ๋ก ํ์ด์ง(/myshop/register), ์์ ํ์ด์ง(myshop/register/?action=edit)
- ์์ ํ์ด์ง๋ก ํ๋จ ๋ ์ ๊ธฐ์กด ๊ฐ๊ฒ ์ ๋ณด๋ฅผ fetch ํ์ฌ ์ ๋ ฅ์ฐฝ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์
- ์์ ํ์ด์ง ์ง์ ์ ๊ฐ๊ฒ ์ ๋ณด๊ฐ fetch ๋๊ธฐ ์ ๊น์ง spinner๋ฅผ ๊ตฌํํ์ฌ ์ ์ ํธ์์ฑ ๊ณ ๋ ค
- ๋ชจ๋ ์ ๋ ฅ๊ฐ์ ์ค์ํ๊ณ ์ ์ถ ์ API ์ฑ๊ณต ์ฌ๋ถ์ ๋ฐ๋ผ ํ์ธ ๋ชจ๋ฌ์ฐฝ์ ๋ฉ์ธ์ง ๋ ธ์ถ
- ๋ด ๊ฐ๊ฒ๊ฐ ๋ฑ๋ก๋์ด ์๋๋ฐ url๋ก ๋ฑ๋ก ํ์ด์ง ์ ๊ทผ ์ โ/โ ๋ฃจํธ ํ์ด์ง๋ก redirect ๋๋๋ก ๊ตฌํ
- ์
๋ ฅ๊ฐ ๋ฆฌ์คํธ : ์๊ธ, ์์์ผ์, ์
๋ฌด์๊ฐ, ๊ณต๊ณ ์ค๋ช
- ํ์ ์ ๋ ฅ๊ฐ์ ์ค์ ํ์ง ์๊ณ ์ ์ถ ์ ์๋ฌ ๋ฉ์ธ์ง ๋ ธ์ถ
- ์๊ธ์ ๊ฒฝ์ฐ ๊ฐ๊ฒ ์ ๋ณด๋ฅผ ๋ฑ๋กํ ๋์ ๊ธฐ๋ณธ ์๊ธ๋ณด๋ค ๋ฎ์ ๊ธ์ก์ ์ค์ ํ์ง ๋ชปํ๋๋ก ๊ตฌํ
- ์์์ผ์
- react-datePicker ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์์ผ์ ๊ฐ์ ์ ํํ ์ ์๋๋ก ๊ตฌํ
- react-hook-form๊ณผ ์ฐ๊ฒฐํ๊ธฐ ์ํด ์ ๊ณต๋๋ Controller ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ react-datePicker ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๋ํ์์
- ๋ ์ง์ ์๊ฐ๋๋ฅผ ์ ํํ ์ ์์
- ํ์ฌ ์๊ฐ๋ณด๋ค ์ด์ ์๊ฐ์ ์ ํํ ๊ฒฝ์ฐ ์๋ฌ ๋ฉ์ธ์ง ๋ ธ์ถ
- ๊ณต๊ณ ์ค๋ช ์ ๊ฒฝ์ฐ ๊ธ์ ์๋ฅผ ์ ํํ์ฌ ์ด๊ณผํ ์ ํ ์คํธ ์ ๋ ฅ์ ๋ง์
- ๋ด ๊ฐ๊ฒ ๊ณต๊ณ ๋ฑ๋ก ๋ฐ ์์ ํ์ด์ง๋ ๊ฐ์ ํ์ด์ง๋ฅผ ๊ณต์ ํ๋ฉฐ url์ ์ฟผ๋ฆฌ๊ฐ์ผ๋ก ๋ฑ๋ก, ์์ ์ฌ๋ถ๋ฅผ ํ๋จ
- ๊ณต๊ณ ๋ฑ๋ก ํ์ด์ง(/myshop/register/notice), ๊ณต๊ณ ์์ ํ์ด์ง(/myshop/register/notice?noticeId=${noticeId})
- ์์ ํ์ด์ง๋ก ํ๋จ ๋ ์ ๊ธฐ์กด ๊ณต๊ณ ์ ๋ณด๋ฅผ fetch ํ์ฌ ์ ๋ ฅ์ฐฝ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค์
- ์์ ํ์ด์ง ์ง์ ์ ๊ณต๊ณ ์ ๋ณด๊ฐ fetch ๋๊ธฐ ์ ๊น์ง spinne๋ฅผ ๊ตฌํํ์ฌ ์ ์ ํธ์์ฑ ๊ณ ๋ ค
- ๋ชจ๋ ์ ๋ ฅ๊ฐ์ ์ค์ํ๊ณ ์ ์ถ ์ API ์ฑ๊ณต ์ฌ๋ถ์ ๋ฐ๋ผ ํ์ธ ๋ชจ๋ฌ์ฐฝ์ ๋ฉ์ธ์ง ๋ ธ์ถ
- ๊ณต๊ณ ์์ ์๋ฃ ์ ์์ฑ๋ ๊ณต๊ณ ์์ธ ํ์ด์ง๋ก ์ด๋
- ๊ณต๊ณ ๋ฑ๋ก ์ ๋ด ๊ฐ๊ฒ ํ์ด์ง๋ก ์ด๋ํ์ฌ ์์ฑ๋ ๊ณต๊ณ ๋ฆฌ์คํธ ๋ ธ์ถ
- Header Component
- ๋ก๊ณ , ๊ฒ์์ฐฝ ๋ฐ ๋ด ๊ฐ๊ฒ(๋ด ํ๋กํ), ๋ก๊ทธ์์, ๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์ ๋ฒํผ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ ์๋จ ๊ณ ์ component
-
๊ฐ๊ฒ์์ธ์ ๊ณต๊ณ ์์ธ์ ๊ณตํต์ ์ผ๋ก ์ฐ์ผ Box ๊ตฌํ
- ๋ฒํผ ๊ฐฏ์๋ ์ฐ์์์ ๊ฒฝ์ฐ์ ์๊ฐ ๋ง์์ ๋ฒํผ์ children์ผ๋ก ๋ฐฐ์น
- ๋ก๊ทธ์ธ์ ํตํด ์ ์ฅ๋ cookie๋ฅผ ๋ฐํ์ผ๋ก ํ์ฌ, ์ ์ ์ข ๋ฅ ๋ฐ ๊ฐ๊ฒ์ ๋ง๊ฐ ์ฌ๋ถ ๋ฑ์ ๋ฐ๋ผ ๋ฒํผ์ ๋ ๋๋ง ํ๋๋ก ์กฐ๊ฑด์ ์์ฑ
-
์๊ธ ์ธ์์จ ๋ฑ์ง ์ ์
- ์นด๋์์ ๋ณด์ฌ์ง ๋์ ํ์ด์ง์์ ๋ณด์ฌ์ง ๋ ๋์์ธ ๊ตฌ๋ณ
- ์๊ธ์ด๋ ์ธ์์จ ํ ์คํธ๊ฐ ๊ธธ์ด์ ธ์ ์๋ต๋ ๊ฒฝ์ฐ (text-overflow) ํธ๋ฒ ์ ์ ์ ํ ์คํธ ํ์
-
๋ฑ๋กํ ๊ณต๊ณ ๋ ๋ฌดํ์คํฌ๋กค ๋ฐฉ์์ผ๋ก ๋ก๋
- Intersection Observer ์ฌ์ฉ, ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธํ
-
๋ด ๊ฐ๊ฒ ํ์ด์ง
- '/myshop' layout ๋จ๊ณ์์ ์ ์ ํ์ ๊ฒ์ฌ ํ ์ฌ์ฅ์ด ์๋๋ฉด ๋ฃจํธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
-
๊ณต๊ณ ์์ธ๋ณด๊ธฐ ํ์ด์ง(์๋ฐ)
- ์ต๊ทผ์ ๋ณธ ๊ณต๊ณ ๋ฅผ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ JSON ๊ฐ์ฒด๋ก ์ ์ฅ
- ์ค๋ณต์ ์์ ๊ณ , ์ต์ ์ ์ ๋ ฌํ๊ธฐ ์ํ ๋ก์ง ๊ตฌํ
- Modal Component
- ๊ฒฝ๊ณ , ๋ก๊ทธ์์ ๋ฑ์ ๊ฒฝ๊ณ ๋ฐ ์๋ฆผ์ ๋ํ๋ด๊ธฐ ์ํ ์ปดํฌ๋ํธ
- ํ๋ก์ ํธ ๋ฐฐํฌ ๋ฐ ๋ฐฐํฌ ์ ๋ฐ์ํ๋ ์ค๋ฅ ๊ฒํ
- react-hook-form์ ํ์ฉํ์ฌ ๋ก๊ทธ์ธ, ํ์๊ฐ์ ํ์ด์ง ์ ์
- setCookies ์์ฑ
- ๋ก๊ทธ์ธ ์, u_id(userID), s_id(shopID), userType, token์ด cookie์ ์๋์ผ๋ก ์ค์ ํ ์ ์๋๋ก setCookies ์์ฑ
- ๊ธฐ๋ณธ ์ฟ ํค(์๋ฐ์, ์ฌ์ฅ๋ ๊ณตํต) : u_id, userType, token ์์ฑ
- userType === employer : ๋ด ๊ฐ๊ฒ ๋ฑ๋ก ์ฌ๋ถ์ ๋ฐ๋ผ cookie์ s_id ์ถ๊ฐ
- ๋ก๊ทธ์ธ ์, u_id(userID), s_id(shopID), userType, token์ด cookie์ ์๋์ผ๋ก ์ค์ ํ ์ ์๋๋ก setCookies ์์ฑ
- Input Component
- label ๋ฑ ์ค์ ๊ฐ๋ฅ
- label์ ๋ด์ฉ์ ๋ฐ๋ผ input box์ โ์โ, โ์๊ฐโ ๋จ์ ์ถ๊ฐ
- type === password : eyeIcon ์ถ๊ฐ, ๋น๋ฐ๋ฒํธ๊ฐ ๋ณด์ด๋๋ก ์ค์ ๊ฐ๋ฅ
- Button Component
- props์ ์์, ํฌ๊ธฐ, ๋ด์ฉ, button type ์ค์ ๊ฐ๋ฅ
- TypeSelector Component
- ํ์๊ฐ์ ์์ userType ์ค์
- ์๋ฐ์ : employee, ์ฌ์ฅ๋ : employer
- Toast Component
- ๋ก๊ทธ์ธ, ํ์๊ฐ์ ์์ ์ฑ๊ณต, ๊ฒฝ๊ณ ์ฌ๋ถ ์ถ๋ ฅ
- ๊ธฐ๋ณธ Toast ์ ์ง ์๊ฐ : 1.5์ด
- Footer Componet
- ๋ฐ์ํ ๋์ ๊ตฌํ
- Header์์ ๋ก๊ทธ์์ ์, ๋ก๊ทธ์์ ์งํ
- ๋ก๊ทธ์์ ๋ฒํผ ํด๋ฆญ ์, modal ํ๋ฉด์ ํตํ์ฌ ๋ค์ํ๋ฒ ๋ก๊ทธ์์ ์ฌ๋ถ ํ์ธ
- ๋ก๊ทธ์ธ ์ Header ๊ตฌ์ฑ ์์ ์กฐ๊ฑด ์ถ๊ฐ
- userType, token ์ฟ ํค๋ฅผ ๋ฐ์์์ token ์กด์ฌ ์ฌ๋ถ ๋ฐ userType์ ๋ฐ๋ผ ๋ฒํผ ๊ฒฐ์
- ๊ฒ์ ํ ๋ค๋ฅธ ํ์ด์ง ์ ๊ทผ ์ ๊ฒ์์ฐฝ์ ๋ด์ฉ ์ด๊ธฐํ
- usePathname() ์ฌ์ฉ
1. ๋ก๊ทธ์ธ ์, ๋ก๊ทธ์ธ ํ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ๊ตฌ๋ถํ๋ ๋ฌธ์ ๋ฐ userType ํ์ ์ ๋ํ ๋ฌธ์
- ๋ก๊ทธ์ธํ ๋ ์ฟ ํค์ ์ ์ฅ๋๋ ๊ฐ(userType)์ผ๋ก ์๋ฐ์, ์ฌ์ฅ๋ ๊ตฌ๋ถ
- ๊ฐ ํ์ด์ง์์ ์ฟ ํค ๊ฐ์ ๊ฐ์ ธ์ ์กฐ๊ฑด๋ถ ๋ ๋๋ง์ผ๋ก ๊ตฌํ
2. useRouter, useEffect๋ CSR์์๋ง ๊ฐ๋ฅ, ์ฟ ํค ๊ฐ ์ฐธ์กฐ๋ SSR์์๋ง ๊ฐ๋ฅํ๋ ๋ฌธ์
- ๊ฐ ํ์ด์ง์์๋ ์ฟ ํค ๊ฐ ์ฐธ์กฐ๋ฅผ ์ํด SSR๋ก ๊ตฌํ
- ๋ฐ์ดํฐ ๋ณํ ์ ๋ฆฌ๋ ๋๋ง์ ์ํด ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ํ CSR๋ก ์ค์
- ์ฟ ํค ๊ฐ์ props๋ก ๋๊ฒจ๋ฐ์
- ์ ๋ ฅ ํ๋์ register ํจ์๋ฅผ ์ ์ฉํ์์๋ ์ ๋ ฅ ๊ฐ์ด ์ ๋๋ก ๋ฑ๋ก๋์ง ์์
- onSubmit ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๋ฉด์, ํผ ์ ์ถ ์ ์ฌ์ฉ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ง ๋ชปํจ
- form ํ๊ทธ์ props์์ handleSubmit์ ํ์ฉํจ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ
- input field์ React Hook Form๊ณผ ์ฐ๊ฒฐํ๊ณ , ํผ ์ ์ถ ์ ์ ๋ ฅ ๊ฐ์ ๊ฒ์ํ ์ ์๋๋ก ์ ์ฉ