Zero
C++ and C# network server library
Build
Need VisualStudio 2012, 2013, 2015
Description
ํน์ง : ์๋ฒ ์ ์์ ํ์ํ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ค๋ถํฐ ๊ตฌํํ๊ธฐ ๊น๋ค๋ก์ด ๋ณต์กํ ๊ธฐ๋ฅ๋ค ์ด๋ฅผ ํ ๋ฉด ์ฐ๊ฒฐ๊ด๋ฆฌ๋ถํฐ ๋๊ท๋ชจ ์ ์์ด ๊ฐ๋ฅํ ๋ถ์ฐ์๋ฒ ๊ธฐ๋ฅ๊น์ง ์์ฒด ๋ด์ฅํ๊ณ ์์ด ์ฌ์ฉ๋ฒ์ ์ตํ๋ ๊ฒ๋ง์ผ๋ก ์ค์๊ฐ ์๋ฒ๋ฅผ ๋น ๋ฅด๊ณ ๊ฐ๋จํ๊ฒ ์ ์ํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ ๋๊ธฐ ํ๋ผ์ฐ๋๋ท์ ํ์ฌ์์ ์ฝ 2๋ ๊ฐ ์ฌ์ฉํ๋ค๊ฐ ์ด์งํ ๊ฒ์ด ๊ณ๊ธฐ๊ฐ ๋์์ต๋๋ค ์ฌ์ฉํ๋ ๊ธฐ๋ฅ๋ค์ ๊ณ์ ์ฌ์ฉํ๊ณ ๋ ์ถ์๋ฐ(์๋ฅผ๋ค๋ฉด RMI๊ฐ์ ๊ฒ๋ค) ๊ฐ์ธ์ ์ผ๋ก ๊ตฌ๋งคํ๊ธฐ์ ๋๋ฌด ๊ณ ๊ฐ์ด๊ธฐ๋ ํ๊ณ ์๋ก์ด ํ์ฌ์์๋ ์์ง ๊ตฌ๋งคํ ์์ฌ๊ฐ ์์์ ํ์ธํ๊ณ ๊ทธ๋ ๋ค๋ฉด ํ๋ฒ ์ง์ ๋ง๋ค์ด ๋ณด์๊ณ ์๊ฐํ์ฌ ๋ฌด์์ ๊ฐ๋ฐ์ ์์ํ์์ต๋๋ค
๊ทธ๋ ๊ฒ ๊ฐ์๊ธฐ ๊ฐ๋ฐ ์์ํ ๊ฒ์ด ์ญ ์๋ ๊ฐ ์ฌ๋ฌ ์๋ฒ๋ค์ ๊ฐ๋ฐํ๊ณ ์์ฉํํ ๊ฒฝํ์ ํตํด ์งง์ ์๊ฐ์ ์๊ฐ๋ณด๋ค ๋ง์กฑ์ค๋ฌ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์์ต๋๋ค
์ฌ์ค ์ฒ์๋ถํฐ ๋คํธ์ํฌ ์์ง์ ๊ฐ๋ฐํ๋ ค๋ฉด ๋ ธํ์ฐ๋ ๋ฌผ๋ก ๋ง์ ์๊ฐ์ด ํ์ํ ๊ฒ์ด ํ์ค์ ๋๋ค ๊ฒ๋ค๊ฐ ์ธ๋งํ ์์ง๋ค์ ๋น์ฉ์ ๋ฌผ๋ก ๋ผ์ด์ผ์ค ๋ฌธ์ ๋ก ๋ณต์กํ๋ฉฐ ํ๊ฐํ ๋ฑ์ ๊ธฐ๋ฅ์ ํ์ด ๊ฑธ๋ ค ์์ด ์ฌ์ฉํ๊ธฐ ์ฝ์ง ์์ต๋๋ค ๋ฐ๋ผ์ ๊ฐ์ธ์ ์ฉ๋๋ก ๊ฐ๋ฐํ์์ผ๋ ์ฝ๊ฒ ์๋ฒ ์ ์์ ์ํ๋ ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.
์๋์ฐ์ฉ C++์๋ฒ์ C#์๋ฒ๋ฅผ ๋งค์ฐ ๊ฐ๋จํ ์ ์ํ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ์ ํ์ฌ ์๋์ฐ์ฉ C++๊ณผ C#์ ์ง์ํ๊ณ ์ถ๊ฐ๋ก ๊ธฐํ ๋ฉํฐํ๋ ํผ์ ์ํ Net3.5์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Unity์ฉ Package๋ ๋ด์ฅํ๊ณ ์์ด ๋ชจ๋ฐ์ผ์์๋ ์ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค
๋ค๋ง ๋ฌด๋ฃ์ธ ๋งํผ ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ฌธ์ ๋ ์ฑ ์์ ๋น์ฐํ ์ฌ์ฉ์ ๋ณธ์ธ์๊ฒ ์์ผ๋ฏ๋ก ๋ง์ฝ ์์ฉ ํ๋ก์ ํธ์ ์ฌ์ฉ์ ์์ ์ ๊ธฐ๋ฅ๋ค์ ์ถฉ๋ถํ ๊ฒํ ํ์ ํ ์ ์คํ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค (์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์งํ์ค์ธ ๊ฐ์ธ ํ๋ก์ ํธ๊ฐ ์๋ ๋งํผ ์ ๋ฐ์ดํธ๋ ์ง์์ ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ณํ์ ๋๋ค)
๊ฐ๋ตํ ์์ฝํ๋ฉด ๋ฌด๋ฃ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด์ง๋ง ์์ฉ ์์ง ์์ค์ ๊ธฐ๋ฅ๋ค๊ณผ ๊ทธ ์ธ ์ฌ๋ฌ ํธ๋ฆฌํ ๊ธฐ๋ฅ๋ค์ ๋ด์ฅํ๊ณ ์์ต๋๋ค. ์ด๋ฅผ ํ ๋ฉด..
์๋ฒ ์ ์ฅ/ํด์ฅ ๊ฐ์ ๊ธฐ๋ณธ์ ์ด์ง๋ง ๊น๋ค๋ก์ด ๊ธฐ๋ฅ์ ๋จ์ํ ์ฒ๋ฆฌ ๋ถํฐ, ๋ชจ๋ฐ์ผ ๋ฐ ์ฅ์ ์์ ์ฐ๊ฒฐ๋ณต๊ตฌ ๊ฐ์ ํธ๋ฆฌํ ๊ธฐ๋ฅ๋ค, ๋ณต์กํ๊ณ ๊ตฌํํ๊ธฐ ์ด๋ ค์ด ์๋ฒ๊ฐ์ ์ ์ ์ด๋์ฒ๋ฆฌ์ ๋๊ธฐํ ๊ธฐ๋ฅ์ ๋ด์ฅํ์ฌ ๋๊ท๋ชจ ๋์ ์ ๋ฐ์ ์ ์๋ ์์ ์ ์ธ ๋ถ์ฐ ์๋ฒ๊น์ง ์ฝ๊ฒ ์ ์ํ ์ ์์ต๋๋ค
์ฌ๋ฌ ๊ธฐ๋ฅ๊ณผ ์ฌ์ฉ๋ฒ์ ์์ ํ๋ก๊ทธ๋จ์ ํตํด ํ์ธํ ์ ์์ต๋๋ค ์์ ๋ ํ์ฌ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋์ด ์์ต๋๋ค
-
Echo.sln : ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ฝ ์๋ฒ ์ํ
-
Sample.sln : ์ฐ๊ฒฐ์ฅ์ ๋ ๋ชจ๋ฐ์ผ์ฉ ์ฐ๊ฒฐ๋ณต๊ตฌ, SQL ๋ฐ ๋น๋๊ธฐ ์ฟผ๋ฆฌ ์ฌ์ฉ๋ฒ(C++์ฉ SampleServer)
-
ServerP2P.sln : ์๋ฒ๊ฐ ํต์ ์๋ํ, ๋ถ์ฐ ์๋ฒ ๊ตฌ์ถ(์๋ฒ๊ฐ ๋ก๋๋ฒจ๋ฐ์ฑ + ์๋ฒ์ด๋ ์๋ํ + ์ ์ ๋ฐ์ดํฐ ์๋ ๋๊ธฐํ ์ฒ๋ฆฌ)
-
Udp.sln : ์๋ฒ/ํด๋ผ์์ udpํฌํธ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ํจํท ์ก์์ ์ udp๋ฅผ ์ฝ๊ฒ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค
-
Group.sln : ๊ทธ๋ฃน์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ(์์ฑ/ํฉ๋ฅ/ํํด/ํ๊ดด/๊ทธ๋ฃน๋ฉ์ธ์ง)์ ๋ณด์ฌ์ค๋๋ค
-
CasualServer.sln : ์บ์ฅฌ์ผ ์๋ฒ ์ํ (๋ก๊ทธ์ธ/๋ก๋น/๋ฃธ ์๋ฒ๋ก ์ด๋ฃจ์ด์ง ์๋ฒ์์ ๊ฐ๋จํ ๋ฐฉ ๋ง๋ค๊ธฐ์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค, ์ถ๊ฐ๋ก ๋ฃธ์๋ฒ์ ๋ก๋น์๋ฒ๊ฐ์ ๋งค์ฐ ๊ฐ๋จํ ํต์ ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ ๋ฐ์ดํฐ๊ฐ ๋๊ธฐํ ๋๊ณ ๋ฃธ์ด ๋ถ์ฐ ๊ด๋ฆฌ๋๋ ๋ฐฉ๋ฒ๋ค์ ๋ณด์ฌ์ค๋๋ค)
-
Sample2/Sample2.sln : C#์ Async/Await์ ํ์ฉํ์ฌ ๋ฉํฐ์ค๋ ๋ ๋๊ธฐํ ๋ฌธ์ ๋ ์ฝ๋ฐฑ์ง์ฅ์ด ์๋ ์๋ฒ๋ฅผ ๊ฐ๋จํ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค
์ฐธ๊ณ ํ๊ฑฐ๋ ๊ด๋ จ ์ฝ๋๋ฅผ ์ง์ ์์ ํ์ฌ ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชฉ๋ก์ ์๋์ ๊ฐ์ต๋๋ค
- ADO ๋ผ์ด๋ธ๋ฌ๋ฆฌ C++ (๋ค์ด๋ฒ๊นํ ์จ๋ผ์ธ์๋ฒ์ ์๋ชจ์ ๋ฌด๋ชจ๋์ ์)
- FreeNet (๊ฒ์์ฝ๋ ํํ์๊ทธ๋ผ์ด๋๋ ์ ์) C#
Function
ํ์ฌ ์ง์ํ๊ฒฝ : VS 2012ํ์ (2013, 2015์ฉ lib๋ณ๋ ํฌํจ)
- C++ ์๋ฒ(w32/x64)
- C# ์๋ฒ(w32/x64)
- C++ ํด๋ผ์ด์ธํธ(w32/x64)
- C# ํด๋ผ์ด์ธํธ(w32/x64)
- C# ํด๋ผ์ด์ธํธ(๋ฉํฐํ๋ ํผ์ฉ .Net 3.5์ด์)
- Unity (Window, Mac, IOS, Android)
ํจํท๊ด๋ จ ๊ธฐ๋ฅ
- ๊ธฐ๋ณธ์ฒ๋ฆฌ : ๋จ์ ์ง๋ ฌํ
- ์์ถ์ฒ๋ฆฌ
- ์ํธํ : ์์ฒด์๊ณ ๋ฆฌ์ฆ/AES/RSA
- RMI ๊ธฐ๋ฅ
- ํด๋์ค Serialize ์๋ํ (์ฌ์ฉ์ ์ค์ ๋ฐฉ์ง)
- Loopback ๊ธฐ๋ฅ (์ปค๋ฅ์ ๋ณ ์ค๋ ๋ ์์๋ณด์ฅ)
- TCP ๋ฐ UDP์ต์ (์๋ ํํ์นญ, ํจํท ์์ ๋ณด์ฅ, ์ค๋ ๋ ์์๋ณด์ฅ, Relay์ง์)
์๋ฒ ์ ์ ๊ด๋ จ๋ถ๋ถ ์๋ํ
- ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ ์ ์ฅ/ํด์ฅ 2๊ฐ์ง ์์ฒญ๋ง์ผ๋ก ์ ์๊ด๋ จ ๊ณผ์ ๋จ์ํ (๋ด๋ถ์ ์ผ๋ก ๋ณต์กํ ๋ถ๋ถ๊ณผ ์์ธ์ํฉ์ ์๋์ฒ๋ฆฌ) -> ์ฐ๊ฒฐ/์ฐ๊ฒฐ์คํจ, ์ฐ๊ฒฐ์ธ์ฆ๊ณผ์ , ์ฐ๊ฒฐ๋ณต๊ตฌ, ์ฐ๊ฒฐ์ข ๋ฃ/๊ฐ์ ์ข ๋ฃ ๋ฑ ์ ์๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๊ณผ์ ์ ์๋์ผ๋ก ์ฒ๋ฆฌ ํด๋ผ์ด์ธํธ์ ๋น์ ์์ ์ธ ์ข ๋ฃ์ ๋์ ํ๊ณ์ ์ ์์๋์ ๊ฐ์ ์์ธ์ํฉ๊น์ง ์๋ ์ฒ๋ฆฌ
๊ทธ๋ฃน ํต์ ๊ธฐ๋ฅ ๋ด์ฅ
- ๊ทธ๋ฃน ์์ฑ/๊ฐ์ /ํํด/ํ๊ดด ๋ช ๋ น ์ ๊ณต
- ๊ทธ๋ฃน ํต์ ๋ฉ์ธ์ง ๊ธฐ๋ฅ
์ ์ ๋คํธ์ํฌ ์ฅ์ /์ ํ ์๋๋ณต๊ตฌ ๊ธฐ๋ฅ
- ์ผ์์ ๋คํธ์ํฌ ์ฅ์ ๋ ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ ์ ํ์(3G/WIFI) ์๋ ๋ณต๊ตฌ๋ฅผ ์ํ ์ฆ์๋ณต๊ตฌ ํจ์ ๋ด์ฅ : ๋ชจ๋ฐ์ผ ์ฐ๊ฒฐ ์ ํ ๊ฐ์ง๋ ํ์ฌ ๊ธฐ๊ธฐ๋ณ๋ก ์ง์ ๊ฐ์งํํ ๋ณต๊ตฌ ํจ์๋ฅผ ํธ์ถ ํด์ผํฉ๋๋ค(IOS๊ฒฝ์ฐ Reachability๋ก ๊ฐ์ง๊ฐ๋ฅ) (์ฌ๋ฌ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ฅผ ๊ตฌ์ ํ์ฌ ๊ฐ์ง๊น์ง ์์ ์๋ํ ํ๊ณ ์ถ์์ผ๋ ๊ธ์ ๋ฌธ์ ๋ก..)
- ์ฅ์ ์๊ฐ ๋์์ ์์ค๋ ๋ชจ๋ ํจํท๋ค์ ์๋์ผ๋ก ๋ณต์ํด์ค๋๋ค
- ๋น ๋ฅธ ๋ณต๊ตฌ ๊ธฐ๋ฅ : ์๋ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ธ์ ์ถ๊ฐ๋ก ์ฆ์๋ณต๊ตฌ ํจ์์ ๊ณต, ์๋ฒ์ธก ๋๊น ๊ฐ์ง ์ด์ ์๋ ์ฆ์๋ณต์(0.5์ด ์ด๋ด)
- ๋ค์ํ ๋ณต๊ตฌ ์ต์ (์ฐ๊ฒฐ ๋ณต๊ตฌ ์ต๋ ์ ํ์๊ฐ ์กฐ์ ๋ฐ ์ฌ๋ฌ ๋ณต๊ตฌ์คํจ ์ ์ฑ ์ต์ )
๋ถ์ฐ์๋ฒ ๊ธฐ๋ฅ
- ์๋ฒ๊ฐ ์ฐ๊ฒฐ๊ณผ ํต์ ๊ธฐ๋ฅ ์๋ํ
- ์๋ฒ ์ด๋ ์๋ํ : ์๋ฒ๊ฐ ์๋ ๋ก๋๋ฒจ๋ฐ์ฑ, ์ ์ ๋ฐ์ดํฐ ๋๊ธฐํ ๊ธฐ๋ฅ ๋ด์ฅ, ์ธ์ฆํค ์๋ ๊ด๋ฆฌ
๋ฉํฐ์ฝ์ด ํ์ฉ
- ๋ชจ๋ ์คํ ๋ถ๋ถ์ ๋ฉํฐ์ค๋ ๋ ์ ์ฉ
- ๋ฉํฐ์ค๋ ๋ ์คํ์ ๋ชจ๋ ์ปค๋ฅ์ ์ ๋ํด ๋ ๋ฆฝ์ ์ธ ์ค๋ ๋์์๋ง ์คํ๋จ์ ๋ณด์ฅํจ (์ค๋ ๋ ๋๊ธฐํ ๋ฌธ์ ํด๋ฐฉ)
- ๋ชจ๋ ์ปค๋ฅ์ ๊ณผ ์ด๋ฒคํธ์ ๋ํด ์๋์ผ๋ก ์ค๋ ๋ ๋ก๋ ๋ฐธ๋ฐ์ฑ ์ฒ๋ฆฌ (์ค๋ ๋ ์์ ๋ณด์ฅ๋จ)
- ์ฌ์ด ๋ฉํฐ ํ๋ก์ธ์ค ์ ์ฉ : ์๋ฒ๊ฐ ํต์ + ๋ก๋๋ฒจ๋ฐ์ฑ ๊ธฐ๋ฅ ํ์ฉ
- ์ฑ๊ธ ์ค๋ ๋ ๋ชจ๋ธ ์ง์ : ๋ก์ง๋ฟ๋ง ์๋๋ผ ์ด๋ฒคํธ, ๋น๋๊ธฐ๊ฒฐ๊ณผ, ์๋ฒ๊ฐ ํต์ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ๊น์ง ์๋ฒฝํ ์ฑ๊ธ์ค๋ ๋ ์คํ์ ๋ณด์ฅ
๋น์ค๋ณต ์ค๋ ๋ ์คํ์ด ๋ณด์ฅ๋๋ ๋น๋๊ธฐ ํจ์ ๋ด์ฅ
- ๋ฉํฐ์ค๋ ๋ ํ์ฉ๊ณผ ๋์์ ํด๋น ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ค๋ ๋ ๋๊ธฐํ ๋ฌธ์ ์์ด ๊ณ ์ฑ๋ฅ ์๋ฒ๋ฅผ ์ฝ๊ฒ ์ ์ ๊ฐ๋ฅํฉ๋๋ค
- ๋น๋๊ธฐ ์์ฒญ๊ณผ ๊ฒฐ๊ณผ์ฒ๋ฆฌ๋ฅผ ์๋ํ
- ๋น๋๊ธฐ ์์ฒญ์ ํน์ ์ปค๋ฅ์ ์ ์ง์ ์ ๊ฒฐ๊ณผ ์คํ ์์ ์ ์ค๋ ๋ ์คํ์ ๋ํ ๋น์ค๋ณต์คํ์ ๋๊ธฐํ ๊ฐ์ฒด ์์ด ๋ณด์ฅํด์ค -> SQL Query, SP ๋น๋๊ธฐ ์คํ ํจ์ ๋ด์ฅ -> ์ฌ์ฉ์ ์ ์ ๋น๋๊ธฐ ์์ฒญ ์ฒ๋ฆฌ