FastMind
๋ ์ฐฝ์์ ์ด๊ณ ์ํธ์์ฉ์ด ํ๋ถํ ์น ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค. ์ด ํ๋ก์ ํธ๋ ๊ทธ๋ฆผํ๊ณผ ๊ฒ์, ์ฑํ
๊ธฐ๋ฅ์ ํตํฉํ์ฌ ์๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ๊ฒ์ ๋ชจ๋: ์ฌ์ฉ์ ์ค ํ ๋ช ์ด ์ถ์ ์๊ฐ ๋์ด, ํด์ฆ๋ฅผ ๋ด๊ณ ๊ด๋ จ๋ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฝ๋๋ค. ๊ทธ ํ, ๋ค๋ฅธ ์ฐธ์ฌ์๋ค์ด ๊ทธ๋ฆผ์ ๋ฐํ์ผ๋ก ํด์ฆ์ ๋ต์ ๋ง์ถ๋ ๋ํํ ์น ๊ฒ์์ ๋๋ค.
- ํ์ ๋ชจ๋: ์ฌ์ฉ์๋ค์ ๊ทธ๋ฆผํ์ ์ง์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ฉฐ, ์ค์๊ฐ์ผ๋ก ๊ณต์ ํ๊ณ ์ฑํ ์ ํตํด ์์ด๋์ด๋ฅผ ๊ตํํฉ๋๋ค. ์ด ๋ชจ๋๋ ํ์, ๋ธ๋ ์ธ์คํ ๋ฐ, ๋๋ ์ผ๋ฐ ๋ํ์ ์ด์์ ์ผ๋ก ํ์ฉ๋ฉ๋๋ค.
ํ๋ก ํธ์๋๋ ์ด๊ณณ์ ํด๋ฆญํด ์ฃผ์ธ์.
์ฑํ
์๋ฒ๋ ์ด๊ณณ์ ํด๋ฆญํด ์ฃผ์ธ์.
ํผ๊ทธ๋ง๋ ์ด๊ณณ์ ํด๋ฆญํด ์ฃผ์ธ์.
๊ทธ๋ฆผํ
- Canvas API: ๋ณธ ํ๋ก์ ํธ์ ๊ทธ๋ฆผํ ๊ธฐ๋ฅ์ HTML5์ Canvas API๋ฅผ ํ์ฉํ์ฌ ๊ตฌํ๋์์ต๋๋ค.
- ์ค์๊ฐ ํต์ : ์ค์๊ฐ ์ฌ์ฉ์ ์ํธ์์ฉ์ ์ํด Socket.io๋ฅผ ์ฌ์ฉํ์์ผ๋ฉฐ, ์ฌ์ฉ์ ๊ฐ์ ๊ทธ๋ฆผ ๋ฐ์ดํฐ ๊ณต์ ๋ฐ ํต์ ์ ์ํด ์์ฒด์ ์ผ๋ก ๊ตฌ์ถํ ๋ฐฑ์๋ ์๋ฒ์ ์ฐ๊ฒฐํฉ๋๋ค.
- ์๋ฒ ๋ฐฐํฌ: ํ๋ก์ ํธ์ ๋ฐฑ์๋ ์๋ฒ๋ Heroku๋ฅผ ํตํด ๋ฐฐํฌ๋์์ต๋๋ค. node.js/Express/Babel ๋ฑ์ ์ฌ์ฉํ์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ์์ ์ ํ: ์ฌ์ฉ์๋ ๋ค์ํ ์์ ํ๋ ํธ์์ ๋ง์๋๋ก ์์ ์ ํํ ์ ์์ต๋๋ค.
- ๊ทธ๋ฆฌ๊ธฐ ๋๊ตฌ: ๋ถ๋ถ ์ง์ฐ๊ฐ์ ์ ์ฒด ์ง์ฐ๊ธฐ ๊ธฐ๋ฅ์ ํตํด ์ฌ์ฉ์๋ ์ฝ๊ฒ ๊ทธ๋ฆผ์ ์์ ํ ์ ์์ต๋๋ค.
- ๊ตต๊ธฐ ์กฐ์ : ์ฌ์ฉ์๋ ์ ์ ๊ตต๊ธฐ๋ฅผ ์์ ๋กญ๊ฒ ์กฐ์ ํ์ฌ ๋ค์ํ ํํ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆผํ์์์ ์ฌ์ฉ์ ์์ ์ ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์๋ฒ๋ก ์ ์ก๋ฉ๋๋ค.
originalMousePosition: {
x: number;
y: number;
};
newMousePosition: {
x: number;
y: number;
};
option: {
color: string;
lineWidth: number;
roomId: string;
};
originalMousePosition
: ํ์ฌ ๋ง์ฐ์ค ์์น (x, y ์ขํ)newMousePosition
: ์๋ก์ด ๋ง์ฐ์ค ์์น (x, y ์ขํ)option
: ์์ ์ต์ (์ ํ๋ ์์, ์ ์ ๊ตต๊ธฐ, ๋ฐฉ ID)
๊ฒ์ ๋ก์ง
- ์ ์ ์ง์ ์ ๊ฒ์ ์์ผ์ ์ฐ๊ฒฐํ๊ณ roomId๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐฉ์ ์ ์ ํด ์ ์ ๋ฅผ ๋๋๋๋ค.
- ๊ฒ์ ์์ ๋ฒํผ ํด๋ฆญ ์ ํด์ฆ ๋ฐฐ์ด์ roomId๋ฒ ์ธ๋ฑ์ค์ ํด๋ฆญํ ํด๋ผ์ด์ธํธ์ ์ฟ ํค ๋ด userId๋ฅผ ์ง์ ํฉ๋๋ค.
- ๊ฒ์ ์์ ๋ฒํผ ํด๋ฆญ ํ ๋ชจ๋ฌ ๋ด ๋ต์ ์ ๋ ฅ ์ ์ ๋ต ๋ฐฐ์ด์ roomId๋ฒ ์ธ๋ฑ์ค์ ์ ๋ต์ ์ค์ ํฉ๋๋ค.
- ์ฑํ ์ ์น ์ ์ , ์ฑํ ๊ฐ, roomId์ ์ฟ ํค ๋ด userId์ ์๋ฒ์ ๋ณด๋ ๋๋ค.
- ๋ง์ฝ ๋ต๋ณ์ ํ ์ ์ ๊ฐ ํด์ฆ ๋ฐฐ์ด์ roomId๋ฒ ์ธ๋ฑ์ค์ ๋ค๋ฅด๊ณ ๋ต๋ณ์ ํ ์ ์ ์ ๋ต์์ด ์ ๋ต ๋ฐฐ์ด์ roomId๋ฒ ์ธ๋ฑ์ค์ ๊ฐ๋ค๋ฉด, ์ถ์ ์๊ฐ ์๋๋ฉด์ ๋ต๋ณ์ ๋งํ๋ค๋ ๋ป์ด๋ฏ๋ก ํด๋น ํ๋ ๋ฐฉ ๋ด ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ค์๊ฒ ์น์๋ฅผ ์ ์ ํด ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ๋๋ค.
- ๋ค์ ๊ฒ์์ ์ํด ์๋ฒ์์๋ ํด๋นํ๋ roomId๋ฒ ์ธ๋ฑ์ค์ ํด์ฆ ๋ฐฐ์ด๊ณผ ์ ๋ต ๋ฐฐ์ด์ ์ด๊ธฐํ ํด์ค๋๋ค.
- ์น์ ๋ฐ์ดํฐ๊ฐ ์ฟ ํค ๋ด userId์ ๊ฐ๋ค๋ฉด ์ ๋ต์ ๋งํ๋ค๋ ๋ชจ๋ฌ์ ๋์์ค๋๋ค.
- ๋ค๋ฅด๋ค๋ฉด ํ ์ ์ ๊ฐ ์ ๋ต์ ๋งํ๋ค๋ ๋ชจ๋ฌ์ ๋์์ค๋๋ค.
- ์ด ํ, ๊ฒ์ ์์ ๋ฒํผ ํด๋ฆญ ์ ๊ฒ์์ด ์ฌ์์ ๋ฉ๋๋ค.
- โฐ ๊ฒ์ ์ค, ์ธ์ ๋ ๊ฒ์ ์์ ๋ฒํผ์ ๋๋ฌ๋, ํด๋นํ๋ roomId๋ฒ ์ธ๋ฑ์ค์ ์ ๋ต ๋ฐฐ์ด ๋ฐ ํด์ฆ ๋ฐฐ์ด์ ๋ฎ์ด์์์ผ๋ก ์ธ์ ๋ ์ฌ ์์์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฅํธ์ง (FE & BE) | ์์ฌํ (FE & BE) | ์์ ๋ (FE & BE) |
---|---|---|
leHiHo | yangjaehyuk | seacrab808 |
|
|
|
2023.11.06 ~ 2023.11.17