Mozilla ํ๋ก์ ํธ์ ์ํด ์ค๋ฆฝ๋์์ง๋ง ํ์ฌ๋ ๋ ๋ฆฝ์ ์ธ ๋น์๋ฆฌ ์กฐ์ง์ธ Rust Foundation์ ํ์์ผ๋ก ๊ฐ๋ฐ๋ Rust 1.68 ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ถ์๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ค์ ์ ๋๊ณ ๊ฐ๋น์ง ์์ง๊ธฐ ๋ฐ ๋ฐํ์(๋ฐํ์์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐ๋ณธ ์ด๊ธฐํ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋ก ์ถ์๋จ)์ ์ฌ์ฉ์ ํผํ๋ฉด์ ๋์ ์์ ๋ณ๋ ฌ์ฑ์ ๋ฌ์ฑํ ์ ์๋ ์๋จ์ ์ ๊ณตํฉ๋๋ค.
Rust์ ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ํฌ์ธํฐ๋ฅผ ์กฐ์ํ ๋ ๊ฐ๋ฐ์๋ฅผ ์ค๋ฅ๋ก๋ถํฐ ๋ณดํธํ๊ณ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํด์ ๋ ํ ์ก์ธ์ค, null ํฌ์ธํฐ ์ญ์ฐธ์กฐ, ๋ฒํผ ์ค๋ฒ๋ฐ ๋ฑ๊ณผ ๊ฐ์ ์ ์์ค ๋ฉ๋ชจ๋ฆฌ ์ฒ๋ฆฌ๋ก ์ธํด ๋ฐ์ํ๋ ๋ฌธ์ ๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ, ๋น๋ ์ ๊ณต ๋ฐ ์ข ์์ฑ ๊ด๋ฆฌ๋ฅผ ์ํด ํ๋ก์ ํธ๋ Cargo ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. crates.io ์ ์ฅ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํธ์คํ ์ ์ํด ์ง์๋ฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ปดํ์ผ ์๊ฐ์ ์ฐธ์กฐ ํ์ธ, ๊ฐ์ฒด ์์ ๊ถ ์ถ์ , ๊ฐ์ฒด ์๋ช (๋ฒ์) ์ถ์ ๋ฐ ์ฝ๋ ์คํ ์ค ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ์ ํ์ฑ ํ๊ฐ๋ฅผ ํตํด Rust์์ ์ ๊ณต๋ฉ๋๋ค. Rust๋ ๋ํ ์ ์ ์ค๋ฒํ๋ก์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ ์ ๋ณ์ ๊ฐ์ ํ์ ์ด๊ธฐํ๊ฐ ํ์ํ๋ฉฐ, ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ค๋ฅ๋ฅผ ๋ ์ ์ฒ๋ฆฌํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก ๋ถ๋ณ ์ฐธ์กฐ ๋ฐ ๋ณ์ ๊ฐ๋ ์ ์ ์ฉํ๊ณ , ๊ฐ๋ ฅํ ์ ์ ์ ํ ์ง์ ์ ์ ๊ณตํ์ฌ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํฉ๋๋ค.
์ฃผ์ ํ์ :
- Cargo ํจํค์ง ๊ด๋ฆฌ์์ crates.io ์ ์ฅ์๋ ์ ์ฅ์์ ์กด์ฌํ๋ ๋ชจ๋ ํจํค์ง์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฒ์ ์ ๋ฐ์ํ๋ ์ธ๋ฑ์ค ์์
์ ์๋ก์ด ๋ฐฉ์์ ์ ์ํ๋ Sparse ํ๋กํ ์ฝ์ ๋ํ ์ง์์ ์์ ํํ์ต๋๋ค. ์๋ก์ด ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ฉด crates.io ์์
์๋๋ฅผ ํฌ๊ฒ ๋์ด๊ณ ๋ฆฌํฌ์งํ ๋ฆฌ์ ํจํค์ง ์๊ฐ ๋์ด๋๋ฉด์ ํ์ฅ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ ์ฒด ์ธ๋ฑ์ค ๋ค์ด๋ก๋๋ก ์ธํ ์ง์ฐ์ ์ค์ด๊ธฐ ์ํด Sparse์์๋ Git์ ์ฌ์ฉํ์ฌ ์ธ๋ฑ์ค์ ์ก์ธ์คํ๋ ๋์ ํน์ ํ๋ก์ ํธ์ ์ข ์์ฑ์ ํฌํจํ๋ ํ์ ์ธ๋ฑ์ค ๋ฐ์ดํฐ๋ง HTTPS๋ฅผ ํตํด ์ง์ ๋ค์ด๋ก๋ํฉ๋๋ค. ์๋ก์ด ์๋น์ค์ธ index.crates.io๊ฐ ์ธ๋ฑ์ค ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋กํ ์ฝ์ Rust 1.70 ๋ธ๋์น์์ ์ฌ์ฉํ ์์ ์ด๋ฉฐ, ๊ทธ ์ ์ ํ์ฑํํ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์ "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse"๋ฅผ ์ค์ ํ๊ฑฐ๋ "[registries. crates-io]" .cargo/config.toml ํ์ผ 'sparse' ์น์ .
- ์ํ๋ฅผ ๋ก์ปฌ๋ก ๊ณ ์ ํ์ฌ "T" ํํ์์์ Pin<&mut T> ๊ตฌ์กฐ๋ฅผ ์์ฑํ ์ ์๋ "pin!" ๋งคํฌ๋ก๋ฅผ ์ถ๊ฐํ์ต๋๋ค(Box::pin๊ณผ ๋ฌ๋ฆฌ ํ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ง ์์ง๋ง ๋ฐ์ธ๋ฉํจ). ์คํ ์์ค์์).
- ํ์ค alloc ํจํค์ง๋ฅผ ์ฌ์ฉํ ๋ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ค๋ฅ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์ ์๋์์ต๋๋ค. (std ์์ด) ํ ๋น๋ง ํ์ฑํํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์คํจํ ๋ "panic!" ํธ๋ค๋ฌ๋ฅผ ํธ์ถํ๋ฉฐ, ์ ํ์ ์ผ๋ก "#[panic_handler]"๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ๊ฐ๋ก์ฑ ์ ์์ต๋๋ค. std ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ ๊ณ์ํด์ stderr ๋ฐ ์ถฉ๋์ ์ค๋ฅ ์ ๋ณด๋ฅผ ์ธ์ํฉ๋๋ค.
- API์ ์๋ก์ด ๋ถ๋ถ์ด ์์ ํ๋ ํน์ฑ์ ๋ฉ์๋ ๋ฐ ๊ตฌํ์ ํฌํจํ์ฌ ์์ ์ ์ธ ๋ฒ์ฃผ๋ก ์ด๋๋์์ต๋๋ค.
- {์ฝ์ด,ํ์ค}::ํ::ํ!
- impl์์ {f32,f64}์ ๋ํด
- ํ์ค::๊ฒฝ๋ก::MAIN_SEPARATOR_STR
- PathBuf์ ๋ํ impl DerefMut
- ์์ ๋์ ๋ชจ๋ ์ปจํ ์คํธ์์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ ๊ฒฐ์ ํ๋ "const" ์์ฑ์ VecDeque::new ํจ์์์ ์ฌ์ฉ๋ฉ๋๋ค.
- Android ํ๋ซํผ์์ ์์ ํ๋ ค๋ฉด ์ด์ ์ต์ํ NDK r25(API 19)๊ฐ ํ์ํฉ๋๋ค. ์ง์๋๋ ์ต์ Android ๋ฒ์ ์ด 4.4(KitKat)๋ก ์ํฅ๋์์ต๋๋ค.
- Sony PlayStation Vita ํ๋ซํผ(armv7-sony-vita-newlibeabihf)์ ๋ํ ์ธ ๋ฒ์งธ ์์ค์ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค. ์ธ ๋ฒ์งธ ์์ค์๋ ๊ธฐ๋ณธ ์ง์์ด ํฌํจ๋์ง๋ง ์๋ํ๋ ํ ์คํธ, ๊ณต์ ๋น๋ ๊ฒ์ ๋๋ ์ฝ๋ ๋น๋ ๊ฐ๋ฅ ์ฌ๋ถ ํ์ธ์ ํฌํจ๋์ง ์์ต๋๋ค.
์ถ์ฒ : opennet.ru