Recent posts

inline ํ‚ค์›Œ๋“œ

July 14 2021

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

Callback

July 14 2021

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

dll๊ณผ lib์˜ ์ฐจ์ด

July 07 2021

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

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); }