들어가기에 앞서
소개
1.
시작하기
1.1.
설치하기
1.2.
Hello, World!
1.3.
Hello, Cargo!
2.
추리 게임 튜토리얼
3.
보편적인 프로그래밍 개념
3.1.
변수와 가변성
3.2.
데이터 타입들
3.3.
함수 동작 원리
3.4.
주석
3.5.
제어문
4.
소유권 이해하기
4.1.
소유권이 뭔가요?
4.2.
참조자와 빌림
4.3.
슬라이스
5.
연관된 데이터들을 구조체로 다루기
5.1.
구조체를 정의하고 생성하기
5.2.
구조체를 이용한 예제 프로그램
5.3.
메소드 문법
6.
열거형과 패턴 매칭
6.1.
열거형 정의하기
6.2.
match 흐름 제어 연산자
6.3.
if let을 사용한 간결한 흐름 제어
7.
모듈
7.1.
mod와 파일 시스템
7.2.
pub으로 가시성 제어하기
7.3.
use로 이름 가져오기
8.
일반적인 컬렉션
8.1.
벡터
8.2.
스트링
8.3.
해쉬맵
9.
에러 처리
9.1.
panic!과 함께하는 복구 불가능한 에러
9.2.
Result와 함께하는 복구 가능한 에러
9.3.
panic!이냐, panic!이 아니냐, 그것이 문제로다
10.
제네릭 타입, 트레잇, 그리고 라이프타임
10.1.
제네릭 데이터 타입
10.2.
트레잇: 공유 동작을 정의하기
10.3.
라이프타임을 이용한 참조자 유효화
11.
테스팅
11.1.
테스트 작성하기
11.2.
테스트 실행하기
11.3.
테스트 조직화
12.
I/O 프로젝트: 커맨드 라인 프로그램 만들기
12.1.
커맨드 라인 인자 허용하기
12.2.
파일 읽기
12.3.
모듈성과 에러처리의 향상을 위한 리팩토링
12.4.
테스트 주도 개발로 라이브러리의 기능 개발하기
12.5.
환경 변수들을 활용하기
12.6.
표준출력 대신 표준에러로 에러메시지 출력하기
13.
함수형 언어의 특성들: 반복자들과 클로저들
13.1.
클로저: 환경을 캡쳐할 수 있는 익명 함수
13.2.
반복자로 일련의 항목들 처리하기
13.3.
I/O 프로젝트 개선하기
13.4.
성능 비교하기: 루프 vs. 반복자
14.
Cargo와 Crates.io 더 알아보기
14.1.
릴리즈 프로필을 이용해 빌드 커스터마이징하기
14.2.
Crates.io에 크레이트 배포하기
14.3.
Cargo 작업공간
14.4.
cargo install을 이용해 Crates.io에서 바이너리 설치하기
14.5.
커스텀 명령어로 Cargo 확장하기
15.
스마트 포인터
15.1.
Box<T>는 힙에 있는 데이터를 가리키고 알려진 크기를 갖습니다
15.2.
Deref 트레잇은 참조자를 통하여 데이터로의 접근을 허용합니다
15.3.
Drop 트레잇은 메모리 정리 코드를 실행시킵니다
15.4.
Rc<T>, 참조 카운팅 스마트 포인터
15.5.
RefCell<T>와 내부 가변성 패턴
15.6.
순환 참조를 만드는 것과 메모리 누수는 안전한 것에 해당됩니다
16.
겁없는 동시성
16.1.
스레드
16.2.
메세지 패싱
16.3.
공유 상태
16.4.
확장 가능한 동시성: Sync와 Send
17.
러스트의 객체 지향 프로그래밍 기능들
17.1.
객체 지향 언어의 특성
17.2.
트레잇 객체를 사용하여 다른 타입 간의 값 허용하기
17.3.
객체 지향 디자인 패턴 구현하기
18.
값의 구조와 매칭되는 패턴
18.1.
패턴이 사용될 수 있는 모든 곳
18.2.
반증 가능성: 패턴의 매칭이 실패할 수도 있는 경우
18.3.
패턴 문법의 모든 것
19.
고급 기능들
19.1.
안전하지 않은 러스트
19.2.
고급 라이프타임
19.3.
고급 트레잇
19.4.
고급 타입
19.5.
고급 함수와 클로저
20.
마지막 프로젝트: 멀티스레드 웹서버 만들기
20.1.
싱글 스레드 웹서버
20.2.
싱글 스레드 서버를 멀티스레드 서버로 바꾸기
20.3.
우아한 종료와 정리
21.
Appendix
21.1.
A - 키워드
21.2.
B - 연산자 및 기호
21.3.
C - derive 가능한 트레잇
21.4.
D - 매크로
21.5.
E - 본 책의 번역본 목록
21.6.
F - 새로운 기능
21.7.
G - 러스트가 만들어지는 과정과 “Nightly Rust”
21.8.
H - 번역 용어 정리
Light
Rust
Coal
Navy
Ayu
The Rust Programming Language
시작하기
여러분의 러스트 여정을 시작해봅시다! 이 장에서는 다음을 다룰 것입니다:
Linux, macOS, Windows에 러스트 설치하기
"Hello, world!"를 출력하는 프로그램 작성하기
러스트의 패키지 매니저이자 빌드 시스템인
cargo
사용하기