[Unreal] Blueprint
Blueprint๋? Unreal ์์ง์ ๋ด์ฅ๋ ์ปดํ์ผ์ ๋น์ฃผ์ผ ์คํฌ๋ฆฝํ ์์คํ ํ๋์ ํ๋ฆฌํน ํน์ ์ํคํ์ ์ผ๋ก ์ ์ํ๋ ๋จ์์ผ ์๋ ์๋ค
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++ ์ปดํ์ผ๋ฌ ๋ด์ ์๋ ๊ฐ์ฒด์ ํ์ ์ ๋ณด๋ฅผ ์์๋ด๋ ๊ธฐ๋ฅ ๋ฐํ์์์ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด์ ํ์ ์ ์ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ๋ฒ ๊ฐ์ฒด์ ํ์ ์ ๋ฐํ์์์ ๊ฒฐ์ ํ ์ ์๋๋ก ํ์ฉ ๋ฉ๋ชจ๋ฆฌ ์์ฃผ ๊ฐ์ฒด์ ํ์ ์ ๋ณด ์ถ๊ฐ ๋ฐํ์์์ ๊ฐ์ฒด์ ์บ์คํ ์ด ์ ํจํ์ง ์์๋ด๊ธฐ ์ํด, ๊ฐ์ฒด๋ฅผ ํน์ ํ์ ์ผ๋ก ๊ฒฐ์ ํ...