๊ฐ•์˜ ๊ตฌ์„ฑ

๊ฐ•์‚ฌ๋ฅผ ์œ„ํ•œ ์•ˆ๋‚ด ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.

Rust Fundamentals

The first three days make up Rust Fundaments. The days are fast paced and we cover a lot of ground:

  • Day 1: Basic Rust, syntax, control flow, creating and consuming values.
  • Day 2: Memory management, ownership, compound data types, and the standard library.
  • Day 3: Generics, traits, error handling, testing, and unsafe Rust.

์‹ฌํ™” ํ•™์Šต

Rust ๊ธฐ์ดˆ์— ๊ด€ํ•œ 3์ผ ๊ณผ์ • ์ดํ›„์—๋Š”, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ „๋ฌธ ์ฃผ์ œ๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค:

Rust in Android

The Rust in Android deep dive is a half-day course on using Rust for Android platform development. This includes interoperability with C, C++, and Java.

AOSP ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์˜ ์ปดํ“จํ„ฐ์— ์ฒดํฌ์•„์›ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ, ๊ทธ ์ปดํ“จํ„ฐ์—์„œ ๊ณผ์ • ์ €์žฅ์†Œ๋ฅผ ์ฒดํฌ์•„์›ƒํ•˜๊ณ  src/android/ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ AOSP ์ฝ”๋“œ์˜ ๋ฃจํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•ˆ๋“œ๋กœ์ด๋“œ ๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ๊ณผ์ œ์šฉ์œผ๋กœ ์ถ”๊ฐ€๋œ Android.bpํŒŒ์ผ์„ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

adb sync ๋ช…๋ ์–ด๊ฐ€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ ํ˜น์€ ์‹ค์ œ ์žฅ์น˜์™€ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  src/android/build_all.sh๋ฅผ ์ˆ˜ํ–‰ํ•ด์„œ ๋ชจ๋“  ์•ˆ๋“œ๋กœ์ด๋“œ ์˜ˆ์ œ๋ฅผ ๋ฏธ๋ฆฌ ๋นŒ๋“œํ•ด ๋ณด์„ธ์š”. ๊ทธ ์‰˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฝ๊ณ , ๊ทธ ์•ˆ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋ช…๋ น์–ด๋“ค์„ ํ™•์ธํ•œ ํ›„ ๊ฐ ๋ช…๋ น์–ด๋“ค์„ ์ˆ˜๋™์œผ๋กœ ์‹คํ–‰ํ•ด๋„ ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

Bare-Metal Rust

The Bare-Metal Rust deep dive is a full day class on using Rust for bare-metal (embedded) development. Both microcontrollers and application processors are covered.

๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ ํŒŒํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” BBC micro:bit v2 ๊ฐœ๋ฐœ ๋ณด๋“œ๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌ๋งคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ์‹œ์ž‘ ํŽ˜์ด์ง€์— ์„ค๋ช…๋œ ๋Œ€๋กœ ๊ฐ์ข… ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Concurrency in Rust

The Concurrency in Rust deep dive is a full day class on classical as well as async/await concurrency.

์ƒˆ ํฌ๋ ˆ์ดํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋ช‡ ๊ฐ€์ง€ ์˜์กด์„ฑ์„ ๋‹ค์šด๋กœ๋“œํ•ด ๋‘์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์˜ˆ์ œ๋ฅผ src/main.rs์— ๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜์—ฌ ํ…Œ์ŠคํŠธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

cargo init concurrency cd concurrency cargo add tokio --features full cargo run

๊ฐ•์˜ ํ˜•์‹

์ด ๊ฐ•์˜๋Š” ๊ฐ•์‚ฌ์™€ ์ˆ˜๊ฐ•์ƒ์ด ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์†Œํ†ตํ•˜๋ฉด์„œ ์ง„ํ–‰ํ•˜๋„๋ก ๋””์ž์ธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์งˆ๋ฌธ์„ ํ†ตํ•ด ๋Ÿฌ์ŠคํŠธ์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ํƒํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์„ธ์š”!