The Rust Programming Language
들어가기에 앞서
소개
1.
시작해봅시다
1.1.
러스트 설치
1.2.
Hello, World!
1.3.
카고를 사용해봅시다
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.
패키지와 크레이트
7.2.
모듈을 정의하여 스코프 및 공개 여부 제어하기
7.3.
경로를 사용하여 모듈 트리의 아이템 참조하기
7.4.
use 키워드로 경로를 스코프 안으로 가져오기
7.5.
별개의 파일로 모듈 분리하기
8.
일반적인 컬렉션
8.1.
벡터에 여러 값의 목록 저장하기
8.2.
문자열에 UTF-8 텍스트 저장하기
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.
카고와 Crates.io 더 알아보기
14.1.
릴리즈 프로필을 통한 빌드 커스터마이징하기
14.2.
Crates.io에 크레이트 배포하기
14.3.
카고 작업공간
14.4.
cargo install로 Crates.io에 있는 바이너리 설치하기
14.5.
커스텀 명령어로 카고 확장하기
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.
부록
21.1.
A - 키워드
21.2.
B - 연산자와 기호
21.3.
C - 파생 가능한 트레이트
21.4.
D - 유용한 개발 도구
21.5.
E - 에디션
21.6.
F - 번역본
21.7.
G - 러스트가 만들어지는 과정과 ‘Nightly 러스트’
Light
Rust
Coal
Navy
Ayu
The Rust Programming Language
부록
다음 절은 여러분의 러스트 여정에서 유용하게 사용할 수 있는 참고 자료가 포함되어 있습니다.