๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ๋ชจ์ฌ ํจ๊ป ์ฆ๊ธฐ๋ ์ค์๊ฐ ๋ณด๋๊ฒ์ ์๋น์ค
๐ ๋ฐฐํฌ ๋งํฌ : tabletop-online-ppzz.onrender.com
2026.08.05 ~ ์ด์์ค
ํ์ ์นด๋๊ฒ์์ ์ฆ๊ฒจ ํ์ง๋ง, ์นด๋๊ฒ์์ ์ฌ๋์ด ํ์๋ฆฌ์ ๋ชจ์ฌ์ผ ํ๋ค๋ ์ ์ฝ์ด ์์์ต๋๋ค. ๊ธฐ์กด ์จ๋ผ์ธ ์๋น์ค๋ค์ ์ํ๋ ๊ฒ์์ด ์๊ฑฐ๋, ํ๋ฉด ๊ตฌ์ฑ๊ณผ ์กฐ์ ํ๋ฆ์ด ๋ถํธํด ์ค๋ ๋ถ์ก๊ณ ์๊ธฐ ์ด๋ ค์ ์ต๋๋ค.
์ด๋ฌํ ์๊ฐ์์ ์์๋ ํ ์ด๋ธํ ์จ๋ผ์ธ์ ๊ฐ๋ณ๊ฒ ๋ธ๋ผ์ฐ์ ์์ ์ ์ํด ๋ฐ๋ก ํจ๊ป ๊ฒ์์ ์ฆ๊ธฐ๋ ๊ฒ์ ๋ชฉํ๋ก ๋ง๋ ์๋น์ค์ ๋๋ค. ์คํ๋ผ์ธ์์ ๋ง์ฃผ ์์ ํ๋ ๊ฒฝํ์ ์ฎ๊ฒจ์ค๋ ๊ฒ์ด ๋ชฉ์ ์ด์๊ธฐ์, ํ๋ฉด ์์์ ๋ฐ์ํ๋ ๋ฐ์๊ณผ ๋ชฐ์ ๊ฐ์ ์ค์ํ๊ฒ ๋ค๋ค์ต๋๋ค.
- ์ฒซ ๋ฐฉ๋ฌธ ์ ์ต๋ช ๊ฒ์คํธ id๋ฅผ ์ฟ ํค๋ก ๋ฐ๊ธ๋ฐ์, ๋ก๊ทธ์ธ ์ ์ฐจ ์์ด ๋ฐ๋ก ์ ์ฅํฉ๋๋ค.
- ๋ฐฉ์ ๋ค์ด๊ฐ ๋ ๋๋ค์๋ง ์ ํ๋ฉด ๋๊ณ , ์๋ก๊ณ ์นจํด๋ ๊ฐ์ ์๋ฆฌ๋ก ๋ณต๊ทํฉ๋๋ค.
- ๋ก๋น์์ ๊ณต๊ฐ ๋ฐฉ ๋ชฉ๋ก์ ํ์ธํ๊ณ ๋ฐ๋ก ์ฐธ์ฌํ ์ ์์ต๋๋ค.
- ๋น๊ณต๊ฐ ๋ฐฉ์ ๋ชฉ๋ก์ ๋ ธ์ถ๋์ง ์๊ณ ๋ฐฉ ์ฝ๋๋ก๋ง ์ ์ฅํฉ๋๋ค.
- ๋ฐฉ์ฅ์ ๊ฒ์ ์ข ๋ฅยท์ต๋ ์ธ์ยท๊ณต๊ฐ ์ฌ๋ถ๋ฅผ ๋๊ธฐ ์ค์ ์ธ์ ๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
| ๊ฒ์ | ์ํ | ์ค๋ช |
|---|---|---|
| ๐ฒ ์ผ์ฐ | ์๋น์ค ์ค | ์ฃผ์ฌ์ 5๊ฐ๋ฅผ ๊ตด๋ ค 13๊ฐ ์ ์ ํญ๋ชฉ์ ์ฑ์ฐ๊ณ ์ด์ ์ ๊ฒจ๋ฃน๋๋ค. |
| ๐ก ์ฏํค๋ | ์๋น์ค ์ค | ๋ณผ ์ ์๋ ๋ฐ๋ฅํจ๋ฅผ ๊น๊ณ , ์ํจ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋น์ฐ๋ฉด ์น๋ฆฌํฉ๋๋ค. |
| ๐ ์์นด๋ | ์๋น์ค ์ค | ๊ฐ์ ๋ฌด๋ฌยท์ซ์๋ฅผ ์ด์ด ๋ด๊ณ , ์ํจ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋น์ฐ๋ฉด ์น๋ฆฌํฉ๋๋ค. |
| ๐ ํ๋ผ | ์ค๋น ์ค | ์ถํ ์ ๋ฐ์ดํธ ์์ ์ ๋๋ค. |
- ๋ชจ๋ ์งํ ์ํฉ์ Socket.IO๋ก ์ฆ์ ๋๊ธฐํ๋์ด, ์๋์ ์ฐจ๋ก์ ํ๋์ด ์ค์๊ฐ์ผ๋ก ๋ณด์ ๋๋ค.
- ์ํจ์ฒ๋ผ ์ฌ๋๋ง๋ค ๋ณด์ด๋ ๋ด์ฉ์ด ๋ค๋ฅธ ์ ๋ณด๋ ์๋ฒ๊ฐ ์์ผ๋ณ๋ก ๋ฐ๋ก ์กฐ๋ฆฝํด ๋ด๋ ค๋ณด๋ด, ๋ค๋ฅธ ์ฌ๋์ ํจ๊ฐ ํด๋ผ์ด์ธํธ๋ก ์์ง ์์ต๋๋ค.
- ์นด๋๋ฅผ ๋ด๊ณ , ๋จน๊ณ , ๋๋ ์ฃผ๋ ๋ชจ๋ ์๊ฐ์ ์นด๋๊ฐ ์ค์ ๋ก ๋ ์๊ฐ๋ ์ ๋๋ฉ์ด์ ๊ณผ ํจ๊ณผ์์ด ์ฌ์๋ฉ๋๋ค.
- ์๋๊ฐ ๋ธ ์นด๋๋ ๋ท๋ฉด์ผ๋ก ๋ ์์ค๋ค ๋๋ฏธ ์์์ ๋ค์งํ๊ณ , ์ฐฉ์งํ๋ ์๊ฐ์ ๋ง์ถฐ ๋๋ฏธ๊ฐ ๊ฐฑ์ ๋์ด ์นด๋๊ฐ ๋ฏธ๋ฆฌ ๋ณด์ด์ง ์์ต๋๋ค.
- ์ํจ๋ ๋ญํฌ์์ผ๋ก ์๋ ์ ๋ ฌ๋๋ฉฐ, ์นด๋๊ฐ ๋ง์์ง๋ฉด ๊ฒน์นจ ํญ์ ๋์ ์ผ๋ก ์ค์ฌ ํ๋ฉด์ ๋์น์ง ์์ต๋๋ค.
- ํ ์คํธ ์ ๋ ฅ ์์ด ๋ฒํผ ํ ๋ฒ์ผ๋ก ์๋์๊ฒ ๋ฆฌ์ก์ ์ ๋ณด๋ ๋๋ค.
- ํํ๋ง๋ค ์์ยท์ด๋ฏธ์ง์ ํจ๊ณผ์์ด ์ฐธ๊ฐ์ ์นด๋ ์์์ ์ฌ์๋ฉ๋๋ค.
- ์งง์ ์๊ฐ์ ๋ฐ๋ณต ์ ๋ ฅ๋๊ธฐ ์ฌ์ด ๊ธฐ๋ฅ์ด๋ผ, ํํ๋ณ ์ฌ์ฌ์ฉ ๋๊ธฐ ์๊ฐ์ ๋์ด ์์ฒญ ๋น๋๋ฅผ ์ ํํ์ต๋๋ค.
- ๋ฐฉ ์์์ ์ฌ์ด๋๋ฐ๋ฅผ ์ด๋ฉด ํ์ฌ ๊ฒ์์ ๊ท์น์ ์ธ์ ๋ ํ์ธํ ์ ์์ด, ์ฒ์ ํ๋ ์ฌ๋๋ ๋ฐ๋ก ์ฐธ์ฌํ ์ ์์ต๋๋ค.
| ํญ๋ชฉ | ์ฌ์ฉ ๊ธฐ์ |
|---|---|
| Framework | |
| Language | |
| Server | |
| Database | |
| Style | |
| Validation | |
| Convention | |
| Deploy |
โโ server.ts # HTTP + Socket.IO ๋ถํธ์คํธ๋ฉ, ์์ผ ์ด๋ฒคํธ ํธ๋ค๋ฌ
โโ prisma/ # DB ์คํค๋ง์ ๋ง์ด๊ทธ๋ ์ด์
โโ src/
โโ app/ # ๋ผ์ฐํธ (๋ก๋น, ๋ฐฉ, /api/rooms)
โโ components/
โ โโ lobby/ # ๋ฐฉ ๋ง๋ค๊ธฐยท์ฐธ์ฌ UI
โ โโ room/ # ๋ฐฉ ๊ณต์ฉ UI + ๊ฒ์๋ณ ๋ณด๋(yatzyยทshitheadยทonecard)
โโ hooks/ # ์ด๋ฒคํธ ํธ๋ค๋ฌ, ์ ๋๋ฉ์ด์
ํ
โโ utils/ # ์์ ๊ณ์ฐ ๋ก์ง
โโ constants/ # ๊ฒ์ ๋ชฉ๋ก, ๋ฃฐ๋ถ, ์ ์ํ ๋ฑ ์ ์ ๋ฐ์ดํฐ
โโ server/ # ๋ฐฉ ์ํ ๊ด๋ฆฌ, ๊ฒ์๋ณ ์๋ฒ ๋ก์ง
โ โโ roomManager.ts # ๋ฐฉยทํ๋ ์ด์ด ์ธ๋ฉ๋ชจ๋ฆฌ ์ํ, ์
ํด์ฅยท๋ฐฉ์ฅ ์์
โ โโ gameDispatch.ts # ๊ฒ์ ์ข
๋ฅ๋ณ ๋ก์ง ์์
โ โโ yatzy | shithead | onecard/
โโ lib/ # Prismaยท์์ผ ํด๋ผ์ด์ธํธ
โโ proxy.ts # ์ฒซ ๋ฐฉ๋ฌธ์ ๊ฒ์คํธ ์ฟ ํค ๋ฐ๊ธ
์งํ ์ค์ธ ๋ผ์ด๋ ์ํ(์ฃผ์ฌ์, ์ํจ, ์ฐจ๋ก)๋ ์๋ต ์๋๋ฅผ ์ํด ์์ผ ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ๋๊ณ , DB์๋ ๋ฐฉ ์ ๋ณด์ ์ต์ข ๊ฒฐ๊ณผ๋ง ๊ธฐ๋กํฉ๋๋ค.




