๋ฐฐ๊ฒฝ ์ง์์ ๋์๊น์ง ํด๋ณด์..
๋ณดํต ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด์ ์ธ๋ถ ํ๋ก์ธ์ค์ ํต์ ์ ์ํํด์ผ ํ๋๋ฐ
OS ์์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ๋ฆฝํฐ ์ธํฐํ์ด์ค ๋ฑ์ผ๋ก ์ ๊ณตํ๋ค..
์ฌ๊ธฐ์ ๋คํธ์ํฌ๋ก ์ฐ๊ฒฐ๋ ๋ค๋ฅธ ์ปดํจํฐ๋ ์ฐ๊ฒฐํ๋ ๊ฒฝ์ฐ๋ ์ฃผ์ ์ ๋ณด์ ํจ๊ป ์์ผ ๋์คํฌ๋ฆฝํฐ๋ฅผ ์์ฑํด์ ์ฌ์ฉํ๋ค..
์์ผ์ ์ด์ฉํ ํต์ ์ ๋ํ์ ์ผ๋ก HTTP ๋ฅผ ํตํด 1ํ์ฑ ์ธ์ ์ ๋ง๋ค์ด์ ๋ค๋ฅธ ์ปดํจํฐ๋ก๋ถํฐ ์ ํด์ง ์ ๋ณด๋ฅผ ๋ฐ์์ค๊ฑฐ๋
์๋๋ฉด TCP, UDP ๋ฅผ ํตํด Keep alive ํ์์ผ๋ก ์ฐ์๋ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค..
์ด๊ฑธ ํ์ฉํ๋ฉด ๊ฒ์์์ ๋๋ต ๋ค์๊ณผ ๊ฐ์ ํ์์ ๊ตฌ์ฑ ํ ์ ์๋๋ฐ..
REST: ์ฃผ์๋ก ๋ ธ์ถ๋ ํน์ ์์์ ์ ๊ทผํจ
์น์์ผ: TCP ๋ฅผ ํตํด HTTP ๋ฌธ์๋ฅผ Keep-alive ํ์์ผ๋ก ์ฃผ๊ณ ๋ฐ์ HTTP ๋ ์ด์ด์์ย ์ธ์ ์ ์ ์ง
RPC: TCP, UDP ๋ฅผ ํตํด ๋ค๋ฅธ ์ปดํจํฐํํ ํน์ ํ๋ก์ธ์ค์ ์ด๋ค ๋ก์ง์ ์ด์ด๋ฌ๋ผ๊ณ ์์ฒญ ํ ์๋ต์ ๋ฐ์.ย
์์ฒญ ์ธก์์๋ ๋ก์ง์ ์๊ทธ๋์ณ๋ง ์ธ์งํ๊ณ ์์.
์ ๋ํฐ์์ ์ ๊ณตํ๋ ๋ฉํฐํ๋ ์ด ํจํค์ง๋ฅผ ์์๋ณด์
์ ๋ํฐ์์๋ HttpClient ๊ฐ ๊ฐ์ ๋์ง ์๊ธฐ ๋๋ฌธ์ ๊ตณ์ด ์น์์ผ์ ์ธ ์ด์ ๊ฐ ์๋ค..
ํต์ ํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ผ๋ฆฌ ์์ผ์ ์ฐ๊ฒฐํด์ ํต์ ํ๊ธฐ๋ง ํ๋ฉด ๋๋ค..
๊ทธ๋ฌ๋ค๋ณด๋ ์ ๋ํฐ์์ ์ ๊ณตํ๋ ๋ฉํฐํ๋ ์ด ํจํค์ง์ ๋ชจ์ต์
์๋ฒ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ต๋ํ ๋ฐฐ์ ํ๋ฉฐ
๋น์ฆ๋์ค ๋ก์ง์ด ์ถ๊ฐ๋๋ ํด๋ผ์ด์ธํธ ๋ด GameObject ์ Behaviorย ๊ฐ์ฒด๋ค์ ๋ํด์
๋๊ธฐํํ๊ณ ์ ํ๋ ๊ฐ์ฒด๋ฅผ NetworkBehavior ๋ก ์ ์ํ์ฌย
ํด๋น ๊ฐ์ฒด๋ ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ์๋ฎฌ๋ ์ด์ ์ ํตํ ๋ณด๊ฐ + ๋คํธ์ํฌ์ ๊ฐ์ด ๋ฐํ๋๋ฉด ๋๊ธฐํย ํ๋ ํ์์ผ๋ก ๋์ํ๋ค.
ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ๋ฐํ๋ ์ ์ฅ์์ ๋งค์ฐ ๋จ์ํ๊ณ ์ ์ฉํด๋ณด์ด์ง๋ง, ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฏผํด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
- ๊ฒ์์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ณด์ ์ด์๊ฐ ์๋์ง.. (ex: ํน์ ์ํ์์๋ง ์ฌ์ฉ ํ ์ ์๋ ๋ก์ง์ ํด๋ผ์ด์ธํธ ๋ณ์กฐ๋ฅผ ํตํด ๋ง๋๋ก ์ฌ์ฉํ๋ค.)
- Network ๊ฐ์ฒด๋ค์ Life cycle์ ์ด๋ป๊ฒ ๋ ๊น.. (์ธ์ ์์ฑ๋๊ณ , ์ธ์ ์๋ฉธํ๋? ์์ธ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋๋? ์์กด์ฑ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ฆญ์ด ๋ฐ์ํ์ง ์์๊น?)
- ๋๊ธฐํ์ ์ง์ค๋ ํต์ ์ธ ๋งํผ, ๋์ญํญ ์ฑ๋ฅ์ ์ด๋จ์ง.. (ex:ย ์ธ๋ฒคํ ๋ฆฌ๋ ์บ๋ฆญํฐ ์ ๋ณด์ ๊ฐ์ด, ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ์ด๋ฉฐ ๊ฒ์ ํ๋ ์ด์ ๊ด๊ณ์๋ ์ ๋ณด๋ ๋ณ๋๋ก HttpClient ๋ฅผ ์ ์ํด์ ๋น๋๊ธฐ๋ก ๊ฒ์ผ๋ฅด๊ฒ ๊ฐฑ์ ํ๊ฒ ๋๋ ์ฃผ๋ฉดย ๋๊ธฐํ ์ฑ๋ฅ์ด ๋ ์ข์์ง ๋ฏ ํ๋ค.)
๊ฒ์์ ์ํฌํ๋ก์ฐ์ ๋ํ ๋๊ธฐํ๋ ๊ฐ ํจํค์ง๋ง๋ค Manager ํด๋์ค๋ฅผ ์ ๊ณตํ๋๋ฐ ์ด๊ฑธ ์ด์ฉํด์ ํด์ผํ๋ ๊ฒ ๊ฐ๋ค..
์ ๋ํฐ์์ ๋์ค์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฉํฐํ๋ ์ด ํจํค์ง๋ 3๊ฐ๋ก
Unity MLAPI: ์๋ก ๋ง๋ ์คํผ์ ํจํค์ง
ย - ์ง๋ค ์ค๋ช ์ผ๋ก ๋ค๋๋ค๋๋ฐ ์ถ์ธก์ปจ๋ฐ ์ ๋ ๊ทธ๋ ์ง ์์ ๊ฒ ๊ฐ๋ค.
ย ย - ๋์จ์ง ์ผ๋ง ์๋ฌ๊ธฐ ๋๋ฌธ์ด๋ค.
ย - ๊ทธ๋์ ์์ง ๋ฌธ์๋ย ์์ฝ์ด๋ด
Mirror: UNet ์ด deprecated ๋๋ฉด์ ์ด๋ฅผ ํฌํฌํด์ ๋ง๋ค์ด๋ธ ์คํ์์คย ํจํค์ง
ย - ํด๋ผ์ด์ธํธ ๊ธฐ๋ฐ ๋ฉํฐ ํ๋ ์ด ํ๊ฒฝ์ ๊ธฐ๋ํ์ฌ ๋ง๋ ํจํค์ง
ย ย - P2P, Host (Listen) ์๋ฒ ํ์
ย ย - ๋๊ธฐํ ๋์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ธ๋ฉํด์ RPC, SyncVar ๊ธฐ๋ฒ์ผ๋ก ๋๊ธฐํํ๋ค(?)
ย ย - ํ๋ซํผ๋ณ RUDP ์คํ์ ํ๋กํ ์ฝ ์ง์ํจ
ย ย - ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ฐ๋์ผ์ดํ ํ๋๊ฒ ๋ถ๊ฐ๋ฅํ์ง ์์
ย - ํํ ๋ฆฌ์ผ์ ๋ช๊ฐ ๋๋ ค๋ณด๋ ํฌํค์ ๋นํด ๋ฐฐํฌ, ์๋ํ๊ฐ ๊น๋ค๋ก์ธ ๊ฒ ๊ฐ๋ค.
Photon:ย
ย - ๋ย ํจํค์ง (BOLT ์ PUN) ๊ฐ ์ง์๋๋ค. ๋์ ๋น๊ตํ๋ ํ์ด์ง๊ฐ ์๋ค:ย https://doc.photonengine.com/ko-kr/pun/current/reference/pun-vs-bolt
ย ย - PUN: ์ง๋ ฌํ ๋ชจ๋ธ์ ์์ฑ (ProtoBuf ๊ฐ์๊ฑด๊ฐ?) ๊ณผ RPC ํธ์ถ์ ์ค์ฌ์ผ๋ก ๋ฐฐํฌ๊ฐ๋ฅํ ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ฉํฐํ๋ ์ด๋ฅผ ์ฐ๊ฒฐ
ย ย - BOLT: ๋๊ธฐํ ๊ธฐ๋ฒ์์ฒด๋ PUN ๊ณผ ๋ค๋ฅด์ง ์์.ย
ย ย ย ย - ์ธ์ ๊ฐ High performance ๋ฅผ ๋ชฉํ๋ก ํ๋ค๊ณ ์๊ฐํ๊ณ ์๋ค.
ย ย ย ย ย - P2P, Host ์๋ฒ ํ์
ย ย ย ย ย - ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ ํจํค์ง
๊ฒฐ๋ก :
ย - ๊ฐ๋ณ๊ณ , ๋๊ธฐํ ๋ชฉ์ ์ ์ฑํฅ์ ๊ฐ์ง๋ ํต์ ์ ๋ํด์ ์ ๋ํฐ์์ ์ ๊ณตํ๋ RPC ํจํค์ง๋ฅผ ์ฌ์ฉํ์.
ย - ์ ์ ์ ๋ณด๋ ์น ์๋น์ค ํ์์ผ๋ก ๋ง๋ค์ด์ ์ ๊ณตํ๋ ๊ฒ์ด ํจ์ฌ ์ ํฉํด๋ณด์ธ๋ค.
ย - ์ํ๋ ๋ฉํฐํ๋ ์ด ๋ชจ๋ธ์ ๋ฐ๋ผ ๊ฐ ํจํค์ง๋ฅผ ํ์ฉํด๋ณด์.
ย - P2P, Host ์๋ฒ: Mirror, Bolt
ย - Dedicated ์๋ฒ: PUN
๋ ์์๋ณด๊ณ ์ถ์ ๊ฒ:
ย - Mirror ์ Bolt ์ ์คํ ๋น๊ต
ย - Bolt API์ PUN API ๋ ์ ์ฌํ ๊น? (์ ์ง ๊ทธ๋ด ๊ฒ ๊ฐ๋ค.)
ย - Analytics ์๋ฒ๋ ์ด๋ป๊ฒ ๋ง๋ค๊น
๋ฏธ๋ฌ๊ฐ ๋ฐ๋์ ํจ์ฌ ์ ํฉํ๊ณ pun์ ๊ทธ๋ฅ ๋ฆด๋ ์ด์๋ฒ์ฉ์ ๋๋ค
mlapi๋ ์ ๋ํฐ๊ฐ ์ฌ์ค๋ฉด์ ์๋ ์๋ ๊ธฐ๋ฅ๋ ๋ง์ด ์์ ๊ณ ๊ธฐ๋ฅ ์์ฒด๊ฐ ๋๋ฌด ๋ถํธํด์(๋ ์ ๋ํฐํด๋ฒ๋ ธ๋ค) ์ถ์ฒํ๊ธฐ ์ ๋งคํ์ง๋ง ๊ณต์ ์ง์์ด๋ฏ๋ก ์ฐ๋๊ฒ ๋์์ง ์์๋ฏ ํฉ๋ค๋ค.(์ ํฌ ํ์ pun -> mirror -> mlapi ์์ผ๋ก ์ฎ๊ฒจ๊ฐ๋ฉด์ ๊ฐ๋ฐ์ค์ ๋๋ค)
๋ฐฐํฌ ์๋น์ค์ ๋ํ ์ง์์ด ์ ๋ฌดํ๊ณ ํดํน์ ์ทจ์ฝํด๋ ํฐ ์๊ด ์์ผ๋ฉฐ ๊ฒ์ ์ธ์ ์ธ์์๊ฐ ๋ง์ง ์๊ณ ๊ฒ์ ๊ธฐ๋์์ต์ด ์ด๋์ ๋ ๋์์ ๋น์ฉ ๊ฒฐ์ ๊ฐ ๊ฐ๋ฅํ๋ค => pun ๋ฐ๋๋ ํด๋ณด๊ณ ์ถ๊ณ ๋ ์ ์ฉ ์๋ฒ๊ฐ ์๊ฑฐ๋ ํด๋ผ์ฐ๋ ์ง์์ด ์ด๋์ ๋ ์์ผ๋ฉฐ ์ ๋ํฐ ์๋ฒ๋น๋๋ก ๊ฐ๋จํ ๋ฐ๋ ์๋ฒ๋ฅผ ๊ตฌํํ๊ณ ์ถ๋ค => mirror or mlapi
์๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ฒ์ ๋ฐฐ์ฐ๋๋ฐ ๋์์ด ๋ง์ด ๋ฌ์ด์..
> ๋ฐฐํฌ ์๋น์ค์ ๋ํ ์ง์์ด ์ ๋ฌดํ๊ณ ํดํน์ ์ทจ์ฝํด๋ ํฐ ์๊ด ์์ผ๋ฉฐ ๊ฒ์ ์ธ์ ์ธ์์๊ฐ ๋ง์ง ์๊ณ ์ด ๋ถ๋ถ์ด ์คํ๋ ค Bolt ๋ Mirror ์ P2P ํ๊ฒฝ ๊ฐ๋ฐ์ ์ ํฉํ ์กฐ๊ฑด์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, ๊ทธ๋ ์ง ์๊ตฐ์..
p2p๋ ๋ ผ์ธ๋ก ๋์ฉ๋๋ค. ๋ชจ๋ ๊ฑธ p2p๋ก ๋ง๋๋ ๊ฒฝ์ฐ๋ ์์ฆ์ ๊ฑฐ์ ์์ด๊ฐ์ง๊ตฌ์(ํธ์คํธ ๋ง์ด๊ทธ๋ ์ด์ ๋ฑ ์ด์๋ฅผ ๊ตฌํํ๋๋ ๋ฆด๋ ์ด ์๋ฒ๋ฅผ ๋๊ณ pun์ผ๋ก ๊ฐ๋๊ฒ ํฉ๋ฆฌ์ ์ผ๋ก ๋ณด์ด๊ธด ํฉ๋๋น)
๋ณผํธ๋ ์จ๋ณด์ง ์์์ง๋ง ๊ฐ์ข ๋ณด๊ฐ์ฒ๋ฆฌ ์ด์๋ฅผ ๋ค ๊ตฌํํด ๋๋ค๊ณ ๋ ํ๋๊ตฐ์ฌ ์ธ์ ํ ๊ฒ์์ด๊ณ ๊ท๋ชจ๊ฐ ํฌ์ง ์๋ค๋ฉด ๊ณ ๋ คํด๋ณผ๋ง ํ ๊ฒ ๊ฐ๋ค์ฌ