러스트 프로그래밍 : 가장 사랑받는 언어 러스트를 배우는 가장 확실한 방법

러스트 프로그래밍 : 가장 사랑받는 언어 러스트를 배우는 가장 확실한 방법

$26.23
저자

윤인도

저자:윤인도
SAPLabsKorea의백엔드개발자.한줄의코드가세상을더나은곳으로바꿀수있다고믿으며,많은이에게지식을전하기위해여러기업과대학에서강연하고있다.또한프로그래머스,클래스101,인프런,베어유등에서다양한주제로온라인클래스도진행하고있다.

목차

추천사x
베타리더후기xi
시작하며xiii
이책에대하여xiv

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

CHAPTER2변수와상수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

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

CHAPTER4조건문과반복문43
4.1if/else43
__letif45
4.2for47
4.3while49
4.4loop50
4.5match52
4.6연습문제54

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

CHAPTER6자료구조와이터레이터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열거형94
6.8이터레이터98
__이터레이터의개념98
__이터레이터를소비하는메서드100
__새로운이터레이터를만드는메서드101
6.9연습문제105

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

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

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

CHAPTER10에러처리와로깅163
10.1에러처리의철학163
__파이썬의에러처리163
__러스트의에러처리164
10.2panic!165
10.3unwrap167
__unwrap167
__unwrap_or170
__unwrap_or_else171
__unwrap_or_default172
10.4expect173
10.5?연산자174
10.6커스텀에러정의177
10.7로깅181

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

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

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

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

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

APPENDIXA연습문제정답282

찾아보기291

출판사 서평

러스트에입문하는가장빠르고확실한방법,파이썬코드와비교하기

파이썬은간결한문법덕분에널리사랑받는언어이고,러스트는고성능프로그램을구현할수있는언어다.파이썬패키지와자바스크립트패키지를러스트로대체하려는분야가많아지고있고,이추세는계속될것으로보인다.이러한상황에서파이썬사용자중에는진입장벽이높은러스트에발을들이기를망설이고있는사람이많다.

이책은파이썬을알고있는사람이가장빠르고확실하게러스트에입문할수있게쓰인책이다.파이썬코드에서병목현상이발생하는부분을러스트로대체하면성능을크게높일수있으며,러스트는파이썬보다멀티스레딩구현이쉽고,개발도구가매우편리하다.파이썬은동적타입언어로주로객체지향프로그래밍을하고,러스트는정적타입언어로주로함수형프로그래밍을한다는차이점이있지만이책과함께라면쉽게그차이를이해할수있을것이다.

1장에서는러스트를배워야하는이유와실무에서러스트를활용한사례를알아보고,실행환경을차근차근구축한다.2장에서는변수를선언하는방법과타입시스템,3장에서는함수와클로저를정의하는방법과매크로를알아본다.4장에서는흐름제어문,5장에서는소유권을배운다.6장에서는러스트내장자료형과함수형프로그래밍에서중요한이터레이터를알아보고,7장에서는객체지향방식과구조체를사용한방식을비교해본다.8장에서는코드가길어지고복잡해질때프로젝트를모듈화하는방법을배운다.

9장에서는제네릭과트레이트로코드를추상화하는방법과러스트에서라이프타임을사용해변수의범위를제한하는방법을살펴본다.10장에서는에러처리방법과디버깅을위한로깅방법을,11장에서는스마트포인터를통해힙메모리공간을안전하게사용할수있는방법을알아본다.12장에서는멀티스레딩을효율적이고안전하게수행하는방법을살펴보고,13장에서는비동기프로그래밍을알아본다.14장에서는단위테스트와문서테스트를수행하는방법을,15장에서는러스트코드를파이썬에서실행해서GIL을우회하고빠른연산속도를얻는방법을설명한다.

중간중간연습문제를통해책에서배운지식을체크할수도있어개념을확실히익힐수있을것이다.러스트의가능성에관심이있는모든개발자에게이책을추천한다.

주요내용
*소유권으로메모리관리하기
*파이썬의객체지향과러스트의구조체비교하기
*제네릭과트레이트로코드추상화하기
*에러처리와로깅방법
*스마트포인터로힙메모리공간안전하게사용하기
*효율적이고안전하게멀티스레딩수행하기
*비동기프로그래밍과테스트
*러스트의파이썬바인딩