Recent posts

[C#] Event Queue

August 04 2021

Event ํ•œ object์— ์˜ํ•ด ์–ด๋–ค action์ด ๋ฐœ์ƒํ–ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” notification .NET์—์„œ๋Š” observer design pattern์„ ์‚ฌ์šฉ

[3D Graphcis] Texture ์‚ฌ์ด์ฆˆ

July 30 2021

Texture ์‚ฌ์ด์ฆˆ๋ฅผ 2์˜ ์ œ๊ณฑ์ˆ˜๋กœ ์„ธํŒ…ํ•˜๋Š” ์ด์œ  ์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ GPU๋Š” ์ด๋Ÿฌํ•œ ์ œ์•ฝ์œผ๋กœ๋ถ€ํ„ฐ ์ž์œ ๋กญ๋‹ค (NPOT) RAM์„ ์‚ฌ์šฉํ•  ๋•Œ NPOT ์ด๋ฏธ์ง€๋Š” ๊ทธ๋ณด๋‹ค ํฐ ์‚ฌ์ด์ฆˆ์˜ POT๋กœ ํ™•์žฅ๋œ๋‹ค ์ด ๊ณผ์ •์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋‚ญ๋น„๋œ๋‹ค ํ™•์žฅ๋œ ์‚ฌ์ด์ฆˆ๋งŒํผ ๊ฐ€์žฅ์ž๋ฆฌ์— edging artifact๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค ...

[C++] inline

July 14 2021

ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋น„์šฉ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์ผ์ •๋Ÿ‰์˜ ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ ๋ฐœ์ƒ CPU๊ฐ€ ๋‹ค๋ฅธ ๋ ˆ์ง€์Šคํ„ฐ์™€ ํ•จ๊ป˜ ์‹คํ–‰ ์ค‘์ธ ํ˜„์žฌ ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•ด์•ผ ํž˜ ๋‚˜์ค‘์— ๋ฐ˜ํ™˜ํ•  ์œ„์น˜๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“  ํ•จ์ˆ˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑ ์ƒˆ ์œ„์น˜๋กœ ๋ถ„๊ธฐํ•˜๊ธฐ ๋ณด๋‹ค ๋‚ด๋ถ€ ์ž‘์„ฑ ์ฝ”๋“œ(์ธ์Šคํ„ดํŠธ ์ฝ”๋“œ)๊ฐ€ ๋” ๋น ๋ฆ„

[C++] Callback

July 14 2021

Callback ํ•จ์ˆ˜ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ํ˜ธ์ถœ๋  ํ•จ์ˆ˜๋ฅผ ์•Œ๋ ค์ฃผ๊ณ , ๊ทธ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ผ๋ฐ˜์ ์œผ๋กœ OS๊ฐ€ ํ˜ธ์ถœํ•  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•จ์ˆ˜๋ฅผ ์ง€์ •ํ•ด ํŠน์ •ํ•œ ์‚ฌ๊ฑด / ๋ฉ”์„ธ์ง€๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ˜ธ์ถœํ•˜๋„๋ก ์ง€์ • ์ผ๋ฐ˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉ ์ฝœ๋ฐฑ ํ•จ์ˆ˜ ํ˜ธ์ถœ ...

[Misc] dll๊ณผ lib์˜ ์ฐจ์ด

July 07 2021

์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(Static Link Library) ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์— ๋ถ™์—ฌ ์ปดํŒŒ์ผ ์‹œ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์—์„œ ์ฐธ์กฐ (Compile-Time) lib ํŒŒ์ผ์€ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ํŒŒ์ผ์ด ์ƒ์„ฑ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๋ฐ์ดํŠธ ์‹œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์œผ๋กœ ์ž‘์„ฑ ๋‹ค๋ฅธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ํ•˜์ง€๋งŒ ๋ฒ„์ „ ...

[Misc] base64 ์ธ์ฝ”๋”ฉ

July 03 2021

์ธ์ฝ”๋”ฉ์ด๋ž€?* Encoding - ๋ฌธ์ž๋‚˜ ๊ธฐํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ Decoding - ์•”ํ˜ธํ™”๋ฅผ ํ•ด๋…ํ•˜๋Š” ๊ฒƒ, ๋ณตํ˜ธํ™” ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ์€ ์ •ํ•ด์ง„ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ž…๋ ฅ๋˜๊ณ  ํ•ด๋…ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ASCII๋‚˜ UNICODE์™€ ๊ฐ™์€ ๋ฌธ์ž์…‹์ด ๊ทธ๊ฒƒ์ด๋‹ค. Base64 ์ธ์ฝ”๋”ฉ์€ 8๋น„ํŠธ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๊ณตํ†ต ASCII ์˜์—ญ์˜ ๋ฌธ...

[C#] ContainsKey์™€ TryGetValue

June 30 2021

TryGetValue vs. ContainsKey? ```csharp // key๊ฐ€ ์žˆ๋Š”์ง€ ์ฒดํฌ public bool ContainsKey(TKey key) { return (this.FindEntry(key) >= 0); }

[C#] default

June 14 2021

default ์—ฐ์‚ฐ์ž default ํ‚ค์›Œ๋“œ๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜ ํƒ€์ž…์˜ ๊ธฐ๋ณธ ๋˜๋Š” ๋นˆ ์ƒํƒœ๋ฅผ ๋ฐ˜ํ™˜ ์ฐธ์กฐ ํ˜•์‹(class, delegate, โ€ฆ)์˜ default ๊ฐ’: null ๊ฐ’ ํ˜•์‹ (struct, enum, โ€ฆ)์˜ default ๊ฐ’: all-zeroes value int 0, DateTime 0001-01-01 00:00:0...

[C#] Blittable๊ณผ Unblittable

June 14 2021

Managed vs. Unmanaged Code Unmanaged code๋ž€ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ, ํ”„๋กœ์„ธ์„œ์— ํŠนํ™”๋˜์–ด ๊ทธ์— ์˜์กดํ•˜๋Š” ์ฝ”๋“œ C#์—์„œ๋Š” unsafe ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ์ฝ”๋“œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์— ์˜ํ•ด ์ง์ ‘ ๊ด€๋ฆฌ Managed code๋ž€ .NET ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๊ตฌ๋™ํ•˜๋Š” C# ์ฝ”๋“œ ์ž์ฒด ...

[C#] lock

June 04 2021

lock ํ‚ค์›Œ๋“œ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฎคํ…์Šค๋ฅผ ํš๋“ํ•˜๊ณ  signal๊ณผ unlock์„ ์‹คํ–‰