๋ณด๋์ ์์ง ์ด๋ณด์. ๊ฑ C# ๋์ถฉ ์ธ์ค๋ง ์๋์ ๋
๊ทผ๋ฐ C# ๋ฐฐ์ธ๋ ์ฐธ์กฐ๋ ์ฐธ์กฐ๋ณ์๊ฐ์๊ฑฐ ์กด๋ ํท๊ฐ๋ ค์ ์ด๊ณณ์ ๊ณณ ๋ฌผ์ด๋ณด๊ณ ๋ค๋๋๊น
"๋ฅ์น๊ณ ํฌ์ธํฐ ๋ฐฐ์ฐ์ " ์ด ๋ง์ ๋ง์ด ๋ค์์. ๊ทธ๋์ ๋ฐฐ์ฐ๋ค๊ฐ ๋ ๋ณด๋๊น C#์ ํฌ์ธํฐ ์์ด๋ค๋ค?
C#ํ๋๋์ค์ ํฌ์ธํฐ ์์ฐ๋๋ ์์ ๊ผฝ๋๋ค๊ณ ์ฐธํผ๊ฐ์ ๋ณด๋์ ์ ํ์๋ ์ธ ํ์๋ ์๋ค๋ ๋ง๋ ๋ค์.
๋ฌผ๋ก Cํ๊ณ C์ ์ ์ ์๋ ํฌ์ธํฐ ๋ฐฐ์ฐ๋ผ๋ ๋ง์ธ๊ฑด ์. ๊ทธ๊ฑธ๋ก ์๋์๋ฆฌ ํ์ ํ๋ผ๋๊ฑฐ์์ด ใ ใ
๋ณด๋ ์ ๋ํฐ ๊ณผ์ธ๋ ๋ฃ๋๋ฐ ๊ฑฐ๊ธฐ์๋ ํฌ์ธํฐ๋ผ๋ ๋ง์ ์ฐ๋๋ผ๊ณ ์์ธํ๋ ์๋๊ฐ์ง๋ง.
์๋ถ ๋ญ ์ด์ฉ์ผ ๋๋? ๋ฐฉํฅ ์ข ์๋ ค์ค๋ผ ๊ฑ ๋ฅ์น๊ณ ํฌ์ธํฐ ๋ฐฐ์?
ํฌ์ธํฐ ๊ฐ๋ ์ด ๊ณง ๋ฉ๋ชจ๋ฆฌ ๊ฐ๋ ์ด๋ผ ์์๋๋ฉด ๋์์ง ์์ง.
์ ๋ชฐ๋ผ์ ๊ทธ๋ฌ๋๋ฐ C#์์ ๋ด๋ถ๊ตฌ์กฐ๋ ํฌ์ธํฐ๋ก ๋์์ง?
์จ์ต์์ ์์ฐ๋๋ฐ ์ ๋ฐฐ์์ผ ํ๋ค๊ณ ๋ค ๋งํ๋์ง ๋ ์ ๋ชจ๋ฅด๊ฒ ์. ์ ์์ค ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ดํด๊ฐ ์์ผ๋ฉด ๋ฌผ๋ก ์ข์ง๋ง ๊ทธ๊ฑธ ๋ฐฐ์ฐ๋ ๋ฐฉ๋ฒ์ด ๊ผญ C++์ ํฌ์ธํฐ์ผ ํ์๋ ์์.
์จํํ๋ก ์๊ฐํ๋ค๊ฐ ์จ์ต์์ ์ค๊ฐ๋ ์๊ธฐ๋ ์ผ๋ ํํจ. ์๋ฉธ์๋ ํ์ด๋๋ผ์ด์ ํผ๋์ด๋ ์ค๋งํธํฌ์ธํฐ๋ ๊ฐ๋น์ง์ปฌ๋ ์ ํผ๋์ด๋..
ํ์ C#์ฐ๋ ํ์ฌ๋ง ๋ค๋๊ฑฐ๋ฉด ์๊ด์์ง์์๊น
ํ์ง๋ง ๊ฒฝ์์๋๊ฐ ๋ง์ ํ์ธ๋์ ์๋ C#๊ฐ๋ฐ์์ ๋ชจ๋ฅด๋ C#๊ฐ๋ฐ์ ๋๊ฐ ๋ ๊ฒฝ์๋ ฅ์ด ์์์ง
์ง์ ์ ์ผ๋ก ํฌ์ธํฐ๋ฅผ ์ธ ์ผ์ ์์ง๋ง ์ ์ด๋ ๊ฐ๋ ์ ์ ์์๋๋๊ฒ ์ข์
์ฒจ์ ํฌ์ธํฐ๋ผ๋ ๊ฐ๋ ์์ฒด๊ฐ ์ค์ ๋ก ๋ณผ์๋์๋๊ฒ๋์๋๊ณ ๋๊ฒ ์ค๋ช ์ด ๋ด๋นํํ ๋ ์ ๋ง ์๋ฟ์ง๊ฐ ์์์ ์์ฒญ ๊ณ ์ํจ ๊ทธ๋ฆฌ๊ณ ๋๋ ํฌ์ธํฐ๋ ๋ฐฐ์์ผ๋๋ค๊ณ ๋ฐฐ์ ์๊ณ .. ๊ทผ๋ฐ ์ ๋ชฐ๋ผ๋ ์ ๋ํฐ์ C#์ ์ถฉ๋ถํ ๋ง๋ค์์์ ๊ทธ๋ฆฌ๊ณ ์คํ๋ ค ์ ๋ํฐ๋ก ์ธ์ธ์ดํ๋ก ๊ตณ์ด ํฌ์ธํฐ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ๋ ์์์ ํ์ง๋ง ํฌ์ธํฐ๋ฅผ ์ดํดํ๋์ฌ๋๊ณผ ์ดํดํ์ง๋ชปํ๋์ฌ๋์ ์ฐจ์ด๋ ๋ถ๋ช ํ ์์ ํฌ์ธํฐ๋ฅผ ์ดํดํ๋ค๋๊ฑด ์ฐธ์กฐ์ ๊ฐ๋ ์ ์ดํดํ๋๊ฒ ๊ฐ์ ๊ทธ๊ฒ๊ณง ํ๋ก๊ทธ๋๋ฐ์ด ์ด๋ป๊ฒ ๋์๊ฐ๋์ง ์ดํดํ ์์๋ ๊ฐ์ฅ ํฐ๊ธธ์ด๊ธฐ๋ํจ ์ ๋ ๋ณด์์ชฝ์ผ๋ก ๊ณต๋ถํ๋ฉด์ ๊ฐ๋จํ ํดํน๋ฐ ํฌ๋ํน์ ์ด์ ๋ธ๋ฆฌ์ด๋ก ํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๋ํด์๋ ๊ณต๋ถํ๊ณ ํฌ์ธํฐ์ ๋ํด์๋ ์ ๋ง ์ธ์ธํ๊ฒ ์ดํดํ ์์๊ฒ๋์ ํ์ง๋ง ์ง๊ธ ๊ฒ์๊ฐ๋ฐํ๋ ์ ์ฅ์์ ์ ๋ํฐ๋ก ํ ๊บผ๋ฉด ๊ตณ์ด ๋ชฐ๋ผ๋ ์๋ ์ด์คํ๊ฒ ์์์ ์ฐ๋๊ฑฐ๋ณด๋ค๋๋
๊ทธ๋ ๊ตฌ๋ง. ์์ธํ ์๋ ค์ค์ ๊ณ ๋ง์
๋ ํ์ฌ์ฌ์ฅ์ด๋ฉด ํฌ์ธํฐ ๋ชจ๋ฅด๋ ๊ทผ๋ณธ๋ ๊ธฐ๋ณธ๋ ์๋์ ๋ ์๋ฝ์ง
ํฌ์ธํฐ๋ฅผ ์ดํดํ๋ค -> ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ดํดํ๋ค -> ์ปดํจํฐ ์ํคํ ์ฒ๋ฅผ ์ดํดํ๋ค
๋ชฐ๋ผ๋ ๋ ๊ฑฐ๊ฐ๊ธด ํ๋ฐ ๊ทธ๋ฅ 30๋ถ๋ง ํฌ์ํ๋ฉด ์์์๋ค ในใ
๋ณ์์ด๋ฆ = ํฌ์ธํฐ ํฌ์ธํฐ = ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋ค๋ฃฐ ์ ์๋ ์ธ์ด = C/C++, ์ด์ , ๊ธฐ๊ณ์ด ref, out ์ ์ฌ์ฉํ๋? ๋ฐฐ์ฐ๋ฉด ํ๋ก๊ทธ๋๋ฐ ์ถ์ด ์คํํด์ง๋ค.
ํฌ์ธํฐ(๋ ํผ๋ฐ์ค)๊ฐ๋ ์ ์๋๊ฑด ๋น์ฐํ ์ข์๋ฐ ๊ทผ๋ฐ Unsafe ์ด๋ฐ๊ฑฐ ๊ฑด๋๋ฆด์ ๊ฑฐ์ ์๋ค๊ณ ๋ณด๋ฉด๋จ ๊ทธ ใ ในํ ๋ฐ์ ๊ฑ ๋ค์ดํฐ๋ธ์ธ์ด ์ง์ ์ฐ๋๊ฑฐ๋ผ ใ ใ
ref out ์ฐ๋ฉด ์กด๋ ํธํด์ง
๊ฐ๋ ์ ๋๋ ์๋ฉด ์ข๋ค๊ณ ์๊ฐ, ๋ฑ ๊ฐ๋ ์ 1์๊ฐ์ด๋ฉด ๋๋ ์ค๋๊น 1์๊ฐ ํฌ์ํ๊ณ ๊ทธ๋ฐ ๊ณ ๋ฏผ์ํ๋๊ฒ ๋์๋ฏ ํจ.
์ด๊ฑฐ ํ๋๋ง ์์๋ฌ๋ผ C#์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ค๋ก ๊น๋ฉด ์ต์ข ๋จ์ C++๋ก ๋์ด์๋ค. ์ด๊ฑด MSDN์์ ์์ค ๊ฒ์์ด ๊ฐ๋ฅํ๋ ์ฐพ์๋ณด๊ณ . ๊ฐ๋ ์ ํฌ์ธํฐ์ ๋น์ทํด์ ๊ณต๋ถํ๋ฉด ๋์ ๊ฑด ์์ง๋ง C#์ ํฌ์ธํฐ๊ฐ ์์ผ๋ ๊ฐ๋ ๋ง ๊ณต๋ถํ๊ณ ์ด๊ฒ ์ฐธ์กฐ์ธ์ง ๊ฐ๋ณต์ฌ ์ธ์ง ์ ๋๋ ๊ณต๋ถํด์ผํจ.