Taskify๋ ์ผ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ง์ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค.
์ด๋ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์์ ์ผ์ ๊ด๋ฆฌ๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ์ผ์ ์ ๊ณต์ ํ์ฌ ์ฑ๊ณต์ ์ผ๋ก Task๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
๐ฅ Taskify ํ์ ๊ฒฝํ
๐ง ํ๋ก์ ํธ ๊ตฌ์กฐ
๐ง ํ์์๊ฐ
๐ข ๋๋ง์ ๋์๋ณด๋๋ฅผ ์ด๋ฆ๊ณผ ์์์ ์ง์ ํด์ ์์ฑํ ์ ์์ต๋๋ค.
๐ข ๋ด๊ฐ ์์ฑํ ๋์๋ณด๋๋ฅผ ์์ ๋กญ๊ฒ ๋๋ ๋ค ์ ์์ต๋๋ค.
๐ข ์ด๋๋ฅผ ํตํด ๋์๋ณด๋์ ๋ฉค๋ฒ๊ฐ ๋๋ฉด ํด๋น ๋์๋ณด๋๋ฅผ ๋ฐฉ๋ฌธํ ์ ์์ต๋๋ค.
๐ข ํด์ผํ ์ผ์ ์นผ๋ผ ๋ณ๋ก ์ ๋ฆฌํ ์ ์์ต๋๋ค.
๐ข ๋ด๋น์๋ฅผ ์ง์ ํ์ฌ ๋๊ฐ ์ด๋ค ์ด์๋ฅผ ์์
ํ๋์ง ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๐ข ์ง์ ํ ์ผ์ ์์ ํ์ง ์์๋ ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.
๐ข ๋ง์ฐ์ค ๋๋๊ทธ๋ก ํ ์ผ์ ์ก์์ ์ํ๋ ์ปฌ๋ผ์ ๋์๋ณด์ธ์!
Taskify ํ์ TanStack Query ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ ์ญ์ ์ผ๋ก ์๋ฒ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ์ด๋ก ์ธํด Props Drilling์ ๋ฐฉ์งํ ์ ์์๊ณ , ์๋ฒ์ Promise ์ํ๋ฅผ ์ง์ฝ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ๋ณด๋ค ์ฝ๊ฒ API ํ๋ฆ์ ํ์ ํ ์ ์๋๋ก ๊ตฌํํ์ต๋๋ค.
zod๋ฅผ ํ์ฉํ์ฌ API์ ์๋ต ์คํค๋ง๋ฅผ ํ ๋๋ก ์๋ฒ๋ก๋ถํฐ ์์๋ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ์ ธ์ค๋์ง ๊ฒ์ฆํ๋ ๋ก์ง์ ์ถ๊ฐํ์ฌ, ๋์ฑ ์์ ํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
Taskify ํ์ Form์ ์ํ๋ฅผ ์ง์ฝ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด React Hook Form ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด Form์ ์ํ ์ถ์ ์ ์ฉ์ดํ๊ฒ ํ๊ณ , ๊ณตํต๋ controller, uncontroller๋ฅผ ๊ฐ๋ฐํ์ฌ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๊ตฌํํ์ต๋๋ค.
Form์ Validation์ zod๋ฅผ ํ์ฉํ์ฌ Form ์คํค๋ง๋ก ์์ฑํ์๊ณ , ํด๋น ์คํค๋ง๋ฅผ ํ ๋๋ก ํ์ ์ ์ถ์ถํด๋ ๋๋ค.
์ธ๋ถ API์ ์๋ต body๋ก ๋ฐ๋ accessToken์ HttpOnly ์ฟ ํค๋ก ์ ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ณ ๊ณ์ ๊ฐ์?
Taskify ํ์ Next.js์ Route Handler๋ฅผ ํตํด logout์ ์ ์ธํ ๋ชจ๋ API๋ ํ๋์ route handler๋ฅผ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค. ์ด route handler๊ฐ ํด๋ผ์ด์ธํธ ๋์ ์ธ๋ถ API์ ์์ฒญ์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ HttpOnly ์ฟ ํค๋ฅผ ์ค์ ํ ์ ์๊ฒ ๋๋ ๊ฒ์ ๋๋ค. ์ด ๋๋ถ์, ์ธ๋ถ API์ ๋ ธ์ถ์ ์ต์ํ ํ ์ ์์๊ณ , HttpOnly ์ฟ ํค๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๋ณด๋ค ์์ ํ๊ฒ ํ ํฐ์ ๊ด๋ฆฌํ ์ ์์์ต๋๋ค.
ํด๋ผ์ด์ธํธ์์ ๋ก๊ทธ์ธ ์ํ์ ๋ฐ๋ฅธ ๋ฆฌ๋ค์ด๋ ํธ ๊ตฌํ์ด ์ ์์ข์ ์ง ์๊ณ ๊ณ์ ๊ฐ์?
๋ฆฌ์กํธ ๊ธฐ๋ฐ ํ๋ก์ ํธ์ธ ๊ฒฝ์ฐ useEffect๋ฅผ ํตํด ๋ก๊ทธ์ธ ์ํ๋ฅผ ํ๋จํ๊ฒ ๋๋๋ฐ, ์ด๋ ๊ฒ ๊ตฌํ๋ ๊ฒฝ์ฐ ํ์ด์ง ๊น๋นก์ ํ์์ ํด๊ฒฐ ํ ์ ์์ต๋๋ค. ๋ํ, ๋ณดํธ๋ ํ์ด์ง์์๋ ๋ถ๊ตฌํ๊ณ ๋ ธ์ถ์ ํผํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ๋ฆฌ๋ค์ด๋ ํธ๊ฐ ์๋๋ผ ๋ผ์ฐํ ์ด๋ผ๊ณ ๋ถ๋ฌ์ผ ํ๋ ๊ฒ์ด ๋ง์ต๋๋ค. Taskify ํ์ ์ด๋ฌํ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด middleware๋ฅผ ํ์ฉํ์ฌ ๋ก๊ทธ์ธ ์ํ๋ฅผ ํ๋จํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์ฟ ํค๋ฅผ ๋ณด๋ด๋ฉด middleware๊ฐ ํด๋น ์ฟ ํค๋ฅผ ์ฝ์ด์ ๋ก๊ทธ์ธ ์ ๋ฌด์ ๋ฐ๋ผ ํ์ด์ง ์ ์์ ๋ฐ๋ฅธ ๋ฆฌ๋ค์ด๋ ํธ๋ฅผ ๋ฐํํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋๋ผ ์๋ฒ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ํ๋จํ๋ ๊ฒ์ ๋๋ค.
โฌ์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์๋ฉด Taskify๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค์๋์ง ์ ์ ์์ต๋๋ค.โฌ
โฉTaskify ํ์ Notion ๊ตฌ๊ฒฝํ๊ธฐโช๐src
โฃ ๐middleware.ts
โฃ ๐apis
โ โฃ ๐auth
โ โ โฃ ๐index.ts
โ โ โฃ ๐queries.ts
โ โ โ ๐types.ts
โ โ ...
โฃ ๐app
โ โฃ ๐globals.css
โ โฃ ๐layout.tsx
โ โฃ ๐(after-login)
โ โ โฃ ๐mydashboard
โ โ โ ...
โ โ ๐(before-login)
โ โฃ ๐(auth)
โ โ โ ๐login
โ โ ...
โฃ ๐assets
โฃ ๐components
โ โฃ ๐auth
โ โฃ ๐ui
โ โ ...
โฃ ๐constants
โฃ ๐fonts
โฃ ๐hooks
โฃ ๐stores
โฃ ๐types
โ โ ๐common.ts
โ ๐utils
|
|
|
|
|
| ๊น๋๊ท | ๊น์ฐฌ๊ธฐ | ์ด์์ฐฌ | ์ต์ฑ๋ฝ |



