Task Detail List - programmers-kdt-full-stack-3rd/live-chat GitHub Wiki
๋ฐฑ์๋(BE) ์์ธ Task ๋ชฉ๋ก
1. ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
-
ํ์๊ฐ์ API ๊ตฌํ
POST /api/users/register์๋ํฌ์ธํธ ์์ฑ- ์์ฒญ ๋ฐ๋์ ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ, ์ด๋ฆ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ด๋ฉ์ผ ์ธ์ฆ ํ ํฐ ๊ฒ์ฌ
- ๋น๋ฐ๋ฒํธ ํด์ฑ ์ฒ๋ฆฌ
- ์ฌ์ฉ์ ์ ๋ณด DB์ ์ ์ฅ ๋ฐ ์๋ต
-
๋ก๊ทธ์ธ API ๊ตฌํ
POST /api/users/login์๋ํฌ์ธํธ ์์ฑ- ์์ฒญ ๋ฐ๋ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ฌ์ฉ์ ์ธ์ฆ
- JWT ํ ํฐ ๋ฐ๊ธ ๋ฐ ์๋ต
2. ๋ฉ์ผ ์ธ์ฆ
-
์ธ์ฆ ๋ฒํธ ์์ฑ, ์์ , ์ญ์ API ๊ตฌํ
POST, PUT, DELETE /api/auth/email/verification์๋ํฌ์ธํธ ์์ฑ- ์์ฒญ ๋ฐ๋์ ์ด๋ฉ์ผ ์ ํจ์ฑ ๊ฒ์ฌ
PUT, DELETE์ด๋ฉ์ผ ์ธ์ฆ ํ ํฐ ๊ฒ์ฌPOST, PUT๋๋ค ์ธ์ฆ๋ฒํธ(4์๋ฆฌ) ์์ฑ ๋ฐ ํด์ฑ ์ฒ๋ฆฌ- DB์์ ๋ฆฌ์์ค ์์ฑ, ์์ , ์ญ์
- JWT ํ ํฐ ๋ฐ๊ธ ๋ฐ ์๋ต
-
์ธ์ฆ ๋ฉ์ผ ๋ฐ์ก API ๊ตฌํ
POST /api/auth/email/send-verification์๋ํฌ์ธํธ ์์ฑ- ์์ฒญ ๋ฐ๋์ ์ด๋ฉ์ผ ์ฃผ์ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ด๋ฉ์ผ ์ธ์ฆ ํ ํฐ ๊ฒ์ฌ
- ์ธ์ฆ ๋ฒํธ ๋ณตํธํ
- Nodemailer๋ก ์ธ์ฆ ์ด๋ฉ์ผ ๋ฐ์ก
- JWT ํ ํฐ ๋ฐ๊ธ ๋ฐ ์๋ต
-
์ธ์ฆ ๋ฒํธ ๊ฒ์ฌ API ๊ตฌํ
POST /api/auth/email/verify์๋ํฌ์ธํธ ์์ฑ- ์์ฒญ ๋ฐ๋์ ์ธ์ฆ๋ฒํธ์ ์ด๋ฉ์ผ ์ฃผ์ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ด๋ฉ์ผ ์ธ์ฆ ํ ํฐ ๊ฒ์ฌ
- ๋ฉ์ผ ์ธ์ฆ ๋ฒํธ ๊ฒ์ฌ
- JWT ํ ํฐ ๋ฐ๊ธ ๋ฐ ์๋ต
3. ์ฑํ ๋ฐฉ ๊ด๋ฆฌ API ๊ตฌํ
POST, GET, PUT, DELETE /api/chatrooms/:id์๋ํฌ์ธํธ ์์ฑ- ์์ฒญ ๋ฐ๋ ์ ํจ์ฑ ๊ฒ์ฌ
- ์ฑํ ๋ฐฉ ์์ฑ, ์กฐํ, ์์ , ์ญ์ ๋ก์ง
- ์๋ต์ผ๋ก ์์ฒญ๋ ์ฑํ ๋ฐฉ ์ ๋ณด ๋ฐํ
4. ์ฑํ ๋ฐฉ ์ฌ์ฉ์ ๋ชฉ๋ก ์กฐํ API ๊ตฌํ
GET /api/chatroom/users/:room์๋ํฌ์ธํธ ์์ฑ:room์ ํตํด ํน์ ์ฑํ ๋ฐฉ์ ์ฌ์ฉ์ ๋ชฉ๋ก ์กฐํ- ์๋ต์ผ๋ก ์ฌ์ฉ์ ๋ชฉ๋ก ๋ฐํ
5. ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ
- ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ฒ๋ฆฌ
- ์ฑํ ๋ฐฉ ์ ์ฅ ๋ฐ ํด์ฅ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- ๋ฉ์ธ์ง ์ก์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- ์ฌ์ฉ์ ๋ชฉ๋ก ์ ๋ฐ์ดํธ
ํ๋ก ํธ์๋(FE) ์์ธ Task ๋ชฉ๋ก
1. ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ
-
ํ์๊ฐ์ ํ์ด์ง ๊ตฌํ
- ํ์๊ฐ์ ํผ ์ปดํฌ๋ํธ ์์ฑ
- ์ ๋ ฅ ํ๋ ์ ํจ์ฑ ๊ฒ์ฌ
- ํ์๊ฐ์ API ํธ์ถ ๋ฐ ์๋ต ์ฒ๋ฆฌ
- ํ์๊ฐ์ ์ฑ๊ณต ์ ๋ก๊ทธ์ธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
-
๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌํ
- ๋ก๊ทธ์ธ ํผ ์ปดํฌ๋ํธ ์์ฑ
- ์ ๋ ฅ ํ๋ ์ ํจ์ฑ ๊ฒ์ฌ
- ๋ก๊ทธ์ธ API ํธ์ถ ๋ฐ ์๋ต ์ฒ๋ฆฌ
- ๋ก๊ทธ์ธ ์ฑ๊ณต ์ ๋ฉ์ธ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ํธ
-
JWT ํ ํฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ
- ๋ก๊ทธ์ธ ์ฑ๊ณต ์ JWT ํ ํฐ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ ์ฅ
- ์์ฒญ ์ JWT ํ ํฐ์ ํฌํจํ์ฌ API ํธ์ถ
2. ์ฑํ ๋ฐฉ ๊ด๋ฆฌ
-
์ฑํ ๋ฐฉ ์์ฑ
- UI ๊ตฌ์ฑ
- ์ฑํ ๋ฐฉ ์์ฑ ํผ ์ปดํฌ๋ํธ ์์ฑ
- ์ด๋ฆ ์ ๋ ฅ ํ๋ ๋ฐ ์ ์ถ ๋ฒํผ ์์ฑ
- ์ํ ๊ด๋ฆฌ
- ์ฑํ ๋ฐฉ ์ด๋ฆ ์ํ ๊ด๋ฆฌ
- ์ ๋ ฅ ํ๋ ๊ฐ ์ํ ์ ๋ฐ์ดํธ
- API ํธ์ถ
POST /api/chatrooms์๋ํฌ์ธํธ ํธ์ถ- ์ฑํ ๋ฐฉ ์์ฑ ํ ์๋ต ์ฒ๋ฆฌ ๋ฐ ์ํ ์ ๋ฐ์ดํธ
- UI ๊ตฌ์ฑ
-
์ฑํ ๋ฐฉ ์กฐํ
- UI ๊ตฌ์ฑ
- ์ฑํ ๋ฐฉ ๋ชฉ๋ก ์ปดํฌ๋ํธ ์์ฑ
- ์ฑํ ๋ฐฉ ํญ๋ชฉ์ ๋ฆฌ์คํธ๋ก ํ์
- ์ํ ๊ด๋ฆฌ
- ์ฑํ ๋ฐฉ ๋ชฉ๋ก ์ํ ๊ด๋ฆฌ
- ์ปดํฌ๋ํธ ๋ง์ดํธ ์ API ํธ์ถํ์ฌ ๋ชฉ๋ก ์ ๋ฐ์ดํธ
- API ํธ์ถ
GET /api/chatrooms์๋ํฌ์ธํธ ํธ์ถ- ์๋ต์ผ๋ก ๋ฐ์ ์ฑํ ๋ฐฉ ๋ชฉ๋ก ์ํ ์ ๋ฐ์ดํธ
- UI ๊ตฌ์ฑ
-
์ฑํ ๋ฐฉ ์์
- UI ๊ตฌ์ฑ
- ์ฑํ ๋ฐฉ ์์ ํผ ์ปดํฌ๋ํธ ์์ฑ
- ์ด๋ฆ ์ ๋ ฅ ํ๋ ๋ฐ ์์ ๋ฒํผ ์์ฑ
- ์ํ ๊ด๋ฆฌ
- ์ ํํ ์ฑํ ๋ฐฉ ์ ๋ณด ์ํ ๊ด๋ฆฌ
- ์ ๋ ฅ ํ๋ ๊ฐ ์ํ ์ ๋ฐ์ดํธ
- API ํธ์ถ
PUT /api/chatrooms/:id์๋ํฌ์ธํธ ํธ์ถ- ์ฑํ ๋ฐฉ ์์ ํ ์๋ต ์ฒ๋ฆฌ ๋ฐ ์ํ ์ ๋ฐ์ดํธ
- UI ๊ตฌ์ฑ
-
์ฑํ ๋ฐฉ ์ญ์
- UI ๊ตฌ์ฑ
- ์ฑํ ๋ฐฉ ํญ๋ชฉ์ ์ญ์ ๋ฒํผ ์ถ๊ฐ
- ์ํ ๊ด๋ฆฌ
- ์ฑํ ๋ฐฉ ๋ชฉ๋ก ์ํ ์ ๋ฐ์ดํธ
- API ํธ์ถ
DELETE /api/chatrooms/:id์๋ํฌ์ธํธ ํธ์ถ- ์ฑํ ๋ฐฉ ์ญ์ ํ ์๋ต ์ฒ๋ฆฌ ๋ฐ ์ํ ์ ๋ฐ์ดํธ
- UI ๊ตฌ์ฑ
3. ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ
-
ํด๋ผ์ด์ธํธ ์ฐ๊ฒฐ ์ฒ๋ฆฌ
- UI ๊ตฌ์ฑ
- ์ฑํ ๋ฉ์์ง ์ ๋ ฅ ํผ ๋ฐ ์ ์ก ๋ฒํผ ์์ฑ
- ์ฑํ ๋ฉ์์ง ํ์ ์์ญ ์์ฑ
- ์ํ ๊ด๋ฆฌ
- ๋ฉ์์ง ์ํ ๋ฐ ์ฌ์ฉ์ ์ ๋ ฅ ์ํ ๊ด๋ฆฌ
- ์์ผ ์ฐ๊ฒฐ ์ํ ๊ด๋ฆฌ
- Socket.io ํด๋ผ์ด์ธํธ ์ด๊ธฐํ
- ์๋ฒ์์ ์ฐ๊ฒฐ ์ค์ ๋ฐ ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋ฑ๋ก
- UI ๊ตฌ์ฑ
-
์ฑํ ๋ฐฉ ์ ์ฅ ๋ฐ ํด์ฅ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- Socket.io ์ด๋ฒคํธ ์ฒ๋ฆฌ
JoinRoom์ด๋ฒคํธ ๋ฐ์ ์ ์๋ฒ๋ก ์ ์ก- ์๋ฒ๋ก๋ถํฐ
message์ด๋ฒคํธ ์์ ์ ๋ฉ์์ง ์ํ ์ ๋ฐ์ดํธ
- Socket.io ์ด๋ฒคํธ ์ฒ๋ฆฌ
-
๋ฉ์์ง ์ก์์ ์ด๋ฒคํธ ์ฒ๋ฆฌ
- Socket.io ์ด๋ฒคํธ ์ฒ๋ฆฌ
chatMessage์ด๋ฒคํธ ๋ฐ์ ์ ์๋ฒ๋ก ์ ์ก- ์๋ฒ๋ก๋ถํฐ
message์ด๋ฒคํธ ์์ ์ ๋ฉ์์ง ์ํ ์ ๋ฐ์ดํธ
- Socket.io ์ด๋ฒคํธ ์ฒ๋ฆฌ
-
์ฌ์ฉ์ ๋ชฉ๋ก ์ ๋ฐ์ดํธ
- Socket.io ์ด๋ฒคํธ ์ฒ๋ฆฌ
- ์๋ฒ๋ก๋ถํฐ
roomUsers์ด๋ฒคํธ ์์ ์ ์ฌ์ฉ์ ๋ชฉ๋ก ์ํ ์ ๋ฐ์ดํธ
- ์๋ฒ๋ก๋ถํฐ
- Socket.io ์ด๋ฒคํธ ์ฒ๋ฆฌ