1. Comprehensive Rust에 오신 것을 환영합니다 🦀
  2. 강의 진행
    1. 강의 구성
    2. 단축키
    3. 다른 언어들
  3. 카고 사용하기
    1. 러스트 생태계
    2. 코드 샘플
    3. 카고(Cargo) 수행하기
  4. 1일차 오전
  5. 개요
  6. Hello World!
    1. 러스트란?
    2. Rust의 이점
    3. 플레이그라운드
  7. 타입 및 값
    1. Hello World!
    2. 변수
    3. 연산
    4. 문자열
    5. 타입 추론
    6. 연습문제: 피보나치
      1. 해답
  8. 흐름 제어
    1. if 표현식
    2. 배열과 for 반복문
      1. 배열과 for 반복문
      2. loop
    3. break와 continue
      1. Labels
    4. 블록 및 범위
      1. 범위(Scopes)와 쉐도잉(Shadowing)
    5. 함수
    6. 매크로
    7. 연습문제: 콜라츠 수열
      1. 해답
  9. 1일차 오후
  10. 개요
  11. 튜플 및 배열
    1. 배열
    2. 튜플
    3. 배열 반복
    4. 열거형 분해(역구조화)
    5. 연습문제: 중첩 배열
      1. 해답
  12. 참조
    1. 공유 참조
    2. 허상(dangling) 참조
    3. 연습문제: 도형
      1. 해답
  13. 사용자 정의 타입
    1. 구조체
    2. 튜플
    3. 열거형
    4. 정적변수(static)와 상수(const)
    5. 타입 별칭
    6. 연습문제: 엘리베이터 이벤트
      1. 해답
  14. 2일차 오전
  15. 개요
  16. 패턴 매칭
    1. Matching Values
    2. 열거형 분해(역구조화)
    3. 흐름 제어
    4. 연습문제: 표현식 평가
      1. 해답
  17. 메소드와 트레이트
    1. 메서드
    2. 트레잇(Trait)
      1. 안전하지 않은 트레잇 구현하기
      2. 트레잇(Trait)
      3. 공유 타입
    3. 트레잇 상속하기
    4. 연습문제: 일반 min
      1. 해답
  18. 제네릭
    1. 제네릭 함수
    2. 제네릭 데이터 타입
    3. 제네릭 트레잇
    4. 제네릭 타입 제한(트레잇 경계)
    5. 트레잇 구현하기(impl Trait)
    6. 연습문제: 일반 min
      1. 해답
  19. 2일차 오후
  20. 개요
  21. 표준 라이브러리
    1. 표준 라이브러리
    2. 문서화
    3. Option
    4. Option, Result
    5. String
    6. Vec
    7. HashMap
    8. 연습문제: 카운터
      1. 해답
  22. 표준 라이브러리
    1. 비교
    2. 연산자
    3. From과 Into
    4. 캐스팅
    5. Read와 Write
    6. Default, 구조체 업데이트 문법
    7. 클로저(Closure)
    8. 연습문제: 바이너리 트리
      1. 해답
  23. 3일차 오전
  24. 개요
  25. 메모리 관리
    1. 프로그램 메모리 검토
    2. 메모리 관리에 대한 접근
    3. 소유권
    4. Move 문법
    5. Clone
    6. 복사 타입
    7. Drop
    8. 연습문제: 빌드 타입
      1. 해답
  26. 스마트 포인터
    1. Box
    2. Rc
    3. 트레잇 객체
    4. 연습문제: 바이너리 트리
      1. 해답
  27. 3일차 오후
  28. 개요
  29. 빌림
    1. 빌림
    2. 빌림
    3. 상호운용성
    4. 연습문제: 엘리베이터 이벤트
      1. 해답
  30. 수명
    1. Slices: &\[T\]
    2. 허상(dangling) 참조
    3. 함수 호출에서의 수명
    4. 수명
    5. 수명
    6. 연습문제: Protobuf 파싱
      1. 해답
  31. 1일차 오전
  32. 개요
  33. Iterators
    1. Iterator
    2. IntoIterator
    3. FromIterator
    4. 연습문제: 반복자 메서드 체이닝
      1. 해답
  34. 모듈
    1. 모듈
    2. 파일시스템 계층
    3. 가시성
    4. use, super, self
    5. 연습문제: GUI 라이브러리 모듈
      1. 해답
  35. 테스트
    1. 테스트 모듈
    2. 다른 프로젝트
    3. 컴파일러 린트 및 Clippy
    4. 룬 알고리즘
      1. 해답
  36. 1일차 오후
  37. 개요
  38. 오류처리
    1. 패닉
    2. Iterator
    3. 묵시적 형변환
    4. Error
    5. From과 Into
    6. Result를 이용한 구조화된 오류처리
      1. 해답
  39. 안전하지 않은 러스트
    1. 안전하지 않은 러스트
    2. 원시 포인터 역참조(따라가기)
    3. 정적 가변 변수
    4. Unions
    5. 안전하지 않은 함수 호출
    6. 안전하지 않은 트레잇 구현하기
    7. 연습문제: FFI 래퍼(wrapper)
      1. 해답
  40. 안드로이드
  41. 개요
  42. 설치
  43. 빌드 규칙
    1. 바이너리
    2. 라이브러리
  44. AIDL
    1. /\*\* 생일 서비스 인터페이스입니다. \*/
      1. AIDL 인터페이스
      2. Service API
      3. AIDL 서버
      4. AIDL 서버
      5. 배포
      6. 클라이언트
      7. API 수정
      8. 서비스 구현
    2. 타입
      1. Primitive Types
      2. 배열
      3. 트레잇 객체
      4. 변수
      5. Sending Files
  45. 테스트
    1. GoogleTest
    2. 모의 처리
  46. 로깅
  47. 상호운용성
    1. C와의 상호운용성
      1. Bindgen을 사용한 C호출
      2. C에서 러스트 호출
    2. C++와의 상호운용성
      1. 테스트 모듈
      2. Rust 브리지
      3. 생성된 C++
      4. C++ 브리지
      5. 공유 타입
      6. 공유 Enum
      7. 오류처리
      8. 오류처리
      9. 추가 타입
      10. Android용 빌드: C++
      11. Android용 빌드: Genrules
      12. Android용 빌드: Rust
    3. Java와의 상호운용성
  48. 연습문제
  49. Chromium
  50. 개요
  51. 설치
  52. Chromium 및 Cargo 생태계 비교
  53. 정책
  54. 빌드 규칙
    1. 안전하지 않은 러스트
    2. Chromium C++의 Rust 코드에 의존
    3. Visual Studio Code
    4. 연습문제
  55. 테스트
    1. rust_gtest_interop Library
    2. GN Rules for Rust Tests
    3. chromium::import! Macro
    4. 연습문제
  56. C와의 상호운용성
    1. 예제
    2. CXX 제한사항
    3. 오류처리
      1. 오류처리
      2. 오류처리
    4. Chromium에서 CXX 사용
    5. 연습문제
  57. 서드 파티 크레이트 추가
    1. Cargo.toml 구성
    2. gnrt_config.toml 구성
    3. 크레이트 다운로드
    4. gn 빌드 규칙 생성
    5. 문제 해결
      1. 코드를 생성하는 스크립트 빌드
      2. C++를 빌드하거나 임의의 작업을 실행하는 스크립트 빌드
    6. 크레이트에 따라 다름
    7. 검토 및 분석
    8. Chromium 소스 코드에 체크인
    9. 크레이트를 최신 상태로 유지
    10. 연습문제
  58. 총정리 - 연습문제
  59. 연습문제 해답
  60. Bare Metal 오전
  61. 개요
  62. no_std
    1. 작은 예제
    2. alloc
  63. 마이크로컨트롤러
    1. 원시 MMIO
    2. PAC
    3. HAL 크레이트
    4. 보드 지원 크레이트
    5. Type State 패턴
    6. embedded-hal
    7. probe-rs, cargo-embed
      1. 디버깅
    8. 다른 프로젝트
  64. 연습문제
    1. 나침반
    2. 해답
  65. Bare Metal 오후
  66. 애플리케이션 프로세서
    1. Rust 수행 준비
    2. 인라인 어셈블리
    3. MMIO
    4. UART 드라이버 작성
      1. 더 많은 트레잇
    5. 더 나은 UART 드라이버
      1. 비트플래그
      2. 더 많은 레지스터
      3. 드라이버
      4. 사용해 보기
    6. 로깅
      1. 사용해 보기
    7. 예외
    8. 다른 프로젝트
  67. 유용한 크레이트
    1. zerocopy
    2. aarch64-paging
    3. buddy_system_allocator
    4. tinyvec
    5. 회전
  68. 안드로이드
    1. vmbase
  69. 연습문제
    1. RTC 드라이버
    2. 해답
  70. 동시성 오전
  71. 개요
  72. 스레드
    1. 범위 스레드(Scoped Threads)
  73. 채널
    1. 무경계 채널
    2. 경계 채널
  74. Send와 Sync
    1. Send
    2. Sync
    3. 예제
  75. 상태 공유
    1. Arc
    2. Mutex
    3. 예제
  76. 연습문제
    1. 식사하는 철학자들
    2. 멀티스레드 링크 검사기
    3. 해답
  77. 동시성 오후
  78. 비동기 관련 기본사항
    1. async/await
    2. Future
    3. 비동기 런타임들
      1. Tokio
    4. 태스크
    5. 비동기 채널
  79. 흐름 제어
    1. Join
    2. Select
  80. 함정
    1. Executor 블로킹 하기
    2. Pin
    3. 비동기 트레잇
    4. 취소
  81. 연습문제
    1. 식사하는 철학자들
    2. 채팅 애플리케이션
    3. 해답
  82. 끝으로...
  83. 감사인사
  84. 용어집
  85. 러스트 참고 자료
  86. 도와주신 분들