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

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1099)

KoreanFoodie's Study

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 7-4. ORM

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 7-4. ORM ํ•ต์‹ฌ : 1. ORM ์„ ์‚ฌ์šฉํ•˜๋ฉด, DB ๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ฐ„๋‹จํ•œ ORM ์„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ฐธ๊ณ ๋กœ ORM ์ด๋ž€... ๋ผ๊ณ  ํ•œ๋‹ค. ์ž์„ธํ•œ ์„ค๋ช…์€ ์ด ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์ž. ์Œ.. ์ผ๋‹จ DB ๋ชจ๋ธ์„ ํ‘œํ˜„ํ•˜๋Š” DBModel ๊ณผ, ํ˜„์žฌ DBModel ์— ๋งž๊ฒŒ Table ์„ ๊ตฌ์„ฑํ•ด ์ฃผ๋Š” DBSynchronizer ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ... ์ด๊ฒŒ ํ•˜๋‚˜ํ•˜๋‚˜ ์„ค๋ช…ํ•˜๊ธฐ์—๋Š” ์–‘์ด ๋งŽ๊ณ , ๊ตณ์ด ์•”๊ธฐํ•  ํ•„์š”๋Š” ์—†๊ธฐ์—... ๋‚˜์ค‘์— ํ•„์š”ํ•  ๋•Œ ์Šฌ์ฉ(?) ๋“ค์ถฐ๋ณด๋Š” ๊ฒƒ์œผ๋กœ ํ•˜๊ณ , ์˜ˆ์ œ ์ฝ”๋“œ๋งŒ ๊ธฐ๋กํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ ˆ๋Œ€ ๊ท€์ฐฎ์•„์„œ ๋•Œ์šฐ๋ ค๊ณ  ํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค. ๐Ÿ˜… ๋”๋ณด๊ธฐ DBModel #pragma once #include "Types.h" NAMESPAC..

Game Dev/Game Server 2023. 12. 22. 14:20
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 7-3. XML Parser

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 7-3. XML Parser ํ•ต์‹ฌ : 1. DB ๋„ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๋”ฐ๋ผ์„œ ํ…Œ์ด๋ธ”๊ณผ ์ฟผ๋ฆฌ๋Š” ๋ฒ„์ „์— ๋งž๊ฒŒ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•œ XML Parser ๋ฅผ ๋งŒ๋“ค์–ด ๋ณธ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ด๋Š” ์‚ฌ์‹ค DB ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ธ๋ฐ, ์–ด๋–ค ๋ฒ„์ „์—์„œ๋Š” ํŠน์ • ํ…Œ์ด๋ธ”์— ํŠน์ • ์ปฌ๋Ÿผ์ด ์—†๋‹ค๋˜์ง€, ์ถ”ํ›„ ๋ฒ„์ „์—์„œ ํ…Œ์ด๋ธ”์ด ์ถ”๊ฐ€๋œ๋‹ค๋˜์ง€ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธธ ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ฟผ๋ฆฌ๋„ ๊ทธ๋Ÿฐ DB ์˜ ๋ณ€๋™์— ๋งž๊ฒŒ ๋‚ด์šฉ๋ฌผ์ด ๋ฐ”๋€Œ์–ด์•ผ ํ•˜๋Š”๋ฐ... ๋ณดํ†ต ์ด๋ฅผ ๊ด€๋ฆฌํ•ด ์ฃผ๋Š” ์ง๊ตฐ์ด DBA ์ด๋‹ค(๋ฌผ๋ก  ์„œ๋ฒ„ ๋‹ด๋‹น์ž๊ฐ€ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค). ์šฐ๋ฆฌ๋Š” ์•ž์œผ๋กœ ์ด๋Ÿฐ DB ์ฟผ๋ฆฌ๋ฅผ XML ๋กœ ๊ด€๋ฆฌํ•œ ๋‹ค์Œ, ์‹ค์ œ๋กœ GameServer ์—์„œ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค์ค„ ๋•Œ XML Parser ๋ฅผ ์ด์šฉํ•ด ํ•ด๋‹น ์ฟผ๋ฆฌ๊ฐ€ ์ž๋™..

Game Dev/Game Server 2023. 12. 21. 19:13
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 7-1. DB Connection

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 7-1. DB Connection ํ•ต์‹ฌ : 1. ์‹ค์ œ๋กœ DB ๋ฅผ ์—ฐ๋™ํ•ด ๋ณด์ž. ์—ฐ๊ฒฐ์„ ์œ„ํ•œ DBConnection/DBConnectionPool ์„ ๋งŒ๋“ค์–ด ๋ณด์ž. 2. ์‹ค์Šต์—์„œ๋Š” ODBC ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๋กœ๊ทธ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋‚จ๊ฒจ์•ผ ์ถ”ํ›„ ๋ฒ„๊ทธ๋ฅผ ํŠธ๋ž˜ํ‚นํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด์ œ ๊ฒŒ์ž„ ์„œ๋ฒ„๊ฐ€ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ฆˆ์— ๋“ค์–ด์„ฐ๋‹ค. ๊ธฐ์กด๊นŒ์ง€๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ–ˆ๋‹ค๋ฉด, ์ด์ œ DB ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ณด๋ฉด์„œ ๊ฐ•์˜๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ฒ ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ... ์ด์ œ ์ •๋ง ํž˜๋“ค๋‹ค. ๐Ÿ˜น ํ›„.. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์‹ค DB ์—ฐ๋™์„ ํ•˜๋Š” ๋ถ€๋ถ„์€ ๋ชจ๋“  API ๋ฅผ ๋‹ค ์™ธ์šธ ํ•„์š”๋„ ์—†๊ณ , ์ดˆ๊ธฐ์— ์„ธํŒ…์„ ํ•œ ๋ฒˆ๋งŒ ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๋ถ€๋ถ„์ด๋ผ, ํฐ ํ‹€์—์„œ ์›๋ฆฌ ์ •๋ณด๋งŒ ๋ณด๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค. ๋จผ์ €, DBConnection ์—์„œ ์—ฌ๋Ÿฌ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” DBC..

Game Dev/Game Server 2023. 12. 21. 16:49
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-7. JobTimer

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-7. JobTimer ํ•ต์‹ฌ : 1. JobTimer ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, Job ์˜ ๋ฐฐ๋ถ„์„ ์ผ์ • ์ฃผ๊ธฐ ์ดํ›„ ์‹คํ–‰ํ•˜๋„๋ก ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์„ธ์…˜์ด ์ข…๋ฃŒ๋  ๋•Œ Memory Leak ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ์ข…๋ฃŒ ์ฒ˜๋ฆฌ๋ฅผ ์ž˜ ํ•ด์ฃผ์ž. ์ด์ „์— Job ์˜ ์ฒ˜๋ฆฌ๋ฅผ ์“ฐ๋ ˆ๋“œ์—๊ฒŒ ์–ด๋Š ์ •๋„ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•˜๊ธฐ ์œ„ํ•ด Tick ๊ณผ ์†Œ์œ ๊ถŒ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๊ฐ ์“ฐ๋ ˆ๋“œ ๋ณ„๋กœ Tick ์„ ๋ฃจํ”„๋ฅผ ๋Œ๋ฉฐ ์ฒดํฌํ•˜๋Š” ์ผ์€ ์—„์ฒญ๋‚œ ๋‚ญ๋น„๊ฐ€ ์•„๋‹ ์ˆ˜ ์—†๋‹ค. ๐Ÿ˜… ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, Global ํ•˜๊ฒŒ JobTimer ๋ผ๋Š” ๋…€์„์„ ๋„์ž…ํ•ด ์ผ์ • ์‹œ๊ฐ„ ํ›„, Job ์„ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค์–ด ๋ณด์ž. JobTimer.h struct JobData { JobData(weak_ptr owner, JobRef jo..

Game Dev/Game Server 2023. 12. 21. 11:21
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-6. JobQueue #5

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-6. JobQueue #5 ํ•ต์‹ฌ : 1. JobQueue ๋ฐฉ์‹์„ ์ด์šฉํ•ด ์“ฐ๋ ˆ๋“œ๊ฐ€ Job ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด ๋ณด์ž. 2. GlobalQueue ์™€ Tick ์˜ ๊ฐœ๋…์„ ํ™œ์šฉํ•ด, ์ด์ „ ๊ธ€์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ ๋‘ ๊ฐ€์ง€ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์„œ๋ฒ„ ๋กœ์ง๊ณผ ํด๋ผ ๋กœ์ง์€ ๊ฐ๊ฐ ๋ถ„๋ฆฌํ•˜์—ฌ ๋Œ์•„๊ฐ€๋„๋ก ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋‹ค๋งŒ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š”, DoWorkerJob ํ•จ์ˆ˜์—์„œ ๋ชจ๋“  ๋กœ์ง์„ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ €๋ฒˆ ๊ธ€์—์„œ ์ง€์ ํ–ˆ๋˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, GlobalQueue ์™€ ์‹œ๊ฐ„ ์ œํ•œ์„ ์ฃผ๋Š” ๋ฐฉ์‹์„ ๋„์ž…ํ•ด ๋ณด์ž. ์ผ๋‹จ Job ๋ถ€๋ถ„์€ ๋‹ฌ๋ผ์ง„ ๊ฒƒ์ด ์—†๋Š”๋ฐ... JobQueue ์—์„œ Execute ๋ฅผ ํ•ด์ฃผ๋Š” ๋กœ์ง์„ ์ผ๋ถ€ ์ˆ˜์ •ํ•  ๊ฒƒ์ด๋‹ค. ๊ฑฐ..

Game Dev/Game Server 2023. 12. 20. 22:46
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-5. JobQueue #4

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-5. JobQueue #4 ํ•ต์‹ฌ : 1. JobQueue ๋ฅผ ํ…œํ”Œ๋ฆฟ ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด LockQueue ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ”๋ณด์ž. 2. Job ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ Push ๋ฅผ ํ•˜๋Š” ์“ฐ๋ ˆ๋“œ ์ค‘ ์ผ๋ถ€๊ฐ€ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ๋ฉ”์ธ ์„œ๋ฒ„์—์„œ FlushJob ์„ ํ•˜๋˜ ๋ถ€๋ถ„์„ ํŠน์ • ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋‹ด๋‹นํ•  ๊ฒƒ์ด๋‹ค. 3. 2๋ฒˆ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ๋Š”, ๋™๊ธฐํ™”์— ๋Œ€ํ•œ ๋ถ€๋ถ„๊ณผ ๋ณ‘๋ชฉ ํ˜„์ƒ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š”, Job ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์„ ์กฐ๊ธˆ ๋” ๊ณ ๋„ํ™”์‹œ์ผœ๋ณผ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, ์ด์ „์—๋Š” GameServer ์—์„œ ํ•œ ๋…€์„์ด FlushJob ์„ ํ˜ธ์ถœํ•˜๋ฉด์„œ Job ์„ ๊บผ๋‚ด ํ•˜๋‚˜ํ•˜๋‚˜ ์ฒ˜๋ฆฌํ–ˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ ๊ทธ๋ƒฅ Job ์„ ์ถ”๊ฐ€ํ•˜๋Š” ์“ฐ๋ ˆ๋“œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค..

Game Dev/Game Server 2023. 12. 20. 18:32
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-4. JobQueue #3

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-4. JobQueue #3 ํ•ต์‹ฌ : 1. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” JobSerializer ๋ฅผ ์ด์šฉํ•ด, ๋žŒ๋‹ค ํ•จ์ˆ˜๋ฅผ SharedPtr ๋กœ ๋งŒ๋“ค์–ด Push ํ•ด ์คŒ์œผ๋กœ์จ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ Job ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. 2. ๋žŒ๋‹ค์™€ SharedPtr ๋ฅผ ํ•จ๊ป˜ ์“ด๋‹ค๊ณ  ํ•ด์„œ Memory Leak ์ด ์ผ์–ด๋‚˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๋งŒ์•ฝ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋ฉด ๋žŒ๋‹ค์™€ SharedPtr ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์ด๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ธฐ์กด์— ๋งŒ๋“ค์—ˆ๋˜ Job ์„ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์กฐ๋ฅผ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ด ๋ณด์ž. ๋จผ์ € Job ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ServerCore ์— ๋งŒ๋“ค์–ด์ค„ ๊ฒƒ์ด๋‹ค. /*--------- Job ----------*/ using CallbackType = ..

Game Dev/Game Server 2023. 12. 20. 16:40
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-3. JobQueue #2

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-3. JobQueue #2 ํ•ต์‹ฌ : 1. Job ๋ณ„๋กœ ํด๋ž˜์Šค ์ƒ์†์„ ๋ฌดํ•œํžˆ ๋Š˜๋ ค๋‚˜๊ฐ€๊ธฐ ๋ณด๋‹ค, Functor ์™€ Tuple ์„ ์ด์šฉํ•ด ๊ฐ Job ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•ด ๋ณด์ž. 2. C++ 17 ์—์„œ๋Š” std::apply ๋ฅผ, C++ 11 ์—์„œ๋Š” Template Meta Programming ์„ ์ด์šฉํ•ด ํŠน์ • Functor ์— ์ž„์˜์˜ ๊ฐฏ์ˆ˜์˜ ์ธ์ž๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ €๋ฒˆ ์‹œ๊ฐ„์—๋Š” Job ๊ณผ JobQueue ์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์†Œ๊ฐœํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์‚ฌ์‹ค Job ์ด ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค ์ด๋ฅผ ์ƒ์†ํ•ด์„œ ํด๋ž˜์Šค๋ฅผ ๋ฌดํ•œํžˆ ๋Š˜๋ ค๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์€... Job ์˜ ๊ฐฏ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค๊ณ  ํ•˜๋ฉด ๋งค์šฐ ๋”์ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค. Job ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์„ ์กฐ๊ธˆ ๊ฐ„๋žตํ™”ํ•˜๊ธฐ ์œ„ํ•ด, ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•ด ๊ฐ ..

Game Dev/Game Server 2023. 12. 20. 06:25
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-2. JobQueue #1

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-2. JobQueue #1 ํ•ต์‹ฌ : 1. Command ํŒจํ„ด์€, ์‹คํ–‰๋  ๋™์ž‘์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ๊ตฌ์ฒด์ ์ธ ๋™์ž‘์€ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์† ๋ฐ›์€ ๊ฐ์ฒด์—์„œ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•˜๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ•์ด๋‹ค. 2. Command ํŒจํ„ด๊ณผ JobQueue ๋ฅผ ์ด์šฉํ•˜๋ฉด, ์ด์ „์— Broadcast ๋กœ ์ธํ•œ ๋™์ž‘์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ(LOCK ์œผ๋กœ ์ธํ•œ)์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด์ „ ์‹œ๊ฐ„์— ๊ฐ„๋‹จํ•œ ์ฑ„ํŒ… ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. ๋‹ค๋งŒ ์ด์ „ ๋ฐฉ์‹์€ Broadcast ๋ฅผ ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ์‹ฌ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ... ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์šฐ๋ฆฌ๋Š” JobQueue ๋ฅผ ๋งŒ๋“ค์–ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ์ผ๋‹จ ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Command ํŒจํ„ด์„ ์ด์šฉํ•ด ์กฐ์•…ํ•˜๊ฒŒ๋‚˜๋งˆ JobQueue ๋ฅผ ๊ตฌ์ถ•ํ•ด ๋ณด์ž. Com..

Game Dev/Game Server 2023. 12. 19. 18:49