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

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

KoreanFoodie's Study

[์–ธ๋ฆฌ์–ผ] ์–ธ๋ฆฌ์–ผ UI ์ตœ์ ํ™” ์ •๋ฆฌ (์–ธ๋ฆฌ์–ผ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ)

์–ธ๋ฆฌ์–ผ UI ์ตœ์ ํ™” ํ•ต์‹ฌ : 1. UI ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € UI ๊ตฌ์กฐ์™€ ๋ Œ๋”๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. 2. UI ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ์€ ๊ฒฐ๊ตญ Tick ์ด๋‹ค. Tick ์„ ํ•„์š”ํ•  ๋•Œ๋งŒ ํ˜ธ์ถœํ•˜๊ฒŒ ๋งŒ๋“ค๊ฑฐ๋‚˜, Tick ๋‹น ๋‹ด๊ธฐ๋Š” ์—ฐ์‚ฐ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์•ผ ํ•œ๋‹ค. ์ „์ž๋Š” ๊ฒŒ์ž„์“ฐ๋ ˆ๋“œ์™€, ํ›„์ž๋Š” ๋ Œ๋”๋ง ์“ฐ๋ ˆ๋“œ์™€ ์—ฐ๊ด€์ด ๊นŠ๋‹ค. 3. ๊ฒŒ์ž„ ์“ฐ๋ ˆ๋“œ ์ตœ์ ํ™”์—๋Š” Invalidation Box, Visibility, Widget Binding ๋“ฑ์ด ์žˆ๊ณ , ๋ Œ๋”๋ง ์“ฐ๋ ˆ๋“œ ์ตœ์ ํ™”์—๋Š” Merging Batches, Retainer Box ๋“ฑ์ด ์žˆ๋‹ค. ์–ธ๋ฆฌ์–ผ์—์„œ UMG ๋ฅผ ์ด์šฉํ•œ UI ์ž‘์—…์„ ์ƒ๋‹นํžˆ ๋งŽ์ด ํ•˜๋Š”๋ฐ, ์ผ์ •์— ์ซ“๊ธฐ๋‹ค ๋ณด๋‹ˆ ํ”„๋กœ์ ํŠธ ์ฐจ์›์—์„œ ์ตœ์ ํ™”๋ฅผ ๊ณ ๋ คํ•˜๋ฉด์„œ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž˜ ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๋˜ํ•œ ์ตœ์ ํ™”๋ฅผ ํ•œ๋‹ค๊ณ ..

Game Dev/Unreal C++ : Dev Log 2024. 2. 6. 20:33
2023๋…„์„ ๋Œ์•„๋ณด๋ฉฐ, LYIL(Last Year, I Learned...)

2023๋…„์€ ๊ทธ ์–ด๋Š๋•Œ ๋ณด๋‹ค ๋” ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ„ ๊ฒƒ ๊ฐ™๋‹ค. ํ”ํžˆ ๋‚˜์ด๊ฐ€ ๋“ค๋ฉด ๋“ค์ˆ˜๋ก ์‹œ๊ฐ„์ด ๋” ๋น ๋ฅด๊ฒŒ ํ˜๋Ÿฌ๊ฐ„๋‹ค์ง€๋งŒ, 2023๋…„์€ ๊ทธ๋Ÿฐ ๊ฒƒ์„ ๊ฐ์•ˆํ•˜๋”๋ผ๋„ ์กฐ๊ธˆ ๋น„์ƒ์‹์ (?)์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ง€๋‚˜๊ฐ€์ง€ ์•Š์•˜๋‚˜ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ๋งค๋…„ ์žฅ๋Œ€ํ•œ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•˜๊ณ , ์ƒˆ๋กœ์šด ๊ณ„ํš์„ ์„ธ์šฐ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ณ„ํš์€ ํ•œ ์—ฌ๋ฆ„๋ฐค์˜ ๊ฟˆ์ฒ˜๋Ÿผ ํ•œ ๋‹ฌ์ด ์ฑ„ ์ง€๋‚˜๊ธฐ๋„ ์ „์— ์žŠํ˜€์ง€๊ณ  ๋งŒ๋‹ค. ๋‚˜ ๋˜ํ•œ ๊ทธ๋ ‡๊ฒŒ ๋˜์ง€ ์•Š์„๊นŒ ํ•˜๋Š” ๋งˆ์Œ์—, ์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ํ•œ ํ•ด๋ฅผ ๋˜๋Œ์•„ ๋ณด๋ฉฐ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋ชฉํ‘œ๋กœ ํ–ˆ๊ณ  ์–ด๋–ค ๊ฒƒ์„ ๋ฐฐ์› ๋Š”์ง€ ๋˜๋Œ์•„ ๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ ค ํ•œ๋‹ค. 2023๋…„์˜ ๋ชฉํ‘œ ํšŒ๊ณ  ํšŒ๊ณ ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด, ์˜ˆ์ „์— ๊ตฌ๊ธ€ ๋“œ๋ผ์ด๋ธŒ์— ์ •๋ฆฌํ•œ ๋ชฉํ‘œ๋ฅผ ๋‹ค์‹œ ๊บผ๋‚ด ์™”๋‹ค. ๋Œ์ด์ผœ ๋ณด๋ฉด, 2023๋…„์€ '๊ธฐ๋ณธ๊ธฐ ๋‹ค์ง€๊ธฐ'์˜ ํ•ด๋กœ ๋ณด๋‚ด๊ธฐ๋กœ ๋‹ค์งํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํžˆ ์ทจ๋ฏธ..

AboutMe 2024. 2. 1. 20:10
[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