Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก2022/11 (3)

KoreanFoodie's Study

[์–ธ๋ฆฌ์–ผ] ์œ„์ ฏ ๋ฆฌํ”Œ๋ ‰ํ„ฐ - ์–ธ๋ฆฌ์–ผ ์œ„์ ฏ ๋””๋ฒ„๊น…

์œ„์ ฏ ๋ฆฌํ”Œ๋ ‰ํ„ฐ ์–ธ๋ฆฌ์–ผ์˜ ์œ„์ ฏ ๋ฆฌํ”Œ๋ ‰ํ„ฐ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด, ํ˜„์žฌ ํ”Œ๋ ˆ์ดํ•˜๊ณ  ์žˆ๋Š” ์ฐฝ์—์„œ ์–ด๋–ค ์œ„์ ฏ์ด ์–ด๋–ค ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€, visibility ์ƒํƒœ๋Š” ์–ด๋– ํ•œ์ง€ ๋“ฑ์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค(์œ„์ ฏ ๋ฆฌํ”Œ๋ ‰ํ„ฐ : ์ฐฝ > ๊ฐœ๋ฐœ์ž ํˆด > ์œ„์ ฏ ๋ฆฌํ”Œ๋ ‰ํ„ฐ). ๋” ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ์ด๋“์šฐ๋‹˜ ๋ธ”๋กœ๊ทธ์˜ ์—๋””ํ„ฐ ํ™•์žฅ ๊ธฐ์ดˆ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์ž. ์œ„์˜ ํžˆํŠธ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ ์œ„์ ฏ์„ ๋ˆ„๋ฅด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ”Œ๋ ˆ์ด ํ™”๋ฉด๊ณผ ์œ„์ ฏ ๋ฆฌํ”Œ๋ ‰ํ„ฐ ์ฐฝ์ด ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค(์ด๋ฏธ์ง€๋Š” ๊ณต์‹ ๋ฌธ์„œ์—์„œ ๊ฐ€์ ธ์˜ด) ํ•ด๋‹น ์œ„์ ฏ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ์œ„์ ฏ์„ ๋„๊ณ  ํ‚ฌ ์ˆ˜๋„ ์žˆ์–ด ์œ„์ ฏ ๊ด€๋ จ ๋””๋ฒ„๊น…์— ๋งค์šฐ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด๋‹ค!

Game Dev/Unreal C++ : Study 2022. 11. 16. 19:53
Boost.Asio ์˜ ๊ฐœ๋… ๋ฐ ์š”์•ฝ ์ •๋ฆฌ

Asio ๋Š” Asynchronous IO ์˜ ์•ฝ์ž์ด๋‹ค. Asio ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฉ์–ด๋“ค์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. IO Service ํด๋ž˜์Šค : ์ปค๋„์—์„œ ๋ฐœ์ƒํ•œ ์ž…์ถœ๋ ฅ ์ด๋ฒคํŠธ๋ฅผ ๋””์ŠคํŒจ์น˜ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰. ๋””์ŠคํŒจ์น˜๋ž€, ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ž‘์—…์ด ์šฐ์„ ์ ์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ ์ž์›์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. IO Service ํด๋ž˜์Šค๋Š” ์ปค๋„์—์„œ ๋ฐœ์ƒํ•œ ๋„คํŠธ์›Œํฌ์ƒ์˜ ์ ‘์† ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ข…๋‹จ์ (Endpoint) : ๋„คํŠธ์›Œํฌ ์ƒ์˜ ํŠน์ • ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ. ๊ตฌ์ฒด์ ์œผ๋กœ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ์˜ ํ•œ ์Œ์„ ์ข…๋‹จ์ ์ด๋ผ๊ณ  ํ•จ. DNS(Domain Name Server) : Boost Asio ์—์„œ๋Š” ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ด์šฉ, IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด์–ด ์ข…๋‹จ์ ์„ ๊ตฌํ•œ๋‹ค. ..

Game Dev/Game Server 2022. 11. 1. 14:09
IOCP์˜ ๊ฐœ๋… ๋ฐ ์š”์•ฝ ์ •๋ฆฌ

IOCP๋Š” CPU ๊ฐœ์ˆ˜๋งŒํผ๋งŒ ์“ฐ๋ ˆ๋“œ๋ฅผ ์“ฐ๋Š” ์„œ๋ฒ„์ด๋‹ค. IOCP ๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋“  Send/Recv ๋Š” Overlapped I/O ๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, ์ฝœ๋ฐฑํ•จ์ˆ˜๋“ค์„ ๋™์‹œ์— ๋™์ž‘ํ•ด์„œ ์„ฑ๋Šฅ์„ ๋†’์ธ๋‹ค. IOCP๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” IOCP ๊ฐ์ฒด๋Š” ์ปค๋„ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋œ๋‹ค. ์ปค๋„ ๋‚ด์—๋Š” DEVICE LIST ๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ์†Œ์ผ“์„ IOCP ์— ๋“ฑ๋กํ•˜๋ฉด IOCP ๊ฐ์ฒด๋Š” DEVICE_LIST ์— ์†Œ์ผ“๋“ค์„ ๋“ฑ๋กํ•ด์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” DEVICE_LIST ๋ฅผ ์ง์ ‘ ๋ณด๊ฑฐ๋‚˜ ์ œ์–ดํ•  ์ˆ˜ ์—†๋‹ค. ํ๋ฆ„์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์š”์•ฝํ•ด ๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค : I/O ๋””๋ฐ”์ด์Šค(์†Œ์ผ“, FD) IOCP ์— ๋“ฑ๋ก : CreateIoCompletionPrt ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋””๋ฐ”์ด์Šค์™€ CompletionPort(์ดํ•˜ CP) ๋ฅผ ๋ฐ”์ธ..

Game Dev/Game Server 2022. 11. 1. 14:07