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

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

KoreanFoodie's Study

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-1. ์ฑ„ํŒ… ์‹ค์Šต

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 6-1. ์ฑ„ํŒ… ์‹ค์Šต ํ•ต์‹ฌ : 1. Chat ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ๊ฐ„๋‹จํ•˜๊ฒŒ๋Š” ์ฑ„ํŒ…์ด ์ „ํŒŒ๋  Room ๊ณผ ์ฑ„ํŒ… ํŒจํ‚ท๋งŒ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋œ๋‹ค. 2. ์ฑ„ํŒ…์„ ์ „ํŒŒํ•  ๋•Œ๋งˆ๋‹ค, Room ์—์„œ WRITE_LOCK ์„ ์žก์œผ๋ฉด ๋ณ‘๋ชฉํ˜„์ƒ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์ถ”ํ›„ JobQueue ๋ฅผ ๋„์ž…ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ฒˆ์—๋Š” ์ฑ„ํŒ… ํŒจํ‚ท์„ ๋งŒ๋“ค์–ด ๋ณด๋ฉด์„œ, ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹ค์ œ๋กœ ํŒจํ‚ท์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ์ง„ํ–‰ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณผ ๊ฒƒ์ด๋‹ค. ์ผ๋‹จ, ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ–ˆ๋˜ Protocol.proto ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•ด ์ฃผ์ž. syntax = "proto3"; package Protocol; import "Enum.proto"; import "Struct.proto"; message C_LOGIN { } message S_LOG..

Game Dev/Game Server 2023. 12. 19. 14:34
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-9. ํŒจํ‚ท ์ž๋™ํ™” #2

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-9. ํŒจํ‚ท ์ž๋™ํ™” #2 ํ•ต์‹ฌ : 1. ํŒŒ์ด์ฌ๊ณผ jinja2 ๋ฅผ ์ด์šฉํ•ด, ํŒจํ‚ท ํ•ธ๋“ค๋Ÿฌ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด ๋ณด์ž. 2. ์ด ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋“  ProtoParser ๋Š” Protocol.proto ์˜ ํŒจํ‚ท ๋ช…์„ธ๋ฅผ ์ฝ์–ด PacketHandler ์˜ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค. ์ €๋ฒˆ ์‹œ๊ฐ„์— ํŒจํ‚ท ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ ๋ฐ‘์ž‘์—…(?) ์„ ๋ณด์—ฌ์ค€ ๋ฐ” ์žˆ๋‹ค. ์‚ฌ์‹ค ์ œ๋Œ€๋กœ ํŒจํ‚ท ์ž๋™ํ™”๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”, data-driven ํ•˜๊ฒŒ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํ•œ Flow ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค : Protocol.proto ์— ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ํŒจํ‚ท(๋ฉ”์‹œ์ง€)์„ ์„ ์–ธํ•œ๋‹ค. ์ž๋™ํ™” ํˆด์ด ๋Œ์•„๊ฐ€์„œ Packet ๊ณผ PacketHandler ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๊ฐ ํŒจํ‚ท์— ๋Œ€ํ•œ ์ปค์Šคํ…€ ๋™์ž‘๋งŒ ์ง์ ‘ ๊ตฌ..

Game Dev/Game Server 2023. 12. 18. 23:26
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-8. ํŒจํ‚ท ์ž๋™ํ™” #1

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-8. ํŒจํ‚ท ์ž๋™ํ™” #1 ํ•ต์‹ฌ : 1. ํšจ์œจ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด, ํŒจํ‚ท์ด ๋ณ€๋™๋  ๋•Œ ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด ๊ด€๋ จ protoc ํŒŒ์ผ ๋“ฑ์ด ์ž๋™์œผ๋กœ ์—…๋Žƒ๋˜๊ฒŒ ๋งŒ๋“ค๋ฉด ์ข‹๋‹ค. ๋ฐฐ์น˜ํŒŒ์ผ๊ณผ .vcxproj ๋ฅผ ์ž˜ ์ˆ˜์ •ํ•ด ๋ณด์ž. 2. ์ดˆ๊ธฐํ™” ๋‹จ๊ณ„์—์„œ ๊ฐ ํŒจํ‚ท ๋ณ„๋กœ ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ Functor ๋กœ ๋งŒ๋“ค์–ด ๊ฐ ํŒจํ‚ท์— ๋Œ€์‘์‹œ์ผœ ๋†“์œผ๋ฉด, ๊ฐ ์ปจํ…์ธ  ๋‹ด๋‹น์ž๋Š” ํŒจํ‚ท์ด ์ถ”๊ฐ€๋  ๋•Œ ํ•ด๋‹น ํŒจํ‚ท์— ๋Œ€ํ•œ ๊ตฌํ˜„๋งŒ ์‹ ๊ฒฝ์“ฐ๋ฉด ๋œ๋‹ค. ์ €๋ฒˆ ์‹œ๊ฐ„์—๋Š” Protobuf ๋ฅผ ์„ธํŒ…ํ•˜๋ฉด์„œ, ํŒจํ‚ท ์ž‘์—…์„ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋˜๋Š”์ง€์— ๋Œ€ํ•ด ๋ฐฐ์› ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์‹ค ๋Œ์ด์ผœ ๋ณด๋ฉด ๋ถˆํŽธํ•œ ์ ์ด ์ด๊ณณ ์ €๊ณณ์— ์‚ฐ์žฌํ•œ๋‹ค๋Š” ๋Š๋‚Œ์ด ๋“ ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๊ฐ€ ํŒจํ‚ท์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋ฉด, .protoc ํŒŒ์ผ์„ ๋งค๋ฒˆ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด ์ค˜์•ผ ํ•˜๋Š”๋ฐ, ์‹ฌ์ง€์–ด ์ด ์ž‘์—…์„ Gam..

Game Dev/Game Server 2023. 12. 18. 19:41
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-7. Protobuf

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-7. Protobuf ํ•ต์‹ฌ : 1. protobuf ๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๊ตฌ๊ธ€์—์„œ ์ œ๊ณตํ•˜๋Š” ํˆด์„ ์˜๋ฏธํ•˜๊ธฐ๋„ ํ•œ๋‹ค. 2. protobuf ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž„์‹œ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ณต์‚ฌ๋Š” ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ์œผ๋‚˜, ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™” ๊ณผ์ •์ด ๋งค์šฐ ํŽธ๋ฆฌํ•ด์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 3. protobuf ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•˜๋ฉฐ, ๋‹ค๋ฅธ ์–ธ์–ด ๋ฐ OS ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํƒ€ ์„œ๋ฒ„์™€์˜ ์—ฐ๋™์ด ์‰ฌ์›Œ ํ˜‘์—…์—๋„ ๋งค์šฐ ์œ ๋ฆฌํ•˜๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ตฌ๊ธ€์—์„œ ๋งŒ๋“  ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™” ํˆด์„ ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. ์ด๋ฒˆ์—๋Š” ๊ฒฐ๊ณผ๋งŒ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์„ค์น˜ ๋ฐ ์„ธํŒ…ํ•˜๋Š” ๊ณผ์ •์„ ์ž์„ธํžˆ ๊ธฐ๋กํ•  ๊ฒƒ์ด๋‹ˆ, ์ถ”ํ›„ ์„ธํŒ…์— ์–ด๋ ค์›€์„ ๊ฒช์„ ๋•Œ ์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ๐Ÿค— ๋จผ์ €, protobu..

Game Dev/Game Server 2023. 12. 16. 17:43
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-6. ํŒจํ‚ท ์ง๋ ฌํ™” #3

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-6. ํŒจํ‚ท ์ง๋ ฌํ™” #3 ํ•ต์‹ฌ : 1. ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ ์•ˆ์— ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒฝ์šฐ๋„, ๊ฒฐ๊ตญ Offset ๊ณผ Count ๋ฅผ ์ด์šฉํ•ด ๋ฒ„ํผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. 2. ์ถ”ํ›„์— ์†Œ๊ฐœํ•  ProtoBuf ๋ฅผ ์ด์šฉํ•˜๋ฉด, ํŒจํ‚ท์„ ๋งŒ๋“ค ๋•Œ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ผํžˆ ์ฝ”๋“œ๋กœ ๋„ฃ๋Š” ๊ท€์ฐฎ์Œ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค(๋‹ค๋งŒ ๋ถˆํ•„์š”ํ•œ ๋ณต์‚ฌ๊ฐ€ ์žˆ์„ ์ˆ˜๋Š” ์žˆ์Œ). ์ €๋ฒˆ์—๋Š” ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒจํ‚ท์— ๋„ฃ์–ด ๋ณด์•˜๋Š”๋ฐ... ๋งŒ์•ฝ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ ์•ˆ์— ๋˜ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? ์˜ˆ๋ฅผ ๋“ค์–ด, BuffListItem ์ด๋ผ๋Š” ๊ตฌ์กฐ์ฒด์— ํ•ด๋‹น ๋ฒ„ํ”„์˜ ๋Œ€์ƒ๋“ค ์ •๋ณด(Victims ๋ผ๊ณ  ํ•˜์ž)๋ฅผ ๋‹ด๋Š”๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? struct BuffsListItem { uint64 buffId; float remainTime;..

Game Dev/Game Server 2023. 12. 16. 12:21
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-5. ํŒจํ‚ท ์ง๋ ฌํ™” #2

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-5. ํŒจํ‚ท ์ง๋ ฌํ™” #2 ํ•ต์‹ฌ : 1. ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” PacketList ๋ฅผ ๋งŒ๋“ค๋ฉด, ๋ฒ„ํผ๋ฅผ ์ฝ์„ ๋•Œ ์ž„์‹œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ์บ์ŠคํŒ…์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค. ์ž, ์ผ๋‹จ ์ €๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ ํ˜•์‹์ธ buffs ์— ๋Œ€ํ•ด ํŒจํ‚ท ์ง๋ ฌํ™”๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ฝ”๋“œ๋ฅผ ์ž˜ ๋ณด๋ฉด, ์กฐ๊ธˆ ๋งˆ์Œ์— ๋“ค์ง€ ์•Š๋Š” ๋ถ€๋ถ„์ด ์žˆ๋‹ค. vector buffs; buffs.resize(pkt.buffsCount); for (int32 i = 0; i > buffs[i]; ๋ฐ”๋กœ buffs ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ ์ž„์‹œ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ธ๋ฐ... ์ƒ๊ฐํ•ด๋ณด๋ฉด ๊ตณ์ด ๊ทธ๋Ÿด ํ•„์š”๊ฐ€ ์žˆ๋‚˜ ์‹ถ๋‹ค. ๐Ÿค” ์ด ๋ถ€๋ถ„์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด, ์ด๋ฒˆ ๊ธ€์—์„œ..

Game Dev/Game Server 2023. 12. 16. 01:34
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-4. ํŒจํ‚ท ์ง๋ ฌํ™” #1

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-4. ํŒจํ‚ท ์ง๋ ฌํ™” #1 ํ•ต์‹ฌ : 1. ํŒจํ‚ท ์ง๋ ฌํ™”๋ž€, ํฌ์ธํ„ฐ ๋ฐ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ํŒจํ‚ท์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์ด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํŒŒ์‹ฑํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. 2. ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, Offset ๊ณผ Count ๋ฅผ ์ด์šฉํ•ด ์ง๋ ฌํ™”๋ฅผ ์‰ฝ๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 3. ์ง๋ ฌํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” xml ๋˜๋Š” json ํฌ๋งท์œผ๋กœ ์„ธ์ด๋ธŒ & ๋กœ๋“œ๋ฅผ ํ•˜๋ฉฐ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. xml ์€ ๊ฐ€๋…์„ฑ์ด ์ข‹์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ๋ณต์žกํ•˜๋ฉฐ, json ์€ ํ˜•ํƒœ๊ฐ€ ๊ฐ„๋‹จํ•˜๋ฉฐ ํŒŒ์‹ฑ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ํŒจํ‚ท ์ง๋ ฌํ™”์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ์˜์–ด๋กœ๋Š” ์‚ฌ์‹ค Serialization ์ธ๋ฐ, ์ง๋ ฌํ™”๋ผ๊ณ  ํ•˜๋‹ˆ ์‚ด์ง ์–ด์ƒ‰ํ•˜๊ฒŒ ๋Š๊ปด์ง€๊ธฐ๋Š” ํ•œ๋‹ค. ๐Ÿ˜… ์–ธ๋ฆฌ์–ผ์—์„œ๋„ Serialization ์ด๋ผ๋Š” ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ทธ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ณ ..

Game Dev/Game Server 2023. 12. 15. 16:41
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-3. Unicode

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-3. Unicode ํ•ต์‹ฌ : 1. ๋ฌธ์ž์—ด์„ ํ•ธ๋“ค๋ง์—๋Š” 2๊ฐ€์ง€ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค. ํ•˜๋‚˜๋Š” Character Set ์ด๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Encoding ์ด๋‹ค. 2. Unicode ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ์ž์—ด์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” Set ์œผ๋กœ, ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์— ๋”ฐ๋ผ UTF-8 ์ด๋‚˜ UTF-16 ๋“ฑ์œผ๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค. 3. MBCS ๋Š” ๋ฌธ์ž์˜ ํŠน์ง•๋งˆ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๋ฐ”์ดํŠธ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, WBCS ์€ ๋ชจ๋“  ๋ฌธ์ž์—ด์ด ๋™์ผํ•œ ๋ฐ”์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ˆ„๊ตฌ๋‚˜ ์ต์ˆ™ํ•˜์ง€๋งŒ ๋ฌผ์–ด๋ณด๋ฉด ํ•ญ์ƒ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋‚ด์šฉ, ์œ ๋‹ˆ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ผ๋‹จ Unicode ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๋ ค๋ฉด ๋ฌธ์ž์—ด ์ธ์ฝ”๋”ฉ์˜ ๋‘ ์š”์†Œ, 'Character Set' ๊ณผ 'Encoding' ์„ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค. ๋จผ์ €,..

Game Dev/Game Server 2023. 12. 15. 12:02
[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-2. PacketHandler

[C++ ๊ฒŒ์ž„ ์„œ๋ฒ„] 5-2. PacketHandler ํ•ต์‹ฌ : 1. ๋‹ค์–‘ํ•œ ํŒจํ‚ท์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ํŒจํ‚ท๋ณ„๋กœ enum ์„ ๋งŒ๋“ค๊ณ , ๊ฐ enum ๋ณ„๋กœ ํŒจํ‚ท์„ ํ•ธ๋“ค๋งํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด switch ๋ฌธ์œผ๋กœ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 2. ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒฝ์šฐ๋„ Primitive Type ์„ ์ฝ๋Š” ๊ฒฝ์šฐ์™€ ๊ฑฐ์˜ ๋น„์Šทํ•˜๋‹ค. ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋‚˜ ๊ฐฏ์ˆ˜ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค! ์ด์ „ ์‹œ๊ฐ„์—๋Š” Buffer Helper ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ฒ„ํผ๋ฅผ ์กฐ๊ธˆ ๋” ์šฉ์ดํ•˜๊ฒŒ ์ฝ๊ณ  ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์•„์ง ๋ถ€์กฑํ•˜๋‹ค! ์ผ์ผํžˆ ์ž„์˜์˜ ๊ฐ’์œผ๋กœ ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ์ฑ„์›Œ ํŒจํ‚ท์„ ์กฐ๋ฆฝํ•˜๊ณ  ๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ์ข€ ๋” ์ •ํ˜•ํ™”๋œ ํ˜•ํƒœ๋กœ ํŒจํ‚ท์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” PacketHandler ..

Game Dev/Game Server 2023. 12. 15. 01:05