์ด๊ฒ ๋ญ๋ฐ? ๐ค
ํ, ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์๋ ๋น๊ต๋ผ๋ ๊ฑด ์ ๋ง ๋ณต์กํ ๋ฌธ์ ์ผ. ์ต๊ทผ ๋ ๋ง์์ ๋๊ตฐ๊ฐ "๋ชจ๋ ์กฐ๊ฑด์ด ๊ฐ์ ๋, ์ ๋ฌ์คํธ๋ก ๋ง๋ ๊ฒ C๋ก ๋ง๋ ๊ฒ๋ณด๋ค ๋น ๋ฅผ ์ ์๋์?"๋ผ๋ ์ง๋ฌธ์ ํ์ด. ์ด ์ง๋ฌธ์ด ํฅ๋ฏธ๋ก์ด ๊ฑด '๋ชจ๋ ์กฐ๊ฑด์ด ๊ฐ๋ค'๋ ๊ฒ ์ ํํ ๋ญ ์๋ฏธํ๋๋์ ๋ฐ๋ผ ๋ต์ด ๋ฌ๋ผ์ง๊ฑฐ๋ .
๋จผ์ **๋ฌ์คํธ(Rust)**์ C๋ ๋ ๋ค ์์คํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ผ. C๋ 1970๋ ๋๋ถํฐ ์ฐ์ธ ์ ํต์ ์ธ ์ธ์ด๊ณ , ๋ฌ์คํธ๋ 2010๋ ์ ๋์จ ํ๋์ ์ธ ์ธ์ด์ง. ๋ ๋ค ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ์ฑ๋ฅ์ ๋ฏผ๊ฐํ ์์ ์ ์ฐ์ด๋๋ฐ, ์ ๊ทผ ๋ฐฉ์์ด ๋ฌ๋ผ.
์ด ๊ธ์ ์ ์ ์คํฐ๋ธ ํด๋ผ๋ธ๋์ ๋ฌ์คํธ ํ ๋ฉค๋ฒ์ผ. ๊ทธ๋ '๋ชจ๋ ์กฐ๊ฑด์ด ๊ฐ๋ค'๋ ๊ฒ ์ค์ ๋ก ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น๋ค๊ณ ๋งํด. ์๋ํ๋ฉด:
- ์ธ์ด ๋์์ธ ์ฐจ์ด: ๋ฌ์คํธ๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ์ปดํ์ผ ํ์์ ๊ฒ์ฌํ์ง๋ง, C๋ ๋ฐํ์์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ด๋ฆฌํด์ผ ํด.
- ์ปดํ์ผ๋ฌ ์ต์ ํ: ๊ฐ์ ์ฝ๋๋ผ๋ ์ปดํ์ผ๋ฌ๊ฐ ์ต์ ํํ๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ ์คํ ์๋๊ฐ ๋ฌ๋ผ์ง ์ ์์ด.
- ๊ธฐ๋ณธ ์ค์ ์ฐจ์ด: ๋ฌ์คํธ๋ ์์ ์ฑ์ ๊ธฐ๋ณธ์ผ๋ก ํ๊ณ , C๋ ์ฑ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ํด. ๊ทธ๋์ ๊ฐ์ ์์ ์ ํ๋๋ผ๋ ์ฝ๋๊ฐ ๋ฌ๋ผ์ง ์ ์๋.
์๋ฅผ ๋ค์ด, ๋ฌ์คํธ๋ ๋ฐฐ์ด ์ ๊ทผ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฒ์ ๊ฒ์ฌ๋ฅผ ํ์ง๋ง, C๋ ์ ํด. ํ์ง๋ง ๋ฌ์คํธ์์๋ get_unchecked ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฐ๋ฉด C์ฒ๋ผ ๋ฒ์ ๊ฒ์ฌ๋ฅผ ์๋ตํ ์ ์๊ณ , C์์๋ ์๋์ผ๋ก ๋ฒ์ ๊ฒ์ฌ๋ฅผ ์ถ๊ฐํ ์ ์์ด. ๊ทธ๋ผ ์ด๊ฒ '๋ชจ๋ ์กฐ๊ฑด์ด ๊ฐ๋ค'๊ณ ๋ณผ ์ ์์๊น? ๊ธ์...
ํต์ฌ ๋ด์ฉ ์ ๋ฆฌ ๐
์ ์๊ฐ ์ค๋ช ํ๋ ์ฃผ์ ํฌ์ธํธ๋ ์ด๋ ๊ฒ ์ ๋ฆฌํ ์ ์์ด:
- ์ธ๋ผ์ธ ์ด์ ๋ธ๋ฆฌ(Inline Assembly): ๋ฌ์คํธ์ C ๋ชจ๋ ์ธ๋ผ์ธ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ง์ํด. ๋ฌ์คํธ๋ ์ธ์ด ์์ฒด์ ๋ด์ฅ๋์ด ์๊ณ , C๋ ์ปดํ์ผ๋ฌ ํ์ฅ์ผ๋ก ์ ๊ณต๋ผ. ๋ ๋ค ํ๋์จ์ด ๋ ๋ฒจ์ ์ ์ด๊ฐ ๊ฐ๋ฅํด์ ์ฑ๋ฅ ์ฐจ์ด๋ ๊ฑฐ์ ์์ด.