
Rust Async/Await ์๋ฒฝ ๊ฐ์ด๋: Tokio, Futures, ๋น๋๊ธฐ ๋์์ฑ ์ฌ์ธต ๋ถ์
Rust์ Async/Await๋ฅผ Tokio ๋ฐํ์, Future ํธ๋ ์ดํธ, ํ์คํฌ ์คํฐ, ๊ตฌ์กฐํ๋ ๋์์ฑ, ์ค์ ํจํด๊น์ง ๊น์ด ์๊ฒ ๋ถ์ํฉ๋๋ค.

์์ ๊ถ ์์คํ ์ ํตํด ๊ฐ๋น์ง ์ปฌ๋ ํฐ ์์ด ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ๋ณด์ฅํ๋ ์์คํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ์ ๋ก ๋น์ฉ ์ถ์ํ๋ฅผ ํตํ C/C++ ๋๋ฑ ์ฑ๋ฅ, ๋ฐ์ดํฐ ๋ ์ด์ค ์๋ ๋์์ฑ, ์ ๋ขฐํ ์ ์๋ ๋ฐฑ์๋ API, WebAssembly, ํต์ฌ ์์คํ ๊ตฌ์ถ์ ์ํ ํ๋ถํ ์ํ๊ณ(Cargo, crates.io)๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ปดํ์ผ ์์ ์ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ์ ๋ณด์ฅํ๋ ์์ ๊ถ ์์คํ (๊ฐ๋น์ง ์ปฌ๋ ํฐ ์์)
์ ๋ก ๋น์ฉ ์ถ์ํ์ ์ ์์ค ์ ์ด๋ฅผ ํตํ C/C++ ์ฑ๋ฅ
ํ์ ์์คํ (Send, Sync traits)์ ํตํ ๋ฐ์ดํฐ ๋ ์ด์ค ์๋ ๋์์ฑ
ํํ๋ ฅ ์๋ pattern matching, ๊ฐ๋ ฅํ enums, Result<T, E>๋ฅผ ํ์ฉํ ์๋ฌ ์ฒ๋ฆฌ
์์กด์ฑ ๊ด๋ฆฌ, ๋น๋, ํตํฉ ํ ์คํธ๋ฅผ ์ํ Cargo
Tokio ๋๋ async-std๋ฅผ ํ์ฉํ ๋ ผ๋ธ๋กํน I/O๋ฅผ ์ํ Async/await
REST API๋ฅผ ์ํ ํ๋์ ์น ํ๋ ์์ํฌ (Axum, Actix-web, Rocket)
traits, generics, lifetimes, ํ์ ์ถ๋ก ์ ๊ฐ์ถ ๊ฐํ ํ์ ์์คํ
ํฌ๊ด์ ์ธ ํ ์คํธ (unit tests, integration tests, doc tests, property-based)
WebAssembly ํผ์คํธ ํด๋์ค ์ง์, ํฌ๋ก์ค ์ปดํ์ผ, ์ต์ ํ๋ ๋ฐ์ด๋๋ฆฌ
์ด ๊ธฐ์ ์ ์ดํดํ๊ณ ๋ฉด์ ์์ ์ฑ๊ณตํ๊ธฐ ์ํ ๊ฐ์ฅ ์ค์ํ ๊ฐ๋
Rust ๊ธฐ์ด: ๋ณ์ (let, mut), ๊ธฐ๋ณธ ํ์ , ํจ์, ๋ชจ๋
์์ ๊ถ: move semantics, borrowing, ์ฐธ์กฐ (&, &mut), lifetimes
Borrowing ๊ท์น: ํ๋์ &mut ๋๋ ์ฌ๋ฌ &, ๋๊ธ๋ง ์ฐธ์กฐ ์์
Structs, enums, pattern matching, destructuring
Traits: ์ ์, ๊ตฌํ, trait bounds, derive macros
Generics: ์ ๋ค๋ฆญ ํจ์, structs, trait bounds๋ฅผ ๊ฐ์ง enums
Lifetimes: ์ฃผ์ ('a), lifetime elision, static lifetime
์๋ฌ ์ฒ๋ฆฌ: Result<T, E>, Option<T>, ? ์ฐ์ฐ์, panic vs Result
์ปฌ๋ ์ : Vec, HashMap, HashSet, ์ดํฐ๋ ์ดํฐ์ ๋ฉ์๋ (map, filter, collect)
์ดํฐ๋ ์ดํฐ: Iterator trait, ์ง์ฐ ํ๊ฐ, combinators, for ๋ฃจํ
์์ ๊ถ ํจํด: Clone vs Copy, Rc/Arc, ๋ด๋ถ ๊ฐ๋ณ์ฑ์ ์ํ RefCell/Mutex
๋์์ฑ: ์ค๋ ๋, Arc<Mutex<T>>, channels (mpsc), Send/Sync traits
Async/await: Future trait, async fn, .await, Tokio runtime, async tasks
Axum/Actix-web: routing, handlers, extractors, middleware, ์ํ ๊ด๋ฆฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค: sqlx (์ปดํ์ผ ์์ ์ฒดํฌ), Diesel ORM, ๋น๋๊ธฐ ์ฟผ๋ฆฌ
์ง๋ ฌํ: serde (Serialize, Deserialize), JSON, derive macros
ํ ์คํธ: #[test], #[cfg(test)], assert!, integration tests, mocking
๋งคํฌ๋ก: ์ ์ธ์ ๋งคํฌ๋ก (macro_rules!), ์ ์ฐจ์ ๋งคํฌ๋ก, derive
๋ฉ๋ชจ๋ฆฌ ์์ ์ฑ: null ํฌ์ธํฐ ์์, ๋ฒํผ ์ค๋ฒํ๋ก์ฐ ์์, ์ค๋ ๋ ์์ ์ฑ
์ฑ๋ฅ: ์ ๋ก ๋น์ฉ ์ถ์ํ, inlining, LLVM ์ต์ ํ, profiling
Cargo: ์์กด์ฑ (Cargo.toml), features, workspaces, build scripts
๋ฐฐํฌ: ํฌ๋ก์ค ์ปดํ์ผ, Docker, ์ ์ ๋ฐ์ด๋๋ฆฌ, release profiles
Rust์ ๊ดํ ์ต์ ๊ธฐ์ฌ์ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์

Rust์ Async/Await๋ฅผ Tokio ๋ฐํ์, Future ํธ๋ ์ดํธ, ํ์คํฌ ์คํฐ, ๊ตฌ์กฐํ๋ ๋์์ฑ, ์ค์ ํจํด๊น์ง ๊น์ด ์๊ฒ ๋ถ์ํฉ๋๋ค.

Rust์ ์์ ๊ถ(Ownership), ๋น๋ฆผ(Borrowing), ๋ผ์ดํํ์(Lifetime) ๊ฐ๋ ์ ์ฒด๊ณ์ ์ผ๋ก ๋ถ์ํฉ๋๋ค. ๋น๋ฆผ ๊ฒ์ฌ๊ธฐ์ ๋์ ์๋ฆฌ์ ์ค๋ฌด ํจํด, ๊ธฐ์ ๋ฉด์ ๋๋น ํต์ฌ ํฌ์ธํธ๋ฅผ ๋ค๋ฃน๋๋ค.

Rust์ ์์ ๊ถ๊ณผ ๋น๋ฆผ ์์คํ ์ ๋ง์คํฐํฉ๋๋ค. ์์ ๊ถ ๊ท์น, ์ฐธ์กฐ, ๋ผ์ดํํ์, ๊ณ ๊ธ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ํจํด์ ๋ค๋ฃน๋๋ค.