๋ชฉ๋ก์ ์ฒด ๊ธ (1103)
KoreanFoodie's Study
์ธ๋ฆฌ์ผ ์ฝ๋ฉ ํ์ค ๋ช ๋ช ๊ท์น : ํ์ค์นผ์ผ์ด์ค, ์ ๋์ฌ(U - UObject ์์ /A - AActor ์์ /S - SWidget ์์ / C - ์ํฝ์ ๊ฐ๋ ์ด ์ ์ฌ / b - ๋ถ์ธ ๋ณ์ / F - ๊ทธ ์ธ ๋๋ถ๋ถ) ํฌํฐ๋ธ C++ ์ฝ๋ : bool(ํฌ๊ธฐ ์ถ์ ๊ธ์ง, BOOL ์ ์ปดํ์ผ ์๋จ), TCHAR, uint8, int8, uint(16, 32, 64 ๋ฒ์ ) , float, double, PTRINT(ํฌ์ธํฐ๋ฅผ ๊ฐ์ง ์ ์๋ ์ ์, ํฌ๊ธฐ ์ถ์ ๊ธ์ง) ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ : ํ์ค ์ปจํ ์ด๋์ ์คํธ๋ง์ interop ์ฝ๋๋ฅผ ์ ์ธํ๊ณ ์ฌ์ฉํ์ง ๋ง์์ผ ํจ ์ฝ๋ฉํธ : ์ฝ๋๋ ๊ตฌํ์ ์ค๋ช ํ๊ณ , ์ฝ๋ฉํธ๋ ๊ทธ ์๋๋ฅผ ์ค๋ช ํ๋ค. ์ต์ C++ ์ธ์ด ๋ฌธ๋ฒ : static_assert ์ฌ์ฉ, override ๋ฐ final ์ฌ..
์ธ๋ฆฌ์ผ ๊ฐ๋น์ง ์ปฌ๋ ํฐ(GC) ์ฌํ ์ ๋ฆฌ ์ธ๋ฆฌ์ผ ์์ง์ Reference Graph ๋ฅผ ๋ง๋ค์ด ์ค๋ธ์ ํธ๋ค์ ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ๊ตฌ๋ถํ๋ค. ์ด ๊ทธ๋ํ ๋ฃจํธ์๋ "Root Set" ์ด๋ผ๊ณ ์ง์ ๋ ์ค๋ธ์ ํธ ์ ์ด ์์ผ๋ฉฐ, "Root Set" ์ ํฌํจ๋ ๊ฐ์ฒด๋ค์ GC ๋์์์ ์ ์ธ๋๋ค(Mark & Sweep ๋ฐฉ์์ผ๋ก ์ถ์ ). ์ธ ๊ฐ์ง ๊ท์น : UPROPERTY ์ ์ธ : ํด๋์ค ๋ด๋ถ ๋ฉค๋ฒ ๋ณ์๊ฐ ํด๋์ค์ ๊ฐ์ฒด์ ์๋ช ๊ณผ ์ด๋ช ์ ํจ๊ปํ ๊ฒฝ์ฐ ์ ์ธ ๋ฉค๋ฒ๊ฐ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ : ์์ง์ด ์ธ์ํ๊ฑฐ๋ ๊ด๋ฆฌํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ๋ฆฌํค๋๋ก ๋ง๋ค๋ฉด ์๋จ TArray ๋ฅผ ํ์ฉ : UObject ๋๋ ์์๋ค์ ๋ํ ํฌ์ธํฐ๋ฅผ ์์ ํ๊ฒ ๋ด์ ์ ์๋ ์ ์ผํ ์ปจํ ์ด๋ ๊ธฐํ ์ธํฐํ์ด์ค ์์ : // Object ๋ฅผ ์ด์์๊ฒ ๋ง๋๋ 3๊ฐ์ง ๋ฐฉ๋ฒ; //..
UML (Unified Modeling Language) UML ์๋ Class, Sequence, Use Case, Component ๋ฑ ๋ค์ํ ์ข ๋ฅ๊ฐ ์์ง๋ง, ์ฌ๊ธฐ์๋ ์ฃผ๋ก Class ์ Sequence ๋ค์ด์ด๊ทธ๋จ์ ์ ๋ฆฌํ๋ค. ํด๋์ค ๋ค์ด์ด๊ทธ๋จ (Class Diagram) ํด๋์ค๋ค ์ฌ์ด์ ๊ด๊ณ๋ ๋ค์๊ณผ ๊ฐ์ด ํํ๋ ์ ์๋ค(์ฐธ๊ณ ๋งํฌ). ๊ฐ ๊ด๊ณ๋ฅผ ์กฐ๊ธ ๋ ์์ธํ ๊ธฐ์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ๊ด๊ณ ํ์ ์ค๋ช ์ฐ๊ด ๊ด๊ณ (association) ์ค์ ์ด๋ ํ์ดํ ์ฐ๊ด ๊ด๊ณ๋ ์ค๋ ์๊ฐ ๋์ ๊ฐ์ดํ ๊ฐ์ฒด์์ ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค(e.g. ์๋์ฐจ์ ์์ ์์ ๊ด๊ณ) ๋ณดํต ํด๋์ค์ ์์ฑ(๋ฉค๋ฒ ๋ณ์)์์ ์ฐธ์กฐํ ๋ ์ฐ๊ด ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ค. ๋จ๋ฐฉํฅ ์ฐ๊ด ๊ด๊ณ์ ๊ฒฝ์ฐ, ํ์ดํ๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค๋ฅผ ์ฐธ์กฐํ๋ค. ์๋ฐฉํฅ ์ฐ๊ด ๊ด๊ณ์ ๊ฒฝ์ฐ..
MVC ํจํด ๊ฐ์ MVC ํจํด์ ์ฑ์ Model, View, Controller ๋ก ๋๋์ด ๋ฐ์ดํฐ์ ๋ก์ง์ ๋ถ๋ฆฌํ๋ ๋์์ธ ํจํด์ด๋ค. Model์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ, View๋ ์ฌ์ฉ์๊ฐ ๋ณผ ๊ฒฐ๊ณผ๋ฌผ์ ์์ฑํ๋ ์ปจํ ์ด๋๋ฅผ, Controller๋ ์ฌ์ฉ์๊ฐ Model ๊ณผ View ๋ฅผ ํธ์ถํ๋ ๋ก์ง์ด๋ค. ์ด๋, Model ๊ณผ View ๋ Controller ์ ์กด์ฌ๋ฅผ ๋ชฐ๋ผ์ผ ๊ฒฐํฉ๋๋ฅผ ์ค์ผ ์ ์๋ค. Model ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๊ธฐ๋ฉด View ๋ Controller ๋ฅผ ํตํด ์ด๋ฒคํธ๊ฐ ์คํ๋์ด ํ๋ฉด์ด ์ ๋ฐ์ดํธ ๋๋ค. MVC ํจํด์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ UI ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ์ ์ง ๋ณด์๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ ์ ์๊ณ , ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ด ๋ฐ์ด๋๋ค๋ ์ฅ์ ์ด ์๋ค. ํ์ง๋ง ํ๋์ ์ปจํธ๋กค๋ฌ์ ๋ค์์ View ์ Model ์ด ๋ณต์ก..
๋๊ฐ๋๊ฐ. ๋ฑ๋ฑํ ๊ตฌ๋ ์๋ฆฌ๊ฐ ์ ๋งํ ํ์์ค์ ์ธ๋ฆฐ๋ค. โ ๋๋ ๋ ์ฌ์๋ค์ด ์ ๊ตฌ๋๋ฅผ ์ข์ํ๋์ง ๊ถ๊ธํ์๋ค. ๊ธฐ๊ปํด์ผ ๋ ์๊ฐ์ '๋ถํธํ์ง ์์๊น?' ์ ๋์ ์์ ์จ๋ค์ด ๋ฐ์ ๋ฟ์ด์๋ค. โ ๊ทธ๋์ ๋๋์ ๊ตฌ๋๋ฅผ ๋ชฐ๋ ์ ๊ณ ๋ฐฉ ํ๋ฐํด๋ฅผ ๋์๋ค. ์๋, ์ฌ์ค ํ๋ฐํด๊ฐ ์๋๋ผ ์ธ ๋ฐ์๊ตญ ์ ๋๋ฅผ ๊ฑธ์๋ค. โ ๋๋ฌด ๋ถํธํ๋ค. '๋๋์ฒด ์ฌ์๋ค์ ์ด๊ฑธ ์ด๋ป๊ฒ ์ ๊ณ ๋ค๋๋๊ฑฐ์ง?' ๊ทธ๋ฐ ์๊ฐ๊ณผ ํจ๊ป, ๋ด ๋ง์ ๊น์ ๊ณณ์์ ๋ฌดํํ ์กด๊ฒฝ์ฌ์ด ์๋ผ๋๋ ๊ฒ์ ๋๊ผ๋ค. โ ํจ์ ์ ๋ฌด์งํ ๋์กฐ์ฐจ๋, ์ผ์ฃฝ์ฝ๋ผ๋ ๋ง์ ๊ท์ ๋ฑ์ง๊ฐ ์ํ๋๋ก ๋ค์ด์๋ค. '์ผ์ด ์ฃฝ์ด๋ ์ฝํธ'. ๊ทธ๋งํผ ์ฝํธ๊ฐ ๋ฉ์์ผ์๋จ ๊ฑฐ์ง. โ ๊ทธ๋ฐ๋ฐ ์ ์ฌ๋๋ค์ ์ฝํธ๊ฐ ๋ฉ์๋ค๊ณ ํ๋๊ฑธ๊น. ๋ฐ๋ปํ์ง๋ ์์ ๋ถ์งํฌ๋ฅผ ์ ๊ทธ๋ฆฌ๋ ์ข์ํ ๊น? โ ๊ตฌ๋๋ ์ด๋ป๊ฒ ๋ณด๋ฉด ๋น์ทํ ์กด์ฌ..
๋ด ์๊ฐ์ ๋๋ง์ ์๊ฐ์ผ๊น. ๋๋ ๊ทธ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฐ์ ๊น๋๊ธฐ์ ํ๋ฒ ๊ฑธ๋ฌ ๊ธฐ๋กํ๋ ํ์์ธ์ด ์๋๊น. ์ง๊ธ์ ๋ด ์๊ฐ์ ๋๊ตฌ์ ์๊ฐ์ธ๊ฐ. โ ์ ์ ์ด ์์ด์ผ ์ ์ถ์ด ์๋ค. ๊ทธ๋ ๊ธฐ์ ๋ง์ ์๊ฐ๋ค์ ์๋ก์ด ์๊ทน์ ์ฐพ์ ๋ ๋๋ค. ์๋ฌด๋ ์๋ ๊ณจ๋ฐฉ์์ ๋์ค๋ ์ํ์ ์ธ๋ก์ ์์ธ ์ธ๊ฐ ๋ด๋ฉด์ ๋ํ ๊ณ ์ฐฐ๋ง์ด ๋ด๊ฒจ ์์๊ฑฐ์ผ, ์๋ง. ๊ทธ๋ฌ๋ ๊ธ์ด ์จ์ง์ง ์์ ๋์๋ ์ฌ๋์ ๋ง๋์ผ ํ๋ ๊ฒ์ด๋ค. ๋ฒ ๊ปด์์ผ ํ๋๊น. ํ์ณ์ผ๋ง ํ๋๊น. โ ์ค๋๋ ํ์ธ์ ์๊ฐ์ ๋์ ์๋ํ ์ฌ๊ณ ์ธ๊ฒ์ฒ๋ผ ํฌ์ฅํ๋ ์ผ์์ ์์ํ ์พ๋ฝ์ ๋๋๋ค. ๋์ ๋๋ฒฝ. ๋์ ํ์ . ์์๋ฅผ ํ๊ธฐ ์ํด ์๊ฐ๋ฝ์ ๋ถ์ง๋ฐํ ๋๋ฆฐ๋ค. ์ฌํ๊ฒ๋ ๋ด ๊ธ์ ๋์ ๋ฒ์ฃ๊ธฐ๋ก์ ๋ถ๊ณผํ ๊ฒ์ผ๊น. ๊ทธ๋ ๋ค๋ฉด ๋๊ตฌ๋ฅผ ์ํด ๋์ ์น๋ถ๋ฅผ ๋๋ฌ๋ด์ผ ํ๋ ๊ฑธ๊น. ๋๋ฅผ ์ํด์๊ฒ ์ง. ๋ถ๋ช ๋..
๋ชป๋ ๋ด ์์ ์ ๋ฐ์๋ค์๋ค. โ ๋ ์ด์ ๋ด ์์ ์ ๋ฏธ์ํ์ง ์๊ฒ ๋์๋ค. โ ๊ทธ๊ฒ๋ง์ผ๋ก ๋ง์์ด ํธํด์ง๊ณ ๋ง์ ํ๊ตฌ์์ ์ฐจ์งํ๋ ๊ณต๋ฐฑ์ด ์ฑ์์ง๋ ๊ฒ์ ๋๋ ์ ์์๋ค. ์ด๋ ๊ฒ ์ฝ๊ณ ๊ฐ๋จํ ์ผ์ด์์ํ ๋ฐ, ์ง๊ธ๊ป ๋๋ ์ฌ๋ผ์ง ์กฐ๊ฐ์ ์ฐพ๊ธฐ ์ํด ์จ ๋๋ค๋ฅผ ๋ค์ง๊ณ ๋ค๋๊ณ ์์๋ค. โ ํ์ธ์ ๋ถ๋ฌ์ํ๊ณ ์งํฌํ๋ฉฐ ๊น์๋ด๋ฆฌ๊ณ ์ ํ๋ ๊ฐ์ ์ ์ด๋์์ ๋น๋กฏ๋๋๊ฐ. ๊ทธ๋์ ๋ถ๋ช ๋ง์ ์ ๊น์ ๊ณณ์ ์๋ ๊ณตํ์ ๋ฟ๋ฆฌ๋ฅผ ๋ด๋ฆฌ๊ณ ์์์ ํ๋ฆผ์๋ค. โ ๊ทธ๋ฌ๋, ๋ฟ๋ฆฌ๋ฅผ ๋ฝ์ผ๋ ค๋ ์๋์กฐ์ฐจ ๊ฒฐ๊ตญ ๋ฌด์๋ก ๋์๊ฐ๋ ๊ฒ์ด๋ค. ์ธ์ ๊ฐ ์๋ก์ด ์จ์์ด ๊ทธ๊ณณ์ ์น์ ํ์ธ ํ ๋๊น. โ ํ ๊ฐ์ง ํด๊ฒฐ์ฑ ์ด ์๋ค. ๋ฐ๋ก ๋น ๊ณต๊ฐ์ ์์ ๋ฒ๋ฆฌ๋ ๊ฒ์ด๋ค. โ ์๊ธฐ ์์ ์ ํฌ์ฉํ๊ณ ์๋กํจ์ผ๋ก์จ, ๋ง์ ์ ํ๊ณต์ ์๊ธฐ์ ๋ก ๊ฐ๋ ์ฑ์๋ณด์. โ ๋ถ๋ช ์๊ธฐ์ ์งํฌ,..
๊ท์ฐฎ์. โ ์๋ฌด๋ ๋๋ฅผ ๊ฑด๋ค์ง ์์์ผ๋ฉด ์ข๊ฒ ๋ค. ์ฅ ์ฃฝ์ ๋ฏ ์ด์๋ ์ธ์์ ๋ ๊ทธ๋ ๋ฏ ์๋๋ฌ์ด ์์์ผ๋ก ๊ฐ๋ํ๋ค. โ ๋๋ก ์ฃฝ์์ ๋ํด ๊ฟ๊พผ๋ค. ์์ํ ์นจ๋ฌต์ด ๋ฌด์์ผ์ง ๊ถ๊ธํ๊ธฐ์. โ ๋๊ตฐ๊ฐ๋ ๋๋ฅผ ๋ถ๋ฅธ๋ค. ๋ถ๋ฆ์ ๋ฐ๊ฐ์ด ์๋ตํ ์๋ฐ์ ์๋ ๋ฏธ๋ ฅํ ์กด์ฌ์์ ๋ค์ ํ์ ํ๋ ์๊ฐ์ด๋ค. ์ ์ฅ, ํ๊ณ ๋์ด์ค๋ฅด๋ ๊ฐ์ ์ ์ ์จ ์ผํจ์ฑ ๋ฏธ์๋ฅผ ๋ฟ๋ฆฌ๋ฌ ๋๊ฐ์ผ๋ง ํ๋ค. ๋๊ตฐ๊ฐ์๊ฒ ์ํผ์๋ ์๋ก๋ฅผ ๊ฑด๋ด์ค ์ค๋น๋ฅผ ํด์ผ๋ง ํ๋ค. โ ๋๋ ์ธ์ ๊ฐ๋ ๋๊ตฌ๋ฅผ ๋ถ๋ฅผ ๊ฒ์ด๊ธฐ์.
์์ฆ ๋๋ ์ ํ ์ค๋ธ ๋ ๋์ค์ฝ๋ผ๋ ๋ฐด๋์ ํน ๋น ์ ธ์๋ค. ๋๋ ์ํ๋ ์ฑ ๋ณด๋ค ๋ ธ๋์ ๊ฐ์ ์ด์ ์ด ์ ๋๋ ํธ์ด๋ผ, ๋ด ๊ธฐ๋ถ๊ณผ ๊ฐ์ ์ํ์ ๋ฐ๋ผ ํ๋ ์ด๋ฆฌ์คํธ๋ฅผ ๋ฐ๊ฟ ๋ฃ๊ณค ํ๋ค. ๋์ ๋ฐ๋ผ ์ ๋๋ ๋ ธ๋๋ฅผ ๋ฃ๊ณ ์ถ์ ๋๋, ์ฌํ ๋ ธ๋๋ฅผ ๋ฃ๊ณ ์ถ์ ๋๋ ์๋ค. ๋ฌผ๋ก ๋ณตํฉ์ ์ธ ๋ถ์๊ธฐ๋ ์ข์ํ๋ค. ์ฌ์ค, ํฅ๊ฒจ์ฐ๋ฉด์๋ ์๊ธํ, ๊ทธ๋ ์ง๋ง ์ฒ์ง์ง ์์ ์ ๋๋ก ์ ์ด๊ฐ๋ ๊ทธ๋ฐ ์์ ์ ๋ง๋๋ ๋ฐด๋๋ฅผ ์ฐพ์ ๊ฒ ๊ฐ๋ค. โ ์์ฆ ๋๋ ๊ธฐ์ ๋๋ ์ฌํ ๋๋, ์ฆ๊ฑฐ์ธ ๋๋ ํ๋ค ๋๋ ์ธ์ ๋ ๋์ค์ฝ๋ฅผ ๋ฃ๋๋ค. ๋์ค์ฝ์ ๋ณตํฉ์ ์ธ ํฅ์ด ์์ฌ ์๋ ๊ฒ์ธ์ง, ์๋๋ฉด ์ ํ ์ค๋ธ ๋ ๋์ค์ฝ๊ฐ ๊ทธ๋ฐ ์์ผ๋ก ๋์ค์ฝ๋ฅผ ํํํ ๊ฒ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง. โ ์ ํ ์ค๋ธ ๋ ๋์ค์ฝ๋ฅผ ์ฒ์ ์๊ฒ ๋ ๊ฒ์ ์๋ง 'ํต๋ฐฐ๊ถ' ๋๋ฌธ์ด์๋ ๊ฒ ๊ฐ๋ค. ๋ ํนํ๊ณ ์ ์พํ ๊ฒ์ ..
๋ฐ์ผํ๋ก ์์ฝ๋๋์ด๋ค. ์ ๋ช ํ๊ณ ๋ง์๋ ๊ณณ์ ๋ฐฉ๋ฌธํ๊ธฐ ์ํด์๋ ์ฌ์ ์์ ์ด ๊ฑฐ์ ํ์๊ฐ ๋ ์๋๊ฐ ์ด๋ ธ๋ค. โ ๋ฌผ๋ก ๋๋ฌด ์ฅ์ฌ๊ฐ ์ ๋์, ๊ตณ์ด ์์ฝ ๋ฐ์ ๋ฐ์ง ์๋ ์์์ ๋ค๋ ๋ถ์ง๊ธฐ์๋ค. ๊ทธ๋ฐ ๊ณณ๋ค์ ์ถ์ด ๊ฒจ์ธ๋ ๋กฑํจ๋ฉ์ ๋ถ์ฌ ์ก์ผ๋ฉฐ ๊ฐ์ด ์จ ์น๊ตฌ๋ ์ฐ์ธ๋ค๊ณผ ํญ๊ท ๋์ด๋ฅผ ํ ์ค๋น๋ฅผ ํด์ผํ๋ค. โ ์๋ฒ์ง๋ ์์นญ ๋ฏธ์๊ฐ์ด๊ธฐ์ ๋ง์ง์ ์ฐพ์๊ฐ์๋ ํธ์ด๋ค. ํฌ์ฅ๋ ์์ฃผ ํด ์ค์๊ณ . ์์นญ ๋ฏธ์๊ฐ์ธ ์๋ฒ์ง. ํ์ง๋ง ๋ด๊ฐ ์๊ฐํ๊ธฐ์, ์๋ฒ์ง๋ ํผ(ๆทท)์๊ฐ์ ๊ฐ๊น๋ค. ๋ญ๋ ์ง ๋น๋น๊ณ ์์ด ๋์๋๊น. ์ ๋ฌธ ์ฉ์ด๋ก ์ฐ๊น ๋ฌต๋๋ค๊ณ ํ๋๊ฐ? โ ๋ง์ง์ ์ธ๊ณ๋ ๋ํนํ๋ค. ์๋๋ ๊ณณ์ ์๋๊ณ , ์๋๋ ๊ณณ์ ์๋๋ ๋ฒ. ๋๋ฌด๋๋ ๋น์ฐํ ๋ง์ด์ง๋ง, ์์์ ์ ๊ฒฝ์ฐ ๊ทธ ํธ์ฐจ๊ฐ ์ ๋ฒ ํฌ๋ค. ๋ฐ๋ก ์์ง์ ๋ถ์ด ์์ด๋ ๋ฌธ์ ์ฑ์๋ฅผ ์ด๋ฃจ๋ ์ง๊ณผ, ..