이 책은 파이썬 코드와 러스트 코드를 비교하면서 차이점과 유사점을 발견하고, 러스트를 쉽게 이해하도록 도와준다. 파이썬을 모르더라도 친절한 설명으로 러스트의 타입 시스템, 함수, 클로저, 매크로 등 기본 개념을 빠르게 익힐 수 있으며, 파이썬에 익숙하다면 러스트의 소유권과 제네릭, 트레이트, 멀티스레딩, 테스트 등 고급 개념을 확실히 이해하는 데 도움이 될 것이다. 러스트를 사용해본 개발자라면 다른 언어와의 비교를 통해 러스트에 대해 미처 몰랐던 부분을 발견할 수 있다.
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
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 만들기’ 등 온라인 교육 경력이 다수 있다.