Todo App์ BDD(ํ์ ์ฃผ๋ ๊ฐ๋ฐ)๊ธฐ๋ฒ์ ํ์ฉํ์ฌ ๊ฐ๋ฐํ ํ๋ก์ ํธ์
๋๋ค.
์ฌ์ฉ์๋ ํ ์ผ์ ์ถ๊ฐํ๊ณ ์์ ํ๋ฉฐ, ์๋ฃํ ํ ์ผ์ ์ฒดํฌํ ์ ์์ต๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ํตํด ํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ ๋ฐ ํ
์คํธ ์ฝ๋ ์์ฑ์ ๋ํ ์ดํด๋ฅผ ๋์ผ ์ ์์์ต๋๋ค.
Features
- ํ ์ผ ์ถ๊ฐ: ์ฌ์ฉ์๋ ํ ์ผ์ ์ถ๊ฐํ๊ณ ์ ์ฅํ ์ ์์ต๋๋ค.
- ํ ์ผ ์์ : ์ถ๊ฐํ ํ ์ผ์ ์์ ํ๊ฑฐ๋ ์ญ์ ํ ์ ์์ต๋๋ค.
- ํ ์ผ ์๋ฃ: ์๋ฃํ ํ ์ผ์ ์ฒดํฌํ์ฌ ๊ตฌ๋ถํ ์ ์์ต๋๋ค.
- ํ ์คํธ ์ฝ๋: Jest์ Playwright๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์์ต๋๋ค.
Tech Stack
- Frontend: Next.js, React Query, Recoil, TypeScript
- Backend: Firebase
- Testing: Jest, Playwright
- Deployment: Vercel
๊ตฌํ ์ธ๋ถ ์ฌํญ
Frontend
- Next.js๋ฅผ ์ฌ์ฉํ์ฌ SSR(Server Side Rendering)์ ๊ตฌํํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค.
- React Query๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์๋ฒ์์ ํต์ ์ ์ต์ ํํฉ๋๋ค.
- Recoil์ ์ฌ์ฉํ์ฌ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ๊ฐํธํ๊ฒ ํฉ๋๋ค.
- TypeScript๋ฅผ ๋์ ํ์ฌ ํ์ ์๋ฌ๋ฅผ ์ฌ์ ์ ๋ฐฉ์งํ๊ณ ์ฝ๋์ ์์ ์ฑ์ ๋์ ๋๋ค.
Backend
- Firebase๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ์ฆ ์์คํ ์ ๊ตฌ์ถํ๊ณ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ฅผ ์ ์ฉํฉ๋๋ค.
Testing
- Jest๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ํ ์คํธ์ ํตํฉ ํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์ฝ๋์ ์ ๋ขฐ์ฑ์ ๊ฒ์ฆํฉ๋๋ค.
- Playwright๋ฅผ ํ์ฉํ์ฌ End-to-End ํ ์คํธ๋ฅผ ์ํํ๊ณ ์ฌ์ฉ์ ์๋๋ฆฌ์ค๋ฅผ ๊ฒ์ฆํฉ๋๋ค.
ํด๊ฒฐํ ๊ณผ์
- SSR ๊ตฌํ: Next.js๋ฅผ ์ฌ์ฉํ์ฌ SSR์ ๊ตฌํํ๊ณ ์ด๊ธฐ ๋ก๋ฉ ์๋๋ฅผ ์ต์ ํํฉ๋๋ค.
- ์ํ ๊ด๋ฆฌ: Recoil์ ํ์ฉํ์ฌ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ปดํฌ๋ํธ ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํฉ๋๋ค.
- ํ ์คํธ ์ฝ๋ ์์ฑ: Jest์ Playwright๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํํ์ฌ ์ฝ๋์ ์ ๋ขฐ์ฑ์ ๋์ ๋๋ค.
- ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ: Firebase๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ์ฆ ์์คํ ์ ๊ด๋ฆฌํฉ๋๋ค.