Rust๋Š” Android ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์˜ ์ฃผ์š” ์–ธ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

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๋…„ ๋ฏธ๋งŒ์ธ ์ฝ”๋“œ์—์„œ ๊ฐ์ง€๋ฉ๋‹ˆ๋‹ค.

Rust๋Š” Android ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์˜ ์ฃผ์š” ์–ธ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.


์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€