-
Notifications
You must be signed in to change notification settings - Fork 0
๐ญ ๊ฐ์ธ ํ๊ณ
Song_Minhyung edited this page Dec 12, 2023
·
32 revisions
FE 3๋ช
, BE 1๋ช
์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด FE์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ๋๋ก ์ ๋ฌํ๋ ๊ฒ์ด ๋ชฉํ์๋ค.
ํ์ง๋ง ๊ทธ๋ฅ ๋จ์ ์์
๋์ด ๋์ด๋ฌ์ ๋ฟ, ๊ธฐ์ ์ ๋์ ์ ์๋ค๊ณ ๋๊ผ๋ค.
FE ์ค์ฌ์ผ๋ก ํ๋ก์ ํธ ๋ฐฉํฅ์ ํธ๋ ๊ฒ์ด ๋ง๋ค๊ณ ํ๋จํ์ฌ BE๊ฐ ๋์ ํ ๋งํ ๊ธฐ์ ๋ค์ ๋ํ ์กฐ์ฌ๊ฐ ๋ง์ด ์ํํ๋ ๊ฒ ๊ฐ๋ค.
๋ค์ ์ฃผ๋ถํฐ ๊ฐ๋ฐ์ ์์ํ๋ฉด, ์ฌ๋ฌ ๋น๊ธฐ๋ฅ์ ์์๋ค์ ์๊ฐํด๋ณด๊ณ ์ฌ๊ธฐ์ BE๊ฐ ๋์ ํด๋ณผ๋งํ ๊ณผ์ ๋ฅผ ์ฐพ์๋ด์ผ๊ฒ ๋ค.
์ฐ์ ๋๋ฉด์ผ๋ก ์งํํ๋ค๋ณด๋ ์ง์ค๋ ์๋๊ณ ์ฌ๋ฐ๊ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์์๋ค. ๋ฐ๋ก๋ฐ๋ก ์ํต์ด ๊ฐ๋ฅํด์ ํ์๊ฐ ๋น ๋ฅด๊ฒ ์ง์ ๋ ๊ฒ ๊ฐ๋ค.
์ ๋ฐ์ ์ผ๋ก ์ํํ๊ฒ ๋ง๋ฌด๋ฆฌํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ๊น๋ํ๊ฒ ์ ๋ฆฌ๋ ๋ค๋ฅธ ์กฐ์ ์ํค์ ๋
ธ์
์ ๋ณด๊ณ ๋๋, ๋ฌธ์ํ๋ฅผ ์ ๋๋ก ํ์ง ๋ชปํ๋ค๋ ์์ฌ์์ด ๋ค์๋ค.
๋ค์์ฃผ์๋ 6~7์ ๊ธฐ๋ก ์๊ฐ์ ํ์ฉํด์ ๊ผผ๊ผผํ๊ฒ ๊ธฐ๋ก์ ๋จ๊ธฐ๋๋ก ํด์ผ๊ฒ ๋ค.
๋๋ค๋ฅธ ์์ฌ์ด ์ ์ ์ด๋ฒ ํ๋ก์ ํธ์์ ์ง์คํ๊ณ ์ถ์ ํฌ์ธํธ๋ฅผ ์ ๋๋ก ์ก์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.
์ธํฐ๋ํฐ๋ธ ์น, webRTC, ์ค์๊ฐ ์ฑํ
, ํ
์คํธ, ์ ๊ทผ์ฑ.. ๋ฑ๋ฑ ํด๋ณด๊ณ ์ถ์๊ฒ ๋ง๋ค๋ณด๋ ๋ชฉํ๊ฐ ๋ถ์ฐ๋๋ ๋๋์ด์๋ค.
์ฐ์ ์์๋ฅผ ๋๊ณ ์ ํ๊ณผ ์ง์ค์ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
๋ฐฑ์๋์์ ํ์
๋ ๋ถ์กฑํจ์ด ๋ง์ด ๋๊ปด์ง๋ค. ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ฐฑ์๋ ์
๋ฌด๋ฅผ ๋ถ๋ดํ ์ ์์ ์ง ๊ณ ๋ฏผ์ด ํ์ํด๋ณด์ธ๋ค.
๊ทธ๋ฃน ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ ์๋ 6์ฃผ์์ ํ ์ ์์๊น? ๋ผ๋ ๋ง๋งํ ์๊ฐ๋ง์ด ์์๋๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ํ์๋ค๊ณผ ํจ๊ป ๊ธฐํํ๊ณ , ๋์์ธํ๊ณ , ์ค๊ณ๋ฅผ ํ๋ฉฐ ์์ด๋์ด๊ฐ ๊ตฌ์ฒดํ ๋๋ฉด์ ์ด? ํ ์ ์๊ฒ ๋๋ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํ์๋ค๊ณผ ํจ๊ป ๊ณ ๋ฏผํ๊ณ , ์๋ก์ ์๊ฐ์ ๊ณ ๋ฏผํ๋ฉด์ ๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์์๋ค.
์์ผ๋ก ๋จ์ 5์ฃผ ๋์ ํ์๋ค๊ณผ ํจ๊ป ๋ ์ข์ ์๋น์ค๋ฅผ ๋ง๋ค์ด ๋๊ฐ๊ณ ์ถ๊ณ ๊ธฐํ๊ฐ ๋๋ค๋ฉด 5์ฃผ ํ์๋ ์๋น์ค๋ฅผ ๋ ํ์ฅํด ๋๊ฐ๋ฉฐ ์ด์ํ๊ณ ์ถ๋ค.
์ ๋ง์ง๋ง์ผ๋ก ์ฒซ์ฃผ์ฐจ์ ์์
์ ํ๋ฉฐ ๋ฌธ์ํ๊ฐ ๋ถ์กฑํ๋ค๋ ์๊ฐ์ด ๋ค์ด์ ๊ธฐ๋กํ ์ ์๊ณ , ๋์ค์ ๋ค์ ๋์๋ดค์ ๋ ์ข์๋งํ ๊ฒ๋ค์ ๋ฌธ์ํ ํด๋์ ์ ์๋๋ก ๋
ธ๋ ฅํ ๊ฒ์ด๋ค.
๊ทธ๋ฃน ํ๋ก์ ํธ์ ์ฒซ ์ฃผ์ฐจ๋ ๋๋ฉด์ผ๋ก ์งํํ๋ ์ฌ๋ฐ์๋ค!
์ ์ฒด์ ์ผ๋ก๋ ๋ง์กฑ์ค๋ฌ์ ์ง๋ง, ์๋น์ค ๊ธฐํ๊ณผ ์ค๊ณ ์์ฃผ๋ก ์งํ์ด ๋๋๋ณด๋, ๊ธฐ์ ์ ๋์ ์ ์ด๋ค ๊ฑธ ํด์ผ ๊ฒ ๋ค๋ผ๋ ์๊ฐ๋ง ํ๊ณ , ์ ๋๋ก ์์๋ณด์ง ๋ชปํ ๊ฒ ์กฐ๊ธ ์์ฌ์ ๋ค.
์๋น์ค ์ค์ฌ์ด์๋ค๊ฐ, ์กฐ๊ธ ์๊ฐ์ด ์ง๋ ํ์ ๊ธฐ์ ์ ๋์ ์ ์ง์คํ๋ ๊ฒ์ผ๋ก ๋ฐฉํฅ์ด ์กํ์ ๊ธฐ์ ์ ๋์ ์ ๋ํด ์์ ๋ณผ ์๊ฐ์ด ์์๋ ๊ฒ ๊ฐ๋ค.
๋ง์ฝ์ ์ด๋ฐ๋ถํฐ ๊ธฐ์ ์ ๋์ ์ ์ง์คํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ค๋ฉด, ๋์ ํ ๊ธฐ์ ์ ๋ํด ์์๋ณด๊ณ ์ด๋ป๊ฒ ๊ทธ ๊ธฐ์ ์ ์ฌ์ฉํ ์ง ์ค๊ณ๊น์ง ํ ์ ์์์ ๊ฒ์ด๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๋ค์ ์ฃผ๋ถํฐ ๋ณธ๊ฒฉ์ ์ธ ๊ฐ๋ฐ์ ๋ค์ด๊ฐ๋, ์ฃผ๋ง์ ๋ฏธ๋ฆฌ ๊ธฐ์ ์ ๋ํด ํ์ตํด์ ๊ธฐ์ ์ ์ถฉ๋ถํ ์ ํ์ฉํ ์ ์๋๋ก ํด์ผ๊ฒ ๋ค.
์ง๋์ฃผ ๋ฉํ ๋ง๊น์ง๋ง ํด๋ ํ๋ก์ ํธ์ ๋ํ ๊ฑฑ์ ์ด ๋ง์๋๋ฐ ์ง๋ ์ฃผ๋ง์ WebRTC์ ๋ํ ์ฌ์ ๊ณต๋ถ๋ฅผ ํ๊ณ ๋๋ ๋ถ์ํจ์ด ๋ง์ด ์ค์ด๋ค์๋ค.
์ธํ๋ผ์ ๋ฐฐํฌ์ ๋ํ ์ง์์ด ์์ด ํด๋น ๋ถ๋ถ์ ์ฌ์ ํ ๊ฑฑ์ ์ด ๋ง์ง๋ง, ๋ง์คํฐ ํด๋์ค์์ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ํ๋์ฉ ํด๊ฒฐํ๋ค๋ณด๋ VPC ์๋ฒ๋ ์ฑ๊ณต์ ์ผ๋ก ์์ฑํ๊ณ ์ ์ํ ์ ์์๋ค.
์ด๋ฒ์ฃผ๋ ๋ณ๊ฒฝ๋ ๊ธฐํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ERD๋ฅผ ์์ ํ๊ณ , API๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ผ์ฃผ์ผ์ ๋ค ์ด ๊ฒ ๊ฐ๋ค.
API๋ ์ค์ํ์ง๋ง ๋นจ๋ฆฌ ๋ฐฐํฌํ์ฌ ์๋น์ค์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ๋ ๊ฒ์ด ํ์ ๋ชฉํ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ์ฃผ๋ง์ ๋ฐฐํฌ ๊ณต๋ถ๋ฅผ ํ ๊ฒ ๊ฐ๋ค.
ํ๋ก์ ํธ ๊ณต์ ์๊ฐ์ ์ typeOrm์ ์ฌ์ฉํ๋์ง์ ๋ํ ์ง๋ฌธ์ ๋งค๋ฒ ๋ฐ๋ ๊ฒ ๊ฐ์๋ฐ ๊ธฐ์ ์ ํ์ ๋ํ ๊ทผ๊ฑฐ ์์ด ๊ตฌํํ๋ ๋ฐ ์ง์คํ ๊ฒ ๊ฐ์ ๋ง์ด ๋ฐ์ฑํ๋ค.
๋ค์ ์ฃผ์๋ ์ด๋ฒ ์ฃผ์ ์ ๋๋ก ์ํํ์ง ๋ชปํ ๋ฌธ์ํ๋ ํ๊ณ , ๊ธฐ์ ์ ํ์ ๋ํ ๊ทผ๊ฑฐ๋ ์ ๋ฆฌํด์ผ๊ฒ ๋ค.
์ด๋ฒ์ฃผ๋ ์๊ฐ๋ณด๋ค ์์กฐ๋กญ๊ฒ ๊ฐ๋ฐ์ด ์งํ๋ ๊ฒ ๊ฐ๋ค.
๊ณํํ๋ ์คํ๋ฆฐํธ์ ์ด์๋ค๋ ๊ฑฐ์ ๋ค ํด๊ฒฐ์ ํด์ ์ฐจ์ธฐ ์์ฑ์ด ๋์ด๊ฐ๊ณ ์๋ ๊ฒฐ๊ณผ๋ฌผ์ ๋ณด๊ณ ์์๋ ๋ฟ๋ฏํ๋ค.
๋ค๋ง ๋ค๋ฅธ ํ๋ค์ ๋ฐํ๋ฅผ ๋ค๊ณ ๋์๋, ์ฐ๋ฆฌ๊ฐ ๋ฌธ์ํ๋ฅผ ์ ๋๋ก ํ์ง ๋ชปํ๋ค๋ ๋ฐ์ฑ์ด ๋ค์๋ค.
๋ชจ๋ ๊ณผ์ ์ ๊ธฐ๋ก์ผ๋ก ๋จ๊ฒจ๋๊ณ , ๋ณด๊ธฐ ์ข๊ฒ ์ ๋ฆฌํด๋์ ํ๋ค์ ๋ณด๋ฉด์ ํํ๊ฐ ๋๊ธฐ๋ ํ๋ค.
๊ทธ๋๋ ์์ง ํ๋ก์ ํธ ๊ธฐ๊ฐ์ด ๋ง์ด ๋จ์์์ผ๋, ์ด์ ๋ถํฐ๋ผ๋ ์ด์ ์ ๋ฆฌ๋ ๊ฐ์ธ ๊ณต๋ถ์ ํ์ ์ ๋
ธ์
์ ๋ง์ด ๋จ๊ฒจ๋์ด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค.
์ด๋ฒ์ฃผ์๋ ์ฌ์ค ๋ฉด์ ์ผ์ ์ด ๊ณ์ํด์ ๊ฒน์ณ์ ์ค๊ฐ์ค๊ฐ์ ์๋ฆฌ๋ฅผ ๋น์ฐ๊ฒ ๋๋๋ฐ, ํ์ ๋ฏผํ๋ฅผ ๋ผ์น๋ ๊ฒ ๊ฐ์์ ์ ๋ง ๋ฏธ์ํ๋ค.
์ด์ ๋๋ถ๋ถ์ ์ทจ์
์ผ์ ์ด ๋ง๋ฌด๋ฆฌ ๋ ๊ฒ ๊ฐ์์, ๋ค์์ฃผ๋ถํฐ๋ ํ๋ก์ ํธ์ ์ง์คํ ์ ์์ ๊ฒ ๊ฐ์ ๋คํ์ด๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
์ด๋ฒ ์ฃผ๋ ํฐ ์ด๋ ค์ ์์ด ์ง๋๊ฐ๋ค๋ ์๊ฐ์ด ๋ญ๋๋ค.
๊ทธ๋ฐ๋ฐ ๊ตฌํ์ ํ ์๋ก ๋ฐฑ์๋ ๊ท๋ชจ๊ฐ ์๊ฐ๋ณด๋ค ์๋ค๋ ์๊ฐ์ด ๋ค์ด ํ์๊ณผ ํ๋ฒ ๋ ์์๋ฅผ ํด๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
์ ๋ฆฌ ๊ธ์ ์์ฃผ ๋ชป์ ์๊ฒ๋ ์์ฝ์ต๋๋ค.
๊ธ์ ์ ์ผ๋ ค๋ฉด ์๊ฐ์ ๋ง์ด ์จ์ ๊ธ์ ์ ์ด์ผ ํ๋ค๋ ์๊ฐ์ ์ฝ๊ฒ ์ ์ง ๋ชปํ๊ณ ์์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ค๋ฅธ ์บ ํผ ๋ถ๋ค์ด ์ ๋ ๋ชจ์ต์ ๋ณด๋ฉด ์๊ฐ์ ์ชผ๊ฐ์ ์กฐ๊ธ์ฉ ์จ๊ฐ๋ ๋ ๊ฒ๊ฐ์ต๋๋ค!
๊ทธ๋ฆฌ๊ณ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ค๊ฐ์์ ๋ ์ ๋ ๊ทธ๊ฑธ ๋ฌด์กฐ๊ฑด ์ผ๋จ ํด๊ฒฐํ์๋ ๋ง์ธ๋๋ฅผ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ๊ทธ ์์ธ์ ์ ๊ฒฝ์ง๋ ์์์ฑ๋ก ๋ง์ด์ฃ .
๊ทธ๋์ ์ด๋ฒ์ ๋ฐ์ํ์ ๋ ์ผ๋จ ํด๊ฒฐ๋ถํฐ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ญ์๋ ์์ธ์ ์ ๊ฒฝ์ฐ์ง ์์์ฃ . ๊ทธ๋ฐ๋ฐ ํ์์ด ์ ์๊ฒ ๋ฌผ์ด๋ดค์ต๋๋ค.
> ์ด ์ด์๋ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ๋๋๊ฑด๊ฐ์ !?!?
์ ๋ ์... ๋ทํต์๋ฅผ ํ๋ ์ป์ด๋ง์ ๋๋์ด ๋ค์์ต๋๋ค.
์ง๊ธ๊น์ง๋ ๋ฑํ ์ ๊ฒฝ์ฐ์ง ์๊ณ ์์๋๋ฐ ํ์ ๋๋ถ์ ๊นจ๋ฌ์ ๋๋์
๋๋ค.
๋ฌธ์ ๋ฅผ ์ผ๋จ ํด๊ฒฐํ๋๊ฑด ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทผ๋ฐ ๊ทธ๊ฒ ์ ๋ฐ์ํ๋์ง๋ฅผ ๋ชจ๋ฅด๋ฉด ๋์ค์ ๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ฒผ์๋ ์ด๋ ค์์ด ์๊ธธ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋์ ์์ผ๋ก๋ ์๋์ ์ผ๋ก ๋ฌธ์ ์ ์์ธ๋ ํจ๊ป ํ์
ํ๋ ค๋ ์ต๊ด์ ๊ฐ์ ธ์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์์ฃผ์๋ husky ์ ์ฉ์ ๋ง์ ๋๋ง์ณ ๋ณผ ์๊ฐ ์
๋๋ค.
์ด๋ฒ ์ฃผ์ ๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ๋ฐ์ ์์ํ๋๋ฐ, ์๊ฐ๋ณด๋ค ์์กฐ๋กญ๊ฒ ๊ฐ๋ฐ์ด ์งํ๋์๋ค.
๊ทธ๋์ ์์ผ๋ก์ ์ฐ๋ฆฌ ํ๋ก์ ํธ๊ฐ ๊ธฐ๋๊ฐ ๋๊ณ ์ฆ๊ฑฐ์ ๋ค.
ํ์ง๋ง ๋ฌธ์ํ๋ฅผ ํ๊ธฐ๋ก ์ฒ์์ ์๊ฐ์ ์ ํด๋์๋๋ฐ, ๊ฐ๋ฐ ์ด๋ฐ์ด๋ผ ๊ทธ๋ฐ์ง ๊ธฐ๋กํ ๊ฒ ๋ณ๋ก ์๋ค๊ณ ๋๊ปด์ ๊ธฐ๋ก์ ๊ฑฐ์ ํ์ง ๋ชปํ๋ค.
๋ค์์ฃผ์๋ ์๊ฐ์ ๋ด์ ๊ฐ๋จํ ๊ฑฐ๋ผ๋ ๋ ๊ธฐ๋ก์ ํด๋๋ ค๊ณ ๋
ธ๋ ฅํด์ผ๊ฒ ๋ค.
์ด๋ฒ ์ฃผ์ ๋๋์ด ๋ฐฐํฌ์ ์ฑ๊ณตํด์ ๋ฟ๋ฏํ๋ค.
๊นํ ์ก์
, ๋์ปค ํ์ผ ์ธ์๋ ์์ฑํ ์ฝ๋๊ฐ ๊ฑฐ์ ์์ด์ ์ฒ์์๋ ์ด๋ ๊ฒ ํด๋ ๋๋ ๊ฑด๊ฐ ์ถ์์ง๋ง, ํผ์ด์ธ์
์์ ์์ ์ธํ๋ผ๋ง ๋ด๋นํ์ ๋ถ๋ ์๋ค๋ ๊ฑธ ๋ฃ๊ณ ๋ด ์๋์ ๋ง์ถฐ์ ๊ฐ๋ฉด ๋ ๊ฒ ๊ฐ๋ค๋ ํ๋จ์ ๋ด๋ ธ๋ค.
๋ค์์ฃผ์ ๋ฌด์ค๋จ ๋ฐฐํฌ์ ์ธํ๋ผ๋ฅผ ์ข ๋ ํ๋ด์ผ ๊ฒ ๋ค.
์นด๋ ์คํ๋ ๋ ํ๋ฉด์ ๊ตฌํํ๋ฉด์ ์ ๋๋ฉ์ด์
์์
์ ์์์ด ํ ์ ์์ด์ ์ข์๋ค.
๊ทธ๋์ ํด๋ณด๊ณ ์ถ๋ค๊ณ ์๊ฐํ๋ ์ปค์คํ
์ปค์๋ ๊ตฌํํด๋ณด๋ฉด์ ๊ทธ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ ๊ณผ์ ์ด ์ฆ๊ฑฐ์ ๋ค.
๋ค๋ง tailwind์ ์ ๋๋ฉ์ด์
์ ์กฐํฉ์ด ์ข์ง ์์์ ๋ถํ์ํ๊ฒ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ ๋ง์ด ์์ ๊ฒ ๊ฐ์์ ์์ฌ์ด ๋ง์์ด ๋ ๋ค.
๊ทธ๋๋ tailwind๋ฅผ ์ง์ ์ฌ์ฉํด๋ณด๋ฉด์ ์ฅ๋จ์ ์ ์ฒด๊ฐํ ์ ์์ด์ ์ ์๋ฏธํ ๊ฒฝํ์ธ ๊ฒ ๊ฐ๋ค.
๋ค์์ฃผ์๋ ์ ๋๋ฉ์ด์
๋ ๋๋ง ์ต์ ํ ๊ณต๋ถ๋ฅผ ํด๋ณด๋ฉด์ ์ฑ๋ฅ์ ํฅ์์์ผ๋ณด๊ณ ์ถ๋ค.
๋ํ ์ถ๊ฐ์ ์ผ๋ก ์ธํฐ๋ํฐ๋ธํ ๊ธฐ๋ฅ์ ๋ฃ์ ์ ์๋ ๋ถ๋ถ์ด ์์ ์ง ์ข ๋ ๊ณ ๋ฏผํด๋ด์ผํ ๊ฒ ๊ฐ๋ค.
์ฐ์ ๊ต์ฅํ ๋ฐ์ ํ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ฝ๋ ํ์ง์๋ ์ ๊ฒฝ์ ์ฐ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ์์ ์๊ฐ๋ณด๋ค ๋ ๋ฆ์ด์ก๋ค.
๊ทธ๋ ๊ฒ ๋ง์ด ๋ฆ์ด์ง๊ฑด ์๋๋ฐ ์์ ๊ฐ๋ฐ ์๊ฐ์ ์ด๋ฅผ ํฌํจ ์์ผ์ผ ํ๋์ง ์๋๋ฉด ์ถํ ๋ฆฌํฉํ ๋ง์ ํด์ผํ๋์ง ๊ณ ๋ฏผ์ ํด๋ด์ผ ํ ๊ฒ๊ฐ๋ค.
์ด๋ฒ ์ฃผ์๋ ๋๋์ด ๋ฐฐํฌ๋ฅผ ํ๋ค.
๋ฐฐํฌ๋ฅผ ๋ชฉํ๋ก ๋ฌ๋ฆฌ๋ค ๋ณด๋ ๋ ๋ฐ์๊ณ ๋ง์์ด ๊ธํด์ง๊ณ ์ง์๋ ๋ฆ๊ฒ๊ฐ๊ณ ๊ทธ๋ฌ์ง๋ง ๋ฐฐํฌ๋ฅผ ๋๋ด๊ณ ๋๋ ๋ฟ๋ฏํด์ ํ๋ค์๋ ๊ฒ ๋ค ์ฌ๋ผ์ง๋ ๊ฒ ๊ฐ๋ค.
๋, ์ด๋ฒ ํ๋ก์ ํธ์์๋ ์กฐ๊ธ์ด๋ผ๋ ํ์คํ์ ํ๋ฒ ํด๋ณด๊ณ ์ถ์๋๋ฐ ์์ผ ํต์ ์ผ๋ก ๋๋ง nest์ react ํ์คํ ๊ฐ๋ฐ์ ํด๋ณผ ์ ์์ด์ ์ข์๋ค.
spring boot์ nest๋ ๋น์ทํ๋ฏ ๋ ๋ค๋ฅธ ๋ฐ ๋๋ ํ๋ก ํธ ๊ฐ๋ฐ์์ง๋ง ๋์ค์ nest๋ฅผ ์ ๋๋ก ๊ณต๋ถํด๋ณด๋ ๊ฒ๋ ์ฌ๋ฐ์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค.
๊ทธ๋ฆฌ๊ณ stream์ผ๋ก ์๋ต์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ ๊ฒ๋ ์๋ํด๋ณด์๋๋ฐ, ๋งค์ฐ ์ข์ ์๋์๋ค๊ณ ์๊ฐํ๋ค. ์ ๋ฒ์ฃผ ํผ์ด์ธ์
์์ ๊ด๋ จ ์ธ์ฌ์ดํธ๋ฅผ ์ฃผ์ ๋ถ๊ป ๋๋ฌด ๊ฐ์ฌํ๋ค.
์ ๋ฒ ์ฃผ์ ๋๋ง์ ์๋์ ๋ง์ถฐ์ ์ ํ๊ณ ์๋ค๊ณ ์๊ฐํ๋๋ฐ ์ด๋ฒ ์ฃผ์ ๊ทธ ์๊ฐ์ด ์ข ๋ง์ด ๋ฌด๋์ก๋ค.
๋งค์ฃผ ๋๋ผ๋ ๊ฑด๋ฐ ์ํ์์๋ ๋ฐฑ์๋ ๊ธฐ์ ์ ๋์ ๋ ์๋ ๋ฐ๋ค๊ฐ ๋ฐฐํฌํ ๊ฒ ์์ด์ ์ผ์ด ์๋๋ฐ, ๋ชฉ์์ผ์๋ ํ๋ก ํธ์๋์์ ๋ง์น ์์
์ ๋ฐ์ํ์ฌ ๋ฐฐํฌํด์ผ ํด์ ์ผ์ด ํ๊บผ๋ฒ์ ๋ชฐ์์น๋ค.
๋ฏธ๋ฆฌ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ง๋๋ ์์์น ๋ชปํ ์๋ฌ๋ฅผ ๋ฐ๊ฒฌํด์ ์ด๋ฒ ์ฃผ ์์
๋ด์ญ์ธ WebRTC๋ ๋ฐฐํฌ์ ์คํจํ๋ค.
๋ฐฑ์๋๊ฐ ํผ์๋๊น ์ด๊ฒ๋ง ํด๋ ๋์ง ์์๊น, ์ง๊ธ๋ ๋๋ฌด ๋ฒ
์ฐจ๋๊น ์ด ์ ๋๋ง ํด๋ ๊ด์ฐฎ์ง ์์๊น ์๊ฐํ๋๋ฐ ํ๋ก์ ํธ ๊ณต์ ์๊ฐ์ ๋ค๋ฅธ ํ๋ค์ ๋ฐํ๋ฅผ ๋ณด๋ฉด์ ๋ง์ด ๋ฐ์ฑํ๋ค.
ํ๋ก์ ํธ์์ ๋ฐฑ์๋ ๊ธฐ์ ์ ๋์ ์ด ์์ด๋ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ด ์๋ค์น๊ณ ๋ง๋ค์ด์ ํ์๋ ๋๋์ด๋ผ ๋๋ ์ฝ์ดํ์์ ์ด๊ธฐ๋๋ผ๋ ์ผ์ ๋ง๋ค์ด์ ํด์ผ ํ ๊ฒ ๊ฐ๋ค.
๋ฐ์ํ ์น์ ๊ตฌํํ๋ฉด์ ๋ค์ํ ๋๋ฐ์ด์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํ
์คํธ๋ฅผ ํด๋ณด๋ฉฐ ์์ ์ ๊ฑฐ์ณค๋๋ฐ, ๊ทธ ๊ณผ์ ์ด ์๊ฐ๋ณด๋ค ์ด๋ ค์ ๋ค.
์๋ฅผ๋ค์ด ๊ฐค๋ญ์ ํด๋์ ๊ฒฝ์ฐ ๊ฐ๋ก ๊ธธ์ด๊ฐ 280px๋ก ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ๋ชจ๋ฐ์ผ ํ๊ฒฝ๋ณด๋ค ํจ์ฌ ๋ ๊ฐ๋กํญ์ด ์ข์๊ณ , ์์ดํจ๋ ํ๋ก์ ๊ฒฝ์ฐ ๊ฐ๋ก ๊ธธ์ด๊ฐ ๋์ด์ PC๋ก ๋ถ๋ฅ๋๊ธฐ๋ ํ๋ค.
๋ค์ํ ๋๋ฐ์ด์ค์์ ๋ฌธ์ ์์ด ํ๋ฉด์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด์ vw, vh, % ๋ฑ์ ํ์ฉํ๊ธฐ๋ ํ๊ณ , ๋ ์ด์์์ ์์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ๋ ์์๋ค.
๋ ๋ค๋ฅธ ๋ฌธ์ ๋ os์ ์ฐจ์ด๋ก ์ธํด ๋ฐ์ํ๋ค.
์๋ฅผ ๋ค์ด ios์ ๊ฒฝ์ฐ, ํฐ์น ์์ ์ ๋๋ฉ์ด์
์ด ์ ์์ ์ผ๋ก ์๋ํ์ง ์๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์์ ์๊ณ ์ข์ ํ๊ธฐ๋ ํ๋ค.
์ด์ฒ๋ผ ๋ ์ด์์๋ฟ๋ง ์๋๋ผ ํฐ์น์ ํธ๋ฒ๋ง ์ด๋ฒคํธ๊น์ง ๊ณ ๋ คํด์ผํ๋ค๋ ์ ์ด ์ด๋ ค์ ๋ ๊ฒ ๊ฐ๋ค.
๊ทธ๋๋ ๋ชจ๋ ๋๋ฐ์ด์ค์์ ์ ์์ ์ผ๋ก ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ค๋ ์ ์ด ๋ณด๋์ฐจ๊ณ ๋ฟ๋ฏํ๋ ์์
์ด๋ค.
WebRTC๋ก ์๋๋ฐฉ๊ณผ ์ฐ๊ฒฐ์ ๋งบ๊ณ , peerConnection์ ๋งบ์ด local์ ๋น๋์ค๋ฅผ ์๋๋ฐฉ์๊ฒ ์ ์กํ๋ ๋ถ๋ถ์ ๊ตฌํํ๋๋ฐ ์ง์คํ๋ค.
์๋ก์ด ๊ธฐ์ ์ ํ๋๊ฒ ์ฌ๋ฏธ์์ด์ ์๊ฐ๊ฐ๋์ค ๋ชจ๋ฅด๊ณ ์ง์ค ํ๋๋ฐ ํ๊ฐ์ง ๊ฐ๊ณผํ๊ฒ ์์๋ค.
์ด ๊ธฐ์ ์ ์ ๋๋ก ์์ง๋ ๋ชปํ์ฑ๋ก ์ฌ์ฉํ ๊ฒ์ด๋ค. ๊ทธ๋์ ์ด์๊ฐ ์๊ฒจ๋ ์, ์ด๋์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋์ง ์ฐพ๋๋ฐ ํ์ฐธ ์๊ฐ์ ์ผ์๋ค.
์๊ฐ์ด ์๋ฌด๋ฆฌ ๋ถ์กฑํด๋ ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ธ๋ ๋์ถฉ ํ์ด๋ณด์ง ๋ง๊ณ ์ ๋๋ก ๋ฐฐ์์ผ๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๋ํด ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ธ๋๋ ๊ณต์ ๋ฌธ์๋ฅผ ์ต๋ํ ํ์ฉ ํด์ผ๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค.
๊ณต์๋ฌธ์๋ง ์ฝ์ด๋ณด๋ฉด ์ ๋ง ์๊ฐ์ ์๋ค์ด๊ณ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ฅผ ํ๋ฃจ๋๊ฒ ํด๊ฒฐํ๋ ค ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋์ ๋ ์ต๋ํ ๊ณต์๋ฌธ์๋ฅผ ์ ํ์ฉํด์ ๊ธฐ์ ์ ์ต๋ ํด์ผ๊ฒ ๋ค๋ ๊นจ๋ฌ์์ ์ป์ ํ์ฃผ์๋ค.
์ด๋ฒ ์ฃผ์๋ WebRTC๋ฅผ ํ์ฉํ ๋ฐฉ ์์ฑ ํํธ๋ฅผ ์ฃผ๋ก ํ๋ค.
๋๋ฆ ์๋ก์ด ๊ธฐ์ ์ ๋์ ์ ํ๋ ์ฃผ์๋๋ฐ, ์ ๋ฒ์ฃผ์ ์์ผ ํต์ ์ ํ๋ ๊ฒฝํ์ผ๋ก๋ง ํ๋ ๋๋์ ์ฝ๋ฉ๋ง ํ ๊ฒ ๊ฐ์ ์กฐ๊ธ ํํ๊ฐ ๋๋ค.
์๋๋ ์ด๋์ ๋ ๊ตฌํ์ ๋๋๋ค๋ ๊ฒ์ ๋ฟ๋ฏํ๋๋ฐ ๋ฉํ ๋ง ์๊ฐ์ ๋ฉํ ๋์ด ๊ธฐ์ ์ ์ง๋ฌธ์ ๋ช ๊ฐ์ง ํ๋๋ฐ, ๊ฑฐ์ ๋๋ต์ ๋ชปํด์ ํ์ต๊ณผ ๊ธฐ๋ก์ด ์ ๋ง ๋ถ์กฑํ๋ค๋ ๊ฑธ ๋๊ผ๋ค.
- useQuery์ useSuspenseQuery์ ์ฐจ์ด์
- socket.io๋ฅผ ์ด์ฉํ ์ฑํ
๊ตฌํ๊ณผ webRTC์ dataChannel์ ์ด์ฉํ ์ฑํ
๊ตฌํ์ ์ฐจ์ด
์์๋ ๋ด๊ฐ ์ง์ ์ฝ๋๋ฅผ ์๋๋ ๋ถ๋ถ์ด๋๊น ๊ผญ ๊ณต๋ถํด์ ์ ๋ฆฌํด๋์์ผ๊ฒ ๋ค.
์์ผ๋ก๋ ๋ง์ด ์๊ฐํ๊ณ ์ข ์๊ณ ์จ์ผ ๊ฒ ๋ค
์ฌ์ ํ ํด๊ฒฐ ๋ชปํ ๋ฒ๊ทธ๋ ์ด์๋ค์ด ์กฐ๊ธ์ฉ ์์ง๋ง ๊ทธ๋๋ ์ด๋ ์ ๋ ์์ฑํ ํฐ๋ผ ๋ฆฌํฉํ ๋ง๋ ์งํํ ์ ์์๋ ์ฃผ์๋ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ์๋์ ์ผ๋ก ๊ตฌํํ ์์ด ์ ์ ํธ ์น๊ณ ์ฝ์ง์ ๋ง์ด ํ๋ค.
ํ์ต ์คํ๋ฆฐํธ ์๋ค๋ฉด ์ถฉ๋ถํ ๊ณต๋ถ ํ์ ๊ตฌํ์ ํด์ ์ด๋ฆฌ์์ ์๋ฌ๋ฅผ ๋ง์ฃผํ์ง ์์์ ๊ฒ ๊ฐ๋ค.
nginx๋ก stun ์๋ฒ๋ก ํ๋ก์ ํ๋ ค๊ณ ํ๋๋ฐ, nginx๋ tcp, http ๊ธฐ๋ฐ์ด๋ผ udp ๊ธฐ๋ฐ์ stun์ ์ง์ํ๊ธฐ์ ์ ํฉํ์ง ์์๋ค.
์ด๊ฑธ ๋ฏธ๋ฆฌ ํ์ตํ์ง ์์ tcp๋ก udp๋ฅผ ํ๋ก์ ํ๋ ค๋ ์ด๋ฆฌ์์ ์๋๋ฅผ ํ๋ค.
์ฃผ๋ง์๋ ์ ๋ถํฐ ํ๊ณ ์ถ์์ง๋ง ๋ชปํด๋ดค๋ ์๋ฒ ๊ณผ๋ถํ ํ
์คํธ๋ฅผ ํด๋ดค๋ค.
ํ์ง๋ง DB ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํ๊ณ , API๋ ๋ณ๋ก ์์ด์ ์ ์๋ฏธํ ํ
์คํธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ง ๋ชปํ๋ค.
6์ฃผ๋ผ๋ ํ์ ๋ ๊ธฐ๊ฐ ๋๋ฌธ์ ๊ธฐ๋ฅ์ ์ฌ๊ธฐ์ ํ๋ฆฌ์ง ํ๊ฒ ์ง๋ง ์ถํ์ ํ๋ก์ ํธ๋ฅผ ์ข ๋ ๋ฐ์ ์ํฌ ๋ ์ฟผ๋ฆฌ ์ต์ ํ์ ์๋ฒ ๊ณผ๋ถํ ํ
์คํธ๋ฅผ ํด๋ด์ผ ๊ฒ ๋ค.
๋ฒ๊ทธ์ ์ฌํฌ๋ฅผ ๋ฒ์ธ ํ์ฃผ์๋ค. ๊ทธ๋์ ๋ฆฌํฉํ ๋ง๊ณผ ๋ง์ด ๋ชปํ์ ๊ณผ ํ
์คํธ์ฝ๋ ์์ฑ์ ๋ชปํ ๋ถ๋ถ์ด ์์ฌ์ ๋ค.
๊ทธ๋ฐ๋ฐ WebRTC ๊ด๋ จ ์ฝ๋๋ฅผ ๊ณ์ ์ฝ๋ค๋ณด๋ ๊ธฐ์ ์ ๋ํ ์ดํด๋๊ฐ ๋ ๋์์ง ๋๋์ด๋ค.
๋ฒ๊ทธ๊ฐ ๋ง์ด ์๊ธด ์ด์ ๋ ์ฌ์ค ๊ธฐ๋ฅ ๊ตฌํ์ ํ ๋ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์์ ํ ํ
์คํธ๋ฅผ ํด๋ณด์ง ์์์ ์๊ธด ๋ฒ๊ทธ๊ฐ ๋๋ถ๋ถ์ด๋ค.
๊ทธ๋์ ์ด๋ฒ์ ํ
์คํธ ์ฝ๋์ ์ค์์ฑ์ ๋ผ์ ๋ฆฌ๊ฒ ๋๊ผ๋ค.
๋, ๋ฆฌํฉํ ๋ง์ ์งํํ ๋๋ ํ
์คํธ ์ฝ๋ ์ /๋ฌด์ ๋ฐ๋ฅธ ๋์ด๋๊ฐ ์์ฒญ๋๊ฒ ์ฐจ์ด๊ฐ ๋๋ค.
์ ์ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํด๋๊ณ ๋ฆฌํฉํ ๋ง์ ํ ๋๋ ์ด๋ ๋ถ๋ถ์ด ์๋ชป ๋์๋์ง ์ ๊ฒฝ ์์ฐ๊ณ ํ
์คํธ ์ฝ๋๋ฅผ ๋ฏฟ๊ณ ์์ ๊ฐ ์๊ฒ ๋ฆฌํฉํ ๋ง์ ์งํํด๋ ๋๋ค.
๊ทผ๋ฐ ์ด๋ฒ์ ํ
์คํธ ์ฝ๋๋ฅผ ์๊ฐ์ด ์๋ค๊ณ ์์ฑ์ ์ํด๋จ๋๋ ๋ฏฟ์๊ฒ ๋ ์์ ๋ฐ์ ์๋๋ฐ ๋ ์์ ๋ ๋ชป๋ฏฟ๊ฒ ์ด์ ๊ณ์ ์ฝ๋๊ฐ ์์ ๋ ๋๋ง๋ค ์๋์ผ๋ก ํ
์คํธ๋ฅผ ํ๋ค.
๊ทธ๋์ ์์ผ๋ก๋ ๊ฐ๋ฐ ์์ ์๊ฐ์ ์๊ฐํ ๋ ํ
์คํธ ์ฝ๋๋ ํจ๊ป ์๊ฐํด์ผ ํ ๊ฒ ๊ฐ๊ณ , ์ ๊ทน์ ์ผ๋ก ์์ฑ์ ํด ๋ด์ผ ํ ๊ฒ๊ฐ๋ค.
๋ง์ง๋ง์ผ๋ก, ์ด ๊ธฐ์ต์ด ํ๋ฐ๋๊ธฐ ์ ์ ์๋กญ๊ฒ ๋ฐฐ์ด, ์๊ฒ๋ ๊ธฐ์ ๋ค์ ๋นจ๋ฆฌ ์ ๋ฆฌ ํด๋์ผ ํ ๊ฒ๊ฐ๋ค.
๐ฎ ํ๋ก๋ฐํฌํฐ
๐ป ํ๋ก์ ํธ
- ์ผ ๋๋ ๋ฌด์ค๋จ ๋ฐฐํฌ ํ ์ ์์ด ๐ซต
- SWAGํ๊ฒ Swagger ์ฌ์ฉํ๋ ๋ฒ ๐ค (Feat. Swagger ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ํ ํจํค์ง ๋ง๋ค๊ธฐ)
- ์ธํฐ๋ํฐ๋ธ ์น: ์นด๋ ์ ๋๋ฉ์ด์
- ๐ป Context API, Provider ์ง์ฅ ๊ทธ๋ฆฌ๊ณ ๊ท์ฌ์ด ๊ณฐ๋์ด ๐ป
- ๐ ๋ณต์กํจ์ ๋จ์ํ๊ฒ, ๋ ๋์ ๊ฒฝํ์ผ๋ก ๐
- UX๋ฅผ ์ํด AI ์ฑํ ๋ฐ์ ์๋๋ฅผ 84.87%๊น์ง ๊ฐ์ ํ ๋ฐฉ๋ฒ ๐
- ์์ผ ์์ด๊ณ ๐ (Feat. socket.io๋ ํ์ฑ์ ํด)
- ๐ ์ ์ ํ์ผ public vs src/assets
- ๐ ์นด์นด์คํก ๊ณต์
- ๐ ์ธํฐ๋ํฐ๋ธ ์น ๊ตฌํ
- ๐ ๋ฐ์ํ ์น - ๋จ์๋ฅผ ์ ์ ํ๊ฒ ์ฌ์ฉํ๊ธฐ
- ๐ชฒ vite์์ tailwindcss ์ ์ฉ ์ด์
- ๐ชฒ tailwind์ ์ฅ๋จ์
- ๐ NCP ์ธํ๋ผ ๊ตฌ์ถํ๊ธฐ
- ๐ GitHub Actions๋ก CI/CD ์๋ํํ๊ธฐ
- ๐ SSL ์ธ์ฆ์ ๋ฐ๊ธ๋ฐ๊ธฐ
- ๐ ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฌด์ค๋จ ๋ฐฐํฌ ๊ตฌํํ๊ธฐ
- ๐ graceful shutdown์ผ๋ก ์ฌ์ฉ์ ๊ฒฝํ ์ ํ ๋ฐฉ์งํ๊ธฐ
- ๐ winston๊ณผ sentry๋ก ์๋ฒ๊ฐ ํฐ์ง๋ ์ด์ ๋ถ์ํ๊ธฐ (+ slack webhook)
- ๐ ์นด์นด์ค ๋ก๊ทธ์ธ ๋์ ํ๊ธฐ
- ๐ health check๋ก ์๋ฒ ์ํ ํ์ธํ๊ธฐ
- ๐ Jest์ Supertest๋ก ์ฝ๋ ๋์ ํ ์คํธํ๊ธฐ
- ๐ ๋์ปค ์บ์ฑ์ผ๋ก ๋น๋์๊ฐ 67% ๊ฐ์ ํ๊ธฐ
- ๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ต์ ํํ๊ธฐ
- ๐ชฒ 521 Web server is down
- ๐ชฒ ๋์ปค ์ปจํ ์ด๋์์ ํธ์คํธ MySQL์ ์ ๊ทผ ๋ชปํ๋ ์ด์