Comprehensive Rust에 오신 것을 환영합니다 🦀

Build workflow GitHub contributors GitHub stars

이 강의는 무료이며, Google의 Android 팀이 만들었습니다. 기본 문법부터 제네릭, 에러 핸들링과 같은 고급주제까지 러스트의 모든 것을 포함합니다.

이 과정의 최신 버전은 https://google.github.io/comprehensive-rust/에서 확인할 수 있습니다. 다른 곳에서 읽고 있는 경우 이곳에서 업데이트를 확인하시기 바랍니다.

The course is also available as a PDF.

강의는 당신이 러스트에 대해서 아무것도 모른다고 가정하고 아래의 목표를 가지고 있습니다:

  • 러스트 구문과 언어에 대한 포괄적인 이해를 제공합니다.
  • 기존 프로그램을 수정하고 러스트에서 새 프로그램을 작성할 수 있습니다.
  • 일반적인 러스트 관용구를 보여줍니다.

We call the first four course days Rust Fundamentals.

그 후에는, 아래와 같은 개별 주제를 심화해서 공부할 수 있습니다:

  • Android: Android 플랫폼 개발(AOSP) 시 Rust 사용에 관한 반나절 과정입니다. 여기에는 C, C++, Java와의 상호 운용성이 포함됩니다.
  • Chromium의 Rust 심층 분석은 Chromium 브라우저의 일부로 Rust를 사용하는 방법에 관한 반나절 과정입니다. 여기에는 Chromium의 ‘gn’ 빌드 시스템에서 Rust를 사용하여 서드 파티 라이브러리(“crates”)와 C++ 상호 운용성을 가져오는 방법이 포함되어 있습니다.
  • Bare-metal: bare-metal(임베디드) 개발 시 Rust 사용에 관한 종일 과정입니다. 마이크로컨트롤러와 애플리케이션 프로세서를 모두 다룹니다.
  • 동시성: Rust의 동시성에 관한 종일 과정입니다. 여기서는 고전적인 동시성(스레드와 뮤텍스를 사용하여 선점형 스케줄링을 하는 것)과 async/await 동시성(future를 사용하는 협력적인 멀티태스킹)을 모두 다룹니다.

제외사항

러스트는 며칠만에 모든 것을 다루기에는 너무 큰 언어입니다. 그래서 아래와 같은것을 목표로 하지 않습니다:

독자 수준에 대한 가정

본 강의는 여러분이 프로그래밍 자체에 대해서는 알고 있다고 가정합니다. 러스트는 정적타입 언어이며, 강좌에서는 C/C++ 와의 비교, 대조를 통해 러스트를 설명할 것입니다.

C/C++을 모르더라도 동적 타입 언어(Python이나 JavaScript 등) 프로그래밍 경험이 있다면 따라오는데 큰 문제는 없을 것입니다.

이것은 “발표자 노트“의 예제입니다. 이 부분을 이용해서 추가 정보를 제공합니다. 주로 강의실에서 제기되는 일반적인 질문에 대한 답변과 강사가 다루어야 할 키 포인트일 수 있습니다.