[C++๊ณผ ์ธ๋ฆฌ์ผ๋ก ๋ง๋๋ MMORPG ๊ฒ์ ๊ฐ๋ฐ ์๋ฆฌ์ฆ] Part4: ๊ฒ์ ์๋ฒ
๋คํธ์ํฌ/๋ฉํฐ์ฐ๋ ๋/์ด์์ฒด์ ๋ฑ ํต์ฌ ์ ๊ณต ์ง์์ ๊ณต๋ถํ๊ณ ๊ฒ์ ์๋ฒ๋ฅผ ๋ฐ๋ฅ๋ถํฐ ๋ง๋ค์ด๋ณด๋ฉด์ MMORPG ๊ธฐ์ ์ ํ์ตํ๋ ๊ฐ์์ ๋๋ค. ์ ์ ์๋ฒ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์์ผ ์ ๋ฐ์ ์ธ ์ง์์ ๋ชจ๋ ํ์ด๋ณด๊ธฐ์ ์ด๋ ํ๋ก์ ํธ์ ํฉ๋ฅํ๋๋ผ๋ ๋นํฉํ์ง ์๊ณ ์ ์ํ ์ ์๋ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ์๊ฒ ๋ฉ๋๋ค.
์๊ฐ์ 2,422๋ช
๋์ด๋ ์ค๊ธ์ด์
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ๋ฏธํด๊ฒฐ
Memory Pool์์ ์ค๋ฒํ๋ก์ฐ ์ง๋ฌธ์ ๋๋ค.
์ด์ ์ StompAllocator์์ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋๋นํ์ฌ ํ ๋น๋ฐ์ ํ์ด์ง์ ๋์ ๋ฐ์ดํฐ๋ฅผ ์์นํ๋๋ก ํ์๋๋ฐ, ๋ผ์ด๋ธ ์๋น์ค์์ ๋ฉ๋ชจ๋ฆฌ ํ์ ์ฌ์ฉํ ๋ ๋ฐ์ดํฐ ๋ค์ ์ค๋ฒํ๋ก์ฐ ๋ฐฉ์ง๋ฅผ ์ํด ๊ฐ๋๋ฅผ ๋ถ์ด๊ธฐ๋ ํ๋์?</p
๋คํธ์ํฌMMORPGwindows-serverํ์ฒ
ใป
23์ผ ์
0
64
2
- ๋ฏธํด๊ฒฐ
ํฌํ ํด๋ฆฌ์ค ๋ฐ ์ง๋ก ๊ด๋ จํ์ฌ ๊ณ ๋ฏผ์ ๋๋ค.
ํ๋ก์นด๋ฐ๋ฏธ 3์ฝ์ค๋ฅผ ๋ง์น๊ณ , ํฌํ ํด๋ฆฌ์ค ๊ตฌ์ฑ ๋ฐ ์ทจ์ ์ค๋น์ ๋ค์ด๊ฐ๋ ์ค์ ๋๋ค ํ๋ก์นด๋ฐ๋ฏธ ๋๋ถ์
๋คํธ์ํฌMMORPGwindows-serverํฌํ ํด๋ฆฌ์ค์ฉ๊ธฐ์๋ ์ฒญ๋
ใป
ํ ๋ฌ ์
0
114
1
- ๋ฏธํด๊ฒฐ
ํฌํ ํด๋ฆฌ์ค ๊ด๋ จ ๊ณ ๋ฏผ์ ๋๋ค.
ํ์ฌ ํ๋ก์นด๋ฐ๋ฏธ 3์ฝ์ค๋ฅผ ์๋ฃํ๊ณ , ํฌํ ํด๋ฆฌ์ค ๊ตฌ์ฑ ๋ฐ ์ทจ์ ์ค๋น์ ๋ค์ด๊ฐ๋ ์ค์ ๋๋ค ํ๋ก์นด๋ฐ๋ฏธ ๋๋ถ์ ๊ธฐ๋ณธ๊ธฐ ๋ฐ ์ปดํจํ ์ ์ฌ๊ณ ๋ ฅ์ ๋ง์ด
๋คํธ์ํฌMMORPGwindows-serverํฌํ ํด๋ฆฌ์ค์์ฑ์ ์์
ใป
ํ ๋ฌ ์
0
63
1
- ๋ฏธํด๊ฒฐ
์ค๋ฌด์์๋ alloc, ์ค๋งํธํฌ์ธํฐ ๋ฑ์ ๊ตฌํํด์ ์ฐ๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ฐ์์์๋ ์ง์ ๋ง๋ค์ด์ ์ฐ๊ธฐ๋ ํ๋ค๊ณ ์ธ๊ธํ์ จ๋๋ฐ, ๊ทธ๊ฒ ์ ๊ณ์์ ๋๋ถ๋ถ์ด ๊ทธ๋ ๊ฒ ์ฐ๋๊ฑด์ง, ์๋๋ฉด ํน์ํ ๊ฒฝ์ฐ์์๋ง ๊ทธ๋ ๊ฒ ์ผ๋ ๊ฒ์ธ์ง ๊ถ๊ธํฉ๋๋ค.๊ฐ์์์ ๋
๋คํธ์ํฌMMORPGwindows-server๋ฅ์ฌ๋ฏผ
ใป
ํ ๋ฌ ์
0
82
2
- ๋ฏธํด๊ฒฐ
์ฑ๋ฅ ํ ์คํธ ๊ฒฐ๊ณผ
SList๋ก ๊ตฌํํ ์ฝ๋์ Lock์ ๊ฑธ๋ฉฐ ํ์ pop push๋ฅผ ํ๋ ์ฝ๋์ ์คํ์๊ฐ์ ์ค๋ ๋์ ์์ ์ผ์ ๋ฐ๋ณต์(for๋ฌธ์ ๋ฐ๋ณตํ์)๋ฅผ ๋๋ ค์ ์๊ฐ์ ์ธก์ ํด๋ณด์๋๋ Lock์ ๊ฑธ์ด ์คํํ ์๊ฐ์ด ๋ ์งง๊ฒ ๋์ค๋๋ฐ ๋
๋คํธ์ํฌMMORPGwindows-serverkamdabin3
ใป
2๋ฌ ์
0
103
2
- ํด๊ฒฐ
๊ฒ์ ์๋ฒ Stateful, Stateless ์ง๋ก ๊ณ ๋ฏผ
๋จผ์ ๊ฐ์ ์ฌ๋ฐ๊ฒ ๋ณด๊ณ ์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.์ด ๊ฐ์๋ฅผ ์ฌ๋ฉด์ ์ข์ํ๋ ๊ฒ์ ๊ฐ๋ฐ์ ์ํด ์ด๋ค ์ฅ๋ฅด๋ ๋ง๋ค ์ ์๋ ๋ฅ๋ ฅ์ ํค์ฐ๋๊ฒ ๋ชฉํ์์ต๋๋ค.๊ฐ์๋ฅผ ๊ณต
๋คํธ์ํฌMMORPGwindows-serverrhfnajfl0
ใป
2๋ฌ ์
0
122
1
- ํด๊ฒฐ
WaitOnAddress์ Sleep์ ์ฐจ์ด ์ง๋ฌธ
Sleep()์ ํ์ฌ์ ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ๋ชจ๋ ํฌ๊ธฐํ๊ณ ์ธ์๋ก ๋ค์ด์จ ๊ฐ ๋งํผ ์ค์ผ์ฅด๋ง์ ํฌ๊ธฐํ๋ ๊ฒ์ ๋ง์ง๋ง ์ฌ์ ํ 'Ready ์ํ'์ธ ๋ฐ๋ฉด WaitOnAddress()๋ ์์ 'Blocked ์ํ'๋ก ๋น ์ ธ ๋ฒ๋ ค์,
๋คํธ์ํฌMMORPGwindows-serverUlfric0531
ใป
2๋ฌ ์
0
83
1
- ๋ฏธํด๊ฒฐ
๊ถ๊ธํ๊ฑฐ ์์ต๋๋ค.
ClientSocket ์ฆ Session ์ ์์ผ์ CreateIoCompletionPort ๋ฅผ ์ด์ฉํ์ฌ ๋ฑ๋กํด์ฃผ์ด์ผ์ง๋ง IOCP ํ๋ก ๋ถํฐ ํต์ง๊ฐ ์ค์ง
๋คํธ์ํฌMMORPGwindows-serverpis ure
ใป
3๋ฌ ์
0
82
2
- ํด๊ฒฐ
JobTimer ๊ตฌ๋ ์ค๋ ๋
๋ชจ๋ ์ค๋ ๋๊ฐ distributeํ์ง ์๊ณ , ๋ฉ์ธ ์ค๋ ๋๋ง ๋ด๋นํ๊ฒ ํด์ฃผ๋ฉด ๋ฝ์ ์ก์ ํ์๋ ์์ง ์๋์?
๋คํธ์ํฌMMORPGwindows-server๋๋ธ
ใป
4๋ฌ ์
0
107
2
- ๋ฏธํด๊ฒฐ
TryPop() ๋์ ๊ด๋ จ ์ง๋ฌธ
0์ด ์๋ -countIncrease์ ๋น๊ตํ๋ ์ด์ ๊ฐ ๋ค๋ฅธ ์ฐ๋ ๋๋ค์ ์ํด internalCount๊ฐ ์ด๋ฏธ ์์๊ฐ ๋์ด์๋ ๊ฒฝ์ฐ countIncrease์ ์ฆ๊ฐ๋ก ์ธํด ์ ํํ 0์ด ๋๋ ์ํฉ์ผ๋, ์ญ์
๋คํธ์ํฌMMORPGwindows-server๊น์
ใป
5๋ฌ ์
0
81
1
- ๋ฏธํด๊ฒฐ
๋ก๋๋งต C#์๋ฒ C++์๋ฒ ๋ฐฉํฅ์ฑ ์ง๋ฌธ
์๋ ํ์ธ์ ๊ฐ์ฌ๋ C++ IOCP๊ฐ์ ์ ๋ง ๊ฐํํ๋ฉด์ ์ ๋ค์์ต๋๋ค. ( ๋์๊น์ง 50๋ฒ์ ํ๊ฑฐ๊ฐ๋ค์ ) ์์ง์ ๊ฐ์ ์ ๊ณตํด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.ํ์ฌ ์ ๋ ๋ํ๊ต 3ํ๋ ๋ณตํ ์ค๋น์ค์ด๊ณ , ์กธ์ ์
๋คํธ์ํฌMMORPGwindows-server๋๋ธ
ใป
5๋ฌ ์
0
150
2
- ๋ฏธํด๊ฒฐ
์ค๋ ๋ id๋ฅผ ์ถ๋ ฅํ ๋ ๋ฉ์ธ์ค๋ ๋ id๋ ์ถ๋ ฅ๋๋์?
๋ฉ์ธ์ค๋ ๋๊ฐ 1๋ฒ์ ๋จน๋๊ฒ๊น์ง๋ ์ดํดํ๋๋ฐ ๊ทธ ์ดํ์ ์๋ 1๋ถํฐ 6๊น์ง ์ ๋ถ ์ถ๋ ฅ๋๋๊ฒ์ด ๋ง๋์? ๋ฃจํค์ค๋ ํ๋ฉด์์๋ 2์์ 6๊น์ง๋ง ์ถ๋ ฅ์ด ๋๋๊ฑธ๋ก ๋ณด์ฌ์ ์ง๋ฌธ๋๋ฆฝ๋๋ค <
๋คํธ์ํฌMMORPGwindows-serverkamdabin3
ใป
5๋ฌ ์
0
73
1
- ๋ฏธํด๊ฒฐ
์๋ช ์ฃผ๊ธฐ๋ฅผ ์ํ ์๋์ ๋ณต์ฌ
์๋ ํ์ธ์ ๊ฐ์ ์ ๋ง ๊ฐํํ๋ฉด์ ์ ์๊ฐํ๊ณ ์์ต๋๋ค. Job์์ ๋ณดํธ์ฐธ์กฐ๋ก ๋ฐ์๋๋ฐ forward๋ก ํ์ง ์์ ๊ฒ์ Ref๋ค์ ์๋ช ์ฐ์ฅ์ ํด์ฃผ๊ธฐ ์ํด ์๋์ ์ผ๋ก ๋ณต์ฌํ๊ธฐ ์ํ ์๋์ผ๊น์?J
๋คํธ์ํฌMMORPGwindows-server๋๋ธ
ใป
5๋ฌ ์
0
87
2
- ๋ฏธํด๊ฒฐ
๋ฝํ๋ฆฌ์ ์ค๋ฌด์์ ์ฌ์ฉ ์ง๋ฌธ
๋ฝํ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ง์๋๋ค๊ณ ํ์ จ๋๋ฐ ๋ฝํ๋ฆฌ๋ฅผ ์จ์ผ ์๋ฒ์ ์ฑ๋ฅ์ด ์ ๋๋ก ๋์ค๋๊ฒ ์๋๊ฐ์? ์คํ๋ ค ๋๋ฌด ์ด๋ ค์์ ์ ๋๋ก ๋ง๋ ๊ฒ์ด ์๋๋ผ๋ฉด ์๋ฒ๊ฐ ์ฃฝ๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ ์ ์๊ธฐ๋๋ฌธ์ ์์ฐ๋ ๊ฑด๊ฐ์?<p style="
๋คํธ์ํฌMMORPGwindows-serverkamdabin3
ใป
5๋ฌ ์
0
142
2
- ๋ฏธํด๊ฒฐ
32bit threadID์ 16๋นํธ ์์ WriteFlag์ ๋ํด
32๋นํธ์ง๋ฆฌ threadID๋ฅผ ๋นํธ ์ฐ์ฐ์ผ๋ก 16๋นํธ ์ฎ๊ฒจ์ค๋ค ์งค๋ผ์ค ๊ฒ์ WriteFlag์ ๋ด๋ ๊ณผ์ ์์ ์์ค์ด ์ผ์ด๋๋๊ฑฐ ์๋๊ฐ์?<img src="https://cdn.inflearn.com/public/
๋คํธ์ํฌMMORPGwindows-server๋๋ธ
ใป
6๋ฌ ์
0
101
2
- ํด๊ฒฐ
mutex์ sleep ์ฐจ์ด์
mutex๋ ์ปค๋๋ก sleep๊ฐ ๋๋๊ฑธ๋ก ์๊ณ ์๋๋ฐ ์คํ๋ฝ์ ๊ตฌํํ๋ฉด์ sleep๋ฅผ ๊ฐ์ด ๊ตฌํํ๋๊ฒ๊ณผ mutex๋ฅผ ์ฌ์ฉํ๋๊ฒ์ ์ฐจ์ด๊ฐ ๊ถ๊ธํฉ๋๋ค
๋คํธ์ํฌMMORPGwindows-serverkamdabin3
ใป
6๋ฌ ์
0
118
1
- ๋ฏธํด๊ฒฐ
์ค๋ฌด์์๋ ์ด๋ ํ ์ฝ๋ ์คํ์ผ์ ์ฌ์ฉํ๋์ง ๊ถ๊ธํฉ๋๋ค
๋ฌผ๋ก ํ์ฌ๋ง๋ค ๋ค๋ฅด๊ณ ๊ฐ ํ์ฌ์ ๊ธฐ์กด ์คํ์ผ์ ๋ฐ๋ผ์ผ ํ๋๊ฒ ๋ง์ง๋ง ๋ ํํ๋ ์ ์ฅ์์๋ clang-format์ด ์ ๊ณตํด์ฃผ๋ ํํธ๋ค, ๊ตฌ๊ธ ์คํ์ผ ๊ฐ์ด๋ ํน์ ์ธํฐ
๋คํธ์ํฌMMORPGwindows-server๊ฒจ์ธ
ใป
7๋ฌ ์
0
153
2
- ๋ฏธํด๊ฒฐ
Stomp Allocator์ Releaseํจ์์ ๋ํ ์ง๋ฌธ์ ๋๋ค.
์๋ค ๋ค์ด์, ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ 0x1000~0x3000์ด๊ณ , ์ค์ ์ฌ์ฉํ๋ ค๋ ๋ฉ๋ชจ๋ฆฌ ์์น๋ฅผ 0x2008๋ก ๋ฐํ๋ฐ์๋ค๊ณ ๊ฐ์ ํ ๋,const int64 add
๋คํธ์ํฌMMORPGwindows-serverasm1133
ใป
7๋ฌ ์
0
96
1
- ๋ฏธํด๊ฒฐ
๊ณต๋ถ๋ฒ ๊ด๋ จํด์
๋ฃจํค์ค๋ ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค. ์๋ฒ ๊ฐ์ ์ฌ๋ฐ๊ฒ ๋ฃ๊ณ ์๋๋ฐ ์ ๊ฐ ๊ณต๋ถ ํ๋ ๋ฐฉ๋ฒ์ด ์๊ฐ์ด ๋ง์ด ๋๋๋ฐ ์๊ฐ์ ๋ง์ด ์ฐ๋ ๊ฑฐ์ ๋นํด ํ์ต์ ํฌ๊ฒ ๋์์ด ๋๋ ๊ฒ ๊ฐ์ง ์์์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค.์ ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋ณต
๋คํธ์ํฌMMORPGwindows-serverlayer08
ใป
8๋ฌ ์
0
184
2
- ๋ฏธํด๊ฒฐ
MakeShared ํจ์ ๊ด๋ จ
52๊ฐ ServerService ์๊ฐ ์ค 13:54 ๋์ MakeSharedํจ์๋ฅผ ์ด์ฉํด์ shared_ptr์ ์์ฑํด์ฃผ๋ ๋ถ๋ถ์ด ์๋๋ฐ, ๋๊ฐ์ด ๋ฐ๋ผํ๋ ์ค ์ ํ๋ก์ ํธ์์ ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ์ต๋๋ค.<p st
๋คํธ์ํฌMMORPGwindows-server์์ฑ์ ์์
ใป
9๋ฌ ์
0
114
1






