2023.01. ์ ์ ์๋ฃ
42์์ธ ๊ณตํต๊ณผ์ ๋ง์ง๋ง ๊ณผ์
ft_transcendence
๊ฒฐ๊ณผ๋ฌผ์ ๋๋ค ๐
Socket.io
๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์, ์ฑํ , DM์ ๊ตฌํํ SPA ์น์๋น์ค42 Auth
๋ฅผ ์ด์ฉํ์ฌ 42 ์ ์ ๋์์ผ๋ก ๊ฐ์ ๋ฐ ์ธ์ฆ ๊ธฐ๋ฅ ๊ตฌํ- ์ ์ ์์ฑ, ์น๊ตฌ ๋งบ๊ธฐ, ์น๊ตฌ ์ฐจ๋จ ๋ฑ CRUD ์ฐ์ต
์์ธํ ๋์์ธ ์์์ ํด๋น ๋งํฌ์์ ๋ณผ ์ ์์ต๋๋ค.
ํ ๋
ธ์
/ ์ฌ๋ ๋ฑ์ ํ์ฉํ์ฌ ํ์
๋ฐ ๋ฌธ์ํํ์์ต๋๋ค.
API ๋ฌธ์์ DB ์ค๊ณ ๊ตฌ์กฐ
-
๋ฐ์ํ ์ ์๋ ๋ค์ํ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํ๊ณ ๋์ํ๊ธฐ
- ๊ฒ์ ์ค๊ฐ์ ๋๊ฐ์ ๋ ์๋๋ฐฉ ๊ฒ์ ์ข ๋ฃ ๋ฐ ์๋ฆผ ๋ณด๋ด๊ธฐ
- ๋น๋ก๊ทธ์ธ ์ ์ ๊ฐ ์๋น์ค ๋ด ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ๊ธฐ
- ์ฑํ Owner/Admin ๊ถํ ๋ถ์ฌ์์ ๋ฐ์ํ๋ ๋ค์ํ ์ผ์ด์ค ์ฒ๋ฆฌํ๊ธฐ
-
๊ฒฐ์ฝ UI๋ฅผ ํฌ๊ธฐํ์ง ์๊ธฐ
- ์ด๋, ๊ฒ์ ๊ฒฐ๊ณผ ๋ฑ ํ๋ฉด์์ ๋ชจ๋ฌ์ฐฝ ์ ๊ทน ํ์ฉํ๊ธฐ
- Facebook, Instagram์ฒ๋ผ ๋ฉ์ธ์์ DM ํ์ค๋ฒ ๊ฐ๋ฅํ๋๋ก ์ ์ํ๊ธฐ
- ํ๊ตฌ ๊ฒ์ ํ๋ฉด UI๋ฅผ ๊ณ ์ ์ ์ธ ๋๋ ๋๋๋ก ๋ง๋ค๊ธฐ
$ git clone https://github.com/lev-Zero/lastpong
$ cd lastpong/
# ์๋ ํ๊ฒฝ์ค์ ์ฒดํฌ
$ docker-compose up -d
- docker/backend.env์ย
CALLBACK_URI
,ยFRONTEND_URL
- frontend/package.json์ย
proxy
- frontend/src/utils/variables.ts์ย
SERVER_URL
๊ณผยWS_SERVER_URL
- 42 OAuth ๋ค๋ฅธ ๊ฑธ๋ก ์ด์ฉํ๋ ๊ฒฝ์ฐ, docker/backend.env์ย
UID
,ยSECRET
ย ๊ฐ๋ ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํจ
- LAST PONG (๋ก๊ทธ์ธ)
2-1. ์ฌ์ฉ์ ์ค์ (๋๋ค์ ์ค์ )
2-2. ์ฌ์ฉ์ ์ค์ (์๋ฐํ ์ค์ )
(์ฌ์ง ํ์ผ) Front โ Back ์ ์ก
- ๋ฉ์ธํ๋ฉด
3-1. ๋ฉ์ธ ํ๋ฉด (๊ธฐ๋ฅ ์ค๋ช )
4-1. ๊ฒ์ ํ๋ ์ด
MATCH ๋ฒํผ ํด๋ฆญ์ ์๋ฒ Queue์ ๋ฑ๋ก๋๊ณ ํ๋ ์ด์ด๊ฐ 2๋ช ์ด์ ๋ ๊ฒฝ์ฐ ์ค์ ํ๋ฉด์ผ๋ก ์ด๋
4-2. ๊ฒ์ ํ๋ ์ด (์ค์ ํ๋ฉด)
4-3. ๊ฒ์ ์ค์ ๊ท์น
4-4. ๊ฒ์ ํ๋ ์ด ํ๋ฉด
์ผ๋ฐ ๋ชจ๋
์ด๋์ด ํ๋ฉด ๋ชจ๋
4-5. ๊ฒ์ ํ๋ ์ด (์น๋ฆฌ)
๊ฒ์ ํ๋ ์ด (ํจ๋ฐฐ)
- ์ฌ์ฉ์ ์ ๋ณด ํ์
5-1. ์ฌ์ฉ์ ์น๊ตฌ ์ด๋
์น๊ตฌ ์ด๋ ๋ฒํผ์ ์๋ฒ์ ๋ฑ๋ก๋ ๋ชจ๋ ์ ์ ์ ๋ณด๋ฅผ ์ ์ ์ํ์ ๋ฐ๋ผ ํ์
5-2. ์ฌ์ฉ์ ์น๊ตฌ ์ด๋์ฐฝ
์น๊ตฌ ์ด๋์ฐฝ์์ ์ผ๋ฐ ์ ์ ์ ํ์ ์ ์ ํ๋กํ์ด ํ์ ๋๋ค.
ADD FRIEND
๋ฒํผ ํด๋ฆญ โ ์ค๋ฅธ ์ชฝ์ ์๋ ์น๊ตฌ ์ฐฝ์ ์น๊ตฌ๊ฐ ์ถ๊ฐ๋๋ค.DELETE FRIEND
๋ฒํผ ํด๋ฆญ โ ์ถ๊ฐ๋ ์น๊ตฌ๋ฅผ ์ญ์ ํ๋ค.
5-3. ์ฌ์ฉ์ ์น๊ตฌ ์ฐฝ
์ถ๊ฐํ ์น๊ตฌ๋ฅผ ์ค๋ฅธ์ชฝ ํด๋ฆญ์ ๋ค์๊ณผ ๊ฐ์ ๋ฉ๋ด ํ๋ฉด์ด ํ์๋๋ค.
VIEW PROFILE
: ์น๊ตฌ์ ํ๋กํ ์ ๋ณด ํ์ธINVITE TO GAME
: ์น๊ตฌ๋ฅผ ํํ ๊ฒ์์ ์ด๋ํ๋ค. - ๊ฒ์ Queue ์ ๋ณ๋๋ก ๋์ํ๋ค.DELETE FRIEND
: ์น๊ตฌ๋ฅผ ์ญ์ ํ๋ค.
5-4. ์น๊ตฌ ์ฐฝ DM (Direct Message)
์น๊ตฌ ์ฐฝ์ ์๋ ์น๊ตฌ๋ฅผ ์ผ์ชฝ ํด๋ฆญํ๋ฉด ์น๊ตฌ์์ DM ์ฐฝ์ด ํ์๋๋ค.
์น๊ตฌ์ ํจ๊ป DM์ ์ฃผ๊ณ ๋ฐ์์ ์๋ค.
์น๊ตฌ์๊ฒ DM์ ๋ฐ๊ฒ๋๋ฉด DM ๋ฉ์์ง์ ๊ฐฏ์๊ฐ ๋ฐ๋ผ ์น๊ตฌ ์ฐฝ์ ํ์๋๋ค.
5-5. ์ฌ์ฉ์ ๊ฒ์ ์ด๋ ํ๋ฉด
์น๊ตฌ์๊ฒ INVITE TO GAME ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒ์ ์ด๋ ํ๋ฉด์ด ํ์๋๋ค.
์ด๋ ๋ฐ์ ์น๊ตฌ์ ์ ํ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ํ๋์ด ์คํ๋๋ค.
- ์ด๋ ์๋ฝ : ๊ฒ์ ์ค์ ์ฐฝ์ผ๋ก ์ด๋๋๋ค.
- ์ด๋ ๊ฑฐ์ : ์ด๋ ์ฐฝ์ด ์๋์ผ๋ก ์ข ๋ฃ๋๋ค.
- ์ฑํ ํ๋ฉด
ํ์ฌ ์ ์๋ ๋ชจ๋ ์ ์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๊ณ , CREATE ๋ฒํผ์ ํด๋ฆญํ์ฌ ์ฑํ ๋ฐฉ์ ์์ฑํ ์ ์์ต๋๋ค.
๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ, ๋น๋ฐ๋ฒํธ์ ํ์๋ฅผ *
๋ก ๋ฐ๊ฟ ์ถ๋ ฅํ ์ ์์ต๋๋ค.
6.1 ์ฑํ ๋ฐฉ ์ ์ฅ
์ฑํ ๋ฐฉ์ ์ ์ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ํ์๋๋ฉฐ ์ฌ์ฉ์๋ค๊ณผ ๋ํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋ฐฉ์ ์ ์ฅํด์ ๋ฐฉ์ฅ > ๊ด๋ฆฌ์ > ์ผ๋ฐ ์์ค์ผ๋ก ๊ถํ์ ๊ฐ๋๋ค.
MUTE 1 MIN
: 1๋ถ๊ฐ ์ฌ์ฉ์์ ๋ํ๋ฅผ MUTE ์ํต๋๋ค.BAN USER
: ์ฌ์ฉ์๋ฅผ ๊ฐํด ์ํค๊ณ 1๋ถ๊ฐ ์ ์ฅ์ ์ ํ์ํต๋๋ค.VIEW PROFILE
: ์ฌ์ฉ์์ ํ๋กํ์ ๋ณผ์ ์์ต๋๋ค.INVITE TO GAME
: ๊ฒ์์ ์๋๋ฅผ ์ด๋ํฉ๋๋คADD FRIEND
: ์๋๋ฅผ ์น๊ตฌ๋ก ์ถ๊ฐํฉ๋๋คBLOCK
: ์๋๋ฅผ BLOCK ํ์ฌ ์๋๋ฐฉ์ ๋ฉ์์ง๋ฅผ ๋์ด์ ๋ณด์ง์์ต๋๋ค.
MUTE ๋ ์ํ์์ ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ํ๋ฉด์ด ํ์๋ฉ๋๋ค.
Name | Github ID | Role |
---|---|---|
๋ฐ์ฉ์ค | FrontEnd | |
๋ฌธ์นํ | FrontEnd | |
์ต์ ๋น | FrontEnd | |
์ด์ ํ | BackEnd |