Post

์ง๋ ฌํ™” Serialization

November 17 2024

๋ฐ์ดํ„ฐ ์ง๋ ฌํ™”๋ž€ ์ง๋ ฌํ™”์˜ ๊ฐœ๋…์„ ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด ๋ณดํ†ต์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์„œ์ˆ ํ•œ๋‹ค ๋‚˜์—๊ฒŒ๋Š” ์„ ๋œป ์™€๋‹ฟ์ง€ ์•Š๋Š” ์„ค๋ช…์ด๋‹ค

Navigation Theory

January 21 2023

Navigation with AI ๊ธธ์ฐพ๊ธฐ๋ฅผ ํ†ตํ•ด ์ฃผ๋ณ€ ํ™˜๊ฒฝ์„ ํ—ค์ณ๋‚˜๊ฐ€๋Š” ๊ฑด AI์˜ ๊ธฐ๋ณธ์ด์ง€๋งŒ ๋‹จ์ˆœํžˆ A ์ง€์ ์—์„œ B ์ง€์ ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ๋งˆ๋ƒฅ ์‰ฌ์šด ์ผ์€ ์•„๋‹ˆ๋‹ค. ๊ธธ์ฐพ๊ธฐ๋Š” ๊ฒฝ๋กœ ํƒ์ƒ‰๊ณผ ์žฅ์• ๋ฌผ ํšŒํ”ผ๋กœ 2 ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์žฅ์• ๋ฌผ์ด๋ž€ ๊ณ ์ •๋œ ์ƒํƒœ์˜ ๋ฌผ์ฒด๋กœ ์ •์˜ํ•œ๋‹ค. ์ด๋Ÿฐ ์žฅ์• ๋ฌผ์„ ํšŒํ”ผํ•˜๊ธฐ ์œ„ํ•ด Navigation Mesh๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

Behavior Tree Theory

January 21 2023

Behavior Tree ํ–‰๋™ ํŠธ๋ฆฌ๋Š” AI๊ฐ€ ํ˜„์žฌ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ค ํ–‰๋™์„ ํ•  ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ถ„๊ธฐ๋ฅผ ๋„์‹ํ™”ํ•œ ๊ฒƒ์ด๋‹ค. ์ด๋Š” ๊ฐ ๊ฐœ๋ณ„ ๋…ธ๋“œ์˜ ์‹ค์ œ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ํ•„์š” ์—†์ด, AI์˜ ํ–‰๋™ ํ”Œ๋กœ์šฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.

AI Perception Theory

January 21 2023

Parts of the AI Perception System Unreal์€ AI Perception System์„ ํ†ตํ•ด Actor๊ฐ€ ๋ฌด์—‡์„ ๊ฐ์ง€ํ•˜๋Š”์ง€, World์˜ ์–ด๋–ค ๋ถ€๋ถ„์„ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์ œ์–ดํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. ์ˆ˜์ง‘ํ•œ ์ •๋ณด๋Š” Event-driven system์ด ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ ๊ฐ„๋‹จํ•ด์ง€๋ฉฐ ๊ฐ€๋ฒผ์šด ๋น„์šฉ๋งŒ์„ ์†Œ๋ชจํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์•ˆ์—์„œ ์ „๋ฒ”์œ„์— ...

Root Motion

January 21 2023

๋ฃจํŠธ ๋ชจ์…˜ ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ์ฐจ์ด

Unreal ์ฃผ์š” Type

January 08 2023

UCLASS์™€ USTRUCT์˜ ์ฐจ์ด? ๊ฐ ๋งคํฌ๋กœ๋Š” Reflection ์‹œ์Šคํ…œ์— ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค Unreal Editor๊ฐ€ ์‚ฌ์šฉ์ž ์ •์˜์˜ ํด๋ž˜์Šค ๋˜๋Š” ๊ตฌ์กฐ์ฒด๋ฅผ ์ธ์‹ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ํฌํ•จ์‹œ์ผœ Garbage Collectionํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค UHT(Unreal ...

UObject

January 03 2023

UObject UObject๋Š” Unreal Engine์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๊ฐ์ฒด๋‹ค UCLASS ๋งคํฌ๋กœ ์„ ์–ธ์œผ๋กœ UObject๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์ด ์ด๋ฅผ ์ธ์‹ํ•œ๋‹ค Reflection System์„ ํ†ตํ•ด Garbage Collection์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋“ฑ์˜ ์—ญํ• 

๋žŒ๋‹ค ํ•จ์ˆ˜

January 02 2023

๋žŒ๋‹ค ํ•จ์ˆ˜ lambda ์ด๋ฆ„ ์—†๋Š”(์ต๋ช…์˜) ํ•จ์ˆ˜ ๊ฐ์ฒด

์• ๋‹ˆ๋ฉ”์ด์…˜์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์šฉ์–ด ์ •๋ฆฌ

September 04 2022

IK์™€ FK FK Rig Forward Knematics Parent๊ฐ€ ์›€์ง์ด๋ฉด Child๋„ ์ข…์†๋˜์–ด ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ž‘๋™ ํŒ”๊ฟˆ์ง€๋ฅผ ์œ„์•„๋ž˜๋กœ ํ”๋“ค๋ฉด ์†, ์†๊ฐ€๋ฝ๋„ ๋”ฐ๋ผ ์›€์ง์ด๋Š” ์›๋ฆฌ

Unreal Object

September 04 2022

UObject ์˜ค๋ธŒ์ ํŠธ์˜ ๋ฒ ์ด์Šค ํด๋ž˜์Šค ์–ธ๋ฆฌ์–ผ ์—”์ง„์˜ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๋Š”, ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ํŠน์ˆ˜ํ•œ ๊ฐ์ฒด UCLASS ๋งคํฌ๋กœ๋ฅผ ํ†ตํ•ด UObject ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์ด ์ธ์‹ UE์—์„œ ์ œ๊ณตํ•˜๋Š” GC์˜ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค UCLASS์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ UObject์—๊ฒŒ ๋„˜๊ฒจ์ค€๋‹ค? ...

Actor Lifecyle

September 04 2022

๊ธฐ๋ณธ์ ์ธ Actor์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด PreInitializeComponents ์ปดํฌ๋„ŒํŠธ ์ดˆ๊ธฐํ™” ์ด์ „ InitializeComponents ์•กํ„ฐ์— ์ •์˜๋œ ๊ฐ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ์šฉ ํ—ฌํผ ํ•จ์ˆ˜ PostInitializeComponents ์•กํ„ฐ์— ์†ํ•œ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ์˜ ์ดˆ๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ BeginePlay ํ”Œ๋ ˆ์ด ์‹œ...

memcpy & memmove

August 07 2022

memcpy destination ์ฃผ์†Œ๊ฐ’, source ์ฃผ์†Œ๊ฐ’, source์˜ ๊ธธ์ด๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š” ํ•จ์ˆ˜ sdource์˜ ๊ฐ’์„ destination์œผ๋กœ ๋ณต์‚ฌ

CI/CD

July 20 2022

CI/CD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋‹ค ์งง์€ ์ฃผ๊ธฐ๋กœ ๊ณ ๊ฐ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ• ์ง€์†์  ํ†ตํ•ฉ, ์ง€์†์  ๋ฐฐํฌ, ์ง€์†์  ์„œ๋น„์Šค ์ œ๊ณต ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋ฅผ CI/CD ํŒŒ์ดํ”„๋ผ์ธ์ด๋ผ ํ•˜๋ฉฐ, ์• ์ž์ผ ๋ฐฉ์‹์˜ ํ˜‘๋ ฅ์„ ํ†ตํ•ด ์‹คํ–‰

Burst

July 10 2022

๊ฐœ์š” LLVM์„ ์‚ฌ์šฉํ•˜์—ฌ IL์„ ๊ณ ๋„๋กœ ์ตœ์ ํ™”๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ปดํŒŒ์ผ๋Ÿฌ

Garbage Collector

July 10 2022

GC ๊ธฐ๋ณธ์‚ฌํ•ญ CLR์—์„œ ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์—ญํ• ์„ ํ•˜๊ธฐ ์œ„ํ•ด GC๋ฅผ ๋‘”๋‹ค ์‚ฌ์šฉ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ๋“ฑ ๊ด€๋ฆฌ ์ž‘์—…์„ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ˜ํ™˜, ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ ๋“ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ GC์— ์˜ํ•ด ํšจ์œจ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น

Type

July 03 2022

Value Type ๊ฐ’์ด ๋ฐ”๋กœ ํ• ๋‹น๋˜๋Š” ํƒ€์ž… ์ง์ ‘ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค int, float, char ๋“ฑ์ด ์ด์— ํ•ด๋‹นํ•œ๋‹ค System.ValueType์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์†

Method & Virtual Table

July 02 2022

Virtual Table์˜ ๊ตฌ์กฐ C#์—์„œ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” System.Object ํด๋ž˜์Šค์—์„œ ์ƒ์†๋˜๋ฏ€๋กœ VTable์„ ๊ฐ–๋Š”๋‹ค ๊ธฐ๋ณธ์ ์œผ๋กœ ToString, Equals, GetHashCode, Finalize ๋ฉ”์„œ๋“œ๋ฅผ VTable์— ๊ฐ–๋Š”๋‹ค Baseํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ƒ ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ์ด์™ธ์˜ ๋ฉ”์„œ๋“œ๋“ค์€ VTable Slo...

Abstract Data Type

July 02 2022

์ถ”์ƒ์  ์ž๋ฃŒํ˜• ADT ์ž๋ฃŒ ์ž์ฒด์˜ ํ˜•ํƒœ์™€ ์—ฐ์‚ฐ์„ ์ˆ˜ํ•™์ ์œผ๋กœ๋งŒ ์ •์˜ํ•œ ๊ฒƒ

SpriteRenderer vs. UI Image

June 22 2022

SpriteRenderer ์–ด๋–ค hierarchy์—๋„ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค Transform์œผ๋กœ ์กฐ์ •ํ•œ๋‹ค transparent geometry queue๋ฅผ ํ†ตํ•ด์„œ render๋œ๋‹ค default material์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ตœ์  ๋ฉ”์‰ฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค draw call์„ ์ค„์ด๊ธฐ ์œ„ํ•ด sprite at...

Truth About Value Type

June 22 2022

Value type์ด๋ฉด ๋ชจ๋‘ stack์— ์ €์žฅ๋œ๋‹ค? Value type์€ stack์— ์ €์žฅ๋  ์ˆ˜ ์žˆ๋‹ค ํ•ญ์ƒ stack์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•ด stack์— ์ €์žฅ๋˜๋Š”์ง€ heap์— ์ €์žฅ๋˜๋Š”์ง€๋ฅผ ์•Œ์•„์•ผํ•  ํ•„์š”๊ฐ€ ์žˆ์—ˆ๋‹ค ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”...

Struct vs. Class

June 14 2022

Struct ๊ฐ’ ํƒ€์ž… allocation ๋ฐ deallocation ์‹œ ์ฐธ์กฐ ํƒ€์ž…๋ณด๋‹ค ์†Œ์š”๊ฐ€ ์ ๋‹ค stack์— ์ €์žฅ nested struct ๊ตฌ์กฐ์ธ ๊ฒฝ์šฐ inline member๋“ค์€ private by default

Framebuffers

May 22 2022

๋ฒ„ํผ๋ž€? Buffer ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์—์„œ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ „์†กํ•˜๋Š” ๋™์•ˆ ์ผ์‹œ์ ์œผ๋กœ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ

string

May 17 2022

string vs String

Boxing & Unboxing

May 17 2022

๊ฐ’ ํ˜•์‹ vs. ์ฐธ์กฐ ํ˜•์‹

Array

May 14 2022

Difference between Array, ArrayList, List Array

Initialization in Constructor

May 11 2022

Initialization ์–ด๋–ค ๊ฐ์ฒด๋“  ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋Š” ์ƒ์„ฑ์ž์˜ ๋ณธ๋ฌธ์ด ์‹คํ–‰๋˜๊ธฐ ์ „ ์ดˆ๊ธฐํ™”๋˜์–ด์•ผ ํ•œ๋‹ค

IL2CPP

May 10 2022

์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹ 2๊ฐ€์ง€

Unreal ๊ทธ๋ž˜ํ”„ ์ ‘๊ธฐ

May 01 2022

๋…ธ๋“œ๋กœ ์ ‘๊ธฐ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ๋…ธ๋“œ๋ฅผ ๋””์ž์ธํ•˜๋‹ค๊ฐ€ ์ปค๋‹ค๋ž€ ๊ทธ๋ž˜ํ”„๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ์ •๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ

Blueprint

May 01 2022

Blueprint๋ž€? Unreal ์—”์ง„์— ๋‚ด์žฅ๋œ ์ปดํŒŒ์ผ์‹ ๋น„์ฃผ์–ผ ์Šคํฌ๋ฆฝํŒ… ์‹œ์Šคํ…œ ํ•˜๋‚˜์˜ ํ”„๋ฆฌํŒน ํ˜น์€ ์•„ํ‚คํƒ€์ž…์œผ๋กœ ์ •์˜ํ•˜๋Š” ๋‹จ์œ„์ผ ์ˆ˜๋„ ์žˆ๋‹ค

Unreal ๋งคํฌ๋กœ

April 27 2022

์–ธ๋ฆฌ์–ผ์— ๋งคํฌ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์–ธ๋ฆฌ์–ผ C++ ์ฝ”๋“œ๋Š” Unreal Header Tool, UHT Preprocessor๋ผ ๋ถˆ๋ฆฌ๋Š” ์ปค์Šคํ…€ RTTI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค ์ด๋Ÿฐ ๋งคํฌ๋กœ๊ฐ€ ๋‹ฌ๋ฆฐ ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์ธ C++ ๋งคํฌ๋กœ์™€ ๋‹ฌ๋ฆฌ ๋” ๋‚ฎ์€ ๋ ˆ๋ฒจ์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ๊ด€๋ฆฌ๋œ๋‹ค ์ด ๋งคํฌ๋กœ๋“ค์€ RTTI, Reflection ๋“ฑ ์ž‘๋™์„ ์œ„ํ•ด ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค

Return Value Optimization

April 06 2022

์ž„์‹œ ๊ฐ’ ํ• ๋‹น ์ธ์ž C++ ์—์„œ๋Š” ์ž„์‹œ๊ฐ’์„ const reference์™€ rvalue reference, ๊ทธ๋ฆฌ๊ณ  ๊ฐ’์œผ๋กœ์„œ์˜ ํ•จ์ˆ˜ ์ธ์ž๋กœ ๋ฐ›๋„๋ก ํ—ˆ์šฉํ•œ๋‹ค non-const reference ์ธ์ž๋ฅผ ๋ฐ›๋Š” ํ•จ์ˆ˜๋Š” ํ•จ์ˆ˜ ์‹คํ–‰ ์ค‘ ์ธ์ž๋ฅผ ์ˆ˜์ •ํ•˜๊ณ ์„œ ๋ณ€๊ฒฝ๋œ ์ƒํƒœ๋กœ ๋‹ค์‹œ caller๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•œ๋‹ค

Cache

March 12 2022

์บ์‹œ Cache CPU๊ฐ€ ๋น ๋ฅธ ์†๋„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ฉ”๋ชจ๋ฆฌ Locality of Reference ์›๋ฆฌ์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€ ๋ณด๊ด€

32bit vs. 64bit

March 12 2022

CPU์˜ ์ฐจ์ด ๋ ˆ์ง€์Šคํ„ฐ์˜ bit ํญ ์ฐจ์ด ๋ ˆ์ง€์Šคํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ 16bit์ด๋ฉด 16bit CPU ๋ ˆ์ง€์Šคํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ 64bit์ด๋ฉด 64bit CPU

Affine Space

March 12 2022

๋ฒกํ„ฐ์˜ ํ•œ๊ณ„ ์–ด๋–ค ๋ฌผ์ฒด๋ฅผ ํ™”๋ฉด์— ํ‘œํ˜„ํ•˜๋ ค๋ฉด ๋ฒกํ„ฐ๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑ ๋ฒกํ„ฐ๋Š” ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ ์„ฑ๋ถ„๋งŒ์„ ๊ฐ€์ง ์œ„์น˜ ์ •๋ณด๊ฐ€ ํ•„์š” ์œ„์น˜๋Š” ๋ฌด์—‡์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š”๊ฐ€? ์  point

Stack Overflow

March 01 2022

๋ฐœ์ƒ ์ด์œ  Stack ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ์ดˆ๊ธฐํ™”๋  ๋•Œ ๊ณ ์ •๋œ ํฌ๊ธฐ๋กœ ๊ฒฐ์ • ์‚ฌ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์†Œํ”„ํŠธ์›จ์–ด๋Š” undefined behavior ์•ผ๊ธฐ Stack ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ง€์ •๋œ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด๊ฐˆ ๋•Œ ๋ฐœ์ƒ ํ•œ ํ•จ์ˆ˜์—์„œ ๋„ˆ๋ฌด ํฐ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ๋ฌดํ•œ์ •...

Runtime Type Information

March 01 2022

RTTI๋ž€ C++ ์ปดํŒŒ์ผ๋Ÿฌ ๋‚ด์— ์žˆ๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž… ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ด๋Š” ๊ธฐ๋Šฅ ๋Ÿฐํƒ€์ž„์—์„œ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ• ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ๋Ÿฐํƒ€์ž„์—์„œ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์ฃผ ๊ฐ์ฒด์— ํƒ€์ž… ์ •๋ณด ์ถ”๊ฐ€ ๋Ÿฐํƒ€์ž„์—์„œ ๊ฐ์ฒด์˜ ์บ์ŠคํŒ…์ด ์œ ํšจํ•œ์ง€ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด, ๊ฐ์ฒด๋ฅผ ํŠน์ • ํƒ€์ž…์œผ๋กœ ๊ฒฐ์ •ํ•œ...

๋ฉ”๋ชจ๋ฆฌ ๋ฐ CPU ๋ถ€์กฑ ํ˜„์ƒ

February 18 2022

๋ฉ”๋ชจ๋ฆฌ(RAM) ์ ์œ ์œจ์˜ ์ƒ์Šนํ•˜๋ฉด? ๋ฉ”์ธ ๋“œ๋ผ์ด๋ธŒ์— ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์„ค์ • ํ•ด๋‹น ์˜์—ญ์„ ๋ฉ”๋ชจ๋ฆฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๋‚ฎ์€ ๋‹จ๊ณ„์— ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žกํž์ˆ˜๋ก ์—‘์„ธ์Šค ์†๋„๊ฐ€ ๋Š๋ ค์ง ์ด ๊ฐ™์€ ์ด์œ ๋กœ RAM ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ข‹๋‹ค๋Š” ๊ฒƒ

Terrain Analysis & Propagation

February 15 2022

Influence Mapping ์˜ํ–ฅ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์น˜๋ฅผ 2d grid์— ๋ถ„์‚ฐ์‹œ์ผœ ๋†“์€ ์ถ”์ƒ ๋””์ž์ธ

Linear Transformation (2)

February 02 2022

ํฌ๊ธฐ ๋ณ€ํ™˜ ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ์™€ ๋ฐฉํ–ฅ ์ค‘ ํฌ๊ธฐ๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ ๊ฐ ์„ฑ๋ถ„์— ๊ฐ ๊ณ„์ˆ˜๋งŒํผ์˜ ํฌ๊ธฐ๋ฅผ ๊ณฑํ•ด ์–‘์„ ๋ฐ”๊ฟˆ

Prototype Pattern

January 24 2022

ํ”„๋กœํ† ํƒ€์ž… ๋””์ž์ธ ํŒจํ„ด ์—ฌ๋Ÿฌ ๋ชฌ์Šคํ„ฐ ํƒ€์ž…๊ณผ ๊ฐ ๋ชฌ์Šคํ„ฐ๋ฅผ ์†Œํ™˜ํ•˜๋Š” Spwaner๋ฅผ ๋””์ž์ธํ•ด๋ณด์ž

Linear Transformation (1)

January 22 2022

์„ ํ˜• ๋ณ€ํ™˜๊ณผ ํ–‰๋ ฌ ์„ ํ˜• ๋ณ€ํ™˜์ด๋ž€ ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ ๊ณต๊ฐ„์„ ๋‹ค๋ฅธ ๋ฒกํ„ฐ ๊ณต๊ฐ„์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ์„ ํ˜• ๋ณ€ํ™˜์„ ์ •์˜ํ•˜๋Š” ๋‘ ํŠน์„ฑ์ด ๋ณ€ํ™˜ ํ›„์—๋„ ๋ฒกํ„ฐ ๊ณต๊ฐ„์˜ ์กฐ๊ฑด์„ ๊ทธ๋Œ€๋กœ ๋งŒ์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ

Observer Pattern

January 21 2022

๊ด€์ฐฐ์ž ํŒจํ„ด์˜ ์‚ฌ๋ก€ MVC ํŒจํ„ด C#์˜ event java์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Flyweight Pattern

January 19 2022

์ฒซ๋ฒˆ์งธ ์˜ˆ์ œ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ์ฒด, ์ฆ‰ ๊ณต์œ  ๊ฐ์ฒด๋กœ ํ†ตํ•ฉํ•ด์„œ ๊ด€๋ฆฌ ๊ฐ ์ธ์Šคํ„ด์Šค๋Š” ๊ณต์œ  ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ๋งŒ ํ•˜๊ณ  ์ƒํƒœ ๊ฐ’์€ ์ธ์Šคํ„ด์Šค์— ์ €์žฅ

Matrix

January 16 2022

ํ–‰๋ ฌ Matrix m x n ํ–‰๋ ฌ์—์„œ m = n ์ด๋ฉด ์ •๋ฐฉํ–‰๋ ฌ square matrix ์ด๋‹ค ๋ชจ๋“  ์š”์†Œ๊ฐ€ 0์ด๋ฉด ์˜ํ–‰๋ ฌ zeron matrix ์ด๋‹ค ์–ด๋–ค ํ–‰๋ ฌ์˜ ํ–‰๊ณผ ์—ด์„ ๋’ค๋ฐ”๊พธ๋ฉด ์ „์น˜ ํ–‰๋ ฌ transpose matrix๋ผ ํ•œ๋‹ค ์ „์น˜ํ•œ ํ–‰๋ ฌ์ด ์›๋ž˜ ํ–‰๋ ฌ๊ณผ ๊ฐ™๋‹ค๋ฉด ๋Œ€์นญ ํ–‰๋ ฌ symmetric matrix๋ผ ํ•œ๋‹ค ...

Content Delivery Network

January 15 2022

Content Delivery Network ์ •์˜ ์ง€๋ฆฌ์ ์œผ๋กœ ๋ถ„์‚ฐ๋œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ฒ„ ์ปจํ…์ธ ๋ฅผ ์‚ฌ์šฉ์ž์™€ ๊ฐ€๊นŒ์šด ์„œ๋ฒ„์—์„œ ์ „์†กํ•ด ์†๋„๋ฉด์—์„œ ์ด๋“ ์ค‘์•™ ์„œ๋ฒ„์—์„œ ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ปจํ…์ธ ๋ฅผ ์ „์†กํ•˜๋ ค๋ฉด ํŠธ๋ž˜ํ”ฝ ๊ณผ๋ถ€ํ•˜ ๋ฐ ์ „์†ก ์†๋„, ์‹œ๊ฐ„ ๋ฌธ์ œ ๋ฐœ์ƒ ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ์„ ์บ์‹ฑํ•˜์—ฌ ๊ฐ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ์ €์žฅ

์ผ๊ธ‰ ํ•จ์ˆ˜์™€ ์ผ๊ธ‰ ๊ฐ์ฒด

January 15 2022

์ผ๊ธ‰ ๊ฐ์ฒด ๋ชจ๋“  ์š”์†Œ๋Š” ํ•จ์ˆ˜์˜ ์‹ค์ œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“  ์š”์†Œ๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“  ์š”์†Œ๋Š” ํ• ๋‹น ๋ช…๋ น๋ฌธ์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“  ์š”์†Œ๋Š” ๋™์ผ ๋น„๊ต์˜ ๋Œ€์ƒ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

Vector

January 15 2022

์œ ํด๋ฆฌ๋“œ ๊ณต๊ฐ„ ์ž„์˜์˜ ์ ๊ณผ ๋‹ค๋ฅธ ํ•œ ์ ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ง์„ ์€ ๋‹จ ํ•˜๋‚˜๋‹ค ์ž„์˜์˜ ์„ ๋ถ„์€ ์–‘ ๋์œผ๋กœ ์–ผ๋งˆ๋“ ์ง€ ์—ฐ์žฅํ•  ์ˆ˜ ์žˆ๋‹ค ์ž„์˜์˜ ์ ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๊ณ  ์ž„์˜์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜์ง€๋ฆ„์œผ๋กœ ํ•˜๋Š” ์›์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค R์€ ์‹ค์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„, R^2์€ 2์ฐจ์› ๊ณต๊ฐ„, R^3๋Š” 3์ฐจ์› ๊ณต๊ฐ„์„ ์˜๋ฏธ

Linear Algebra

January 15 2022

์„ ํ˜•๋ณ€ํ™˜ (Linear Transformation) ๋Œ€์ˆ˜ํ•™ ๋ฏธ์ง€์ˆ˜์™€ ๋ฏธ์ง€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜ํ•™

Command Pattern

January 15 2022

์ •์˜ ํ”ํžˆ ์‹ค์ฒดํ™” ๋˜๋Š” ์ผ๊ธ‰์ด๋ผ๊ณ  ํ•˜๋ฉด ์–ด๋–ค ๊ฐœ๋…์„ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค ์ด ๊ฐœ๋…์€ ๊ฐ’์ผ ์ˆ˜๋„, ํ•จ์ˆ˜์™€ ๊ฐ™์€ ๋กœ์ง์ผ ์ˆ˜๋„ ์žˆ๋‹ค ์ฆ‰ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์„ ์‹ค์ฒดํ™”ํ•œ ๊ฒƒ์ด๋ฉฐ, ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ฐ์ฒด๋กœ ๊ฐ์ŒŒ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค ์ฝœ๋ฐฑ, ์ผ๊ธ‰ ํ•จ์ˆ˜, ํ•จ์ˆ˜ ํฌ์ธํ„ฐ, ํด...

Closure

January 15 2022

์˜ˆ์‹œ case 1

Multiple Inheritance

November 16 2021

๋‹ค์ค‘ ์ƒ์† Multiple Inheritance C++์—์„œ๋Š” C#๊ณผ ๋‹ค๋ฅด๊ฒŒ, ๋‹ค์ค‘ ์ƒ์†์„ ํ—ˆ์šฉ ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋˜๋Š” ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์ด ๋™์ผํ•œ ๊ฒฝ์šฐ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค

Transforming - World

November 15 2021

Translation ์–ด๋–ค P1 (x, y)๋ฅผ P2(xโ€™, yโ€™)๋กœ ์ด๋™ ๋‘ ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋Š” (Tx, Ty) xโ€™ = x + Tx yโ€™ = y + Ty

DFS & BFS

November 14 2021

DFS Depth-Frist Search ํ˜„์žฌ ๋ถ„๊ธฐ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํƒ์ƒ‰ํ•œ ๋’ค ๋‹ค์Œ ๋ถ„๊ธฐ๋กœ ์ด๋™ ํ˜„์žฌ ๋…ธ๋“œ์™€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ฅผ ์šฐ์„  ํƒ์ƒ‰ ๋” ์ด์ƒ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๊ธฐ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ๊ทธ๋ž˜ํ”„ ๋‚ด์— cycle ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ

Path-Finding

November 14 2021

๊ณต๊ฐ„ ๋ถ„ํ• ์˜ ํƒ€์ž… Grid QuadTree/OctTree Waypoint graphs Coner graphs Circle-based waypoint graphs Navigation meshess

Memory Allocator

November 13 2021

new/delete์™€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ? ๊ธฐ๋Šฅ์˜ ๊ณผ๋„ํ•œ ๋ฒ”์šฉ์„ฑ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ๋„ˆ๋จธ์˜ hidden behavior ์ˆ˜ํ–‰ ๋ถˆ์ถฉ๋ถ„ํ•œ ๊ธฐ๋Šฅ

VSync์™€ Anti Aliasing

November 12 2021

์ˆ˜์ง๋™๊ธฐํ™” VSync ํ™”๋ฉด์ฃผ์‚ฌ์œจ๊ณผ ๊ฒŒ์ž„ ํ™”๋ฉด์˜ FrameRate๋ฅผ ๋™๊ธฐํ™” ๋ชจ๋‹ˆํ„ฐ๋Š” ๊ฐ๊ฐ ๊ณ ์œ ์˜ ์ฃผ์‚ฌ์œจ์ด ์žˆ๋‹ค 60Hz๋Š” 1์ดˆ์— 60๋ฒˆ ์Šคํฌ๋ฆฐ์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค๋Š” ์˜๋ฏธ ํ•˜๋“œ์›จ์–ด ๊ณ ์œ ์˜ ์ œํ•œ ์‚ฌํ•ญ์ด๋ฏ€๋กœ, ํ”„๋กœ๊ทธ๋žจ ๋ฐ PC ์„ฑ๋Šฅ๊ณผ ๋ฌด๊ด€ ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„์€ ๊ฒŒ์ž„ Scene์„ 1์ดˆ์— ๋ช‡ ๋ฒˆ ๊ทธ๋ฆฌ๋Š”์ง€๋ฅผ ์˜๋ฏธ ...

Singleton ํŒจํ„ด

November 12 2021

Singleton ์˜ค์ง ํ•œ ๊ฐœ์˜ instance๋งŒ์„ ๊ฐ–๋„๋ก ๋ณด์žฅ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์—๊ฒŒ ํ•„์š”

Template vs. Generic

November 11 2021

C++ Template vs. C# Generic C++ ์€ ์ปดํŒŒ์ผ์ด 1๋ฒˆ ์ผ์–ด๋‚˜๊ณ , C# ์ œ๋„ค๋ฆญ์€ ์ปดํŒŒ์ผ์ด 2๋ฒˆ ์ผ์–ด๋‚œ๋‹ค. C++ ํ…œํ”Œ๋ฆฟ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ, C# ์ œ๋„ค๋ฆญ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ๊ทธ์— ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. ์ œ๋„ค๋ฆญ์€ ๋น„ํ˜•์‹ ํƒฌํ”Œ๋ฆฟ ...

Heap & Priority Queue

October 29 2021

Heap ๊ตฌ์กฐ์ฒด ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ ์—ฌ๋Ÿฌ ๊ฐ’๋“ค ์ค‘ ์ตœ์†Ÿ๊ฐ’์ด๋‚˜ ์ตœ๋Œ“๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ˜์ •๋ ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ ์ž‘์€ ๊ฐ’์€ ํ•˜์œ„, ํฐ ๊ฐ’์€ ์ƒ์œ„์— ์žˆ๋Š” ์ •๋„ ์ด์ง„ ํŠธ๋ฆฌ์™€๋Š” ๋‹ฌ๋ฆฌ, ์ค‘๋ณต๋œ ๊ฐ’์„ ํ—ˆ์šฉ ์ด์ง„ ํŠธ๋ฆฌ์—์„œ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๊ฐ–์ถ˜ ๊ตฌ์กฐ์ฒด ํŠธ๋ฆฌ์˜ ๋†’์ด h๊ฐ€...

Adapter ํŒจํ„ด

October 28 2021

Adaper ํŒจํ„ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์›๋ณธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ต์ฒด์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Œ

Socket & Port

October 27 2021

Host ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ์žฅ์น˜๋ฅผ Node ๋…ธ๋“œ ์ค‘ IP ์ฃผ์†Œ(๋„คํŠธ์›Œํฌ ์ฃผ์†Œ)๊ฐ€ ํ• ๋‹น๋œ ๊ฒƒ๋“ค์„ Host Host๋“ค๋ผ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์ˆ˜์‹ ํ•œ๋‹ค ๋ฐ์ดํ„ฐ์˜ ์†ก์ˆ˜์‹ ์€ Host๊ฐ€ ์‹คํ–‰ํ•˜๋Š” Process๊ฐ€ ์ˆ˜ํ–‰

Cookie & Session

October 27 2021

์—ฐ๊ฒฐ ์ง€ํ–ฅ vs. ๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ

Protocol

October 27 2021

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

HTTP

October 27 2021

HTTP HyperText Transfer Protocol HTML ๋ฌธ์„œ์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค๋“ค์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ Plain text๋กœ๋ถ€ํ„ฐ JSON ๋ฐ์ดํ„ฐ ๋ฐ XML๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์ •๋ณด๋„ ์†ก์ˆ˜์‹  ๊ฐ€๋Šฅ ๋ณดํ†ต์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์ •๋ณด๋ฅผ HTML ํ˜•ํƒœ๋กœ ๋ฐ›๊ณ  ์‹ถ์€์ง€, JSON ํ˜•ํƒœ๋กœ ๋ฐ›๊ณ  ์‹ถ์€์ง€ ๋ช…์‹œ ...

์Šค๋งˆํŠธ ํฌ์ธํ„ฐ - weak_ptr

October 24 2021

์„œ๋กœ ์ฐธ์กฐํ•˜๋Š” shared_ptr ์ˆœํ™˜ ์ฐธ์กฐํ•˜๋Š” shared_ptr์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋Œ€๋„ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ ๋ถˆ๊ฐ€

์Šค๋งˆํŠธ ํฌ์ธํ„ฐ - shared_ptr

October 24 2021

shared_ptr ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ™์ด ์†Œ์œ ํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ ํ•˜๋‚˜์˜ ์ž์›์„ ๋ช‡๊ฐœ์˜ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ์ถ”์ ํ•˜๋Š” ํฌ์ธํ„ฐ control block์„ ํ• ๋‹นํ•˜์—ฌ ๋ณต์‚ฌ๋ฅผ ํ—ˆ์šฉ ๊ฐ shared_ptr ๊ฐ์ฒด์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์‹ค์ œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” control block์„ ํ• ๋‹น ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š”...

perfect forwarding

October 24 2021

์™„๋ฒฝํ•œ ์ „๋‹ฌ perfect forwarding wrapper ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

exception

October 23 2021

์˜ˆ์™ธ๋ž€? ์ •์ƒ์ ์ธ ์ƒํ™ฉ์—์„œ ๋ฒ—์–ด๋‚œ ๋ชจ๋“  ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ๋“ค

decltype ํ‚ค์›Œ๋“œ

October 22 2021

decltype ์‹๋ณ„์ž ํ‘œํ˜„์‹์ด ์•„๋‹Œ ์‹์„ ์ธ์ž๋กœ ๋ฐ›๊ณ , ๊ทธ ํƒ€์ž…์„ T๋ผ๊ณ  ํ–ˆ์„ ๋•Œ ์‹์˜ ๊ฐ’์ด xvalue์ธ ๊ฒฝ์šฐ -> T&& ๋ฅผ ๋ฆฌํ„ด ์‹์˜ ๊ฐ’์ด lvalue์ธ ๊ฒฝ์šฐ -> T& ๋ฅผ ๋ฆฌํ„ด ์‹์˜ ๊ฐ’์ด prvalue์ธ ๊ฒฝ์šฐ -> T ๋ฅผ ๋ฆฌํ„ด decltype...

Precompiled Header

August 22 2021

Precompiled Header(๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋”) ํ—ค๋”๋ฅผ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ ํ•ด๋‘๋Š” ๊ฒƒ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ธด์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผํ•˜์—ฌ ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ณ„๋„์˜ ํŒŒ์ผ์— ์ €์žฅ ๋‹ค์‹œ ๋˜‘๊ฐ™์€ ํ—ค๋”๋ฅผ ์ปดํŒŒ์ผํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ํŒŒ์ผ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๊ณ , ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํ—ค๋” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด ์ปดํŒŒ์ผ ์†๋„๋ฅผ ์›”๋“ฑํžˆ ํ–ฅ์ƒ

dynamic ํ‚ค์›Œ๋“œ

August 21 2021

๋™์  ํ˜•์‹ dynamic ๋ณ€์ˆ˜ ๋ฐ ํ•ด๋‹น ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์ฐธ์กฐ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ปดํŒŒ์ผ ํƒ€์ž„ ๊ฒ€์‚ฌ๋ฅผ ํŒจ์‹ฑ ๋Ÿฐํƒ€์ž„์—์„œ ํ™•์ธ ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ object ์ฒ˜๋Ÿผ ๋™์ž‘ ๊ทธ๋Ÿฌ๋‚˜ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ˜•์‹์„ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์€ ์ƒํƒœ ์ปดํŒŒ์ผ ํƒ€์ž„์„ ๊ฑฐ์น˜๋ฉฐ object ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ๋Ÿฐํƒ€์ž„์—์„œ dynamic...

map vs. unordered_map

August 20 2021

map ๋ ˆ๋“œ ๋ธ”๋ž™ ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰์†๋„๊ฐ€ ๋น ๋ฅธ Binary Search Tree(BST) + Self-Balancing ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ O(logN)์„ ๋ณด์žฅํ•˜๋Š” ์ˆ˜์ค€์œผ๋กœ Balancing ํ‚ค ๊ฐ’์˜ ๋ถ„ํฌ๊ฐ€ ๊ณ ๋ฅด์ง€ ๋ชปํ•  ๊ฒฝ์šฐ node rotation์— ๋Œ€ํ•œ ๋น„์šฉ์ด ๊ณ„์† ๋ฐœ์ƒํ•˜๊ธฐ์— Insert / Delete ์„ฑ๋Šฅ์ด...

Gizmo

August 11 2021

Gizmo ์”ฌ ๋ทฐ์—์„œ ํŽธ์ง‘์ด๋‚˜ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ์˜ค๋ธŒ์ ํŠธ์˜ ์œ„์น˜๋‚˜ ๋ฒ”์œ„, ํŠน์ • ์š”์†Œ๋ฅผ ๊ฐ€์‹œํ™”

์™œ Lua๋ฅผ ์“ฐ๋Š”๊ฐ€

August 11 2021

Lua ์Šคํฌ๋ฆฝํŠธ ์ ˆ์ฐจ์‹ ๋ช…๋ น์‹ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด ๊ฐ„๋‹จํ•œ ์ž๋ฃŒ๊ตฌ์กฐ : boolean, number, string, table ํ•ต์‹ฌ ๋ชจ๋“ˆ์˜ ํฌ๊ธฐ๊ฐ€ 120KB ์ดํ•˜ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” Python์— ๋น„ํ•ด ๋น ๋ฅธ ์‹คํ–‰ ์†๋„๋ฅผ ๊ฐ€์ง ์˜คํ”ˆ์†Œ์Šค

PP vs. OOP vs. DOP

August 11 2021

Procedural Programing (์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํ•จ์ˆ˜ํ™” ๋˜์–ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๊ฐ€ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ ์žฅ์  ์ปดํ“จํ„ฐ์˜ ์ฒ˜๋ฆฌ๊ตฌ์กฐ์™€ ์œ ์‚ฌํ•ด ์‹คํ–‰์†๋„๊ฐ€ ๋น ๋ฆ„ ๋‹จ์  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›€ ์‹คํ–‰ ์ˆœ์„œ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์œผ๋ฏ€...

Event Queue

August 04 2021

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

Texture ์‚ฌ์ด์ฆˆ

July 30 2021

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

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

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๋Š” ์œ„ ์ค‘ ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด ์‚ฌ...

Extension Method

March 08 2021

ํ™•์žฅ ๋ฉ”์„œ๋“œ๋ž€ ๊ธฐ์กด ์ œ๊ณต๋˜๋Š” ํด๋ž˜์Šค/๊ตฌ์กฐ์ฒด/์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•ด ์‚ฌ์šฉ ๊ธฐ์กด ๋ฐ์ดํ„ฐ ํƒ€์ž… (int, float ๋“ฑ)์˜ class์—๋„ ์ ์šฉ ๊ฐ€๋Šฅ

Image Compressing

March 04 2021

์ด๋ฏธ์ง€ ์••์ถ• PNG/JPG ๋“ฑ์œผ๋กœ ์••์ถ•ํ–ˆ๋”๋ผ๋„ GPU ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•  ๋•Œ๋Š” ์••์ถ•์ด ํ’€๋ฆฐ ์ƒํƒœ๋กœ ์ €์žฅ GPU๊ฐ€ ์ด ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์ฝ์–ด๋“ค์ผ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ ๋Œ€์—ญํญ ์‚ฌ์šฉ๋Ÿ‰์— ์ดˆ์ ์„ ๋งž์ถ˜ ํŒŒ์ผ ํ˜•์‹ GPU๊ฐ€ ํ…์Šค์ณ๋กœ ์“ฐ๊ธฐ ์œ„ํ•œ ์••์ถ• ํ˜•์‹์ด ์•„๋‹˜ ๊ฐ€๋ณ€ ๋น„์œจ ์ธ์ฝ”๋”ฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ ...

Culling

March 04 2021

Frustum Culling Camera (View) Matrix Far/Near ๊ฐ’์œผ๋กœ ์กฐ์ • ์›๊ฑฐ๋ฆฌ Culling objects์˜ ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์›€ ๊ฐ์ถ”๊ธฐ ์œ„ํ•ด Fog ์‚ฌ์šฉ

๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ(Memory Bandwidth)

March 04 2021

๋ฉ”๋ชจ๋ฆฌ ํด๋Ÿญ ๋ฉ”์ธ๋ณด๋“œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋žจ ๋™์ž‘ ์ฃผ๊ธฐ ์‹ ํ˜ธ(MHz) ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„์Šค ํญ ๋ฉ”๋ชจ๋ฆฌ ์ž…์ถœ๋ ฅ ๋ผ์ธ ๊ฐœ์ˆ˜(bit) ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ Memory Clock * Memory bus width ํ•œ๋ฒˆ์˜ ํด๋Ÿญ ์‹ ํ˜ธ๋ฅผ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์šฉ๋Ÿ‰ GPU๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ...

Drawcall

March 03 2021

๋“œ๋กœ์šฐ์ฝœ // OpemGL์˜ DrawCall glDrawArrays(); // vertices rendering glDrawElements(); // indices rendering CPU์—์„œ ๊ทธ๋ž˜ํ”ฝ API ํ˜ธ์ถœ์„ ํ†ตํ•ด GPU์— ๋ Œ๋”๋ง์„ ๋ช…๋ นํ•˜๋Š” ๊ฒƒ

SafeArea

February 22 2021

SafeArea ๋ชจ๋ฐ”์ผ ํ•ด์ƒ๋„์—์„œ ์ „๋ฉด ์นด๋ฉ”๋ผ ์˜์—ญ ์นจ๋ฒ”ํ•˜์ง€ ์•Š๊ฒŒ ๋ณด์žฅํ•ด์ฃผ๋Š” ์˜์—ญ ๋…ธ์น˜ํฐ์— ๋Œ€ํ•ด ui ๋ฐฐ์น˜ ๋Œ€์‘์„ ์œ„ํ•ด ์„ค์ •

Nullable and Tenary

February 22 2021

๋ฌผ์Œํ‘œ ์—ฐ์‚ฐ์ž ๋‘๊ฐœ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ์“ฐ์ด๋Š” ์˜ˆ์‹œ

Auto Property

February 22 2021

Property ์ •๋ณด์€๋‹‰์„ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๋„๋ก ํ—ˆ์šฉ get / set ๋ฉ”์„œ๋“œ๋ฅผ ๋Œ€์‹ ํ•ด ๊ฐ€๋…์„ฑ์„ ๋ณด์™„

partial ํ‚ค์›Œ๋“œ

February 19 2021

partial ํ‚ค์›Œ๋“œ C#์—์„œ๋Š” C/C++์™€ ๋‹ฌ๋ฆฌ cs ํŒŒ์ผ ํ•˜๋‚˜์— ํด๋ž˜์Šค ์„ ์–ธ๊ณผ ์ •์˜๊ฐ€ ์ž‘์„ฑ ํด๋ž˜์Šค๊ฐ€ ์ปค์งˆ ๊ฒฝ์šฐ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์ง Partial ํ‚ค์›Œ๋“œ๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋„๋ก ํ—ˆ์šฉ ๋Œ€๋ฆฌ์ž(delegate) ๋˜๋Š” ์—ด๊ฑฐํ˜•(enum) ์„ ์–ธ์„ ํ•  ๋•Œ partial ํ•œ์ •์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ ```csharp /...

C# parameter modifier

February 19 2021

in ํ‚ค์›Œ๋“œ in ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌ๋˜๊ธฐ ์ „ ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™” ์ธ์ˆ˜๊ฐ€ ์ฐธ์กฐ๋กœ ์ „๋‹ฌ๋˜์ง€๋งŒ, ์ˆ˜์ •๋˜์ง€ ์•Š์Œ ์˜ค๋ฒ„๋กœ๋”ฉ ๊ทœ์น™ ```csharp class InOverloads { // ์˜ค๋ฒ„๋กœ๋”ฉ ํ—ˆ์šฉ public void SampleMethod(in int i) { } public void SampleMeth...

C#์—์„œ byte์™€ char์˜ ์ฐจ์ด

February 19 2021

byte์™€ char์˜ ์‚ฌ์ด์ฆˆ byte: 1๋ฐ”์ดํŠธ ์ˆซ์ž ์ž๋ฃŒํ˜• char: 2๋ฐ”์ดํŠธ ๋ฌธ์ž ์ž๋ฃŒํ˜• 1๋ฐ”์ดํŠธ ์•„๋‹˜! ๋Œ€๋ถ€๋ถ„์˜ .Net ์–ธ์–ด์˜ ๋ฌธ์ž์—ด์€ ์œ ๋‹ˆ์ฝ”๋“œ utf-16์„ ๋””ํดํŠธ๋กœ ์ง€์›

AssetBundle

February 18 2021

์—์…‹๋ฒˆ๋“ค ์œ ๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ๋ฆฌ์†Œ์Šค๋“ค์„ ๋ฌถ์€ ๊ฒƒ ์œ ๋‹ˆํ‹ฐ์—์„œ ์—์…‹ ๋ฒˆ๋“ค ์ƒ์„ฑ ์™ธ๋ถ€ ์Šคํ† ๋ฆฌ์ง€(์„œ๋ฒ„)์— ์ €์žฅ ํ”„๋กœ์ ํŠธ์˜ ๋Ÿฐํƒ€์ž„ ์ค‘ ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œ ๋‹ค์šด๋กœ๋“œํ•œ ๋ฒˆ๋“ค์—์„œ ๊ฐœ๋ณ„ ์—์…‹์„ ๋กœ๋“œํ•ด ์‚ฌ์šฉ

Canvas

February 17 2021

Canvas Unity์—์„œ ๋ชจ๋“  UI ๊ฐ์ฒด๋ฅผ ๋ Œ๋”๋ง ํ•˜๊ธฐ ์œ„ํ•œ ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ณธ์ ์œผ๋กœ 4๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํฌํ•จ RectTransform Canvas Canvas Scaler Graphic Raycaster

var ํ‚ค์›Œ๋“œ

February 17 2021

var ์•”์‹œ์  ํ˜•์‹ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ compile time์— ์ž๋ฃŒํ˜•์„ ๊ฒฐ์ • ์ œ์•ฝ ์กฐ๊ฑด ์ง€์—ญ ๋ณ€์ˆ˜์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ณ€์ˆ˜ ์„ ์–ธ๊ณผ ํ•จ๊ป˜ ์ดˆ๊ธฐํ™” ํ•„์ˆ˜ null / ์ต๋ช… ๋ฉ”์„œ๋“œ / ๋ฉ”์„œ๋“œ ๊ทธ๋ฃน์œผ๋กœ ์ดˆ๊ธฐํ™” ๋ถˆ๊ฐ€

Dictionary

February 17 2021

Dictionary์˜ ์ข…๋ฅ˜ Dictionary Key์™€ Value์˜ Pair๋ฅผ ๊ฐ–๋Š” ์ž๋ฃŒ๊ตฌ์กฐ Generic ํ•ด์‹œํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉ

Reflection & Attribute

February 17 2021

๋ฆฌํ”Œ๋ ‰์…˜์˜ ๊ฐœ๋… ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ์‚ฌ์šฉ์ž(ํ”„๋กœ๊ทธ๋ž˜๋จธ)๋Š” ํด๋ž˜์Šค์˜ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ์•Œ๊ณ  ์žˆ๊ณ , ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ๋ถˆํŽธํ•จ์ด ์—†๋‹ค

as & is ํ‚ค์›Œ๋“œ

February 17 2021

as์™€ is ํ˜•๋ณ€ํ™˜์„ ์œ„ํ•œ ์˜ˆ์•ฝ์–ด ๊ฐœ๋ฐœ์ž์— ์˜ํ•ด์„œ ์˜๋„์ ์œผ๋กœ downcastingํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ์—ฐ์‚ฐ์ž downcasting ๋ฒ ์ด์Šค ํด๋ž˜์Šค๊ฐ€ ํŒŒ์ƒ ํด๋ž˜์Šค๋กœ ์บ์ŠคํŒ… ๋˜๋Š” ๊ฒƒ upcasting ํŒŒ์ƒ ํด๋ž˜์Šค๊ฐ€ ๋ฒ ์ด์Šค ํด๋ž˜์Šค๋กœ ์บ์ŠคํŒ… ๋˜๋Š” ๊ฒƒ

9-slice scaling

February 16 2021

9 Slicing ํ•˜๋‚˜์˜ ํ…์Šค์ณ๋กœ ๋‹ค์–‘ํ•œ ์‚ฌ์ด์ฆˆ์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฏธ์ง€๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฆฌ์‚ฌ์ด์ง• ์‹œ, ์ด๋ฏธ์ง€๋ฅผ ์™œ๊ณกํ•˜์ง€ ์•Š์Œ

new ํ‚ค์›Œ๋“œ

February 15 2021

๋ฉ”์„œ๋“œ์— ์„ ์–ธ๋œ new modifier base class์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ˆจ๊น€ upcasting ํ•˜์—ฌ base class์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ด๋Š” ์˜๋„๋œ ๋””์ž์ธ์— ๋ฐ˜ํ•˜๋Š” ํ–‰์œ„์ด๋ฏ€๋กœ ์œ„ํ—˜

delegate ํ‚ค์›Œ๋“œ

February 15 2021

delegate(๋Œ€๋ฆฌ์ž) ํ‚ค์›Œ๋“œ delegate๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์— ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ํ˜•์‹์ด ์ผ์น˜ํ•˜๋Š” ๊ตฌ์กฐ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ๋Œ€๋ฆฌ์ž์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค ๋ฉ”์„œ๋“œ๋Š” ์ •์ /์ธ์Šคํ„ด์Šค์ผ ์ˆ˜ ์žˆ๋‹ค. delegate ์†์„ฑ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๊ฐ์ฒด ์ง€ํ–ฅ์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค ๋ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์บก์Šํ™”ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ...

friend ํ‚ค์›Œ๋“œ

February 05 2021

friend class ํ•œ class์—์„œ ๋‹ค๋ฅธ class์˜ field๋ฅผ public์œผ๋กœ ์ฐธ์กฐํ•˜๋„๋ก ํ—ˆ์šฉ

Coroutine

January 19 2021

์„œ๋ธŒ๋ฃจํ‹ด(Subroutine) C์–ธ์–ด ๋“ฑ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜ ์‹œ์ž‘ํ•  ๋•Œ ์ง„์ž…ํ•˜๋Š” ์ง€์ ์ด ํ•˜๋‚˜ ์กด์žฌํ•˜๊ณ , ์ข…๋ฃŒ๋˜๋Š” ์ง€์ ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ธŒ๋ฃจํ‹ด์€ ์‹œ์ž‘์ ๊ณผ ์ข…๋ฃŒ์ ์ด 1๊ฐœ์ธ ์ฝ”๋ฃจํ‹ด์— ํฌํ•จ

Paralell Programming

November 15 2020

Synchronization ๋™๊ธฐํ™” ๋ณต์ˆ˜ ์ด๋ฒคํŠธ์˜ ์œ ์—ฐํ•œ ์‹คํ–‰ ๋ฐ ์กฐํ™”๋ฅผ ์œ„ํ•ด ์กฐ์ •์„ ๊ฐ€ํ•˜๋Š” ๊ฒƒ ๊ตฌ์† ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค Serialization: ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋๋‚œ ๋‹ค์Œ์— ๋‹ค๋ฅธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒ Mutual Exclusion: ๋‘ ๊ฐœ์˜ ์ด๋ฒคํŠธ๊ฐ€ ํ•œ ์‹œ์ ์— ๋™์‹œ์— ๋ฐœ์ƒํ•˜๊ณ  ์žˆ์ง€ ์•Š์Œ

CAS Algorithm & ABA problem

November 12 2020

lock-base ์ฝ”๋“œ์˜ ๋ช‡๊ฐ€์ง€ ๋ฌธ์ œ์  lock ์ˆœ์„œ๋ฅผ ์ œ๋Œ€๋กœ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ๋“œ๋ฝ์˜ ๊ฐ€๋Šฅ์„ฑ priority inversion - ๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ง„ํ–‰๋˜๊ธฐ ์œ„ํ•ด ๋†’์€ ์ˆœ์œ„์˜ ์Šค๋ ˆ๋“œ ๋ฝ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒฝ์šฐ atomicํ•œ operation์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋“ค์€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•จ

Flash Memory

November 09 2020

ํ”Œ๋ž˜์‹œ ๋ฉ”๋ชจ๋ฆฌ ์ „๊ธฐ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค.

Embedded์™€ ๋ฐ˜๋„์ฒด

November 09 2020

๋ฐ˜๋„์ฒด๋ž€? ์ „๊ธฐ์ ์œผ๋กœ ๋„์ฒด์™€ ๋ถ€๋„์ฒด ์‚ฌ์ด์˜ ์„ฑ์งˆ์„ ๋ ๊ณ  ์žˆ๋Š” ๋ฌผ์งˆ

Process Management

November 06 2020

๊ฐœ์š” ํ”„๋กœ์„ธ์Šค๋ž€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ๊ทธ๋žจ - ์ž‘์—…์„ ์œ„ํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ

Memory Management

November 05 2020

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“ (๋˜๋Š” ์ผ๋ถ€) ์‹คํ–‰ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํ„ฐ์˜ ์ „๋ถ€(๋˜๋Š” ์ผ๋ถ€)์€ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์žˆ์–ด์•ผ ํ•จ CPU๊ฐ€ ์œ ์ € ์ž‘์—…์— ๋ฐ˜์‘ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ๋„ฃ์„์ง€๋ฅผ ์ •ํ•˜๋Š” ์ž‘์—… Activities: ์–ด๋–ค ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์“ฐ์ด๋Š”์ง€, ๋ˆ„๊ตฌ์— ์˜ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ง€๋ฅผ ํŠธ๋ž˜ํ‚น ์–ด๋–ค ํ”„๋กœ์„ธ์Šค,...

Scheduling

November 04 2020

์Šค์ผ€์ค„๋ง ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•˜์—ฌ OS ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ์ž์›์„ ํ• ๋‹น๋ฐ›๋Š” ๊ฒƒ User processes System processes

Operating System

November 04 2020

OS๋ž€? ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋งค๊ฐœํ•ด์ฃผ๋Š” ์ค‘๊ฐ„ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œ์ผœ์ฃผ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ’€๋„๋ก ๋„์™€์คŒ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ† ๋ก ๋„์›€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๋„์›€ Resource Allocator ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌ ์ œ์–ด ...

Interrupt

November 04 2020

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

Computer System

November 04 2020

์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ Four Components of a Computer System

Memory Hierarchy

November 04 2020

์ €์žฅ์žฅ์น˜ Storage ์ตœ์†Œ ๋‹จ์œ„๋Š” bit 8 bits = 1 byte ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์ƒ native unit of data๋Š” word = one or more of bytes 32 bit or 64 bit ๊ตฌ์กฐ ์ฃผ ๋ฉ”...

Template

November 03 2020

ํ…œํ”Œ๋ฆฟ(Template)์ด๋ž€ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„๋„, ์—ฌ๋Ÿฌ ์ž๋ฃŒ ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ๋†“์€ ํ‹€ ํ•จ์ˆ˜ ํ…œํ”Œ๋ฆฟ(Function Template)์™€ ํด๋ž˜์Šค ํ…œํ”Œ๋ฆฟ(Class Template)์œผ๋กœ ๋ถ„๋ฅ˜

STL - Vector, List, Queue

November 03 2020

์ปจํ…Œ์ด๋„ˆ์˜ ์ข…๋ฅ˜ Sequence Container ๊ฐ์ฒด๋ฅผ ์ˆœ์‚ฌ์ ์œผ๋กœ ๋ณด๊ด€ ex) vector, list, queue, โ€ฆ Associative Container ํ‚ค๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋Œ€์‘๋˜๋Š” ๊ฐ’ ํ•จ๊ป˜ ๋ณด๊ด€ ํ‚ค๋กœ ํƒ์ƒ‰ํ•˜์—ฌ ๊ฐ’์„ ๋ฐ˜ํ™˜ ex) map, set, unord...

STL - Map, Set

November 03 2020

Binary Search ์ด๋ฏธ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํƒ์ƒ‰ ์ค‘๊ฐ„ ๊ฐ’์ธ pivot์„ ๊ธฐ์ค€์œผ๋กœ left์™€ right์œผ๋กœ ๋‚˜๋ˆ„์–ด ํƒ์ƒ‰ ๊ฐ’์„ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ์œ„์˜ ๊ณผ์ •์„ ๋ฐ˜๋ณต

Compiled & Interpreted

November 02 2020

Compiled Language CPU๊ฐ€ ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ ์†Œ์Šค์ฝ”๋“œ ์ฒ˜๋ฆฌ์™€ ๋ถ„์„์— ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‹คํ–‰์ด ๋น ๋ฆ„ ์ปดํŒŒ์ผ๋œ ๊ธฐ๊ณ„์–ด๋Š” ํ”Œ๋žซํผ ์˜์กด์ 

Overriding & Overloading

November 02 2020

Overloading ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜, ๊ฐฏ์ˆ˜๊ฐ€ ๋‹ค๋ฆ„ ๋ฆฌํ„ด ํƒ€์ž…์ด๋‚˜ ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ

if & switch

July 16 2020

if ๊ฐ€์žฅ ์œ„ if ๊ตฌ๋ฌธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜๋Š”์ง€ ์ปจ๋””์…˜ ์ฒดํฌ ๋Š๋ฆฐ ์†๋„ if, else if ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก Assembly: CMP๋„ ๋งŽ์•„์ง ๋ฒ”์œ„ ์‹๋„ ์ฒดํฌ ๊ฐ€๋Šฅ

enum๊ณผ enum class

July 16 2020

enum๊ณผ enum class์˜ ์ฐจ์ด ๊ฐ’ ์ค‘๋ณต ์—๋Ÿฌ ์—ฌ๋ถ€

Shallow & Deep Copy

July 16 2020

Shallow Copy ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ์›๋ž˜๊ฐ’๊ณผ ๋ณต์‚ฌ๋œ ๊ฐ’์ด ๊ฐ™์€ ์ฐธ์กฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ์ฒด์˜ โ€˜๊ฐ’โ€™๋งŒ ๋ณต์‚ฌ

lvalue์™€ rvalue

July 15 2020

Value Category ์ •์ฒด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋Š”๊ฐ€ ํ•ด๋‹น ์‹์ด ๋‹ค๋ฅธ ์‹๊ณผ ๊ฐ™์€ ๊ฒƒ์ธ์ง€ ์•„๋‹Œ์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ๋ณ€์ˆ˜ - ์ฃผ์†Œ๊ฐ’์„ ํ†ตํ•ด ๊ตฌ๋ถ„ ํ•จ์ˆ˜ - ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ ์ด๋™ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๊ฐ€ ํ•ด๋‹น ์‹์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? ์ด๋™ ์ƒ์„ฑ์ž, ์ด๋™ ๋Œ€์ž…...

const & volatile ํ‚ค์›Œ๋“œ

July 15 2020

Read-Only ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค ๋ฉ”์„œ๋“œ์—์„œ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค

static ํ‚ค์›Œ๋“œ

July 14 2020

ํ•จ์ˆ˜์˜ static ๋ณ€์ˆ˜ ํ•จ์ˆ˜ ์•ˆ์—์„œ ์„ ์–ธ๋œ static ๋ณ€์ˆ˜ ๊ฐ’์ด ๊ณ ์ •๋จ multi-thread hardware interrupt timer

C์™€ C++ ์ฐจ์ด ๋ช‡ ๊ฐ€์ง€

July 14 2020

C์˜ malloc๊ณผ C++ new์˜ ์ฐจ์ด malloc malloc์€ ํ•จ์ˆ˜(function) ํ• ๋‹นํ•  ๋ฉ”๋ชจ๋ฆฌ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์Œsize as input header file์„ ํฌํ•จ์‹œ์ผœ์•ผ ํ•จ ์‹ค ์‚ฌ์šฉํ•  ํƒ€์ž…์œผ๋กœ casting ํ•„์š” ๋ฉ”๋ชจ๋ฆฌ ์ฒญํฌ๋งŒ heap์—์„œ ๋ฐ›...

Memory Layout

July 14 2020

C/C++ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ Text segment ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜๋œ ์‹คํ–‰์ฝ”๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ or obj์— ์ €์žฅ

Casting

July 14 2020

static_cast ๋…ผ๋ฆฌ ํ˜•๋ณ€ํ™˜ ์ฃผ๋กœ Scalar Type๋“ค ๊ฐ„์˜ ์บ์ŠคํŒ… ํ˜• ๋ณ€ํ™˜ ํ•จ์ˆ˜๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉด ์ด ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ์‹คํ–‰ ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ํ†ตํ•˜์—ฌ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•œ ์ž๋ฃŒํ˜•์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค ์ปดํŒŒ์ผ ํƒ€์ž„์—์„œ ์บ์ŠคํŒ…

๋™๊ธฐ/๋น„๋™๊ธฐ & ๋ธ”๋ก/๋…ผ๋ธ”๋ก

February 08 2020

๊ฐœ๋… ๋™๊ธฐ vs ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ž‘์—…๋“ค์„ ์–ด๋– ํ•œ โ€˜ํ๋ฆ„โ€™์œผ๋กœ ์ฒ˜๋ฆฌ ํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ๊ด€์  ๋ธ”๋กœํ‚น vs ๋…ผ๋ธ”๋กœํ‚น ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” (ํ•˜๋‚˜์˜) ์ž‘์—…์ด, ์ „์ฒด์ ์ธ ์ž‘์—… โ€˜ํ๋ฆ„โ€™์„ ๋ง‰๋Š๋ƒ ์•ˆ๋ง‰๋Š๋ƒ์— ๋Œ€ํ•œ ๊ด€์ 

3D Picking

February 08 2020

Painterโ€™s Algorithm ๊ฐ object๋งˆ๋‹ค ๊ณ ์œ  ์ƒ‰๊น”์„ ์ง€์ • offline buffer (screen์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š” ๋ฒ„ํผ)๋ฅผ ๊ธฐ๋ณธ framebuffer size๋งŒํผ ์‚ฌ์šฉ Two pass ์‚ฌ์šฉ picking pass (1st pass) offline color ๋ฒ„ํผ์— ๊ณ ์œ  ...

Skybox

February 04 2020

Reflection

Forward Rendering & Deferred Rendering

February 04 2020

ํฌ์›Œ๋“œ ๋ Œ๋”๋ง(Forward Rendering) ๊ฐ€์žฅ ๋ณดํŽธ์ ์ด๊ณ  ์ผ๋ฐ˜์ ์ธ ๋ Œ๋”๋ง ๋ฐฉ๋ฒ• ํ”ฝ์…€ ๋‹น ์‰์ด๋”ฉ๊ณผ ๋ผ์ดํŒ… ์—ฐ์‚ฐ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹ ๊ฐ fragment shader์—์„œ ์—ฐ์‚ฐ ๋น›์˜ ๊ฐœ์ˆ˜ ๋งŒํผ ํ•จ ํˆฌ๋ช…๋„ ์ฒ˜๋ฆฌ, ์•ˆํ‹ฐ์–ผ๋ผ์ด์ง• ๊ฐ€๋Šฅ ๋ผ์ดํŒ… ๋ฐ ์‰์ด๋”ฉ ์—ฐ์‚ฐ ์˜ค๋ฒ„ํ—ค๋“œ

Finite-State Machine

February 04 2020

Finite-State Machine ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๋…ผ๋ฆฌ ํšŒ๋กœ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ์— ์“ฐ์ด๋Š” ์ˆ˜ํ•™์  ๋ชจ๋ธ ์—์ด์ „ํŠธ๋Š” ํ•œ ๋ฒˆ์— ๋‹จ ํ•˜๋‚˜์˜ state์—๋งŒ ๋จธ๋ฌด๋ฅผ ์ˆ˜ ์žˆ๋‹ค ๋ผ์šฐํ„ฐ๋กœ๋ถ€ํ„ฐ ์—์ด์ „ํŠธ๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›๊ณ , ์—์ด์ „ํŠธ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ•ด๋…ํ•˜๊ณ  ์ด์— ๋”ฐ๋ผ ์ž์‹ ์˜ state๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค ์—์ด์ „ํŠธ์˜ ํ”ผ๋“œ๋ฐฑ์€ router๋กœ ๋‹ค์‹œ ์ „์†ก๋œ๋‹ค

MonoBehaviour

January 19 2020

Component๋ž€? GameObject ์— ๋ถ€์ฐฉ๋˜๋Š”(Attached) ๋ชจ๋“  ๊ฒƒ๋“ค์ด ์ƒ์†๋ฐ›๋Š” ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค. MonoBehaviour ๋Š” Unity ์˜ ๋ชจ๋“  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค ์‚ฌ์šฉ์ž๊ฐ€ Unity ์—”์ง„์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋”๋ผ๋„ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘”(built-in) Behaviour ํด๋ž˜์Šค์ด์ž ์Šคํฌ๋ฆฝํŠธ ๋ช…...

interface vs. abstract

January 19 2020

interface ํŠน์ • ๋ฉ”์„œ๋“œ๋“ค์˜ ์กฐํ•ฉ์„ ๊ณ ๋ ค

Network Terminolgy์™€ OSI Model

January 13 2020

๋„คํŠธ์›Œํฌ Network ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์ปดํ“จํ„ฐ๋ง์€ ๋…ธ๋“œ๋“ค์ด ์ž์›์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋””์ง€ํ„ธ ์ „๊ธฐํ†ต์‹ ๋ง์˜ ํ•˜๋‚˜

TCP vs. UDP

January 13 2020

TCP๋ž€?(Transmission Control Protocol) ์ธํ„ฐ๋„ท์„ ๊ฒฝ์œ ํ•ด ํ†ต์‹ ํ•˜๋Š” ์—ฐ๊ฒฐ ์ง€ํ–ฅ์„ฑ ํ”„๋กœํ† ์ฝœ ์—๋Ÿฌ ์ฒดํ‚น์„ ์ง€์› ๋ฐ์ดํ„ฐ์˜ ์™„์ „ํ•œ ์ „์†ก์„ ๋ณด์žฅ ํŒจํ‚ท์˜ ์ „์†ก ์ˆœ์„œ๋ฅผ ๋ณด์žฅ TCP๋Š” FLOW CONTROL์„ ์ œ๊ณตํ•จ

์ปดํฌ๋„ŒํŠธ ๋ฒ ์ด์Šค ๊ตฌ์กฐ

January 13 2020

์ปดํฌ๋„ŒํŠธ๋ž€? ๋…๋ฆฝ์ , ๊ต์ฒด์— ์šฉ์ดํ•˜๊ณ , ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ๋“ค์˜ ์ง‘ํ•ฉ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋””์ž์ธ๋œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ์ฒด ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ด ์žˆ๊ณ  ๊ทธ์— ๋งž๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต

ํŒฉํ† ๋ฆฌ ํŒจํ„ด(Factory Pattern)

January 13 2020

ํƒฌํ”Œ๋ฆฟ ๋ฉ”์†Œ๋“œ ํŒจํ„ด(template method pattern) ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ๋™์ž‘ ์ƒ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ”„๋กœ๊ทธ๋žจ ๋ผˆ๋Œ€๋ฅผ ์ •์˜ํ•˜๋Š” ํ–‰์œ„ ๋””์ž์ธ ํŒจํ„ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํŠน์ • ๋‹จ๊ณ„๋“ค์„ ๋‹ค์‹œ ์ •์˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค base class๊ฐ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์กฐ์˜ ์ฃผ์š” ๊ณจ์กฐ๋ฅผ ํ™•๋ฆฝ subclass๊ฐ€ ๋‚˜๋จธ์ง€...

๋นŒ๋” ํŒจํ„ด(Builder Pattern)

January 13 2020

๋นŒ๋” ํŒจํ„ด(Builder Pattern) ๋นŒ๋” ํŒจํ„ด์€ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜ ๋ณต์žกํ•œ ๊ธฐ์กด ์ƒ์„ฑ์ž๋ฅผ ๋ณ„๋„๋กœ ์‹คํ–‰ํ•œ ๋’ค ์กฐํ•ฉ Builder ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๊ฐ ํŒŒ์ธ ๋ฅผ ์ƒ์„ฑ ํ›„ ์กฐํ•ฉ ํด๋ž˜์Šค๋Š” Builder์— ๊ฐ์ฒด์— object ์ƒ์„ฑ์„ ๋งก๊ธฐ๊ณ , ์ง์ ‘ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ ํ•œ๋ฒˆ์— ๋ชจ...

Flocking

January 13 2020

Boid (bird-oid object) ์ธ๊ณต ์ƒ๋ช…์ฒด๋ผ๋Š” ์˜๋ฏธ ์ƒˆ์ฒ˜๋Ÿผ ๋ชจ์—ฌ ๊ทœ์น™์— ๋”ฐ๋ผ ๊ตฐ์ง‘ํ–‰๋™์„ ํ•˜๋Š” ๊ฐ ๊ฐœ์ฒด

ํ–‰๋™ํŠธ๋ฆฌ(Behavior Tree)

January 13 2020

ํ–‰๋™ํŠธ๋ฆฌ(Behavior Tree) ๋„์‹ํ™”ํ–ˆ์„ ๋•Œ ์ง๊ด€์ ์ด๊ณ  ์‰ฝ๊ฒŒ ๋””์ž์ธํ•  ์ˆ˜ ์žˆ์Œ ๋Ÿฐํƒ€์ž„์—์„œ ํ…Œ์ŠคํŠธ ๋˜๋Š” ๋””๋ฒ„๊น…ํ•˜๊ธฐ๊ฐ€ ๊นŒ๋‹ค๋กœ์›€ ํ–‰๋™ ํŒจํ„ด์„ ๊ณ„ํšํ•œ ๋Œ€๋กœ ์‹œํ–‰ํ•˜๋Š” ๋ชจ๋ธ(model of plan execution) FSM, HFSM์„ ๊ตฌํ˜„ํ•  ๋•Œ ์ƒํƒœ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ๊ฐ€๋…์„ฑ ๋ฉด์—์„œ ์‚ฌ์šฉ์„ฑ์ด ๋–จ์–ด์ง€๊ฒŒ ๋˜๋Š” ๋‹จ์ ์„ ๋ณด์™„ํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค ...

A* ์•Œ๊ณ ๋ฆฌ์ฆ˜

January 13 2020

๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ Undirected Graph ๋ฐฉํ–ฅ์ด ์—†๋Š” ๊ฐ„์„  ๊ฐ ๊ฐ„์„ ์€ ์–‘๋ฐฉํ–ฅ