์๋น์ค ๋งํฌ
: https://www.permeate.store
- โํฅ๊ธฐโ ์ ๊ด๋ จํ ์ ํ์ ํ๋ ๊ณณ์ ๋ง์ง๋ง, ํ๋งค ์ฌ์ดํธ๋ค์ด ๋ถ์ฐ๋์ด ์์ด ๊ตฌ๋งค์์ ์ ์ฅ์์๋ ๊ฒ์ฆ๋ ์ฌ์ดํธ๋ฅผ ์ฐพ๊ธฐ ์ฝ์ง ์์ต๋๋ค.
- ์ด์ ํน์ ๋ธ๋๋์ ์ฝ๋งค์ด์ง ์๊ณ , ๋ค์ํ ๋ธ๋๋๋ฅผ ๋ชจ์ ํ๋์ ์น์ฌ์ดํธ์์ ํธ๋ฆฌํ๊ฒ ๊ตฌ๋งคํ ์ ์๋ e-์ปค๋จธ์ค ์ฌ์ดํธ์ ๋๋ค.
๋ฆฌ๋: ์ค๋ฌธ์ด | ํ์: ๋ฐ์๋น | ํ์: ์ด์์ง | ํ์: ์ดํ์ |
---|---|---|---|
@munyeol-Yoon | @harry21-kr | @leeejin | @hayanLee |
- Front : Next.js, TailwindCSS
- Database : Supabase
- ๋ฒ์ ๋ฐ ์ด์๊ด๋ฆฌ : Github,
- ํ์ ํด : Slack, ๋ ธ์ ,
- ์๋น์ค ๋ฐฐํฌ ํ๊ฒฝ : Vercel
- ๋์์ธ : ํผ๊ทธ๋ง ์ด์
- ์นดํ ๊ณ ๋ฆฌ ํ์ด์ง
- ๊ฒ์ ํ์ด์ง
- ์ํ ๋ชฉ๋ก ํ์ด์ง
- ์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง
- ์ฃผ๋ฌธ ํ์ด์ง
- ๋ฉ์ธ ํ์ด์ง
- ์ํ ๋ํ ์ผ ํ์ด์ง
- ๋ฆฌ๋ทฐ ํ์ด์ง
- ๋ก๊ทธ์ธ(๋ก์ปฌ,์์ ),๋ก๊ทธ์์,ํ์๊ฐ์
- ๋ง์ดํ์ด์ง
- UI
- ์ ์ฒด ๊ฐ๋ฐ ๊ธฐ๊ฐ 2024-07-16~2024-08-21
- ์์ด๋์ด / ๊ธฐ์ ์คํ ์ ์ 2024-07-16~2024-07-19
- ์์ด์ดํ๋ ์ / URL ๊ตฌ์กฐ / ์ญํ ๋ถ๋ฐฐ 2024-07-17~2024-07-21
- DBํ ์ด๋ธ ์์ฑ ๋ฐ ๋์์ธ, ๊ธฐ๋ฅ ๊ฐ๋ฐ 2024-07-18~2024-08-04
- MVP ์์ฑ 2024-08-05
- UT ํ ์ถ๊ฐ ๊ธฐ๋ฅ ๊ฐ๋ฐ ๋ฐ ๊ฐ์ 2024-08-05~2024-08-16
- ์ต์ข ๋ง๋ฌด๋ฆฌ ~2024-08-21
- ์ฃผ๋ฌธ ( PortOne API )
- ํ์ด์ง ์ด๋ nav
- ์นดํ ๊ณ ๋ฆฌ, ์ฅ๋ฐ๊ตฌ๋, ๋ง์ดํ์ด์ง
- ํค๋ ํญ
- ๋ฉ์ธ ์บ๋ฌ์ ์๋ ๋ฐฐ๋
- ์บ๋ฌ์
- ๋ฉ์ธ ํ๋ฉด
- ์ถ์ฒ ์ํ
- ์ ํ ๋ถ๋ฌ์ค๊ธฐ
- ์ฃผ๋ฌธ๋ / ์ต์ ์ ํ / ์ข์์ ์
- ํน์ ์ํ ๋ธ๋๋ ๋ถ๋ฌ์ค๊ธฐ
- ์บ๋ค, ๋ํจ์ , ๋ฅ๋ํฌ(๋ธ๋๋)
- ์ ํ๋ง๋ค ์ข์์ ๊ธฐ๋ฅ
- ์ฅ๋ฐ๊ตฌ๋ ์ถ๊ฐ
- ํด๋น ์นดํ ๊ณ ๋ฆฌ๋ก ๋ฐ๋ก๊ฐ๊ธฐ
- ๋ฐ๋ก ๊ตฌ๋งคํ๊ธฐ
- ์นด์นด์คํก ๊ณต์ ํ๊ธฐ
- ์ข์์ ๊ธฐ๋ฅ (optimisitc)
- ์ ์ฒด ํ๊ธฐ ์ฌ์ง 7๊ฐ๋ง ๋ถ๋ฌ์ค๊ธฐ
- ์ํ๋ณ ๋ฆฌ๋ทฐ ๋ถ๋ฌ์ค๊ธฐ
- ๋ฆฌ๋ทฐ๋ณ ํํฐ๋ง
- ์ต์ ์ / ์ค๋๋ ์ / ๋ณ์ ๋์์
- ํ์ด์ง๋ค์ด์ ( prefetching )
- ์ด๋ฏธ์ง ์ ์ฒด ๋ณด๊ธฐ ํด๋ฆญ ์
- ๋ทฐ ์ ์ฒด ์ฌ์ง ๋ถ๋ฌ์ค๊ธฐ
- ๋น๋ก๊ทธ์ธ ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ง ์ฌ์ฉ
- ๋ก๊ทธ์ธ ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง +DB ์ฌ์ฉ
- ์์ธ ํ์ด์ง์์ ์ํ ์ถ๊ฐ ๊ธฐ๋ฅ
- ๊ตฌ๋งคํ ์ํ์ ์ํ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ์ํ ์ญ์
- ์ํ ์ต์ ๋ณ๊ฒฝ
- ์ํ ๊ตฌ๋งค ์ฌ๋ถ ๋ณ๊ฒฝ
- ๋ฐฐ์ก์ง ๋ณ๊ฒฝ ๊ฐ๋ฅ (๋ง์ดํ์ด์ง)
- ๋ฐฐ์ก ๋ฉ๋ชจ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ๊ตฌ๋งคํ ์ํ์ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ
- ์ฌ์ฉํ ๋ง์ผ๋ฆฌ์ง ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ์ฌ์ฉํ ์ฟ ํฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ๊ฒฐ์ ์๋จ ์ ํ ๊ฐ๋ฅ
- ์นด์นด์คํ์ด, ํ ์คํ์ด
- ์ต์ข ๊ธ์ก ํ์ธ ๊ฐ๋ฅ
- ์ํ ๊ฒฐ๊ณผ์ ๋ํ ํธ์์ฑ์ ์ํด ํํฐ๋ง ์ ๊ณต
- ๊ฐ๊ฒฉ๋ณ
- ์นดํ ๊ณ ๋ฆฌ ๋ถ๋ฌ์ค๊ธฐ
- ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฉํ ์ต๊ทผ ๊ฒ์์ด ์ถ๊ฐ ๋ฐ ์ญ์
- ๋๋ฐ์ด์ฑ์ ํ์ฉํ ์ฐ๊ด ๊ฒ์์ด
- ์ฐ๊ด ์ํ, ์นดํ ๊ณ ๋ฆฌ, ํค์๋ ์กฐํ
- ์ด๋ฉ์ผ
- ์ด๋ฉ์ผ ์ธ์ฆ (OTP)
- OAuth (์นด์นด์ค/๊ตฌ๊ธ)
- ํ์๊ฐ์ ์, ์ ์ ์ถ๊ฐ์ ๋ณด ์ ๋ ฅ ํผ ์ ๊ณต
- ๋ง์ผ๋ฆฌ์ง / ์ฟ ํฐ / ํ๊ธฐ ํ์ด์ง
- ์ฃผ๋ฌธ ๋ด์ญ / ์ฐ ํ์ด์ง
- ํ์์ ๋ณด / ๋ฐฐ์ก์ง ๋ณ๊ฒฝ ํ์ด์ง
๐ง ๋ฌธ์ ์ ์
๐ ์ฅ๋ฐ๊ตฌ๋๊ฐ ๋๋ฆฌ๋ค!
ํ๋ก์ ํธ ๋ด ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ์ ๋ํด ๋ถ์ ์ ์ธ ํผ๋๋ฐฑ ์ค ๊ณตํต๋ ํผ๋๋ฐฑ์ ์ฅ๋ฐ๊ตฌ๋๊ฐ ๋๋ฆฌ๋ค! ๋ผ๋ ์๊ฒฌ์ด์์ต๋๋ค.
๋ค์์ ํผ๋๋ฐฑ์ ๋ฐ์๊ณ , ๊ฐ๋ฐ์ ๋ณธ์ธ๋ ๋ฌธ์ ๋ฅผ ์ธ์ํ๊ณ ์์์ ํด๋น ์ด์์ ๋ํด ํธ๋ฌ๋ธ์ํ
์ ์์ฑํ๊ฒ ๋์์ต๋๋ค.
๐ค ์ ํํ ์ด๋ค ๋ถ๋ถ์ด ๋๋ฆด๊น?
1. ์ฅ๋ฐ๊ตฌ๋์ ์ํ์ ์ถ๊ฐํด๋ ๋ฐ๋ก ์ ์ฉ๋์ง ์๊ณ ์งง์ ๋๋ ์ด ํ ์ฅ๋ฐ๊ตฌ๋์ ์ํ์ด ์ถ๊ฐ๋๋ค!
2. ์ฅ๋ฐ๊ตฌ๋์์ ๊ตฌ๋งคํ ์ํ์ ์ต์
(์๋, ์ฌ์ด์ฆ)์ ๋ณ๊ฒฝํ๋ฉด ๋ฐ๋ก ์ ์ฉ๋์ง ์๊ณ ๋๋ ์ด ํ ์ํ์ ์ต์
์ด ๋ณ๊ฒฝ๋๋ค!
3. ์ฅ๋ฐ๊ตฌ๋ ๋ด์ ์ํ์ ์ญ์ ํ ๋, ๋ฐ๋ก ์ ์ฉ๋์ง ์๊ณ ๋๋ ์ด ํ ์ํ์ด ์ญ์ ๋๋ค!
๐ค ๋จ์ํ ๋ฐ์์ด ๋๋ฆฐ๊ฒ๋ง ๋ฌธ์ ์ผ๊น?
UI๊ฐ ์ ์ ์ ์ธํฐ๋์
์ ๋ฐ๋ผ ๋ฐ์๋๋๊ฒ ๋๋ฆฌ๋ค! ๋ผ๋ ๋ฌธ์ ๋ง ์กด์ฌํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ์ฌ๊ฐํ ์ด์๋ ์๋์ง๋ง,
์ค์ ์ฃผ๋ฌธ ํ์ด์ง์์ ์ฃผ๋ฌธ์ ํ๋ ค๊ณ ํด๋ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ ์ํ์ด ์ ์ฉ๋์ง ์๋ ํ์๋ ๋ฐ์ํฉ๋๋ค.
์ ์ ์ ์
์ฅ์์๋ "์ด? ๋๋ ์ฅ๋ฐ๊ตฌ๋์ ๋ถ๋ช
์ํ์ ์ถ๊ฐํ๊ณ , ์ด ์ํ์ ์ฃผ๋ฌธํ๋ ค๊ณ ํ๋๋ฐ ์ ๋ฐ์์ด ์๋์ด์์ง?" ํน์
์ํ ๋ด์ญ์ ์ ํํ ํ์ธํ์ง ์๋ ์ ์ ์ ๊ฒฝ์ฐ์๋ ๋ด๊ฐ ์ ํํ ์ ํ์ ๊ตฌ๋งคํ์ง ๋ชปํ๋ ์ต์
์ ์ํฉ์ ๋ง์ดํ ์๋ ์์ต๋๋ค.
**๋ฐ๋ผ์ ๋จ์ํ UI๊ฐ ๋ณ๊ฒฝ๋์ง ์๋๋ค! ๋ผ๋ ์ด์๋ณด๋ค ๋ ์ฌ๊ฐํ, ํ๋์ ๊ฑฐ๋ํ ๋ฒ๊ทธ๋ผ๊ณ ์ธ์งํ๊ณ ํด๋น ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ์ํฉ๋๋ค.**
โ ๋ฌธ์ ์์ธ
๐ก ํญ์ ์๋ฒ์ ํต์ ํ๋ ์ฅ๋ฐ๊ตฌ๋
์ด์๋ฅผ ํ์
ํด๋ณธ ๊ฒฐ๊ณผ ์์ธ์ ๊ต์ฅํ ๋จ์ํ์์ต๋๋ค.
๋ฐ๋ก ์ฅ๋ฐ๊ตฌ๋์ ์ํ์ ๋ด๊ฑฐ๋, ์์ , ์ญ์ ํ ๊ฒฝ์ฐ ํญ์ ์๋ฒ์์ ํต์ ์ด ์ผ์ด๋๊ณ ์์๋ค๋ ์ ์ด์์ฃ .
ํญ์ ์๋ฒ์์ ํต์ ์ผ๋ก ์ธํด UI์ ๋ฐ์๋๋ ์๋๊ฐ ๋ฆ์ด์ง๊ณ ,
์๋ฒ์์ ํต์ ์ด ์ผ์ด๋๊ณ ์๋ ๋์ค ์ฃผ๋ฌธ์ ํ๋ ค๊ณ ํ์๋,
์ฆ, ์๋ฒ์ ์๋ก์ด ์ํ์ ์ ๋ณด๋ฅผ ์ฅ๋ฐ๊ตฌ๋์ ์ถ๊ฐํ๋ ค๊ณ ํ๋ ๋์ค ์ฃผ๋ฌธ์ ํ๋ ค๊ณ ์ฃผ๋ฌธ ํ์ด์ง๋ก ๋์ด๊ฐ๊ฒ๋๋ฉด
์ฃผ๋ฌธ ํ์ด์ง์์๋ ์ต์ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๋ฐ์ํ์ง ๋ชปํ ์ด์ ์ ์ฅ๋ฐ๊ตฌ๋ ๋ด์ญ์ ๋ณด์ฌ์ฃผ๊ณ , ๊ฒฐ์ ๊น์ง ์งํํ๊ฒ ๋๋ ๊ฒ์ด์ฃ .
๐ ๏ธ ๊ณ ๋ฏผ ๋ด์ญ
1. ์๋ฒ์์ ํต์ ์ด ์๋ฃ๋ ๋๊น์ง ์ ์ ์ ํ๋์ ์ ํํ๋ค.
์๋ฒ์ ํต์ ํ๋ ์๊ฐ๋์ UI์๋ ๋ก๋ฉ ์คํผ๋์ ๊ฐ์ UI๋ฅผ ํ์ํด์ฃผ๊ณ , ์๋ฒ์์ ํต์ ์ด ์๋ฃ๋ ๋๊น์ง ์ ์ ๊ฐ ๋ค๋ฅธ ํ๋์ ํ์ง ๋ชปํ๊ฒ
ํด๋ผ์ด์ธํธ์์ ํ๋์ ์ ํํ ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ค์ ๋ก ์ด๋ฐ ์๋ฃจ์
์ ์ฌ์ฉํ๊ณ ์๋ ์ด์ปค๋จธ์ค ์ฌ์ดํธ๋ ์ฟ ํก์ด ์์ต๋๋ค.
์ฟ ํก์ ์ฅ๋ฐ๊ตฌ๋์์ ๋ฌด์ธ๊ฐ๋ฅผ ์์ , ์ญ์ ํ ๋ ๊ตฌ๋งคํ๊ธฐ ๋ฒํผ์ `disabled` ์์ผ ์ ์ ๋ก๋ถํฐ ํ์ฌ๊ธ ์๋ฒ์์ ํต์ ์ด ์ข
๋ฃ๋ ๋๊น์ง
์ฃผ๋ฌธ ํ์ด์ง์ ๊ฐ์ง ๋ชปํ๋๋ก ์ ํํ๊ณ ์์ต๋๋ค.
2. ๋งค ์์ ๋ง๋ค ์๋ฒ์ ํต์ ํ์ง ์๋๋ค.
์๋ฒ์ ํต์ ํ๋ ์๊ฐ์ด ๋ฌธ์ ๋ผ๋ฉด, ์๋ฒ์ ํต์ ํ๋ ๋ถ๋ถ์ ์์ ๋ฒ๋ฆด์๋ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
๋ฌผ๋ก ์์ ์ ์ ์ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด๊ฐ DB์ ์ ์ฅ๋์ง ์๋๊ฒ์ ์๋๋๋ค.
๋จผ์ ์ฅ๋ฐ๊ตฌ๋์์ ์ผ์ด๋๋ ์ถ๊ฐ/์์ /์ญ์ ์ ๊ด๋ จํ ๋ถ๋ถ์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ ๋ณด๋ค์ ์ ์ฅํ ๋ค,
์ ์ฅ๋ ์ ๋ณด๋ค์ ์ฅ๋ฐ๊ตฌ๋๊ฐ ์ธ๋ง์ดํธ ๋ ๋, ์ฆ ์ฌ์ดํธ์ ์ด๋์ด๋ ์ ์ ์ ์ก์
์ด ์ผ์ด๋ฌ์ ๋ DB์ ์ ์ฅ์ ํด์ฃผ๋ ๊ฒ์
๋๋ค.
ํ์ง๋ง ์ ๋ฐฉ๋ฒ๋ ๊ฒฐ๊ตญ์๋ ์๋ฒ์ ํต์ ํ๋ ์๊ฐ์ด ํ์ฐ์ ์ผ๋ก ๋ฐ์ํ๊ฒ ๋๊ณ , ๋ก๋ฉ ์ค์ด๋ผ๋ UI๋ ๊ณตํต์ ์ผ๋ก ํํํด์ฃผ์ด์ผ ํฉ๋๋ค.
๋ํ ์ ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์๋์ ๋ฐ์ํ ์ด์๋ ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข
๋ฃํ์์๋์๋ React๊ฐ ์ธ๋ง์ดํธ๋ฅผ ๊ฐ์งํ์ง ๋ชปํ์ฌ
์ฐฝ์ ๊ฐ์ ์ข
๋ฃํ์์๋๋ ์ ์ฅ์ด ๋์ง ์๋๋ค๋ ์ ์
๋๋ค.
โ๏ธ ๋ฌธ์ ํด๊ฒฐ
๊ธฐ์กด ๋ก์ง
๋ก๊ทธ์ธ ์ํ
`์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง ๋ง์ดํธ`
โ `ํด๋น ์ ์ ์ ๊ธฐ์กด ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๊ฐ์ ธ์ setState()`
โ `๋งค ์์ ์ด ์ผ์ด๋ ๋๋ง๋ค DB์ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด ์ ์ฅ`
๋น๋ก๊ทธ์ธ ์ํ
`์ฅ๋ฐ๊ตฌ๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ`
๋ณ๊ฒฝ๋ ๋ก์ง
๋ก๊ทธ์ธ ์ํ
`์ ์ ๋ก๊ทธ์ธ ์ ํด๋น ์ ์ ์ ๊ธฐ์กด ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๊ฐ์ ธ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅ`
`์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง ๋ง์ดํธ`
โ `๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์๋ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ setState()`
โ `๋งค ์์ ์ด ์ผ์ด๋ ๋๋ง๋ค ๋ก์ปฌ์ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด ์ ์ฅ`
โ `์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง ์ธ๋ง์ดํธ ์ DB์ ํด๋น ์ ์ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด ์ ์ฅ`
๋น๋ก๊ทธ์ธ ์ํ
`์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด๋ฅผ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅ`
๋ง์ฝ ์ ์ ๊ฐ `๋ก๊ทธ์ธ` ์,
`๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์๋ ์ํ` + `DB์ ์๋ ์ ์ ์ ๊ธฐ์กด ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด`
๋ก์ปฌ์คํ ๋ฆฌ์ง๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ๋ฉด์
1. ๊ธฐ์กด ์ฅ๋ฐ๊ตฌ๋๊ฐ ๋๋ฆฌ๋ค๋ ํผ๋๋ฐฑ์ ๊ฐ์
2. ์ถ๊ฐํ๊ฑฐ๋ ์์ , ์ญ์ ํ ์ ํ์ด ์ฃผ๋ฌธ ์ ํฌํจ๋๋ ์ด์ ํด๊ฒฐ
3. ๋ก๊ทธ์ธ์ ํ์ง์์ ์ ์ ๋ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์
์ด ๋์์ต๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ์ํ๋ฅผ ํด๋ผ์ด์ธํธ ์ํ๋ก ๊ด๋ฆฌ
๋ฌธ์
context๋ฅผ ์ด์ฉํ ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์ง์ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ ์ํ๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์, ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ๋๋ง๋ค ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ก์ง์ด ํ์
=> ์ด๊ธฐ ์ฌ์ฉ์ ๋ฐ์ดํฐ(undefined)๊ฐ ๋ถํ์คํ๊ณ , ์ด๋ก ์ธํด UI๊ฐ ๊น๋นก๊ฑฐ๋ฆฌ๊ฑฐ๋ ์ถ๊ฐ ๋ก๋ฉ ์ํ ๊ด๋ฆฌ๊ฐ ํ์
TanStack Query๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ํ ๊ด๋ฆฌ๋ฅผ ๋์
์ธ์ฆ ์ํ์ ๊ฐ์ ์๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด๋๊ฒ ๊ด๋ฆฌํ๋๋ฐ ์ ํฉํ๋ค๊ณ ํ๋จ
๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ์บ์ฑ๋๊ณ , ์๋ฒ์ ๋๊ธฐํ๋๋ฉฐ
์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ๊ฐ ์ค๋น๋ ํ ๋ ๋๋ง์ ์งํํ์ฌ ๋ถํ์ํ null ํ์ธ ๋ก์ง ์ ๊ฑฐ
useQuery๋ฅผ ํตํด ๋ก๋ฉ ์ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌํ์ฌ, ์ด๊ธฐ ๋ ๋๋ง ์ ๋ฐ์ดํฐ ๋ถํ์ค์ฑ์ผ๋ก ์ธํ ๋ถํ์ํ ๋ก์ง ์ ๊ฑฐ
์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ก์ง์ useAuthQuery๋ก ๋ถ๋ฆฌํ์ฌ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ์ฌ๋ฌ ์ปดํฌ๋ํธ์์ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌ
- ๋ฆฌํํ ๋ง
- ํ๋งค์,๋ธ๋๋, ์ด๋ฒคํธ ํ์ด์ง ๊ตฌํ
- ์ฃผ๋ฌธ ์ทจ์/ํ๋ถ
- ์์ด๋/๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ
- ๊ณ ๊ฐ์ผํฐ
- ํ์ด์ง ์ฑ๋ฅ ์ต์ ํ
- ๋ฐ์ดํฐ ๋ณด์ ๊ฐํ
- 1:1 ๋ฌธ์ ์ฑ๋ด ๋์
๋์์ด๋์ ํจ๊ป ํ์ ํ๋ ๊ฒฝํ์ด ์ข์ ๊ฒฝํ์ด์์ต๋๋ค. ๋ค๋ง ์ผ์ ์ ์ธ ๋ฌธ์ ์ ๊ณ์ ๋ถ๋ชํ๊ณ ์ด์ ๊ธํ๊ฒ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด ๋ธ ๋ถ๋ถ ๋๋ฌธ์ ๊ฐ์ ํด์ผ ํ ์ ์ด ๋ณด์ฌ ์์ฝ์ต๋๋ค.
์งง์ ์๊ฐ ์์ ์ด๋์ ๋ ์์ฑ๋์๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด ๋ง์กฑํ์ง๋ง, ์๊ฐ ๊ด๊ณ์ ๊น๊ฒ ๊ณ ๋ฏผํ ํ ์ง์ผํ๋ ๋ก์ง๋ ์งง์ ์๊ฐ ๋ด์ ๋ง๋ค์ด์ผ ํด ์์ฑ๋๊ฐ ๋จ์ด์ง๋ ์ ์ด ์์ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค!
์งง์ ์๊ฐ๋ด์ ๊ธฐํ๊ณผ ์ผํ๋ชฐ์ ๋ง๋ค๊ณ ์ ์ ํผ๋๋ฐฑ์ ๋ฐ์ ๋ก์ง ๊ฐ์ ์ ํด๋ดค๋ค๋ ์ ์ด ์ฑ์ฅ๊ธฐํ์๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ก์ง์ ๋ํด์ ์กฐ๊ธ ๋ ์๊ฐ์ ๋ชปํ ๊ฒ์ด ์์ฌ์ ์ต๋๋ค
๊ธฐํ๊ณผ ๊ฐ๋ฐ ์ด์ธ์๋ UT, ๋์์ด๋์์ ํ์ ๊ฒฝํ์ ํ ์ ์์ด์ ์ข์์. ์ฐ์ ์์, ์์ฌ์ด ์๊ฐ๊ด๋ฆฌ๋ก ๋ฆฌํฉํ ๋ง์ ๋น๋กฏํ ์ ์ง์ฌ์ง ์ฝ๋๋ฅผ ๊ณ ๋ฏผํ๋ฉฐ, ๋ง๋ค ์๊ฐ์ด ๋ถ์กฑํด ์์ฌ์ ์
๐ฆsrc
โฃ ๐api
โ โฃ ๐addresses.ts
โ โฃ ๐auth.ts
โ โฃ ๐brand.ts
โ โฃ ๐cart.ts
โ โฃ ๐categories.ts
โ โฃ ๐coupon.ts
โ โฃ ๐deliveries.ts
โ โฃ ๐myPage.ts
โ โฃ ๐order.ts
โ โฃ ๐orderInfo.ts
โ โฃ ๐payment.ts
โ โฃ ๐product.ts
โ โฃ ๐review.ts
โ โฃ ๐user.ts
โ โ ๐wish.ts
โฃ ๐app
โ โฃ ๐(provider)
โ โ โฃ ๐(root)
โ โ โ โฃ ๐(NavCategories)
โ โ โ โ โฃ ๐brands
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐events
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐support
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ ๐layout.tsx
โ โ โ โฃ ๐auth
โ โ โ โ โฃ ๐log-in
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐sign-up
โ โ โ โ โ โฃ ๐account-form
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โฃ ๐agreement
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โฃ ๐complete
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โฃ ๐email-confirm
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ ๐layout.tsx
โ โ โ โฃ ๐cart
โ โ โ โ โฃ ๐_components
โ โ โ โ โ โฃ ๐CartAccordion.tsx
โ โ โ โ โ โฃ ๐CartEmpty.tsx
โ โ โ โ โ โฃ ๐CartItem.tsx
โ โ โ โ โ โฃ ๐CartList.tsx
โ โ โ โ โ โฃ ๐CartSelector.tsx
โ โ โ โ โ โ ๐index.ts
โ โ โ โ โ ๐page.tsx
โ โ โ โฃ ๐category
โ โ โ โ โฃ ๐search
โ โ โ โ โ โฃ ๐result
โ โ โ โ โ โ โฃ ๐_components
โ โ โ โ โ โ โ โฃ ๐FilterBenefits.tsx
โ โ โ โ โ โ โ โฃ ๐FilterButton.tsx
โ โ โ โ โ โ โ โฃ ๐FilterLabel.tsx
โ โ โ โ โ โ โ โฃ ๐FilterNavMenu.tsx
โ โ โ โ โ โ โ โฃ ๐FilterPricePoint.tsx
โ โ โ โ โ โ โ โฃ ๐FilterPriceType.tsx
โ โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ โ ๐ResultFilter.tsx
โ โ โ โ โ โ โฃ ๐layout.tsx
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โฃ ๐_components
โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โฃ ๐RecentSearch.tsx
โ โ โ โ โ โ โฃ ๐SearchInput.tsx
โ โ โ โ โ โ โ ๐SearchNotFound.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ ๐page.tsx
โ โ โ โฃ ๐mypage
โ โ โ โ โฃ ๐address
โ โ โ โ โ โฃ ๐edit
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐coupon
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐edit
โ โ โ โ โ โฃ ๐info
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โฃ ๐password
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐mileage
โ โ โ โ โ โฃ ๐_components
โ โ โ โ โ โ โ ๐MilieageCard
โ โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ โ ๐MileageCard.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐orders
โ โ โ โ โ โฃ ๐_components
โ โ โ โ โ โ โฃ ๐OrderCard
โ โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ โ ๐OrderCard.tsx
โ โ โ โ โ โ โฃ ๐OrderItem
โ โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ โ ๐OrderItem.tsx
โ โ โ โ โ โ โ ๐ReviewItem
โ โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ โ ๐ReviewItem.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐review
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐wish
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐_components
โ โ โ โ โ โฃ ๐CouponCard
โ โ โ โ โ โ โฃ ๐CouponCard.tsx
โ โ โ โ โ โ โ ๐index.ts
โ โ โ โ โ โฃ ๐InfoCard
โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ ๐InfoCard.tsx
โ โ โ โ โ โฃ ๐LinkCard
โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ ๐LinkCard.tsx
โ โ โ โ โ โ ๐Profile
โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โ ๐Profile.tsx
โ โ โ โ โ ๐page.tsx
โ โ โ โฃ ๐order
โ โ โ โ โฃ ๐_components
โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โฃ ๐OrderCompleted.tsx
โ โ โ โ โ โฃ ๐OrderError.tsx
โ โ โ โ โ โ ๐OrderLoading.tsx
โ โ โ โ โ ๐page.tsx
โ โ โ โฃ ๐products
โ โ โ โ โฃ ๐category
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โฃ ๐[productId]
โ โ โ โ โ โฃ ๐qna
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โฃ ๐review
โ โ โ โ โ โ โฃ ๐images
โ โ โ โ โ โ โ โฃ ๐layout.tsx
โ โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ โ ๐page.tsx
โ โ โ โ โ ๐_components
โ โ โ โ โ โฃ ๐Coupon
โ โ โ โ โ โ โฃ ๐Coupon.tsx
โ โ โ โ โ โ โ ๐index.ts
โ โ โ โ โ โฃ ๐DeliveryOptions
โ โ โ โ โ โ โฃ ๐DeliveryOptions.tsx
โ โ โ โ โ โ โ ๐index.ts
โ โ โ โ โ โฃ ๐DetailButtons
โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โฃ ๐Paying.tsx
โ โ โ โ โ โ โฃ ๐Share.tsx
โ โ โ โ โ โ โ ๐Wish.tsx
โ โ โ โ โ โ ๐DetailTabs
โ โ โ โ โ โ โฃ ๐Detail.tsx
โ โ โ โ โ โ โฃ ๐DetailTabs.tsx
โ โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ โฃ ๐QnA.tsx
โ โ โ โ โ โ โ ๐Review.tsx
โ โ โ โฃ ๐_components
โ โ โ โ โฃ ๐Footer
โ โ โ โ โ โฃ ๐_components
โ โ โ โ โ โ โฃ ๐CallInfo.tsx
โ โ โ โ โ โ โ ๐SNSInfo.tsx
โ โ โ โ โ โฃ ๐Footer.tsx
โ โ โ โ โ โ ๐index.ts
โ โ โ โ โ ๐Header
โ โ โ โ โ โฃ ๐_components
โ โ โ โ โ โ โฃ ๐HeaderNav.tsx
โ โ โ โ โ โ โฃ ๐NavCategories.tsx
โ โ โ โ โ โ โ ๐TopBanner.tsx
โ โ โ โ โ โฃ ๐Header.tsx
โ โ โ โ โ โฃ ๐index.ts
โ โ โ โ โ โ ๐Navbar.tsx
โ โ โ โฃ ๐layout.tsx
โ โ โ โ ๐page.tsx
โ โ โ ๐layout.tsx
โ โฃ ๐api
โ โ โฃ ๐auth
โ โ โ โฃ ๐callback
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐log-in
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐log-out
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐otp
โ โ โ โ โฃ ๐sign-up
โ โ โ โ โ โ ๐route.ts
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐provider
โ โ โ โ โ ๐route.ts
โ โ โ โ ๐user
โ โ โ โ โ ๐route.ts
โ โ โฃ ๐brands
โ โ โ โฃ ๐brand
โ โ โ โ โ ๐route.ts
โ โ โ โ ๐route.ts
โ โ โฃ ๐carts
โ โ โ โ ๐[id]
โ โ โ โ โ ๐route.ts
โ โ โฃ ๐categories
โ โ โ โ ๐category
โ โ โ โ โ ๐route.ts
โ โ โฃ ๐category
โ โ โ โ ๐route.ts
โ โ โฃ ๐my
โ โ โ โฃ ๐address
โ โ โ โ โฃ ๐[id]
โ โ โ โ โ โ ๐route.ts
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐coupon
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐orders
โ โ โ โ โ ๐route.ts
โ โ โ โ ๐wishes
โ โ โ โ โ ๐route.ts
โ โ โฃ ๐order
โ โ โ โ ๐route.ts
โ โ โฃ ๐orderInfo
โ โ โ โ ๐[id]
โ โ โ โ โ ๐route.ts
โ โ โฃ ๐products
โ โ โ โฃ ๐brands
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐category
โ โ โ โ โ ๐route.ts
โ โ โ โฃ ๐wishes
โ โ โ โ โ ๐route.ts
โ โ โ โ ๐route.ts
โ โ โฃ ๐reviews
โ โ โ โฃ ๐images
โ โ โ โ โ ๐route.ts
โ โ โ โ ๐route.ts
โ โ โ ๐search
โ โ โ โฃ ๐relation
โ โ โ โ โ ๐route.ts
โ โ โ โ ๐route.ts
โ โฃ ๐global-error.tsx
โ โฃ ๐globals.css
โ โฃ ๐icon.ico
โ โ ๐layout.tsx
โฃ ๐assets
โ โฃ ๐brands
โ โ โฃ ๐brand1.png
โ โ โฃ ๐brand2.png
โ โ โ ๐brand3.png
โ โฃ ๐events
โ โ โฃ ๐event1.png
โ โ โฃ ๐event2.png
โ โ โฃ ๐event3.png
โ โ โ ๐event4.png
โ โฃ ๐sign-up.png
โ โ ๐support.png
โฃ ๐components
โ โฃ ๐BrandBanner
โ โ โฃ ๐BrandBanner.tsx
โ โ โ ๐index.ts
โ โฃ ๐Bread
โ โ โฃ ๐Bread.tsx
โ โ โ ๐index.ts
โ โฃ ๐Card
โ โ โฃ ๐CategoryCard.tsx
โ โ โฃ ๐EventLinkCard.tsx
โ โ โฃ ๐index.ts
โ โ โฃ ๐ProductCard.tsx
โ โ โฃ ๐ReviewCard.tsx
โ โ โ ๐SkeletonCard.tsx
โ โฃ ๐CategoryMore
โ โ โฃ ๐CategoryMore.tsx
โ โ โ ๐index.ts
โ โฃ ๐Input
โ โ โฃ ๐index.ts
โ โ โ ๐Input.tsx
โ โฃ ๐Loading
โ โ โฃ ๐index.ts
โ โ โ ๐Loading.tsx
โ โฃ ๐Navbar
โ โ โฃ ๐index.ts
โ โ โ ๐Navbar.tsx
โ โฃ ๐Pagination
โ โ โฃ ๐index.ts
โ โ โฃ ๐PageButton.tsx
โ โ โ ๐Pagination.tsx
โ โฃ ๐products
โ โ โ ๐Cart
โ โ โ โ ๐Cart.tsx
โ โฃ ๐SearchPage
โ โ โฃ ๐index.ts
โ โ โฃ ๐MenuItem.tsx
โ โ โ ๐SearchHeader.tsx
โ โฃ ๐Sliders
โ โ โฃ ๐BannerSlide.tsx
โ โ โฃ ๐CategoryProducts.tsx
โ โ โฃ ๐CategorySection.tsx
โ โ โฃ ๐CurrentProducts.tsx
โ โ โฃ ๐index.ts
โ โ โฃ ๐MdReviews.tsx
โ โ โฃ ๐ProductSlide.tsx
โ โ โ ๐Sliders.tsx
โ โฃ ๐Tab
โ โ โฃ ๐index.ts
โ โ โ ๐Tab.tsx
โ โฃ ๐Toggle
โ โ โฃ ๐index.ts
โ โ โ ๐Toggle.tsx
โ โ ๐ui
โ โ โฃ ๐accordion.tsx
โ โ โฃ ๐breadcrumb.tsx
โ โ โฃ ๐button.tsx
โ โ โฃ ๐calendar.tsx
โ โ โฃ ๐carousel.tsx
โ โ โฃ ๐checkbox.tsx
โ โ โฃ ๐dialog.tsx
โ โ โฃ ๐drawer.tsx
โ โ โฃ ๐dropdown-menu.tsx
โ โ โฃ ๐input.tsx
โ โ โฃ ๐select.tsx
โ โ โฃ ๐skeleton.tsx
โ โ โฃ ๐tabs.tsx
โ โ โฃ ๐toast.tsx
โ โ โฃ ๐toaster.tsx
โ โ โ ๐use-toast.ts
โฃ ๐constant
โ โ ๐pathname.ts
โฃ ๐contexts
โ โ ๐auth.context
โ โ โ ๐auth.context.tsx
โฃ ๐hooks
โ โฃ ๐mutation
โ โ โฃ ๐index.ts
โ โ โฃ ๐useAddressMutation.ts
โ โ โฃ ๐useAuthMutation.ts
โ โ โฃ ๐useCartsMutation.ts
โ โ โฃ ๐useOrderMutation.ts
โ โ โ ๐useWishesMutation.ts
โ โฃ ๐query
โ โ โฃ ๐mypage
โ โ โ โฃ ๐index.ts
โ โ โ โฃ ๐useCouponQuery.ts
โ โ โ โฃ ๐useOrderListQuery.ts
โ โ โ โ ๐useUserWishesQuery.ts
โ โ โฃ ๐index.ts
โ โ โฃ ๐useAddressQuery.ts
โ โ โฃ ๐useAuthQuery.ts
โ โ โฃ ๐useBrandsQuery.ts
โ โ โฃ ๐useCartsQuery.ts
โ โ โฃ ๐useCategoryQuery.ts
โ โ โฃ ๐useOrderInfoQuery.ts
โ โ โฃ ๐useProductsQuery.ts
โ โ โฃ ๐useRelatedSearchQuery.ts
โ โ โฃ ๐useReviewsQuery.ts
โ โ โฃ ๐useReviewsTotalImagesQuery.ts
โ โ โฃ ๐useSearchQuery.ts
โ โ โ ๐useWishesQuery.ts
โ โฃ ๐useAlert.ts
โ โฃ ๐useCart.ts
โ โฃ ๐useLocalCart.ts
โ โ ๐useRecentSearchTerms.tsx
โฃ ๐mockup
โ โฃ ๐banner.json
โ โฃ ๐deliveryInfo.json
โ โฃ ๐keyword.ts
โ โฃ ๐mdPick.json
โ โ ๐userReview.json
โฃ ๐providers
โ โ ๐QueryProvider.tsx
โฃ ๐supabase
โ โฃ ๐client.ts
โ โฃ ๐middleware.ts
โ โ ๐server.ts
โฃ ๐types
โ โฃ ๐myPage
โ โ โ ๐order.ts
โ โฃ ๐brands.ts
โ โฃ ๐cart.ts
โ โฃ ๐categories.ts
โ โฃ ๐deliveries.ts
โ โฃ ๐order.ts
โ โฃ ๐products.ts
โ โฃ ๐review.ts
โ โฃ ๐search.ts
โ โฃ ๐supabase.ts
โ โ ๐types.ts
โฃ ๐utils
โ โฃ ๐cn.ts
โ โ ๐validateCheck.ts
โ ๐middleware.ts