Google์ Android ํ๋ซํผ ๊ฐ๋ฐ์ ํ์ฉ๋๋ ์ธ์ด ์ค์ Rust ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ํฌํจํ๋ค๊ณ ๋ฐํํ์ต๋๋ค. Rust ์ธ์ด ์ปดํ์ผ๋ฌ๋ 2019๋ ์ Android ์์ค ํธ๋ฆฌ์ ํฌํจ๋์์ง๋ง ์ด ์ธ์ด์ ๋ํ ์ง์์ ์ฌ์ ํ โโ์คํ์ ์ด์์ต๋๋ค. Android์ฉ์ผ๋ก ๊ณํ๋ ์ต์ด์ Rust ๊ตฌ์ฑ ์์ ์ค ์ผ๋ถ์๋ Binder ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฉ์ปค๋์ฆ๊ณผ Bluetooth ์คํ์ ์๋ก์ด ๊ตฌํ์ด ํฌํจ๋ฉ๋๋ค.
Rust์ ๋์ ์ ๋ณด์์ ๊ฐํํ๊ณ ์์ ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์ฅ๋ คํ๋ฉฐ Android์์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ๋ฌธ์ ์๋ณ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํ ํ๋ก์ ํธ์ ์ผํ์ผ๋ก ์ํ๋์์ต๋๋ค. Android์์ ํ์ธ๋ ์ ์ฒด ์ํํ ์ทจ์ฝ์ ์ค ์ฝ 70%๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ๊ณผ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์ ์ด์ ์ ๋ง์ถ Rust๋ฅผ ์ฌ์ฉํ๋ฉด After-Free ์ก์ธ์ค, ๋ฒํผ ์ค๋ฒ๋ฐ ๋ฑ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ๋ก ์ธํด ๋ฐ์ํ๋ ์ทจ์ฝ์ ์ ์ํ์ด ์ค์ด๋ญ๋๋ค.
Rust๋ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ๋ฐ ๊ฐ์ฒด ์๋ช ์ถ์ (๋ฒ์)์ ํตํด ์ปดํ์ผ ํ์์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ๊ฐํํ๊ณ ๋ฐํ์ ์ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ์ ํ๊ฐํฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ์ด๊ธฐํํ๋๋ก ์๊ตฌํ๋ฉฐ, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ ๋์ ์ค๋ฅ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋ ์ ์ฌ์ฉํ๋ฉฐ, ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํ๊ธฐ ์ํด ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํฉ๋๋ค.
์๋๋ก์ด๋์์๋ ์ด๋ฏธ ์ง์๋๋ ์ธ์ด์ธ ์ฝํ๋ฆฐ(Kotlin)๊ณผ ์๋ฐ(Java)๋ก ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ์ ๊ณตํ์ง๋ง, ์ค๋ฒํค๋๊ฐ ๋์ ์์คํ ์ปดํฌ๋ํธ ๊ฐ๋ฐ์๋ ์ ํฉํ์ง ์๋ค. Rust๋ฅผ ์ฌ์ฉํ๋ฉด C ๋ฐ C++ ์ธ์ด์ ๊ฐ๊น์ด ์ฑ๋ฅ์ ๋ฌ์ฑํ ์ ์์ผ๋ฏ๋ก ํ๋์จ์ด์ ์ํธ ์์ฉํ๊ธฐ ์ํ ํ๋ซํผ ๋ฐ ๊ตฌ์ฑ ์์์ ํ์ ์์ค ๋ถ๋ถ์ ๊ฐ๋ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
C ๋ฐ C++ ์ฝ๋์ ๋ณด์์ ๋ณด์ฅํ๊ธฐ ์ํด Android๋ ์๋๋ฐ์ค ๊ฒฉ๋ฆฌ, ์ ์ ๋ถ์, ํผ์ง ํ ์คํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋๋ฐ์ค ๊ฒฉ๋ฆฌ ๊ธฐ๋ฅ์ ์ ํ๋์ด ์์ผ๋ฉฐ ๊ธฐ๋ฅ์ ํ๊ณ์ ๋๋ฌํ์ต๋๋ค(ํ๋ก์ธ์ค๋ก์ ์ถ๊ฐ ์กฐ๊ฐํ๋ ๋ฆฌ์์ค ์๋น ์ธก๋ฉด์์ ๋นํ์ค์ ์ ๋๋ค). ์๋๋ฐ์ค ์ฌ์ฉ์ ์ ํ ์ฌํญ์๋ ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ํฐ ์ค๋ฒํค๋ ๋น์ฉ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์๋น ์ฆ๊ฐ, IPC ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ์ถ๊ฐ ์ง์ฐ์ด ํฌํจ๋ฉ๋๋ค.
๋์์ ์๋๋ฐ์ค๋ ์ฝ๋์ ์ทจ์ฝ์ ์ ์ ๊ฑฐํ์ง๋ ์์ง๋ง ์ ์ฉ์๋ ํ๋๊ฐ ์๋ ์ฌ๋ฌ ์ทจ์ฝ์ ์ ์๋ณํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ํ์ ์ค์ด๊ณ ๊ณต๊ฒฉ์ ๋ณต์กํ๊ฒ ๋ง๋ญ๋๋ค. ์ฝ๋ ํ ์คํธ์ ๊ธฐ๋ฐํ ๋ฐฉ๋ฒ์ ์ค๋ฅ๋ฅผ ์๋ณํ๊ธฐ ์ํด ๋ฌธ์ ๊ฐ ๋ํ๋ ์ ์๋ ์กฐ๊ฑด์ ๋ง๋ค์ด์ผ ํ๋ค๋ ์ ์์ ์ ํ๋ฉ๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ์ต์ ์ ๋ค๋ฃฐ ์๋ ์์ผ๋ฏ๋ก ๋ง์ ์ค๋ฅ๊ฐ ๋์ ๋์ง ์๊ฒ ๋ฉ๋๋ค.
Android์ ์์คํ ํ๋ก์ธ์ค์ ๋ํด Google์ 'XNUMX์ ๋ฒ์น'์ ์ค์ํฉ๋๋ค. ์ด์ ๋ฐ๋ผ ์ถ๊ฐ๋ ์ฝ๋๋ ์ธ ๊ฐ์ง ์กฐ๊ฑด ์ค ๋ ๊ฐ ์ดํ๋ฅผ ์ถฉ์กฑํด์ผ ํฉ๋๋ค. ์ฆ, ๊ฒ์ฆ๋์ง ์์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ก ์์ ํ๊ธฐ, ์์ ํ์ง ์์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(C/C++) ์ฌ์ฉํ๊ธฐ, ์๊ฒฉํ ์๋๋ฐ์ค ๊ฒฉ๋ฆฌ ์์ด ์คํ(์น๊ฒฉ๋ ๊ถํ ์ฌ์ฉ) ์ด ๊ท์น์ ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฝ๋๊ฐ ์ต์ํ์ ๊ถํ์ผ๋ก ์ถ์(๊ฒฉ๋ฆฌ)๋๊ฑฐ๋ ๋ณด์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
Google์ ๊ธฐ์กด C/C++ ์ฝ๋๋ฅผ Rust๋ก ๋ค์ ์์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ์ง ์์ง๋ง ์ด ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ์ฝ๋๋ฅผ ๊ฐ๋ฐํ ๊ณํ์ ๋๋ค. ํต๊ณ์ ์ผ๋ก ๋๋ถ๋ถ์ ๋ฒ๊ทธ๋ ์ ์ฝ๋๋ ์ต๊ทผ ๋ณ๊ฒฝ๋ ์ฝ๋์ ๋ํ๋๊ธฐ ๋๋ฌธ์ ์ ์ฝ๋์ Rust๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ํนํ ์๋๋ก์ด๋์์ ๊ฐ์ง๋ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฅ์ ์ฝ 50%๋ ์์ฑ๋ ์ง XNUMX๋ ๋ฏธ๋ง์ธ ์ฝ๋์์ ๊ฐ์ง๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru