상세 차례
장 아래 절까지 펼친 차례다. 찾는 자리를 바로 짚을 때 쓴다.
제목과 색인 표제어에서 찾는다 --- 본문 전체가 아니다
제1부 — 시작
2.1도구 짓기2.2hello, entropy2.3두 가지로 돌린다2.4계약이 멈추는 모습2.5거절당하기2.6모양을 고쳐 주는 --fmt2.7인자와 권한2.8흔한 실수2.9이 장의 문법 한눈에
3.1이름이 먼저, 인자가 뒤3.2떨어진 마침표가 닫는다3.3블록은 언제나 do … end3.4주석과 리터럴3.5이름3.6낱말은 예산이다3.7expr 섬의 경계3.8op 머리의 절 차례3.9흔한 실수3.10이 장의 문법 한눈에
제2부 — 값과 흐름
4.1정수 타입은 이름에 폭을 적는다4.2넓히기는 자동, 좁히기는 적는다4.3넘치면 멈춘다4.4나눗셈과 나머지4.5참거짓은 수가 아니다4.6비트 연산4.7부동소수4.8흔한 실수4.9이 장의 문법 한눈에
5.1두 갈래5.2순수함은 관측으로 정한다5.3fn 에는 effects 를 적지 않는다5.4효과는 부르는 쪽으로 번진다5.5매개변수와 반환5.6neg 만 단항이다5.7수식어5.8흔한 실수5.9이 장의 문법 한눈에
6.1바뀌는지는 낱말이 말한다6.2타입은 적거나, 값에게 맡긴다6.3값 없는 이름은 없다6.4지역이 사는 범위6.5if 는 값을 내지 않는다6.6흔한 실수6.7이 장의 문법 한눈에
7.1조건과 되풀이7.2guard — 조건을 사실로 바꾼다7.3모든 길이 값을 돌려준다7.4match — 경우를 빠짐없이7.5panic 은 효과다7.6흔한 실수7.7이 장의 문법 한눈에
8.1전위 표기에는 외울 것이 없다8.2expr 섬의 우선순위표8.3섬 안에서 하지 못하는 것8.4단락 평가로 조건을 지킨다8.5번역할 때 계산되는 식8.6흔한 실수8.7이 장의 문법 한눈에
제3부 — 데이터
10.1struct — 이름 붙은 칸의 모음10.2enum — 여럿 중 하나10.3갈래는 마침표로 닫는다10.4자기 자신을 품을 수 없다10.5흔한 실수10.6이 장의 문법 한눈에
11.1option — 값이 있거나 없거나11.2result 와 errors 절11.3try — 실패를 위로 넘긴다11.4두 채널 사이를 건넌다11.5실패를 말하는 세 길11.6패턴을 묶고 겹친다11.7흔한 실수11.8이 장의 문법 한눈에
12.1두 가지 빌림12.2쓰기 권한은 한 방향으로만 좁아진다12.3읽기 여럿 또는 쓰기 하나12.4빌림은 빌려준 값보다 오래 살 수 없다12.5mut ref slice 는 없다12.6흔한 실수12.7이 장의 문법 한눈에
13.1type 은 별칭, newtype 은 새 타입13.2range — 매개변수의 생김새가 된 계약13.3cast — 값이 변할 수 있는 자리13.4bits — 1 부터 64 비트까지13.5바이트 배치를 못 박는다13.6배치의 두 방향과 실패하는 뷰13.7bitset — 작은 수의 집합13.8흩어진 조각을 한 눈으로 — segments13.9타입 낱말의 세 갈래13.10흔한 실수13.11이 장의 문법 한눈에
제4부 — 계약과 효과
14.1계약은 검사되는 약속이다14.2누구의 잘못인가14.3계약이 검사를 지운다14.4모든 원소에 대한 조건14.5계약에 이름을 준다14.6지금 판정할 수 있으면 지금 판정한다14.7계약의 등급14.8빌드 모드가 남은 검사를 정한다14.9흔한 실수14.10이 장의 문법 한눈에
15.1효과는 닫힌 낱말이다15.2효과는 부르는 쪽으로 번진다15.3적어 놓고 안 하면 알린다15.4효과 줄은 집합이다15.5via — 타입 인자가 효과를 정한다15.6순수함이 허락하는 것15.7흔한 실수15.8이 장의 문법 한눈에
17.1경계와 안쪽17.2오류 열거형을 나누는 기준17.3층을 올라가며17.4정보를 버려도 되는 자리17.5panic 을 써도 되는 자리17.6흔한 실수17.7이 장의 문법 한눈에
제5부 — 메모리
18.1값이 사는 세 곳18.2영역을 열고 자리를 얻는다18.3영역을 건네받는다18.4영역 밖으로 들고 나갈 수 없다18.5뿌리마다 커서는 하나다18.6자라는 뿌리18.7영역 위의 스택18.8흔한 실수18.9이 장의 문법 한눈에
19.1owned 와 drop19.2갈래가 만나는 자리19.3해제와 완결19.4운영체제가 치워 주기를 기대하지 않는다19.5메모리 안전은 어느 강도로 보장되나19.6흔한 실수19.7이 장의 문법 한눈에
20.1할당기를 이루는 셋20.2빌린 바이트를 잘라 준다20.3할당기를 갈아 끼운다20.4뿌리에서 곧장 깎는 기본 할당기20.5조각을 늘리고 돌려준다 — grow 와 release20.6표준 라이브러리에서 셋은 어디에 있나20.7고정 창의 크기는 누가 정하나20.8비트는 그대로, 읽는 법만20.9흔한 실수20.10이 장의 문법 한눈에
제6부 — 추상
21.1파일 하나, 모듈 하나21.2들여오기21.3무엇을 내보낼 수 있고, 어떻게 줄여 부르나21.4검색 경로가 없다21.5이름이 부딪히면21.6최상위 선언의 차례는 무관하다21.7흔한 실수21.8이 장의 문법 한눈에
22.1값과 타입을 번역 시점에 받는다22.2조합마다 실물이 만들어진다22.3타입에 조건을 건다22.4값을 넘기지 않고 타입이 들고 온다22.5흔한 실수22.6이 장의 문법 한눈에
23.1무엇에 쓰나23.2타입에 붙은 op 과 method23.3op 을 여럿 가진 트레이트23.4서명에는 fn·proc 을 적지 않는다23.5갖추지 못했을 때23.6via self — 할당 효과만 더 적을 수 있다23.7흔한 실수23.8이 장의 문법 한눈에
24.1같은 일, 두 가지 모양24.2스테이지와 종결자24.3한 번에 훑는 것은 정의다24.4필요한 만큼만 읽는다24.5이름이 같은 내장 map·filter24.6흔한 실수24.7이 장의 문법 한눈에
제7부 — 동시성
25.1선언하고, 만들고, 말을 건다25.2메시지에 값을 싣는다25.3우편함 — 넣기와 비우기25.4터지게 두고 다시 세운다25.5액터를 쓸 수 있는 자리25.6권한을 든 액터와 상태에 둘 수 있는 것25.7액터로 설계하기 — 계좌 둘 사이의 이체25.8흔한 실수25.9이 장의 문법 한눈에
27.1나눌 수 있다고 밝힌다27.2처리기가 확인하는 세 조건27.3모으는 연산은 결합적이어야 한다27.4원자 연산27.5기억 차례27.6레인 — 값 여럿을 한 번에 셈한다27.7자리를 어떻게 쓰는지 적는다 — access27.8흔한 실수27.9이 장의 문법 한눈에
제8부 — 바깥 세계
30.1레지스터 지도30.2닿는 법은 번역에서 강제된다30.3인터럽트 처리기30.4기계가 감당하는 것 — build tier30.5기계 명령 — asm30.6흡수 경계 — unsafe 가 멈추는 자리30.7기계가 가진 것을 쓸까 — --hw30.8흔한 실수30.9이 장의 문법 한눈에
31.1매니페스트와 프로젝트31.2의존은 해시로 고정한다31.3빌드마다 다른 프로그램 — build option 과 config31.4시험31.5컴파일러를 검증하는 법31.6느린 자리를 묻는다31.7흔한 실수31.8이 장의 문법 한눈에
제9부 — 표준 라이브러리
32.1세 층 — 언어, 잎, 라이브러리32.2무엇이 들어오는가32.3층으로 본 지도32.4파일 이름과 모듈 이름32.5모든 모듈이 따르는 규약32.6잎 op 의 목록 — 모듈 아래에 무엇이 있나32.7흔한 실수32.8이 장의 문법 한눈에
33.1자르고 찾고 조립한다33.2UTF-8 — 치환 문자를 만들지 않는다33.316진과 base6433.4해시 — 세 가지 물음에 세 가지 답33.5정규식 — 역추적하지 않는다33.6흔한 실수33.7이 장의 문법 한눈에
34.1u64 를 정렬하고 찾는다34.2타입이 기준을 들고 온다34.3호출자의 슬라이스 위의 해시맵34.4자라는 제네릭 벡터34.5흐름 사이로 값을 넘기는 링 버퍼34.6그 밖의 그릇34.7흔한 실수34.8이 장의 문법 한눈에
35.1세대 핸들35.2브랜드 — 풀을 섞지 못하게35.3겹치지 않는 조각 — shard35.4비트 예산 — budget35.5비트 칸 — wire35.6그 밖의 저장소 모듈35.7흔한 실수35.8이 장의 문법 한눈에
36.1버퍼링 출력 — 비우기를 잊으면 번역이 거절한다36.2네트워크 — 핸들은 자원이다36.3난수 — 재현되는 열과 운영체제 엔트로피36.4시간 — 단조 시계와 벽시계36.5HTTP 요청 파서 — 알맹이는 거절이다36.6암호 — 쌓인 차례와 아직 없는 꼭대기36.7흔한 실수36.8이 장의 문법 한눈에
37.1term 은 화면에 쓰지 않는다37.2바뀐 칸만 다시 그린다37.3칸의 수는 바이트의 수가 아니다37.4키를 읽는 것은 계산이다37.5raw 모드는 권한이다37.6무엇을 아직 안 지었나37.7흔한 실수37.8이 장의 문법 한눈에
제10부 — 근거: 무엇이 증명되었나
39.1여섯 가지 도구39.2집합과 관계39.3부분 순서 — 비교할 수 없는 쌍39.4격자와 join — 합칠 때 무엇을 고르나39.5단조 함수와 고정점 — 분석은 왜 멈추는가39.6귀납법과 불변식 — 도미노39.7추상해석 — 값 대신 범위로39.8기호 표39.9도구들이 맞물리는 방식
43.1두 번째 회차에서 깨진다43.2고정점이면 몇 번이든43.3위험한 모양은 하나뿐이다43.4신선한 토큰 — 이름 문제를 없애는 한 수43.5중첩 반복 — 함수를 관계로43.6증명하지 않은 것
44.1효과는 원자의 집합이다44.2처리기가 강제하는 네 규칙44.3권한 — 효과의 짝44.4효과 건전성 — 순환이 아니다44.5효과에 기댄 최적화는 적법하다44.6증명하지 않은 것
45.1Bernstein 조건 — 1966 년의 답45.2독립이면 경합이 없다, 그리고 그 조건이 필요하다45.3액터 사이에는 반드시 메시지가 있다45.4가둠 — 무거운 도구가 필요한 곳45.5경합이 없는 것과 결정적인 것은 다르다45.6증명하지 않은 것
46.1순차 일관성과 그 반례46.2실행은 그래프다46.3기본값이면 나올 수 없고, relaxed 면 나올 수 있다46.4막는 것은 정확히 그 공리다46.5메시지 전달 — 약한 것은 이 모양을 위해 있다46.6모든 실행에 대해46.7약하게 적으면 거동이 늘어난다46.8문헌의 시험 일곱46.9증명하지 않은 것
47.1분리논리의 어휘47.2토큰은 둘일 수 없다47.3도구를 필요한 만큼만47.4rwlock — 같은 문장의 두 증명47.5교착 자유와 굶주림 없음47.6약한 메모리에서 빌린 증명 — spsc47.7증명하지 않은 것
49.1해시 함수와 Merkle DAG49.2이름이 아니라 내용으로 부른다49.3무엇이 해시를 바꾸고 무엇이 안 바꾸나49.4증명할 수 있는 것과 없는 것49.5해시가 막는 것49.6증명하지 않은 것
50.1신뢰 기반 — 증명이 기대는 것50.2가장 큰 간극 — 모델과 구현 사이50.3남은 것 — 주제별로50.4“전면 정적 안전” 으로 팔지 않는다50.5그래서 무엇을 믿어도 되나