[Unreal] MassSystem
Mass System
Mass System
chrono C++11์์ ์ถ๊ฐ๋ ์๊ฐ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
string_view C++17๋ถํฐ ์ถ๊ฐ๋ ํ์ ๋ฌธ์์ด์ ๊ธธ์ด์ ๋ฌธ์์ด์ ๋ํ ํฌ์ธํฐ๋ง ๊ฐ์ง๊ณ ์๋ค string ๋ณด๋ค ํจ์ฌ ๊ฐ๋ณ๋จ null ์ข ๋ฃ ๋ฌธ์๋ฅผ ๊ฐ์ง์ง ์๋๋ค
Mover ๊ธฐ์กด์ Character Movement Component๋ฅผ ๋์ฒดํ ๋ชฉ์ ์ ์ธ๋ฆฌ์ผ ๊ณต์ ํ๋ฌ๊ทธ์ธ ํฌ์คํธ ์์ฑ์ผ ๊ธฐ์ค์ผ๋ก ์์ง Experimental Mover 1.0์ด ๋์ค์๋ง์ ๊ณง๋ฐ๋ก CMC ์ง์์ ๋์ ๊ณํ์ ์๊ณ ์ฅ๊ธฐ์ ์ผ๋ก ๋์ฒดํ ๊ฒ์ด๋ผ ํ๋ค ์ธ๋ฆฌ์ผ ์บ๋ฆญํฐ์ ๊ธฐ๋ณธ์ ์ธ Movement...
Pipeline State Object Cache ๊ตฌ์ API๋ Draw Call ์ ์ ๊ด๋ จ GPU ํ๋ผ๋ฏธํฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฒ์ ์ฝ์ ํด์ผํ๋ค Parameter A ์ ๋ฐ์ดํธ + Parameter B ์ ๋ฐ์ดํธ + โฆ ์ต์ API๋ PSO๋ผ๋ GPU Parameter์ ์งํฉ, ์ฆ GPU State๋ฅผ ํจํค์ง...
Game Feature
check ์ฌ์ฉ ์ผ์ด์ค DO_CHECK = 1์ธ ๊ฒฝ์ฐ ๋งคํฌ๋ก ๋ด๋ถ๋ฅผ ์คํ ๋ฐ์คํธ ์คํจ ์ ์ค๋จ์ ์ฒดํฌ + ํฌ๋์ ๋ฆฌํฌํฐ DO_CHECK = 0์ธ ๊ฒฝ์ฐ ๋งคํฌ๋ก๋ฅผ ๋ฌด์ํ๋ค
์คํํฑ ๋ฉ์์์ ์ฐจ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ์คํํฑ ๋ฉ์์์ ํฐ ์ฐจ์ด๋ ์๋ค ๋๋์ดํธ ๋ฉ์๋ ๋ ๋ง์ ์์ ํธ๋ผ์ด์ต๊ธ๊ณผ ์ธ์คํด์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค ๋๋์ดํธ๋ ๋จธํฐ๋ฆฌ์ผ์ ๊ตฝ์ง ์์๋ ๋๋ค ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋ ๋น ๋ฅด๊ฒ ๋ ๋๋ง๋๋ค ์ต์ ํ๋์ง ์์ ๋๋์ดํธ ๋ฉ์์ ์คํํฑ ๋ฉ์๋ฅผ ๋น๊ตํ ๋ ๋์คํฌ๋ฅผ ์ฐจ์งํ๋ ์ฉ๋์ ๋น์ทํ๋, ...
๊ฐ์ Lumen Essential
Braking Friction
Bit field ์ ์ธ
FORCEINLINE๊ณผ inline ์ผ๋ฐ์ ์ธ inline ํค์๋๋ฅผ ์ฌ์ฉํ์ ๋, ์ปดํ์ผ๋ฌ๋ ํด๋น ๊ตฌ๋ฌธ์ inlineํ ํ ์ง ์ฌ๋ถ๋ฅผ ์ค์ค๋ก ๊ฒฐ์ ํ๋ค ํ์ง๋ง __forceline ํค์๋๋ ์ปดํ์ผ๋ฌ์ ํ๋จ์ฌ๋ถ์ ๋ฌด๊ดํ๊ฒ ๋ฌด์กฐ๊ฑด inlineํ ํ๋๋ก ๊ฐ์ ํ๋ค __forceinline์ VS ์ปดํ์ผ๋ฌ์์ ์ ๊ณตํ๋ non-standa...
BlueprintPure ํจ์๋ฅผ ๋ธ๋ฃจํ๋ฆฐํธ์ ๋ ธ์ถ์ํฌ ๋, ์ด ํจ์๊ฐ OwnerObject์ ์๋ฌด ์ํฅ์ ์ฃผ์ง ์๋ ๊ฒ์ ๋ณด์ฅํ๋ ํค์๋ Gettor์ ์ฑ๊ฒฉ์ ๊ฐ์ง๋ค
Unity Build C / C++์ ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผ ํ ๋, ์ฌ๋ฌ translation unit์ ํ๋๋ก ๋ญ์ณ์ ๋น๋ํ๋ ๋ฐฉ์ Unity ์์ง๊ณผ๋ ์ ํ ๋ฌด๊ดํ๋ค
Transient ์ธ๋ฆฌ์ผ ์ค๋ธ์ ํธ๋ ์ง๋ ฌํ ๊ธฐ๋ฅ์ผ๋ก ์ค๋ธ์ ํธ์ UPROPERTY ๋งคํฌ๋ก๋ก ์์ฑ์ ์ ์ฅ ๋ฐ ๋ก๋ฉํ ์ ์๋ค ์ด๋ฅผ ํ ๋ฉด, CurrentHP์ ๊ฐ์ ๊ฐ์ ๊ฒ์์ ์์ํ ๋๋ง๋ค ๋ณ๊ฒฝ๋๋ฏ๋ก ์ด ๊ฐ์ ์ ์ฅ ๋๋ ๋ก๋ฉํ๋ ๊ฒ์ ๋์คํฌ ๋ญ๋น๋ค ์ด๋ฐ ์์ฑ์ Transient ํค์๋๋ฅผ ์ถ๊ฐํด ์ง๋ ฌํ ๋์์์ ์ ์ธํ ์...
UFUNCTION Overload UFUNCTION ํจ์๋ Overload ํ ์ ์๋ค ๋ง์ฝ Overload ํ์ํ๋ค๋ฉด UFUNCTION ํค์๋๋ฅผ ์ ๊ฑฐํ๊ณ ์ฌ์ฉํด์ผ ํ๋ค UHT๊ฐ Unreal Function์ ๋ฑ๋กํ๊ธฐ ์ํด์ Iterate ํ ๋, ํค๋ ํ์๊ฐ ํ์ธํ๋ ๊ฒ์ ํจ์์ ์ด๋ฆ ๋ฟ ...
```c++ UCLASS(BlueprintType, Deprecated) class CLIENT_API UDEPRECATED_CameraBehaviorDataAsset: public UDataAsset { GENERATED_BODY()
Gameplay Ability System (GAS) ์บ๋ฆญํฐ์ ๋ฅ๋ ฅ์ด๋ ์์ฑ ๋ฑ์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ ์์ํฌ ์บ๋ฆญํฐ์ ๋ฅ๋ ฅ ๋๋ ์คํฌ์ ๊ตฌํ Gameplay Ability ์กํฐ์ ์์นํ๋ ์์ฑ ๊ด๋ฆฌ Atttibute ์กํฐ์ ํน์ ํ ํจ๊ณผ(Effect) ์ ์ฉ ...
๋ฉํฐํ๋ ์ด์ด ๊ฒ์ ๋ฉํฐํ๋ ์ด์ด ๊ฒ์์์๋ ๋์ผํ ๊ฒ์์ด ์ฌ๋ฌ ์ธ์คํด์ค์์ ๋์์ ์คํ๋์ด์ผ ํ๋ค. ๊ณต์ ๋ ์ธ๊ณ์ ๋ํด ์ผ๊ด๋, ๋์ผํ ๊ทธ๋ฆผ์ ๊ทธ๋ ค๋ด์ผ ํ๋ค
FName ํ ์คํธ์ ๋์๋ฌธ์ ๊ตฌ๋ถ์ ํ์ง ์๋๋ค
Reflection ํ๋ก๊ทธ๋จ์ด ๋ฐํ์, ๊ทธ๋ฌ๋๊น ์คํ์ค์ ์๊ธฐ ์์ ์ ๊ตฌ์กฐ๋ฅผ ๊ฒ์ฌํ๊ณ ์กฐ์ํ ์ ์๋ ๋ฅ๋ ฅ ์ผ๋ฐ์ ์ธ C++์์๋ ์ปดํ์ผ ์์ ์ ๋ชจ๋ ์ ๋ณด๊ฐ ๊ฒฐ์ ๋๊ณ , ์ปดํ์ผ๋ ์ํ์ C++ ์ธ์ด๋ CPU๋ก ์ ๋ฌ๋๋ค ์ด๋ค class A๊ฐ ์ด๋ค ๋ฉค๋ฒ ๋ณ์ ํน์ ํจ์๋ฅผ ๊ฐ์ง๊ณ ์๋์ง ์ ์ ์๋ค ๋ฆฌํ๋์ ์ด ์ง์๋๋ ์ธ...
Garbage Collection
๋ฐ์ดํฐ ์ง๋ ฌํ๋ ์ง๋ ฌํ์ ๊ฐ๋ ์ ๊ฒ์ํด๋ณด๋ฉด ๋ณดํต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ ํต์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก ๋ณํํ๋ ๊ฒ์ด๋ผ๊ณ ์์ ํ๋ค ๋์๊ฒ๋ ์ ๋ป ์๋ฟ์ง ์๋ ์ค๋ช ์ด๋ค
๋ฃจํธ ๋ชจ์ ์ฌ์ฉ ์ฌ๋ถ์ ๋ฐ๋ฅธ ์ฐจ์ด
Parts of the AI Perception System Unreal์ AI Perception System์ ํตํด Actor๊ฐ ๋ฌด์์ ๊ฐ์งํ๋์ง, World์ ์ด๋ค ๋ถ๋ถ์ ๊ฐ์งํ ์ ์๋์ง๋ฅผ ์ ์ดํ๊ฒ ํด์ค๋ค. ์์งํ ์ ๋ณด๋ Event-driven system์ด ์ฒ๋ฆฌํ๋ฉด์ ๊ฐ๋จํด์ง๋ฉฐ ๊ฐ๋ฒผ์ด ๋น์ฉ๋ง์ ์๋ชจํ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ธ๋ฃจํ๋ฆฐํธ ์์์ ์ ๋ฒ์์ ...
Navigation with AI ๊ธธ์ฐพ๊ธฐ๋ฅผ ํตํด ์ฃผ๋ณ ํ๊ฒฝ์ ํค์ณ๋๊ฐ๋ ๊ฑด AI์ ๊ธฐ๋ณธ์ด์ง๋ง ๋จ์ํ A ์ง์ ์์ B ์ง์ ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ ๋ง๋ฅ ์ฌ์ด ์ผ์ ์๋๋ค. ๊ธธ์ฐพ๊ธฐ๋ ๊ฒฝ๋ก ํ์๊ณผ ์ฅ์ ๋ฌผ ํํผ๋ก 2 ๋จ๊ณ๋ก ๋๋ ์ ์๋ค. ์ฌ๊ธฐ์ ์ฅ์ ๋ฌผ์ด๋ ๊ณ ์ ๋ ์ํ์ ๋ฌผ์ฒด๋ก ์ ์ํ๋ค. ์ด๋ฐ ์ฅ์ ๋ฌผ์ ํํผํ๊ธฐ ์ํด Navigation Mesh๊ฐ ํ์ํ๋ค.
Blackboard / Behaviour Tree / AI Controller / Pawn ์ ๊ด๊ณ
UCLASS์ USTRUCT์ ์ฐจ์ด? ๊ฐ ๋งคํฌ๋ก๋ Reflection ์์คํ ์ ํด๋์ค์ ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฑ๋กํ๋ ๋ฐ ์ฌ์ฉํ๋ค Unreal Editor๊ฐ ์ฌ์ฉ์ ์ ์์ ํด๋์ค ๋๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ธ์ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์คํ ์ ํฌํจ์์ผ Garbage Collectionํ ์ ์๋๋ก ํ๋ค UHT(Unreal ...
Hard Reference
UObject UObject๋ Unreal Engine์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๊ฐ์ฒด๋ค UCLASS ๋งคํฌ๋ก ์ ์ธ์ผ๋ก UObject๋ฅผ ๊ด๋ฆฌํ๋ ์์คํ ์ด ์ด๋ฅผ ์ธ์ํ๋ค Reflection System์ ํตํด Garbage Collection์ ์ํํ๋ ๋ฑ์ ์ญํ ๋ชจ๋ ์ธ๋ฆฌ์ผ ์ค๋ธ์ ํธ๋ ์คํ ์ด๊ธฐ์ ๋ฐํ์ ๊ณผ์ ์์...
๋๋ค ํจ์ lambda ์ด๋ฆ ์๋(์ต๋ช ์) ํจ์ ๊ฐ์ฒด
IK์ FK FK Rig Forward Knematics Parent๊ฐ ์์ง์ด๋ฉด Child๋ ์ข ์๋์ด ์ ๋๋ฉ์ด์ ์ด ์๋ ํ๊ฟ์ง๋ฅผ ์์๋๋ก ํ๋ค๋ฉด ์, ์๊ฐ๋ฝ๋ ๋ฐ๋ผ ์์ง์ด๋ ์๋ฆฌ
Class Default Object (CDO) ์ธ๋ฆฌ์ผ ์ค๋ธ์ ํธ์ ๊ธฐ๋ณธ ์ธํ ์ํ๋ฅผ ์ง์ ๊ธฐ๋ณธ ํฌํ๋ฆฟ ์ค๋ธ์ ํธ Master copy UClass, ๋ฆฌํ๋ ์ ์์คํ ์์ ์๋ํ๊ธฐ ์ํด ๊ณ ์๋ ํด๋์ค์์ ์ด ์ ๋ณด๋ฅผ ํฌํจํ๋ค C++ ์ธ์ด ์ฐจ์์์ ์ ๊ณตํ์ง ์๋ ๋ฆฌํ๋ ์ ๊ธฐ๋ฅ์ ์ ๋ฐฉ๋ฒ์...
๊ธฐ๋ณธ์ ์ธ Actor์ ๋ผ์ดํ ์ฌ์ดํด
memcpy destination ์ฃผ์๊ฐ, source ์ฃผ์๊ฐ, source์ ๊ธธ์ด๋ฅผ ์ธ์๋ก ๋ฐ๋ ํจ์ sdource์ ๊ฐ์ destination์ผ๋ก ๋ณต์ฌ
Base class
CI/CD ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋จ๊ณ๋ฅผ ์๋ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ค ์งง์ ์ฃผ๊ธฐ๋ก ๊ณ ๊ฐ์๊ฒ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ ์ง์์ ํตํฉ, ์ง์์ ๋ฐฐํฌ, ์ง์์ ์๋น์ค ์ ๊ณต ์ด๋ฌํ ํ๋ก์ธ์ค๋ฅผ CI/CD ํ์ดํ๋ผ์ธ์ด๋ผ ํ๋ฉฐ, ์ ์์ผ ๋ฐฉ์์ ํ๋ ฅ์ ํตํด ์คํ
๊ฐ์ LLVM์ ์ฌ์ฉํ์ฌ IL์ ๊ณ ๋๋ก ์ต์ ํ๋ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ๋ณํํ๋ ์ปดํ์ผ๋ฌ
GC ๊ธฐ๋ณธ์ฌํญ CLR์์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ญํ ์ ํ๊ธฐ ์ํด GC๋ฅผ ๋๋ค ์ฌ์ฉ์๋ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฑ ๊ด๋ฆฌ ์์ ์ ์ํ ์ฝ๋๋ฅผ ์์ฑํ์ง ์์๋ ๋๋ค ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฐํ, ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผ ๋ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ GC์ ์ํด ํจ์จ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น
Value Type ๊ฐ์ด ๋ฐ๋ก ํ ๋น๋๋ ํ์ ์ง์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ค int, float, char ๋ฑ์ด ์ด์ ํด๋นํ๋ค System.ValueType์ผ๋ก๋ถํฐ ์์
Virtual Table์ ๊ตฌ์กฐ C#์์ ๋ชจ๋ ํด๋์ค๋ System.Object ํด๋์ค์์ ์์๋๋ฏ๋ก VTable์ ๊ฐ๋๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ToString, Equals, GetHashCode, Finalize ๋ฉ์๋๋ฅผ VTable์ ๊ฐ๋๋ค Baseํด๋์ค๊ฐ ๊ฐ์ ๋ฉ์๋๊ฐ ์๋ค๋ฉด ์ด์ธ์ ๋ฉ์๋๋ค์ VTable Slo...
์ถ์์ ์๋ฃํ ADT ์๋ฃ ์์ฒด์ ํํ์ ์ฐ์ฐ์ ์ํ์ ์ผ๋ก๋ง ์ ์ํ ๊ฒ
Update์ ๋น์ฉ
SpriteRenderer ์ด๋ค hierarchy์๋ ๋ฐฐ์นํ ์ ์๋ค Transform์ผ๋ก ์กฐ์ ํ๋ค transparent geometry queue๋ฅผ ํตํด์ render๋๋ค default material์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ต์ ๋ฉ์ฌ๋ฅผ ์์ฑํ๋ค draw call์ ์ค์ด๊ธฐ ์ํด sprite at...
Value type์ด๋ฉด ๋ชจ๋ stack์ ์ ์ฅ๋๋ค? Value type์ stack์ ์ ์ฅ๋ ์ ์๋ค ํญ์ stack์ ์ ์ฅ๋๋ ๊ฒ์ ์๋๋ค ํ๋ก๊ทธ๋๋จธ๋ ํน์ ๊ฐ์ฒด์ ๋ํด stack์ ์ ์ฅ๋๋์ง heap์ ์ ์ฅ๋๋์ง๋ฅผ ์์์ผํ ํ์๊ฐ ์์๋ค ์ฌ์ฉ์์๊ฒ ๋ ธ์ถ๋์ง ์์ ์ํ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋...
๋ท๋ท ํ๋ ์์ํฌ
Struct ๊ฐ ํ์ allocation ๋ฐ deallocation ์ ์ฐธ์กฐ ํ์ ๋ณด๋ค ์์๊ฐ ์ ๋ค stack์ ์ ์ฅ nested struct ๊ตฌ์กฐ์ธ ๊ฒฝ์ฐ inline member๋ค์ private by default
๋ฒํผ๋? Buffer ๋ฐ์ดํฐ๋ฅผ ํ ๊ณณ์์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ ์กํ๋ ๋์ ์ผ์์ ์ผ๋ก ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
string vs String
๊ฐ ํ์ vs. ์ฐธ์กฐ ํ์
Difference between Array, ArrayList, List Array
var in C#
Initialization ์ด๋ค ๊ฐ์ฒด๋ ๊ฐ์ฒด์ ๋ฐ์ดํฐ ๋ฉค๋ฒ๋ ์์ฑ์์ ๋ณธ๋ฌธ์ด ์คํ๋๊ธฐ ์ ์ด๊ธฐํ๋์ด์ผ ํ๋ค
์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐฉ์ 2๊ฐ์ง
static const in C++
๋ ธ๋๋ก ์ ๊ธฐ ๋ธ๋ฃจํ๋ฆฐํธ ๋ ธ๋๋ฅผ ๋์์ธํ๋ค๊ฐ ์ปค๋ค๋ ๊ทธ๋ํ๋ฅผ ํ๋๋ก ๋ฌถ์ด ์ ๋ฆฌํ๋ ๊ธฐ๋ฅ
Blueprint๋? Unreal ์์ง์ ๋ด์ฅ๋ ์ปดํ์ผ์ ๋น์ฃผ์ผ ์คํฌ๋ฆฝํ ์์คํ ํ๋์ ํ๋ฆฌํน ํน์ ์ํคํ์ ์ผ๋ก ์ ์ํ๋ ๋จ์์ผ ์๋ ์๋ค
Unreal vs. Unity
์ ๋ํฐ์ Entity Component System
์ธ๋ฆฌ์ผ์ ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ธ๋ฆฌ์ผ C++ ์ฝ๋๋ Unreal Header Tool, UHT Preprocessor๋ผ ๋ถ๋ฆฌ๋ ์ปค์คํ RTTI๋ฅผ ์ฌ์ฉํ๋ค ์ด๋ฐ ๋งคํฌ๋ก๊ฐ ๋ฌ๋ฆฐ ์ฝ๋๋ ์ผ๋ฐ์ ์ธ C++ ๋งคํฌ๋ก์ ๋ฌ๋ฆฌ ๋ ๋ฎ์ ๋ ๋ฒจ์์ ์๋ํ๋ฉฐ ๊ด๋ฆฌ๋๋ค ์ด ๋งคํฌ๋ก๋ค์ RTTI, Reflection ๋ฑ ์๋์ ์ํด ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ค
์์ ๊ฐ ํ ๋น ์ธ์ C++ ์์๋ ์์๊ฐ์ const reference์ rvalue reference, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ผ๋ก์์ ํจ์ ์ธ์๋ก ๋ฐ๋๋ก ํ์ฉํ๋ค non-const reference ์ธ์๋ฅผ ๋ฐ๋ ํจ์๋ ํจ์ ์คํ ์ค ์ธ์๋ฅผ ์์ ํ๊ณ ์ ๋ณ๊ฒฝ๋ ์ํ๋ก ๋ค์ caller๋ก ๋์๊ฐ๋ ๊ฒ์ ํ์ฉํ๋ค
์บ์ Cache CPU๊ฐ ๋น ๋ฅธ ์๋๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฉ๋ชจ๋ฆฌ Locality of Reference ์๋ฆฌ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ ๋ณด๊ด
CPU์ ์ฐจ์ด ๋ ์ง์คํฐ์ bit ํญ ์ฐจ์ด ๋ ์ง์คํฐ์ ํฌ๊ธฐ๊ฐ 16bit์ด๋ฉด 16bit CPU ๋ ์ง์คํฐ์ ํฌ๊ธฐ๊ฐ 64bit์ด๋ฉด 64bit CPU
๋ฒกํฐ์ ํ๊ณ ์ด๋ค ๋ฌผ์ฒด๋ฅผ ํ๋ฉด์ ํํํ๋ ค๋ฉด ๋ฒกํฐ๋ง์ผ๋ก๋ ๋ถ์กฑ ๋ฒกํฐ๋ ํฌ๊ธฐ์ ๋ฐฉํฅ ์ฑ๋ถ๋ง์ ๊ฐ์ง ์์น ์ ๋ณด๊ฐ ํ์ ์์น๋ ๋ฌด์์ผ๋ก ํํํ๋๊ฐ? ์ point
๋ฐ์ ์ด์ Stack ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ ์ค๋ ๋๊ฐ ์ด๊ธฐํ๋ ๋ ๊ณ ์ ๋ ํฌ๊ธฐ๋ก ๊ฒฐ์ ์ฌ์ฉ๋์ ์ด๊ณผํ์ฌ ์ฌ์ฉํ๋ค๋ฉด ์ํํธ์จ์ด๋ undefined behavior ์ผ๊ธฐ Stack ์์ญ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ง์ ๋ ๋ฒ์๋ฅผ ๋์ด๊ฐ ๋ ๋ฐ์ ํ ํจ์์์ ๋๋ฌด ํฐ ์ง์ญ ๋ณ์๋ฅผ ์ ์ธ ํจ์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ฌดํ์ ...
RTTI๋ C++ ์ปดํ์ผ๋ฌ ๋ด์ ์๋ ๊ฐ์ฒด์ ํ์ ์ ๋ณด๋ฅผ ์์๋ด๋ ๊ธฐ๋ฅ ๋ฐํ์์์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด์ ํ์ ์ ์ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ๋ฒ ๊ฐ์ฒด์ ํ์ ์ ๋ฐํ์์์ ๊ฒฐ์ ํ ์ ์๋๋ก ํ์ฉ ๋ฉ๋ชจ๋ฆฌ ์์ฃผ ๊ฐ์ฒด์ ํ์ ์ ๋ณด ์ถ๊ฐ ๋ฐํ์์์ ๊ฐ์ฒด์ ์บ์คํ ์ด ์ ํจํ์ง ์์๋ด๊ธฐ ์ํด, ๊ฐ์ฒด๋ฅผ ํน์ ํ์ ์ผ๋ก ๊ฒฐ์ ํ...
๋ฉ๋ชจ๋ฆฌ(RAM) ์ ์ ์จ์ ์์นํ๋ฉด? ๋ฉ์ธ ๋๋ผ์ด๋ธ์ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ค์ ํด๋น ์์ญ์ ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ์ฌ์ฉ ๋ฎ์ ๋จ๊ณ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์กํ์๋ก ์์ธ์ค ์๋๊ฐ ๋๋ ค์ง ์ด ๊ฐ์ ์ด์ ๋ก RAM ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง์์๋ก ์ข๋ค๋ ๊ฒ
Influence Mapping ์ํฅ๋ ์๊ณ ๋ฆฌ์ฆ ์์น๋ฅผ 2d grid์ ๋ถ์ฐ์์ผ ๋์ ์ถ์ ๋์์ธ
ํฌ๊ธฐ ๋ณํ ๋ฒกํฐ์ ํฌ๊ธฐ์ ๋ฐฉํฅ ์ค ํฌ๊ธฐ๋ง ๋ณ๊ฒฝํ๋ ๊ฒ ๊ฐ ์ฑ๋ถ์ ๊ฐ ๊ณ์๋งํผ์ ํฌ๊ธฐ๋ฅผ ๊ณฑํด ์์ ๋ฐ๊ฟ
Rubberbanding
ํ๋กํ ํ์ ๋์์ธ ํจํด ์ฌ๋ฌ ๋ชฌ์คํฐ ํ์ ๊ณผ ๊ฐ ๋ชฌ์คํฐ๋ฅผ ์ํํ๋ Spwaner๋ฅผ ๋์์ธํด๋ณด์
์ ํ ๋ณํ๊ณผ ํ๋ ฌ ์ ํ ๋ณํ์ด๋ ํ๋์ ๋ฒกํฐ ๊ณต๊ฐ์ ๋ค๋ฅธ ๋ฒกํฐ ๊ณต๊ฐ์ผ๋ก ๋ณํํ๋ ํจ์ ์ ํ ๋ณํ์ ์ ์ํ๋ ๋ ํน์ฑ์ด ๋ณํ ํ์๋ ๋ฒกํฐ ๊ณต๊ฐ์ ์กฐ๊ฑด์ ๊ทธ๋๋ก ๋ง์กฑํ๊ธฐ ๋๋ฌธ
๊ด์ฐฐ์ ํจํด์ ์ฌ๋ก MVC ํจํด C#์ event java์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๊ฒฝ๋ ํจํด ์ด๋ค ๊ฐ์ฒด์ ์๊ฐ ๋๋ฌด ๋ง์ ์ด๋ฅผ ๊ฐ๋ณ๊ฒ ๋ง๋ค๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค ๋ฐ์ดํฐ ์ค ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ์ํ intrinsic state๋ ์์ ๋ฌธ๋งฅ context-free๋ผ ํ๋ค ๋๋จธ์ง ๋ฐ์ดํฐ๋ฅผ ์ธ์คํด์ค ๋ณ๋ก ๊ฐ์ด ๋ค๋ฅธ ์ธ๋ถ ์ํ extrinsic state๋ผ ํ๋ค GoF ํจํด ์ค ์ ์ผํ๊ฒ ํ๋...
ํ๋ ฌ Matrix m x n ํ๋ ฌ์์ m = n ์ด๋ฉด ์ ๋ฐฉํ๋ ฌ square matrix ์ด๋ค ๋ชจ๋ ์์๊ฐ 0์ด๋ฉด ์ํ๋ ฌ zeron matrix ์ด๋ค ์ด๋ค ํ๋ ฌ์ ํ๊ณผ ์ด์ ๋ค๋ฐ๊พธ๋ฉด ์ ์น ํ๋ ฌ transpose matrix๋ผ ํ๋ค ์ ์นํ ํ๋ ฌ์ด ์๋ ํ๋ ฌ๊ณผ ๊ฐ๋ค๋ฉด ๋์นญ ํ๋ ฌ symmetric matrix๋ผ ํ๋ค ...
Content Delivery Network ์ ์ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ์ฌ๋ฌ ๊ฐ์ ์๋ฒ ์ปจํ ์ธ ๋ฅผ ์ฌ์ฉ์์ ๊ฐ๊น์ด ์๋ฒ์์ ์ ์กํด ์๋๋ฉด์์ ์ด๋ ์ค์ ์๋ฒ์์ ๊ฐ๋ณ ์ฌ์ฉ์์๊ฒ ์ปจํ ์ธ ๋ฅผ ์ ์กํ๋ ค๋ฉด ํธ๋ํฝ ๊ณผ๋ถํ ๋ฐ ์ ์ก ์๋, ์๊ฐ ๋ฌธ์ ๋ฐ์ ํ์ผ ๋ณต์ฌ๋ณธ์ ์บ์ฑํ์ฌ ๊ฐ ๋ฐ์ดํฐ ์ผํฐ์ ์ ์ฅ
์ผ๊ธ ๊ฐ์ฒด ๋ชจ๋ ์์๋ ํจ์์ ์ค์ ๋งค๊ฐ๋ณ์๊ฐ ๋ ์ ์๋ค. ๋ชจ๋ ์์๋ ํจ์์ ๋ฐํ ๊ฐ์ด ๋ ์ ์๋ค. ๋ชจ๋ ์์๋ ํ ๋น ๋ช ๋ น๋ฌธ์ ๋์์ด ๋ ์ ์๋ค. ๋ชจ๋ ์์๋ ๋์ผ ๋น๊ต์ ๋์์ด ๋ ์ ์๋ค.
์ ํด๋ฆฌ๋ ๊ณต๊ฐ ์์์ ์ ๊ณผ ๋ค๋ฅธ ํ ์ ์ ์ฐ๊ฒฐํ๋ ์ง์ ์ ๋จ ํ๋๋ค ์์์ ์ ๋ถ์ ์ ๋์ผ๋ก ์ผ๋ง๋ ์ง ์ฐ์ฅํ ์ ์๋ค ์์์ ์ ์ ์ค์ฌ์ผ๋ก ํ๊ณ ์์์ ๊ธธ์ด๋ฅผ ๋ฐ์ง๋ฆ์ผ๋ก ํ๋ ์์ ๊ทธ๋ฆด ์ ์๋ค R์ ์ค์๋ก ์ด๋ฃจ์ด์ง, R^2์ 2์ฐจ์ ๊ณต๊ฐ, R^3๋ 3์ฐจ์ ๊ณต๊ฐ์ ์๋ฏธ
์ ํ๋ณํ (Linear Transformation) ๋์ํ ๋ฏธ์ง์์ ๋ฏธ์ง์๋ฅผ ์ฌ์ฉํ๋ ์ํ
์ ์ ํํ ์ค์ฒดํ ๋๋ ์ผ๊ธ์ด๋ผ๊ณ ํ๋ฉด ์ด๋ค ๊ฐ๋ ์ ๋ณ์์ ์ ์ฅํ๊ฑฐ๋ ํจ์์ ์ ๋ฌํ ์ ์๋๋ก ๊ฐ์ฒด๋ก ๋ฐ๊ฟ ์ ์๋ค๋ ์๋ฏธ์ด๋ค ์ด ๊ฐ๋ ์ ๊ฐ์ผ ์๋, ํจ์์ ๊ฐ์ ๋ก์ง์ผ ์๋ ์๋ค ์ฆ ๋ฉ์๋ ํธ์ถ์ ์ค์ฒดํํ ๊ฒ์ด๋ฉฐ, ํจ์ ํธ์ถ์ ๊ฐ์ฒด๋ก ๊ฐ์๋ค๋ ์๋ฏธ์ด๋ค ์ฝ๋ฐฑ, ์ผ๊ธ ํจ์, ํจ์ ํฌ์ธํฐ, ํด...
์์ case 1
๋ค์ค ์์ Multiple Inheritance C++์์๋ C#๊ณผ ๋ค๋ฅด๊ฒ, ๋ค์ค ์์์ ํ์ฉ ๊ธฐ๋ฐ ํด๋์ค์ ๋ฉค๋ฒ ๋๋ ๋ฉ์๋์ ์ด๋ฆ์ด ๋์ผํ ๊ฒฝ์ฐ ์ฃผ์ํด์ผ ํ๋ค
Translation ์ด๋ค P1 (x, y)๋ฅผ P2(xโ, yโ)๋ก ์ด๋ ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ (Tx, Ty) xโ = x + Tx yโ = y + Ty
readonly vs. const
๊ณต๊ฐ ๋ถํ ์ ํ์ Grid QuadTree/OctTree Waypoint graphs Coner graphs Circle-based waypoint graphs Navigation meshess
DFS Depth-Frist Search ํ์ฌ ๋ถ๊ธฐ๋ฅผ ์๋ฒฝํ๊ฒ ํ์ํ ๋ค ๋ค์ ๋ถ๊ธฐ๋ก ์ด๋ ํ์ฌ ๋ ธ๋์ ์ธ์ ํ ๋ ธ๋๋ฅผ ์ฐ์ ํ์ ๋ ์ด์ ์ธ์ ํ ๋ ธ๋๊ธฐ ์์ ๋๊น์ง ๋ฐ๋ณต ๊ทธ๋ํ ๋ด์ cycle ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ ์ฌ์ฉ
new/delete์ ์ฌ์ฉํ์ง ์๋ ์ด์ ? ๊ธฐ๋ฅ์ ๊ณผ๋ํ ๋ฒ์ฉ์ฑ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋๋จธ์ hidden behavior ์ํ ๋ถ์ถฉ๋ถํ ๊ธฐ๋ฅ
์์ง๋๊ธฐํ VSync ํ๋ฉด์ฃผ์ฌ์จ๊ณผ ๊ฒ์ ํ๋ฉด์ FrameRate๋ฅผ ๋๊ธฐํ ๋ชจ๋ํฐ๋ ๊ฐ๊ฐ ๊ณ ์ ์ ์ฃผ์ฌ์จ์ด ์๋ค 60Hz๋ 1์ด์ 60๋ฒ ์คํฌ๋ฆฐ์ ์ ๋ฐ์ดํธ ํ๋ค๋ ์๋ฏธ ํ๋์จ์ด ๊ณ ์ ์ ์ ํ ์ฌํญ์ด๋ฏ๋ก, ํ๋ก๊ทธ๋จ ๋ฐ PC ์ฑ๋ฅ๊ณผ ๋ฌด๊ด ๊ฒ์ ํ๋ ์์ ๊ฒ์ Scene์ 1์ด์ ๋ช ๋ฒ ๊ทธ๋ฆฌ๋์ง๋ฅผ ์๋ฏธ ...
Singleton ์ค์ง ํ ๊ฐ์ instance๋ง์ ๊ฐ๋๋ก ๋ณด์ฅ ์ ์ญ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค์๊ฒ ํ์
C++ Template vs. C# Generic C++ ์ ์ปดํ์ผ์ด 1๋ฒ ์ผ์ด๋๊ณ , C# ์ ๋ค๋ฆญ์ ์ปดํ์ผ์ด 2๋ฒ ์ผ์ด๋๋ค. C++ ํ ํ๋ฆฟ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ปดํ์ผํ์ง ์๋๋ค. ํ์ง๋ง, C# ์ ๋ค๋ฆญ์ ์ฌ์ฉํ์ง ์๋๋ผ๋ ๊ทธ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋ฉํ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋ค. ์ ๋ค๋ฆญ์ [๋นํ์ ํฌํ๋ฆฟ...
Waterfall ์ํฐํด
Heap ๊ตฌ์กฐ์ฒด ์ฐ์ ์์ ํ๋ฅผ ์ํด ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ ์ฌ๋ฌ ๊ฐ๋ค ์ค ์ต์๊ฐ์ด๋ ์ต๋๊ฐ์ ๋น ๋ฅด๊ฒ ํ์ํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ ๋ฐ์ ๋ ฌ ์ํ๋ฅผ ์ ์ง ์์ ๊ฐ์ ํ์, ํฐ ๊ฐ์ ์์์ ์๋ ์ ๋ ์ด์ง ํธ๋ฆฌ์๋ ๋ฌ๋ฆฌ, ์ค๋ณต๋ ๊ฐ์ ํ์ฉ ์ด์ง ํธ๋ฆฌ์์ ํน์ ํ ์กฐ๊ฑด์ ๊ฐ์ถ ๊ตฌ์กฐ์ฒด ํธ๋ฆฌ์ ๋์ด h๊ฐ...
MVC ํจํด
Adaper ํจํด ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ํธํ๋์ง ์๋ ์๋ณธ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํ ์ ์๊ฒ ํจ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ๋ฐ์ดํธ ๋ฐ ๊ต์ฒด์ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์์
Host ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ ์ข ๋ฅ์ ์ฅ์น๋ฅผ Node ๋ ธ๋ ์ค IP ์ฃผ์(๋คํธ์ํฌ ์ฃผ์)๊ฐ ํ ๋น๋ ๊ฒ๋ค์ Host Host๋ค๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ก์์ ํ๋ค ๋ฐ์ดํฐ์ ์ก์์ ์ Host๊ฐ ์คํํ๋ Process๊ฐ ์ํ
์ฐ๊ฒฐ ์งํฅ vs. ๋น์ฐ๊ฒฐ ์งํฅ
ํ๋กํ ์ฝ Protocol ๋คํธ์ํฌ ํ๊ฒฝ ๋ด ๋ชจ๋ ๊ธฐ๊ธฐ๊ฐ ์๋ก ํต์ ํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๋ฉด, ๊ฐ ๊ธฐ๊ธฐ์๋ ์ฌ์ ํ์๋ ํต์ ํ์ฝ/๊ท์ฝ์ด ํ์ ์ปดํจํฐ๋ ์๊ฑฐ๋ฆฌ ํต์ ์ฅ๋น ์ฌ์ด์์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์์๊ณผ ๊ท์น์ ์ฒด๊ณ ์ ํธ ์ฒด๊ณ, ์ธ์ฆ, ๊ทธ๋ฆฌ๊ณ ์ค๋ฅ ๊ฐ์ง ๋ฐ ์์ ๊ธฐ๋ฅ์ ํฌํจ ๊ตฌํ๋๋ ๋ฐฉ๋ฒ์ ๋ ๋ฆฝ์ ์ด๋, ํ๋์จ์ด ๋๋ ์ํํธ์จ์ด ๊ทธ๋ฆฌ๊ณ ...
HTTP HyperText Transfer Protocol HTML ๋ฌธ์์ ๊ฐ์ ๋ฆฌ์์ค๋ค์ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํด์ฃผ๋ ํ๋กํ ์ฝ Plain text๋ก๋ถํฐ JSON ๋ฐ์ดํฐ ๋ฐ XML๊ณผ ๊ฐ์ ํํ์ ์ ๋ณด๋ ์ก์์ ๊ฐ๋ฅ ๋ณดํต์ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ค ์ ๋ณด๋ฅผ HTML ํํ๋ก ๋ฐ๊ณ ์ถ์์ง, JSON ํํ๋ก ๋ฐ๊ณ ์ถ์์ง ๋ช ์ ...
์๋ก ์ฐธ์กฐํ๋ shared_ptr ์ํ ์ฐธ์กฐํ๋ shared_ptr์ ์ฌ์ฉํ์ง ์๋๋๋ ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ถ๊ฐ
์์ ๊ด๋ฆฌ๋ฅผ ๋ชปํ๋ ์๊ฐ
shared_ptr ์ฌ๋ฌ ๊ฐ์ ์ค๋งํธ ํฌ์ธํฐ๊ฐ ํ๋์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ด ์์ ํด์ผํ๋ ์ํฉ ํ๋์ ์์์ ๋ช๊ฐ์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋์ง ์ถ์ ํ๋ ํฌ์ธํฐ control block์ ํ ๋นํ์ฌ ๋ณต์ฌ๋ฅผ ํ์ฉ ๊ฐ shared_ptr ๊ฐ์ฒด์ ์ ์ฅ๋๋ ๊ฒ์ด ์๋๋ผ ์ค์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ control block์ ํ ๋น ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋...
์๋ฒฝํ ์ ๋ฌ perfect forwarding wrapper ํจ์๊ฐ ํ์ํ ๊ฒฝ์ฐ
move semantic
์์ธ๋? ์ ์์ ์ธ ์ํฉ์์ ๋ฒ์ด๋ ๋ชจ๋ ์์ธ์ ์ธ ์ํฉ๋ค
decltype ์๋ณ์ ํํ์์ด ์๋ ์์ ์ธ์๋ก ๋ฐ๊ณ , ๊ทธ ํ์ ์ T๋ผ๊ณ ํ์ ๋ ์์ ๊ฐ์ด xvalue์ธ ๊ฒฝ์ฐ -> T&& ๋ฅผ ๋ฆฌํด ์์ ๊ฐ์ด lvalue์ธ ๊ฒฝ์ฐ -> T& ๋ฅผ ๋ฆฌํด ์์ ๊ฐ์ด prvalue์ธ ๊ฒฝ์ฐ -> T ๋ฅผ ๋ฆฌํด decltype...
final
์์์ ๋ณํ(implicit conversion)
mutable ์ฌ์ฉ ์์
Precompiled Header(๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ํค๋) ํค๋๋ฅผ ๋ฏธ๋ฆฌ ์ปดํ์ผ ํด๋๋ ๊ฒ ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ๊ธด์์ค๋ฅผ ๋ฏธ๋ฆฌ ์ปดํ์ผํ์ฌ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๋์ ํ์ผ์ ์ ์ฅ ๋ค์ ๋๊ฐ์ ํค๋๋ฅผ ์ปดํ์ผํ ๊ฒฝ์ฐ ํด๋น ํ์ผ์ ์ฒ์๋ถํฐ ์ปดํ์ผํ์ง ์๊ณ , ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ํค๋ ํ์ผ์ ์ฌ์ฉํด ์ปดํ์ผ ์๋๋ฅผ ์๋ฑํ ํฅ์
๋์ ํ์ dynamic ๋ณ์ ๋ฐ ํด๋น ๋ฉค๋ฒ์ ๋ํ ์ฐธ์กฐ ์ฌ์ฉ์ ๋ํ ์ปดํ์ผ ํ์ ๊ฒ์ฌ๋ฅผ ํจ์ฑ ๋ฐํ์์์ ํ์ธ ๋๋ถ๋ถ์ ์ํฉ์์ object ์ฒ๋ผ ๋์ ๊ทธ๋ฌ๋ ์ปดํ์ผ๋ฌ๊ฐ ํ์์ ๊ฒ์ฌํ์ง ์์ ์ํ ์ปดํ์ผ ํ์์ ๊ฑฐ์น๋ฉฐ object ํ์ ์ผ๋ก ๋ณํ ๋ฐํ์์์ dynamic...
map ๋ ๋ ๋ธ๋ ํธ๋ฆฌ ๊ธฐ๋ฐ ๊ฒ์์๋๊ฐ ๋น ๋ฅธ Binary Search Tree(BST) + Self-Balancing ๊ธฐ๋ฅ์ ์ถ๊ฐ O(logN)์ ๋ณด์ฅํ๋ ์์ค์ผ๋ก Balancing ํค ๊ฐ์ ๋ถํฌ๊ฐ ๊ณ ๋ฅด์ง ๋ชปํ ๊ฒฝ์ฐ node rotation์ ๋ํ ๋น์ฉ์ด ๊ณ์ ๋ฐ์ํ๊ธฐ์ Insert / Delete ์ฑ๋ฅ์ด...
Gizmo ์ฌ ๋ทฐ์์ ํธ์ง์ด๋ ๋๋ฒ๊น ์ ์ํด ์ค๋ธ์ ํธ์ ์์น๋ ๋ฒ์, ํน์ ์์๋ฅผ ๊ฐ์ํ
Lua ์คํฌ๋ฆฝํธ ์ ์ฐจ์ ๋ช ๋ น์ ์คํฌ๋ฆฝํธ ์ธ์ด ๊ฐ๋จํ ์๋ฃ๊ตฌ์กฐ : boolean, number, string, table ํต์ฌ ๋ชจ๋์ ํฌ๊ธฐ๊ฐ 120KB ์ดํ ๊ฒ์ ๊ฐ๋ฐ์ ์์ฃผ ์ฌ์ฉ๋๋ Python์ ๋นํด ๋น ๋ฅธ ์คํ ์๋๋ฅผ ๊ฐ์ง ์คํ์์ค
Procedural Programing (์ ์ฐจ์ ํ๋ก๊ทธ๋๋ฐ) ๋ฐ์ดํฐ๋ฅผ ์ค์ฌ์ผ๋ก ํจ์๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ ํ๋ก๊ทธ๋จ์ด ํจ์ํ ๋์ด ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ ํ๋ก๊ทธ๋จ ์ ์ฒด๊ฐ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ ์ฅ์ ์ปดํจํฐ์ ์ฒ๋ฆฌ๊ตฌ์กฐ์ ์ ์ฌํด ์คํ์๋๊ฐ ๋น ๋ฆ ๋จ์ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ ์คํ ์์๊ฐ ์ ํด์ ธ ์์ผ๋ฏ...
Event ํ object์ ์ํด ์ด๋ค action์ด ๋ฐ์ํ์์ ์๋ฆฌ๋ notification .NET์์๋ observer design pattern์ ์ฌ์ฉ
Texture ์ฌ์ด์ฆ๋ฅผ 2์ ์ ๊ณฑ์๋ก ์ธํ ํ๋ ์ด์ ์ค๋๋ ๋๋ถ๋ถ์ GPU๋ ์ด๋ฌํ ์ ์ฝ์ผ๋ก๋ถํฐ ์์ ๋กญ๋ค (NPOT) RAM์ ์ฌ์ฉํ ๋ NPOT ์ด๋ฏธ์ง๋ ๊ทธ๋ณด๋ค ํฐ ์ฌ์ด์ฆ์ POT๋ก ํ์ฅ๋๋ค ์ด ๊ณผ์ ์์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ญ๋น๋๋ค ํ์ฅ๋ ์ฌ์ด์ฆ๋งํผ ๊ฐ์ฅ์๋ฆฌ์ edging artifact๊ฐ ๋ฐ์ํ ์ ์๋ค ...
ํจ์ ํธ์ถ ๋น์ฉ ํจ์ ํธ์ถ๋ ๋๋ง๋ค ์ผ์ ๋์ ์ฑ๋ฅ ์ค๋ฒํค๋ ๋ฐ์ CPU๊ฐ ๋ค๋ฅธ ๋ ์ง์คํฐ์ ํจ๊ป ์คํ ์ค์ธ ํ์ฌ ๋ช ๋ น์ด์ ์ฃผ์๋ฅผ ์ ์ฅํด์ผ ํ ๋์ค์ ๋ฐํํ ์์น๋ฅผ ์ ์ ์๋๋ก ๋ชจ๋ ํจ์ ๋งค๊ฐ ๋ณ์๋ฅผ ์์ฑ ์ ์์น๋ก ๋ถ๊ธฐํ๊ธฐ ๋ณด๋ค ๋ด๋ถ ์์ฑ ์ฝ๋(์ธ์คํดํธ ์ฝ๋)๊ฐ ๋ ๋น ๋ฆ
Callback ํจ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ๋๋ ๋ค๋ฅธ ๋ชจ๋์์ ํธ์ถ๋ ํจ์๋ฅผ ์๋ ค์ฃผ๊ณ , ๊ทธ ํจ์๋ฅผ ํธ์ถํ๋๋ก ํ๋ ๋ฐฉ๋ฒ ์ผ๋ฐ์ ์ผ๋ก OS๊ฐ ํธ์ถํ ์ดํ๋ฆฌ์ผ์ด์ ์ ํจ์๋ฅผ ์ง์ ํด ํน์ ํ ์ฌ๊ฑด / ๋ฉ์ธ์ง๊ฐ ๋ฐ์ํ๋ฉด ํธ์ถํ๋๋ก ์ง์ ์ผ๋ฐ ํจ์ ํธ์ถ ํด๋ผ์ด์ธํธ์์ ์๋ฒ์ ํจ์๋ฅผ ํธ์ถํ์ฌ ์ฌ์ฉ ์ฝ๋ฐฑ ํจ์ ํธ์ถ ...
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Static Link Library) ํ์ํ ํจ์๋ฅผ ํ๋ก๊ทธ๋จ ์ฝ๋์ ๋ถ์ฌ ์ปดํ์ผ ์ ํ๋ก๊ทธ๋จ ์์ฒด์์ ์ฐธ์กฐ (Compile-Time) lib ํ์ผ์ ํ๋์ ๊ฑฐ๋ํ ํ์ผ์ด ์์ฑ ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํธ ์ ์๋ก์ด ๋ฒ์ ์ผ๋ก ์์ฑ ๋ค๋ฅธ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ ๋ถ๊ฐ ํ์ง๋ง ๋ฒ์ ...
์ธ์ฝ๋ฉ์ด๋?* Encoding - ๋ฌธ์๋ ๊ธฐํธ๋ฅผ ์ํธํํ๋ ๊ฒ Decoding - ์ํธํ๋ฅผ ํด๋ ํ๋ ๊ฒ, ๋ณตํธํ ์ธ์ฝ๋ฉ๊ณผ ๋์ฝ๋ฉ์ ์ ํด์ง ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฅ๋๊ณ ํด๋ ํด์ผ ํ๋๋ฐ, ASCII๋ UNICODE์ ๊ฐ์ ๋ฌธ์์ ์ด ๊ทธ๊ฒ์ด๋ค. Base64 ์ธ์ฝ๋ฉ์ 8๋นํธ ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ์ฝ๋์ ์ํฅ์ ๋ฐ์ง ์๋ ๊ณตํต ASCII ์์ญ์ ๋ฌธ...
TryGetValue vs. ContainsKey? ```csharp // key๊ฐ ์๋์ง ์ฒดํฌ public bool ContainsKey(TKey key) { return (this.FindEntry(key) >= 0); }
default ์ฐ์ฐ์ default ํค์๋๋ ํด๋น ๋ณ์ ํ์ ์ ๊ธฐ๋ณธ ๋๋ ๋น ์ํ๋ฅผ ๋ฐํ ์ฐธ์กฐ ํ์(class, delegate, โฆ)์ default ๊ฐ: null ๊ฐ ํ์ (struct, enum, โฆ)์ default ๊ฐ: all-zeroes value int 0, DateTime 0001-01-01 00:00:0...
Managed vs. Unmanaged Code Unmanaged code๋ ์ปดํจํฐ ๊ตฌ์กฐ, ํ๋ก์ธ์์ ํนํ๋์ด ๊ทธ์ ์์กดํ๋ ์ฝ๋ C#์์๋ unsafe ํค์๋๋ฅผ ์ด์ฉํ๋ ์ฝ๋ ํ๋ก๊ทธ๋๋จธ์ ์ํด ์ง์ ๊ด๋ฆฌ Managed code๋ .NET ํ๋ ์์ํฌ์์ ๊ตฌ๋ํ๋ C# ์ฝ๋ ์์ฒด ...
lock ํค์๋ ๊ฐ์ฒด์ ๋ํ ๋ฎคํ ์ค๋ฅผ ํ๋ํ๊ณ signal๊ณผ unlock์ ์คํ
DontDestroyOnLoad ์๋ก์ด Scene์ด ๋ก๋๋ ๋, ์๋์ผ๋ก ํ๊ดด๋์ง ์๋ target ์ค๋ธ์ ํธ๋ฅผ ์์ฑ ์ ๋ ๋ฒจ์ด ๋ก๋๋๋ฉด Scene์ ๋ชจ๋ ์ค๋ธ์ ํธ๋ค์ ํ๊ดด๋๊ณ , ์ ๋ ๋ฒจ์ ์ค๋ธ์ ํธ๋ค์ด ๋ก๋๋๋ค. ๋ ๋ฒจ ์ค์์น ์ค์ ์ค๋ธ์ ํธ๋ฅผ ๋ณด์กดํ๊ธฐ ์ํด DontDestroyOnLoad ์ฌ์ฉ ํด๋น ์ค๋ธ์ ํธ๊ฐ component์ด๊ฑฐ๋ gam...
sealed ํค์๋ ํด๋์ค์ ์ ์ฉ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ํด๋์ค๊ฐ ํด๋น ํด๋์ค์์ ์์ํ๋ ๊ฒ์ ๋ง์
C# ํฌ์ธํฐ C# ๋๋ถ๋ถ์ ์ฝ๋๋ ํ์ธํ ์ ์๋ ์์ ํ ์ฝ๋ .Net ๋๊ตฌ์์ ์ฝ๋๊ฐ ์์ ํ์ง ํ์ธ ๊ฐ๋ฅ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ง ์๊ณ , ํฌ์ธํฐ๋ก ์ง์ ๋ฉ๋ชจ๋ฆฌ์ ์์ธ์คํ์ง ์์ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฑ์ ์ฑ๋ฅ์ ํฅ์ ํฌ์ธํฐ๊ฐ ํ์ํ ๋ค์ดํฐ๋ธ ํจ์๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ ํ์ ๋ณด์ ๋ฐ ์์ ์ฑ ์ด์ ๋ฐ์...
Job System
๋๊ธฐ์ ๋น๋๊ธฐ ๋๊ธฐ ์ด๋ค operation์ ์คํ์์ผฐ์ ๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋์ถ๋ ๋๊น์ง ํ๋ก๊ทธ๋จ์ ๋ฉ์ถฐ์ ๊ธฐ๋ค๋ ค์ผ ํจ ๋น๋๊ธฐ ์ธ์ ๊ฐ์ด ๋์ถ๋ ์ง ๋ณด์ฅํ ์ ์๊ณ , ๊ทธ ๋์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์งํํ ์ ์์ async / await๋ ์ ์ค ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํด ์ฌ...
ํ์ฅ ๋ฉ์๋๋ ๊ธฐ์กด ์ ๊ณต๋๋ ํด๋์ค/๊ตฌ์กฐ์ฒด/์ธํฐํ์ด์ค์ ๊ตฌํ์ ์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ๋ฅ์ ํ์ฅํด ์ฌ์ฉ ๊ธฐ์กด ๋ฐ์ดํฐ ํ์ (int, float ๋ฑ)์ class์๋ ์ ์ฉ ๊ฐ๋ฅ
์ด๋ฏธ์ง ์์ถ PNG/JPG ๋ฑ์ผ๋ก ์์ถํ๋๋ผ๋ GPU ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ ๋๋ ์์ถ์ด ํ๋ฆฐ ์ํ๋ก ์ ์ฅ GPU๊ฐ ์ด ํ์ผ์ ๊ทธ๋๋ก ์ฝ์ด๋ค์ผ ์ ์๊ธฐ ๋๋ฌธ ๋์ญํญ ์ฌ์ฉ๋์ ์ด์ ์ ๋ง์ถ ํ์ผ ํ์ GPU๊ฐ ํ ์ค์ณ๋ก ์ฐ๊ธฐ ์ํ ์์ถ ํ์์ด ์๋ ๊ฐ๋ณ ๋น์จ ์ธ์ฝ๋ฉ์ ์ํํ๊ธฐ ๋๋ฌธ ...
Frustum Culling Camera (View) Matrix Far/Near ๊ฐ์ผ๋ก ์กฐ์ ์๊ฑฐ๋ฆฌ Culling objects์ ๋ถ์์ฐ์ค๋ฌ์ ๊ฐ์ถ๊ธฐ ์ํด Fog ์ฌ์ฉ
๋ฉ๋ชจ๋ฆฌ ํด๋ญ ๋ฉ์ธ๋ณด๋์์ ๋ฐ์ํ๋ ๋จ ๋์ ์ฃผ๊ธฐ ์ ํธ(MHz) ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค ํญ ๋ฉ๋ชจ๋ฆฌ ์ ์ถ๋ ฅ ๋ผ์ธ ๊ฐ์(bit) ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ Memory Clock * Memory bus width ํ๋ฒ์ ํด๋ญ ์ ํธ๋ฅผ ํตํด์ ์ฒ๋ฆฌํ ์ ์๋ ์ฉ๋ GPU๊ฐ ์ฝ์ ์ ์๋ ๋ฐ...
๋๋ก์ฐ์ฝ // OpemGL์ DrawCall glDrawArrays(); // vertices rendering glDrawElements(); // indices rendering CPU์์ ๊ทธ๋ํฝ API ํธ์ถ์ ํตํด GPU์ ๋ ๋๋ง์ ๋ช ๋ นํ๋ ๊ฒ
SafeArea ๋ชจ๋ฐ์ผ ํด์๋์์ ์ ๋ฉด ์นด๋ฉ๋ผ ์์ญ ์นจ๋ฒํ์ง ์๊ฒ ๋ณด์ฅํด์ฃผ๋ ์์ญ ๋ ธ์นํฐ์ ๋ํด ui ๋ฐฐ์น ๋์์ ์ํด ์ค์
๋ฌผ์ํ ์ฐ์ฐ์ ๋๊ฐ๊ฐ ์ฐ์์ ์ผ๋ก ์ฐ์ด๋ ์์
Property ์ ๋ณด์๋์ ๋ ๊ฐ๊ฒฐํ๊ณ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋๋ก ํ์ฉ get / set ๋ฉ์๋๋ฅผ ๋์ ํด ๊ฐ๋ ์ฑ์ ๋ณด์
partial ํค์๋ C#์์๋ C/C++์ ๋ฌ๋ฆฌ cs ํ์ผ ํ๋์ ํด๋์ค ์ ์ธ๊ณผ ์ ์๊ฐ ์์ฑ ํด๋์ค๊ฐ ์ปค์ง ๊ฒฝ์ฐ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง Partial ํค์๋๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฌ๋ฌ ํ์ผ์ ํ๋์ ํด๋์ค๋ฅผ ์์ฑํ๋๋ก ํ์ฉ ๋๋ฆฌ์(delegate) ๋๋ ์ด๊ฑฐํ(enum) ์ ์ธ์ ํ ๋ partial ํ์ ์๋ฅผ ์ฌ์ฉํ ์ ์์ ```csharp /...
in ํค์๋ in ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋๋ ๋ณ์๋ ๋ฉ์๋๋ก ์ ๋ฌ๋๊ธฐ ์ ๋ฐ๋์ ์ด๊ธฐํ ์ธ์๊ฐ ์ฐธ์กฐ๋ก ์ ๋ฌ๋์ง๋ง, ์์ ๋์ง ์์ ์ค๋ฒ๋ก๋ฉ ๊ท์น ```csharp class InOverloads { // ์ค๋ฒ๋ก๋ฉ ํ์ฉ public void SampleMethod(in int i) { } public void SampleMeth...
byte์ char์ ์ฌ์ด์ฆ byte: 1๋ฐ์ดํธ ์ซ์ ์๋ฃํ char: 2๋ฐ์ดํธ ๋ฌธ์ ์๋ฃํ 1๋ฐ์ดํธ ์๋! ๋๋ถ๋ถ์ .Net ์ธ์ด์ ๋ฌธ์์ด์ ์ ๋์ฝ๋ utf-16์ ๋ํดํธ๋ก ์ง์
์์ ๋ฒ๋ค ์ ๋ํฐ ํ๋ก์ ํธ์ ์ฌ์ฉํ ๋ฆฌ์์ค๋ค์ ๋ฌถ์ ๊ฒ ์ ๋ํฐ์์ ์์ ๋ฒ๋ค ์์ฑ ์ธ๋ถ ์คํ ๋ฆฌ์ง(์๋ฒ)์ ์ ์ฅ ํ๋ก์ ํธ์ ๋ฐํ์ ์ค ๋ฒ๋ค์ ๋ค์ด๋ก๋ ๋ค์ด๋ก๋ํ ๋ฒ๋ค์์ ๊ฐ๋ณ ์์ ์ ๋ก๋ํด ์ฌ์ฉ
Canvas Unity์์ ๋ชจ๋ UI ๊ฐ์ฒด๋ฅผ ๋ ๋๋ง ํ๊ธฐ ์ํ ๋ฃจํธ ์ปดํฌ๋ํธ ๊ธฐ๋ณธ์ ์ผ๋ก 4๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ํฌํจ RectTransform Canvas Canvas Scaler Graphic Raycaster
var ์์์ ํ์ ์ปดํ์ผ๋ฌ๊ฐ compile time์ ์๋ฃํ์ ๊ฒฐ์ ์ ์ฝ ์กฐ๊ฑด ์ง์ญ ๋ณ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ ๋ณ์ ์ ์ธ๊ณผ ํจ๊ป ์ด๊ธฐํ ํ์ null / ์ต๋ช ๋ฉ์๋ / ๋ฉ์๋ ๊ทธ๋ฃน์ผ๋ก ์ด๊ธฐํ ๋ถ๊ฐ
Dictionary์ ์ข ๋ฅ Dictionary Key์ Value์ Pair๋ฅผ ๊ฐ๋ ์๋ฃ๊ตฌ์กฐ Generic ํด์ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ
๋ฆฌํ๋ ์ ์ ๊ฐ๋ ์ผ๋ฐ์ ์ผ๋ก๋ ํด๋์ค๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑ ์ฌ์ฉ์(ํ๋ก๊ทธ๋๋จธ)๋ ํด๋์ค์ ํ๋์ ๋ฉ์๋๋ฅผ ์๊ณ ์๊ณ , ์ฌ์ฉํ๋ ๋ฐ ๋ถํธํจ์ด ์๋ค
as์ is ํ๋ณํ์ ์ํ ์์ฝ์ด ๊ฐ๋ฐ์์ ์ํด์ ์๋์ ์ผ๋ก downcastingํ๋๋ก ๋์์ฃผ๋ ์ฐ์ฐ์ downcasting ๋ฒ ์ด์ค ํด๋์ค๊ฐ ํ์ ํด๋์ค๋ก ์บ์คํ ๋๋ ๊ฒ upcasting ํ์ ํด๋์ค๊ฐ ๋ฒ ์ด์ค ํด๋์ค๋ก ์บ์คํ ๋๋ ๊ฒ
9 Slicing ํ๋์ ํ ์ค์ณ๋ก ๋ค์ํ ์ฌ์ด์ฆ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ด๋ฏธ์ง๋ก ์ค์ ํ๋ ๋ฐฉ๋ฒ ๋ฆฌ์ฌ์ด์ง ์, ์ด๋ฏธ์ง๋ฅผ ์๊ณกํ์ง ์์
where ํค์๋ ์ฌ์ฉ ์์
๋ฉ์๋์ ์ ์ธ๋ new modifier base class์ ๋ฉ์๋๋ฅผ ์จ๊น upcasting ํ์ฌ base class์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ ์ด๋ ์๋๋ ๋์์ธ์ ๋ฐํ๋ ํ์์ด๋ฏ๋ก ์ํ
delegate(๋๋ฆฌ์) ํค์๋ delegate๋ ๋ฉ์๋๋ฅผ ๋ค๋ฅธ ๋ฉ์๋์ ์ธ์๋ก ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ ํ์์ด ์ผ์นํ๋ ๊ตฌ์กฐ์ ๋ชจ๋ ๋ฉ์๋๋ ๋๋ฆฌ์์ ํ ๋นํ ์ ์๋ค ๋ฉ์๋๋ ์ ์ /์ธ์คํด์ค์ผ ์ ์๋ค. delegate ์์ฑ ํจ์ ํฌ์ธํฐ์ ์ ์ฌํ์ง๋ง, ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ์ธ์คํด์ค ๋ฐ ๋ฉ์๋๋ฅผ ์บก์ํํ๋ค. ๋ฉ์๋๋ฅผ ๋งค๊ฐ ๋ณ์๋ก ์ ๋ฌํ ์ ...
friend class ํ class์์ ๋ค๋ฅธ class์ field๋ฅผ public์ผ๋ก ์ฐธ์กฐํ๋๋ก ํ์ฉ
์๋ธ๋ฃจํด(Subroutine) C์ธ์ด ๋ฑ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ ํจ์ ์์ํ ๋ ์ง์ ํ๋ ์ง์ ์ด ํ๋ ์กด์ฌํ๊ณ , ์ข ๋ฃ๋๋ ์ง์ ์ ์ค์ ํ ์ ์๋ค. ์๋ธ๋ฃจํด์ ์์์ ๊ณผ ์ข ๋ฃ์ ์ด 1๊ฐ์ธ ์ฝ๋ฃจํด์ ํฌํจ
Synchronization ๋๊ธฐํ ๋ณต์ ์ด๋ฒคํธ์ ์ ์ฐํ ์คํ ๋ฐ ์กฐํ๋ฅผ ์ํด ์กฐ์ ์ ๊ฐํ๋ ๊ฒ ๊ตฌ์ ์กฐ๊ฑด์ ์๋์ ๊ฐ๋ค Serialization: ํ๋์ ์ด๋ฒคํธ๊ฐ ๋๋ ๋ค์์ ๋ค๋ฅธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ Mutual Exclusion: ๋ ๊ฐ์ ์ด๋ฒคํธ๊ฐ ํ ์์ ์ ๋์์ ๋ฐ์ํ๊ณ ์์ง ์์
lock-base ์ฝ๋์ ๋ช๊ฐ์ง ๋ฌธ์ ์ lock ์์๋ฅผ ์ ๋๋ก ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ๋ฐ๋๋ฝ์ ๊ฐ๋ฅ์ฑ priority inversion - ๋ฎ์ ์ฐ์ ์์์ ์ค๋ ๋๊ฐ ์งํ๋๊ธฐ ์ํด ๋์ ์์์ ์ค๋ ๋ ๋ฝ์ ์๊ตฌํ๋ ๊ฒฝ์ฐ atomicํ operation์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ, ๋ค๋ฅธ ์ค๋ ๋๋ค์ ๊ธฐ๋ค๋ ค์ผ ํจ
ํ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๊ณ ๋ค์ ๊ธฐ๋กํ ์ ์๋ ๋นํ๋ฐ์ฑ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ค.
๋ฐ๋์ฒด๋? ์ ๊ธฐ์ ์ผ๋ก ๋์ฒด์ ๋ถ๋์ฒด ์ฌ์ด์ ์ฑ์ง์ ๋ ๊ณ ์๋ ๋ฌผ์ง
๊ฐ์ ํ๋ก์ธ์ค๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ ํ๋ก๊ทธ๋จ - ์์ ์ ์ํด ์คํํ ์ ์๋ ํ์ผ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํด ๋ชจ๋ (๋๋ ์ผ๋ถ) ์คํ ๊ตฌ๋ฌธ๊ณผ ๋ฐ์ดํฐ์ ์ ๋ถ(๋๋ ์ผ๋ถ)์ ๋ฉ๋ชจ๋ฆฌ ์์ ์์ด์ผ ํจ CPU๊ฐ ์ ์ ์์ ์ ๋ฐ์ํ๊ณ ์ต์ ํํ๊ธฐ ์ํด ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฃ์์ง๋ฅผ ์ ํ๋ ์์ Activities: ์ด๋ค ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฐ์ด๋์ง, ๋๊ตฌ์ ์ํด ์ฌ์ฉ๋๋ ์ง๋ฅผ ํธ๋ํน ์ด๋ค ํ๋ก์ธ์ค,...
์ค์ผ์ค๋ง ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ํ์ฌ OS ์ค์ผ์ค๋ฌ์ ์ํด ์์์ ํ ๋น๋ฐ๋ ๊ฒ User processes System processes
OS๋? ์ฌ์ฉ์์ ์ปดํจํฐ ํ๋์จ์ด๋ฅผ ๋งค๊ฐํด์ฃผ๋ ์ค๊ฐ ํ๋ก๊ทธ๋จ ํ๋ก๊ทธ๋จ์ ์คํ์์ผ์ฃผ๊ณ ์ฌ์ฉ์๊ฐ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ๋๋ก ๋์์ค ์ปดํจํฐ ์์คํ ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ๋ก ๋์ ์ปดํจํฐ ํ๋์จ์ด๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ๋์ Resource Allocator ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌ ์ ์ด ...
์ธํฐ๋ฝํธ (Interrupt) CPU๊ฐ ํน์ ๊ธฐ๋ฅ์ ์ํํ๋ ๋์ค์ ๊ธํ๊ฒ ๋ค๋ฅธ ์ผ์ ์ฒ๋ฆฌํ๊ณ ์ ํ ๋ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ ๋๋ถ๋ถ์ ์ปดํจํฐ๋ ํ ๊ฐ์ CPU๋ฅผ ์ฌ์ฉ ํ ์๊ฐ์๋ ํ๋์ ์ผ ๋ฐ์ ์ฒ๋ฆฌํ ์ ์์ ์ด๋ค ์ผ์ ์ฒ๋ฆฌํ๋ ๋์ค์ ์ฐ์ ์์๊ฐ ๊ธํ ์ผ์ ์ฒ๋ฆฌํด์ผํ๋ ๊ฒฝ์ฐ ๋ฐ์
์ปดํจํฐ ์์คํ ๊ตฌ์กฐ Four Components of a Computer System
์ ์ฅ์ฅ์น Storage ์ต์ ๋จ์๋ bit 8 bits = 1 byte ์ปดํจํฐ ๊ตฌ์กฐ์ native unit of data๋ word = one or more of bytes 32 bit or 64 bit ๊ตฌ์กฐ ์ฃผ ๋ฉ...
์ปจํ ์ด๋์ ์ข ๋ฅ Sequence Container ๊ฐ์ฒด๋ฅผ ์์ฌ์ ์ผ๋ก ๋ณด๊ด ex) vector, list, queue, โฆ Associative Container ํค๋ฅผ ๋ฐํ์ผ๋ก ๋์๋๋ ๊ฐ ํจ๊ป ๋ณด๊ด ํค๋ก ํ์ํ์ฌ ๊ฐ์ ๋ฐํ ex) map, set, unord...
ํ ํ๋ฆฟ(Template)์ด๋ ํจ์๋ ํด๋์ค๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๋ค์ ์์ฑํ์ง ์์๋, ์ฌ๋ฌ ์๋ฃ ํ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ๊ฒ ๋ง๋ค์ด ๋์ ํ ํจ์ ํ ํ๋ฆฟ(Function Template)์ ํด๋์ค ํ ํ๋ฆฟ(Class Template)์ผ๋ก ๋ถ๋ฅ
Binary Search ์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ๋์์ผ๋ก ํ์ ์ค๊ฐ ๊ฐ์ธ pivot์ ๊ธฐ์ค์ผ๋ก left์ right์ผ๋ก ๋๋์ด ํ์ ๊ฐ์ ์ฐพ์ ๋๊น์ง ์์ ๊ณผ์ ์ ๋ฐ๋ณต
Compiled Language CPU๊ฐ ๋ฐ๋ก ์ดํดํ ์ ์๋ ๊ธฐ๊ณ์ด๋ก ์์ค์ฝ๋๋ฅผ ๋ณํ ์์ค์ฝ๋ ์ฒ๋ฆฌ์ ๋ถ์์ ๋ง์ ์๊ฐ ์์ ์ผ๋ฐ์ ์ผ๋ก ์คํ์ด ๋น ๋ฆ ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด๋ ํ๋ซํผ ์์กด์
Overloading ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ ๋งค๊ฐ๋ณ์์ ํ์ ์ด ๋ค๋ฅด๊ฑฐ๋, ๊ฐฏ์๊ฐ ๋ค๋ฆ ๋ฆฌํด ํ์ ์ด๋ ์ ๊ทผ ์ ์ด์๋ ์ํฅ์ ์ฃผ์ง ์์
Bubble Sort
if ๊ฐ์ฅ ์ if ๊ตฌ๋ฌธ๋ถํฐ ์์ํด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋์ง ์ปจ๋์ ์ฒดํฌ ๋๋ฆฐ ์๋ if, else if ๊ฐ ๋ง์์ง์๋ก Assembly: CMP๋ ๋ง์์ง ๋ฒ์ ์๋ ์ฒดํฌ ๊ฐ๋ฅ
enum๊ณผ enum class์ ์ฐจ์ด
Shallow Copy ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๋ ์๋๊ฐ๊ณผ ๋ณต์ฌ๋ ๊ฐ์ด ๊ฐ์ ์ฐธ์กฐ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฒ ๊ฐ์ฒด์ โ๊ฐโ๋ง ๋ณต์ฌ
๋ณต์ฌ ์๋ต Copy Elision
์ด๊ธฐํ (Initialization) ```c++ // Must initialize the reference at the first int& ra; // Wrong int& ra = a; // Correct
Read-Only ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค ๋ฉ์๋์์ ํด๋์ค์ ๋ฉค๋ฒ ๋ณ์๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค
ํจ์์ ์๋
An integer int a;
ํจ์์ static ๋ณ์ ํจ์ ์์์ ์ ์ธ๋ static ๋ณ์ ๊ฐ์ด ๊ณ ์ ๋จ multi-thread hardware interrupt timer
C์ malloc๊ณผ C++ new์ ์ฐจ์ด
Class์ ์ฌ์ด์ฆ
C/C++ ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์์ Text segment ๊ธฐ๊ณ์ด๋ก ๋ณํ๋ ์คํ์ฝ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ or obj์ ์ ์ฅ
static_cast ๋ ผ๋ฆฌ ํ๋ณํ ์ฃผ๋ก Scalar Type๋ค ๊ฐ์ ์บ์คํ ํ ๋ณํ ํจ์๊ฐ ์ ์๋์ด ์์ผ๋ฉด ์ด ํจ์๋ฅผ ํธ์ถํ๋ฉด์ ์คํ ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ ํตํ์ฌ ๋ณํ ๊ฐ๋ฅํ ์๋ฃํ์ ์ถ๊ฐํ ์ ์๋ค ์ปดํ์ผ ํ์์์ ์บ์คํ
๊ฐ๋ ๋๊ธฐ vs ๋น๋๊ธฐ ์ฒ๋ฆฌํด์ผ ํ ์์ ๋ค์ ์ด๋ ํ โํ๋ฆโ์ผ๋ก ์ฒ๋ฆฌ ํ ๊ฒ์ธ๊ฐ์ ๋ํ ๊ด์ ๋ธ๋กํน vs ๋ ผ๋ธ๋กํน ์ฒ๋ฆฌ๋์ด์ผ ํ๋ (ํ๋์) ์์ ์ด, ์ ์ฒด์ ์ธ ์์ โํ๋ฆโ์ ๋ง๋๋ ์๋ง๋๋์ ๋ํ ๊ด์
Painterโs Algorithm ๊ฐ object๋ง๋ค ๊ณ ์ ์๊น์ ์ง์ offline buffer (screen์ ๋ ธ์ถ๋์ง ์๋ ๋ฒํผ)๋ฅผ ๊ธฐ๋ณธ framebuffer size๋งํผ ์ฌ์ฉ Two pass ์ฌ์ฉ picking pass (1st pass) offline color ๋ฒํผ์ ๊ณ ์ ...
Reflection
ํฌ์๋ ๋ ๋๋ง(Forward Rendering) ๊ฐ์ฅ ๋ณดํธ์ ์ด๊ณ ์ผ๋ฐ์ ์ธ ๋ ๋๋ง ๋ฐฉ๋ฒ ํฝ์ ๋น ์์ด๋ฉ๊ณผ ๋ผ์ดํ ์ฐ์ฐ ๊ฐ์ ์ถ๊ฐํ๋ ๋ฐฉ์ ๊ฐ fragment shader์์ ์ฐ์ฐ ๋น์ ๊ฐ์ ๋งํผ ํจ ํฌ๋ช ๋ ์ฒ๋ฆฌ, ์ํฐ์ผ๋ผ์ด์ง ๊ฐ๋ฅ ๋ผ์ดํ ๋ฐ ์์ด๋ฉ ์ฐ์ฐ ์ค๋ฒํค๋
Light Source Type Point light
Finite-State Machine ๊ธฐ๋ณธ์ ์ผ๋ก๋ ๋ ผ๋ฆฌ ํ๋ก๋ฅผ ์ค๊ณํ๋ ๋ฐ์ ์ฐ์ด๋ ์ํ์ ๋ชจ๋ธ ์์ด์ ํธ๋ ํ ๋ฒ์ ๋จ ํ๋์ state์๋ง ๋จธ๋ฌด๋ฅผ ์ ์๋ค ๋ผ์ฐํฐ๋ก๋ถํฐ ์์ด์ ํธ๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ฐ๊ณ , ์์ด์ ํธ๋ ๋ฉ์์ง๋ฅผ ํด๋ ํ๊ณ ์ด์ ๋ฐ๋ผ ์์ ์ state๋ฅผ ๋ณ๊ฒฝํ๋ค ์์ด์ ํธ์ ํผ๋๋ฐฑ์ router๋ก ๋ค์ ์ ์ก๋๋ค
Component๋? GameObject ์ ๋ถ์ฐฉ๋๋(Attached) ๋ชจ๋ ๊ฒ๋ค์ด ์์๋ฐ๋ ๊ธฐ๋ฐ ํด๋์ค. MonoBehaviour ๋ Unity ์ ๋ชจ๋ ์คํฌ๋ฆฝํธ๊ฐ ์์๋ฐ๋ ํด๋์ค ์ฌ์ฉ์๊ฐ Unity ์์ง์ ์๋ ๋ฐฉ์์ ์ดํดํ์ง ๋ชปํ๋๋ผ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋(built-in) Behaviour ํด๋์ค์ด์ ์คํฌ๋ฆฝํธ ๋ช ...
interface ํน์ ๋ฉ์๋๋ค์ ์กฐํฉ์ ๊ณ ๋ ค
๋คํธ์ํฌ Network ์ปดํจํฐ ๋คํธ์ํฌ ๋๋ ์ปดํจํฐ๋ง์ ๋ ธ๋๋ค์ด ์์์ ๊ณต์ ํ ์ ์๊ฒ ํ๋ ๋์งํธ ์ ๊ธฐํต์ ๋ง์ ํ๋
TCP๋?(Transmission Control Protocol) ์ธํฐ๋ท์ ๊ฒฝ์ ํด ํต์ ํ๋ ์ฐ๊ฒฐ ์งํฅ์ฑ ํ๋กํ ์ฝ ์๋ฌ ์ฒดํน์ ์ง์ ๋ฐ์ดํฐ์ ์์ ํ ์ ์ก์ ๋ณด์ฅ ํจํท์ ์ ์ก ์์๋ฅผ ๋ณด์ฅ TCP๋ FLOW CONTROL์ ์ ๊ณตํจ
์ปดํฌ๋ํธ๋? ๋ ๋ฆฝ์ , ๊ต์ฒด์ ์ฉ์ดํ๊ณ , ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ๋ฅ๋ค์ ์งํฉ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ์ํธ์์ฉํ๊ธฐ ์ํด ๋์์ธ๋ ์ํํธ์จ์ด ๊ฐ์ฒด ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ๋ชฉ์ ์ด ์๊ณ ๊ทธ์ ๋ง๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณต
View์ ๋ฐ๋ฅธ OpenGL Pipeline ๋ถ๋ฅ
Boid (bird-oid object) ์ธ๊ณต ์๋ช ์ฒด๋ผ๋ ์๋ฏธ ์์ฒ๋ผ ๋ชจ์ฌ ๊ท์น์ ๋ฐ๋ผ ๊ตฐ์งํ๋์ ํ๋ ๊ฐ ๊ฐ์ฒด
ํ๋ํธ๋ฆฌ(Behavior Tree) ๋์ํํ์ ๋ ์ง๊ด์ ์ด๊ณ ์ฝ๊ฒ ๋์์ธํ ์ ์์ ๋ฐํ์์์ ํ ์คํธ ๋๋ ๋๋ฒ๊น ํ๊ธฐ๊ฐ ๊น๋ค๋ก์ ํ๋ ํจํด์ ๊ณํํ ๋๋ก ์ํํ๋ ๋ชจ๋ธ(model of plan execution) FSM, HFSM์ ๊ตฌํํ ๋ ์ํ๊ฐ ๋ง์์ง๋ฉด ์ ์ง๋ณด์ ๋ฐ ๊ฐ๋ ์ฑ ๋ฉด์์ ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๊ฒ ๋๋ ๋จ์ ์ ๋ณด์ํ๋ค๊ณ ํ๋ค ...
๋ฌด๋ฐฉํฅ ๊ทธ๋ํ Undirected Graph ๋ฐฉํฅ์ด ์๋ ๊ฐ์ ๊ฐ ๊ฐ์ ์ ์๋ฐฉํฅ
ํฌํ๋ฆฟ ๋ฉ์๋ ํจํด(template method pattern) ์ํํธ์จ์ด ๊ณตํ์์ ๋์ ์์ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก๊ทธ๋จ ๋ผ๋๋ฅผ ์ ์ํ๋ ํ์ ๋์์ธ ํจํด ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์๊ณ ๋ฆฌ์ฆ์ ํน์ ๋จ๊ณ๋ค์ ๋ค์ ์ ์ํ ์ ์๊ฒ ํด์ค๋ค base class๊ฐ ์๊ณ ๋ฆฌ์ฆ ๊ตฌ์กฐ์ ์ฃผ์ ๊ณจ์กฐ๋ฅผ ํ๋ฆฝ subclass๊ฐ ๋๋จธ์ง...
๋น๋ ํจํด(Builder Pattern) ๋น๋ ํจํด์ ๊ฐ์ฒด ์์ฑ์ ๋ณด๋ค ์ ์ฐํ๊ฒ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋ ๋ณต์กํ ๊ธฐ์กด ์์ฑ์๋ฅผ ๋ณ๋๋ก ์คํํ ๋ค ์กฐํฉ Builder ํด๋์ค๋ฅผ ์ด์ฉํด ๊ฐ ํ์ธ ๋ฅผ ์์ฑ ํ ์กฐํฉ ํด๋์ค๋ Builder์ ๊ฐ์ฒด์ object ์์ฑ์ ๋งก๊ธฐ๊ณ , ์ง์ ์ํํ์ง ์์ ํ๋ฒ์ ๋ชจ...