파이썬과 비교하며 배우는 러스트 프로그래밍

가장 사랑받는 언어 러스트를 배우는 가장 확실한 방법
$28.35
SKU
9791193926222
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Thu 04/17 - Wed 04/23 (주문일로부 10-14 영업일)

Express Shipping estimated by Mon 04/14 - Wed 04/16 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2024/05/31
Pages/Weight/Size 188*245*15mm
ISBN 9791193926222
Categories IT 모바일 > 컴퓨터 공학
Description
파이썬 개발자를 위한 유일무이한 러스트 입문서

이 책은 파이썬 코드와 러스트 코드를 비교하면서 차이점과 유사점을 발견하고, 러스트를 쉽게 이해하도록 도와준다. 파이썬을 모르더라도 친절한 설명으로 러스트의 타입 시스템, 함수, 클로저, 매크로 등 기본 개념을 빠르게 익힐 수 있으며, 파이썬에 익숙하다면 러스트의 소유권과 제네릭, 트레이트, 멀티스레딩, 테스트 등 고급 개념을 확실히 이해하는 데 도움이 될 것이다. 러스트를 사용해본 개발자라면 다른 언어와의 비교를 통해 러스트에 대해 미처 몰랐던 부분을 발견할 수 있다.
Contents
추천사 x
베타리더 후기 xi
시작하며 xiii
이 책에 대하여 xiv

CHAPTER 1 러스트 시작하기 1

1.1 가장 사랑받는 언어, 러스트 1
1.2 파이썬 개발자가 러스트를 배워야 하는 이유 2
1.3 파이썬과 러스트의 차이점 3
__언어상의 차이 3
__툴 비교 4
1.4 러스트의 경쟁 언어 5
1.5 러스트로 뭘 할 수 있나요? 6
__러스트 실제 사용 사례 8
1.6 러스트 개발 환경 설정하기 10
__러스트 툴체인 설치하기 10
__Visual Studio Code 설치 및 설정하기 11
__프로젝트 생성하기 12
1.7 러스트 코드 실행하기 15
__코드 컴파일하기 15
__코드 실행하기 16
__rustfmt 17

CHAPTER 2 변수와 상수 18

2.1 값 출력하기 18
2.2 변수 선언 19
2.3 작명 규칙 21
2.4 불변성 22
2.5 섀도잉 23
2.6 타입 24
__타입 추론 24
__타입 변환 25
2.7 상수 26
2.8 연습문제 29

CHAPTER 3 함수와 매크로 30

3.1 함수 선언 30
3.2 여러 개의 값 리턴하기 33
3.3 스코프 35
3.4 익명 함수 38
3.5 매크로 40
3.6 연습문제 42

CHAPTER 4 조건문과 반복문 43

4.1 if/else 43
__let if 45
4.2 for 47
4.3 while 49
4.4 loop 50
4.5 match 52
4.6 연습문제 54

CHAPTER 5 소유권 55

5.1 메모리 관리 55
5.2 스택과 힙 56
5.3 소유권 규칙 57
__값에 대한 소유권 57
__소유권 돌려주기 59
__레퍼런스와 소유권 빌리기 60
__가변 레퍼런스 61
5.4 클로저와 소유권 64
__클로저의 환경 캡처 64
__move를 사용한 소유권 이동 65
5.5 연습문제 67

CHAPTER 6 자료구조와 이터레이터 70

6.1 한눈에 보기 71
6.2 벡터 71
__벡터 선언 71
__벡터 원소 접근하기 72
__벡터에 값 추가하기 73
__벡터에서 값 삭제하기 74
__데크 75
6.3 배열 76
__배열 선언 76
__원소 참조 79
6.4 튜플 81
__튜플 선언 81
__원소 참조 82
__튜플 불변성 83
6.5 해시맵 84
6.6 문자열 87
__문자열 생성하기 87
__문자열 슬라이스 87
6.7 열거형 89
__Option 열거형 92
__Result〈T, E〉 열거형 94
6.8 이터레이터 98
__이터레이터의 개념 98
__이터레이터를 소비하는 메서드 100
__새로운 이터레이터를 만드는 메서드 101
6.9 연습문제 105

CHAPTER 7 구조체 107

7.1 구조체의 정의 108
__구조체 선언 108
__연관 함수 109
__메서드 111
__튜플 구조체 113
7.2 트레이트 114
__트레이트로 메서드 공유하기 114
__파생 118
7.3 연습문제 125

CHAPTER 8 모듈과 크레이트 127

8.1 러스트의 모듈 시스템 127
__크레이트 127
8.2 모듈 128
__공개 및 비공개 129
__모듈 사용하기 130
__패키지 132
8.3 모듈과 크레이트 사용해보기 134

CHAPTER 9 제네릭과 라이프타임 139

9.1 제네릭 139
9.2 타입 파라미터 141
9.3 제네릭과 트레이트 144
__파라미터 타입 145
__트레이트 바운드 146
__터보피시 147
9.4 미니 프로젝트: cat 만들어보기 150
9.5 라이프타임과 스태틱 152
__라이프타임 153
__함수에서의 라이프타임 153
__스태틱 라이프타임 157

CHAPTER 10 에러 처리와 로깅 163

10.1 에러 처리의 철학 163
__파이썬의 에러 처리 163
__러스트의 에러 처리 164
10.2 panic! 165
10.3 unwrap 167
__unwrap 167
__unwrap_or 170
__unwrap_or_else 171
__unwrap_or_default 172
10.4 expect 173
10.5 ? 연산자 174
10.6 커스텀 에러 정의 177
10.7 로깅 181

CHAPTER 11 스마트 포인터 187

11.1 포인터 187
__스마트 포인터 188
11.2 Box 타입 191
__Box〈T〉 194
__Box 사용하기 194
__dyn과 Box로 트레이트 타입 표현하기 195
11.3 Rc〈T〉 198
__마지막 순간까지 198
__퀴즈 201
11.4 RefCell〈T〉 202
__Rc〈T〉의 한계 202
__내부 가변성 205
__Rc〈RefCell〈T〉〉 206
11.5 스마트 포인터 정리 208
11.6 연습문제 209

CHAPTER 12 멀티스레딩 211

12.1 스레드 스폰 212
__싱글 스레드 스폰하기 212
__데몬 스레드 만들기 214
__join 함수를 사용해 스레드 기다리기 216
12.2 GIL 218
__GIL의 단점 219
12.3 스레드와 소유권 220
__범위 제한 스레드 223
__스태틱 225
12.4 Arc 225
__레퍼런스 카운팅 226
__Arc 227
12.5 뮤텍스 229
12.6 메시지 전달 233

CHAPTER 13 비동기 프로그래밍 237

13.1 비동기 프로그래밍 237
__멀티스레드와 비동기의 차이점 238
__비동기 프로그램의 작동 방식 238
13.2 비동기 프로그래밍 만들기 239
__비동기 런타임 239
__비동기 함수 만들기 240
__여러 작업 실행하기 242
13.3 예제: 빠르게 HTTP 요청 보내기 245
__동기 방식 245
__비동기 방식 248

CHAPTER 14 테스트 255

14.1 프로그래밍에서 테스트가 필요한 이유 255
14.2 단위 테스트 256
__함수 테스트 256
__클래스와 구조체 테스트 260
__비동기 함수 테스트 263
14.3 문서 테스트 264
14.4 모킹 266

CHAPTER 15 파이썬 바인딩 271

15.1 파이썬 가상 환경 만들기 271
__가상 환경 271
__pipenv 271
15.2 러스트 프로젝트 생성하기 273
__파이썬 바인딩 273
__maturin 274
__라이브러리 크레이트 만들기 275
15.3 파이썬에서 러스트 코드 실행하기 276
__개발 모드로 빌드하기 276
__릴리스 모드로 빌드하기 278
15.4 PyO3와 GIL 279
__GIL 획득과 해제 279

APPENDIX A 연습문제 정답 282

찾아보기 291
Author
윤인도
SAP Labs Korea의 백엔드 개발자. 한 줄의 코드가 세상을 더 나은 곳으로 바꿀 수 있다고 믿으며, 많은 이에게 지식을 전파하기 위해 여러 기업과 대학을 오가며 강연을 하고 있다. 최근에는 프로그래머스 스쿨에서 ‘파이썬 프로그래머를 위한 러스트 입문’ 온라인 강의를 진행다. 이 외에도 클래스 101에서 ‘파이썬 기초부터 업무 자동화’, 베어유에서 ‘React App 만들기’ 등 온라인 교육 경력이 다수 있다.
SAP Labs Korea의 백엔드 개발자. 한 줄의 코드가 세상을 더 나은 곳으로 바꿀 수 있다고 믿으며, 많은 이에게 지식을 전파하기 위해 여러 기업과 대학을 오가며 강연을 하고 있다. 최근에는 프로그래머스 스쿨에서 ‘파이썬 프로그래머를 위한 러스트 입문’ 온라인 강의를 진행다. 이 외에도 클래스 101에서 ‘파이썬 기초부터 업무 자동화’, 베어유에서 ‘React App 만들기’ 등 온라인 교육 경력이 다수 있다.