Recent posts

base64 ์ธ์ฝ”๋”ฉ

July 03 2021

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

ContainsKey & TryGetValue

June 30 2021

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

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...

Blittable & Unblittable

June 14 2021

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

lock ํ‚ค์›Œ๋“œ

June 04 2021

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

DontDestroyOnLoad

June 03 2021

DontDestroyOnLoad ์ƒˆ๋กœ์šด Scene์ด ๋กœ๋“œ๋  ๋•Œ, ์ž๋™์œผ๋กœ ํŒŒ๊ดด๋˜์ง€ ์•Š๋Š” target ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑ ์ƒˆ ๋ ˆ๋ฒจ์ด ๋กœ๋“œ๋˜๋ฉด Scene์˜ ๋ชจ๋“  ์˜ค๋ธŒ์ ํŠธ๋“ค์€ ํŒŒ๊ดด๋˜๊ณ , ์ƒˆ ๋ ˆ๋ฒจ์˜ ์˜ค๋ธŒ์ ํŠธ๋“ค์ด ๋กœ๋“œ๋œ๋‹ค. ๋ ˆ๋ฒจ ์Šค์œ„์น˜ ์ค‘์— ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด DontDestroyOnLoad ์‚ฌ์šฉ ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ component์ด๊ฑฐ๋‚˜ gam...

sealed ํ‚ค์›Œ๋“œ

March 16 2021

sealed ํ‚ค์›Œ๋“œ ํด๋ž˜์Šค์— ์ ์šฉ๋œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ํ•ด๋‹น ํด๋ž˜์Šค์—์„œ ์ƒ์†ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์Œ

unsafe ํ‚ค์›Œ๋“œ

March 15 2021

C# ํฌ์ธํ„ฐ C# ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋Š” ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ „ํ•œ ์ฝ”๋“œ .Net ๋„๊ตฌ์—์„œ ์ฝ”๋“œ๊ฐ€ ์•ˆ์ „ํ•œ์ง€ ํ™•์ธ ๊ฐ€๋Šฅ ์›์‹œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜์ง€ ์•Š๊ณ , ํฌ์ธํ„ฐ๋กœ ์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ์— ์—‘์„ธ์Šคํ•˜์ง€ ์•Š์Œ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์•ฑ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ ํฌ์ธํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๋„ค์ดํ‹ฐ๋ธŒ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜ ๋ณด์•ˆ ๋ฐ ์•ˆ์ „์„ฑ ์ด์Šˆ ๋ฐœ์ƒ...

async์™€ await ํ‚ค์›Œ๋“œ

March 12 2021

๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ๋™๊ธฐ ์–ด๋–ค operation์„ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ’์ด ๋„์ถœ๋  ๋•Œ๊นŒ์ง€ ํ”„๋กœ๊ทธ๋žจ์€ ๋ฉˆ์ถฐ์„œ ๊ธฐ๋‹ค๋ ค์•ผ ํ•จ ๋น„๋™๊ธฐ ์–ธ์ œ ๊ฐ’์ด ๋„์ถœ๋  ์ง€ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ณ , ๊ทธ ๋™์•ˆ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ async / await๋Š” ์œ„ ์ค‘ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด ์‚ฌ...