c/c++๋ฐฐ์ ๋๋ฐ์ค
์ ๋ํฐ ์ฒ์ ๊ณต๋ถํ๋๋ฐ
์คํฌ๋ฆฝํธ๋ก c#์ ์ฒ์ ์ ํ๋๋ฐ
์ธ์ด์ ์ผ๋ก ๊ถ๊ตผํ๊ฒ ์์...
transform.position = new Vector3(0.0f,ย 0.0f, 0.0f);
์ด๋ฐ์์ผ๋ก ๋ฃ๋๋ฐ....
c/c++ ๋ก ์๊ฐํด๋ณด๋ฉดย new๋ก ๋ฃ์ด์ฃผ๋๊ฑด ํฌ์ธํฐ ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผย ๋ฃ๋๊ฑด๋ฐ
๊ทธ๋ผ ๊ธฐ์กด์ย transform.position๋ ๋น ํฌ์ธํฐ ๋ณ์๋ผ๋๊ฑด๊ฐ์ฌ? ์?ย
Vector3 vPos = transform.position; ์ด๋ ๊ฒ ๋ฐ์ผ๋ฉด ๊ฐ์ด ๋ฐ์์ง๋๋ฐ? ๋น์ด์๋ ํฌ์ธํฐ๊ฐ ์๋๋ ์ผ๊ธฐ์ธ๋ฐ...์ฌ๊ธฐ์ new๋ก ๋ฃ์ด๋ฒ๋ฆฌ๋ฉด ๊ธฐ์กด ๋ฉ๋ชจ๋ฆฌ๋ ใ ใท?ย
์๋์ผ๋ก ๊ด๋ฆฌํ๋๊น ๊ทธ๋ฅ new๋ก ๋ฃ์ด๋ฒ๋ฆฌ๋ ๊ฑฐ์์?
์์ต ์ฑ ์ ๋ณด๋ฉด ์๊ฒ ๋์ฌ? ๋ญ์งย transform.position์ ์๋ฃํ์ ํด๋์ค ํฌ์ธํฐ ๋ณ์๊ฐ ๋ง๋๊ฑฐ์ ธ?
transform.position = this.transform.position์์ this์ ํด๋น๋๋ ๊ฒ์ ์ญ์ ํ๊ฑฐ์ฃ . ๊ทธ๋ผ ํ๋ฒ ์๊ฐํด๋ณผ๊น์? ํ์ฌ Monobehavior ๋ฅผ ์์๋ฐ์ ํด๋์ค๋ ์ ๋ํฐ ์์์ ์ค๋ธ์ ํธ์ ๋ถ์ด ์์ด์ผ ํฉ๋๋ค. ์ค๋ธ์ ํธ๋ ์ต์๋จ์์ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋์ด ์๋๋ฐ ๊ทธ๊ฒ ๋ฐ๋ก Transform ์ปดํฌ๋ํธ์ ๋๋ค. ์ค๋ น ๋น ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค์ด๋ ์ด ์ปดํฌ๋ํธ๋ ์์ด์.
๊ทธ๋ฌ๋ฉด ์ด ์ ๋ณด๊ฐ ์ด๋๊ฐ์ ์์ด์ผ๊ฒ ์ฌฌ? ์ฆ ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ฏธ ์ฌ๋ผ๊ฐ ์๋ค๋ ๊ฒ์ด์ฃ . ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ธ๋ค ์ธ ์ ์๋ ๊ฒ๋๋ค. ๊ทธ๋ฆฌ๊ณ c#์์์ ๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ๋ c++ ๋ฐ c์ ๋ฌ๋ผ์. c ๋ new / delete๋ก ์ง์ ์ ์ผ๋ก ๊ด๋ฆฌํด์ผํ๋ฉฐ ๊ทธ๋ฌ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋๋๋ฐ c#์ด๋ java์์๋ gc๋ผ๊ณ ๋ถ๋ฆฌ๋ ๊ฐ๋น์ง์ฝ๋ ํฐ๋ผ๋๊ฒ ์กด์ฌํฉ๋๋ค. ์ด ๊ฐ๋น์ง ์ฝ๋ ํฐ๋ ์ค์ค๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋๋ฐ, ์ด ๋ ์ ๋ฆฌํ๋ ๊ฒ์ ํด๋น ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๊ณ ์๋ ํฌ์ธํฐ๊ฐ ๋ช ๊ฐ์ธ์ง ์ฒดํฌํด์ 0์ด ๋๋ฉด ์๋ฌด๋ ๊ทธ ์ฃผ์๋ฅผ ์ฐพ์๋ณด๊ณ ์์ง ์์์ ์ค์ค๋ก ํด๊ฒฐํ์ฃ
๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ ์ด๋ฌํ gc๋ ์ธ์ ๋ฐ์ํ ์ง ์ ์ ์๋ค๋๊ฒ ๋ฌธ์ ์ฃ . ์๋ํ๋ฉด c/c++์ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ๋์ ์ผ๋ก ๋ค ํด์ค์ผํ๊ธฐ ๋๋ฌธ์ ๋ณดํต์ ์๋ฉธ์(destructor)์์ ํด๊ฒฐํ๋๋ก ํ๋๋ฐ, ์ ์ํ๋๊น์. ๊ทธ๋ฌ๋ฉด ์ธ์ ๊ฐ ์ด๋ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด๊ฒฐํด์ผํ ๋๊ฐ ์ค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฒ์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ๊ณผ ์กฐ๊ธ ๋ค๋ฅธ ๋ฉด์ด ์์ด์. ๋ญ๋๋ฉด ๊ทธ๋ฐ ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฅผ ํ๋ ๋์ ์ผ์์ ์ผ๋ก ๋ฉ์ถค์ ํ์์ด ๋ฐ์ํ ์ ์๋๋ฐ ์ฆ, ์ฐ๋ฆฌ๊ฐ ๊ฒ์์ ํ๋ฉด์ "์ ๋ ์จ๋ฐ ๋จธ์ผ" ๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋๊ฒ ๋ฐ์ํ ์ ์๋ ๊ฒ๋๋ค. ๊ทธ๋์ ์กด์ฌํ๋๊ฒ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฒ์์ ๋ฉ๋ชจ๋ฆฌ ํ๋ง/ ์ค๋ธ์ ํธ ํ๋ง ๋ฑ๋ฑ์ ์ด์ฉํฉ๋๋ค. ์ฐธ๊ณ ๋ก c#์๋ ๋ชจ๋ ๊ฒ๋ค์ด ๊ฐ์ฒด์ ํ์์ผ๋ก ๋์ด์๊ณ ์ object๋ฅผ ์์๋ฐ์์ ๊ด๋ฆฌ๋จ๋ค
์ ์ ์ผํ ์ฐพ์๋ดค์๋๋ ๋น ๋ฅธ gc?์ธ๊ฐ ์์ gc์ธ๊ฐ ํ๋ ๊ฒ๋ ์๋ ๋ชจ์์ ๋๋ค. gc๊ฐ ๋ง์ด ์์ฌ์ ์ง์ฐ๋๋ฐ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆด๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋๊ฒ ์๋๋ผ ์์ ์ ๋ฐ์ดํธ๋ฌธ ๊ฐ์๋ฐ์๋ค๊ฐ gc๋ฅผ ํธ์ถํด์ ์กฐ๊ธ ์์ธ gc๋ฅผ ํํ๋ ์์์ ์ฒ๋ฆฌํด๋ฒ๋ฆฌ๋ ๋ชจ์์ ๋๋ค. ๊ทธ ๋งํฌ๊ฐ ์ด๋์์๊ฑด๋ฐ ์ ๋ฆฌ๋ฅผ ์ํด๋์๊ฑฐ ๊ฐ๋ค์. ์ ๋ํฐ ๋ฉ์ธ ์ฌ์ดํธ ๊ฐ์๋ฐ์์ ๋ณธ ๊ฒ ๊ฐ์๋ฐ. ( ์ธ ์ ์๋ ๊ฒ์์ด ํ์ ๋ ๋ชจ์์ ๋๋ค )