러스트 프로그래밍 입문 (8개 프로그램을 만들면서 러스트 컴파일러와 친해지기)

러스트 프로그래밍 입문 (8개 프로그램을 만들면서 러스트 컴파일러와 친해지기)

$32.00
Description
깐깐하기로 유명한 러스트 컴파일러?
에러 메시지는 장애물이 아니라 안내자다!
러스트 입문자가 가장 먼저 부딪히는 벽은 문법이 아니라 컴파일러의 반응이다. 코드를 작성하고 실행하기까지 러스트 컴파일러는 수많은 에러 메시지를 던진다. 이 책은 에러를 피하지 않고 직접 하나씩 고쳐 나가는 과정 자체를 러스트 학습의 중심에 둔다. 소유권, 참조, 에러 처리 같은 핵심 개념은 직접 코드를 짜다 마주치는 컴파일 에러를 따라가며 익힌다. 무엇을 어떻게 고칠지는 항상 컴파일러의 메시지가 알려 준다. 이 과정을 반복하다 보면 러스트가 요구하는 사고 방식을 자연스럽게 배울 수 있다.
저자

안도카즈시게

(安東一慈)
도쿄대학교공학부를졸업했다.에스티(estie)의소프트웨어엔지니어로사내부동산데이터관리시스템을개발한다.데이터가공부터프런트엔드구현까지폭넓게담당하고있으며일본에서부동산등기부를가장잘아는러스터션이라고자칭한다.

목차

▶1장러스트는어디서쓸까요?1
1.1러스트란?1
1.2러스트는고성능2
____1.2.1기계어로컴파일된다3
____1.2.2가비지컬렉션이필요없다3
____1.2.3제로코스트추상화를실현한다4
1.3러스트는안전성이높다4
1.4러스트는생산성이높다5
____1.4.1패키지매니저5
____1.4.2단위테스트5
____1.4.3포매터와린터6
____1.4.4풍부한표현력6
1.5러스트,어디서쓰고있을까?8
1.6활발한커뮤니티활동8

▶2장러스트로프로그램을실행해보자:Hello,world!9
2.1러스트설치하기9
____2.1.1macOS와리눅스에서설치하기10
____2.1.2러스트개발도구구성10
2.2러스트로프로그램작성하기13
____2.2.1코드를작성하기전에14
____2.2.2rustc사용하기16
____2.2.3Cargo사용하기19
____2.2.4cargonew로신규프로젝트작성하기19
____2.2.5프로그램작성하기요약24
2.3개발환경만들기25
____2.3.1VSCode를더편리하게사용하기25

▶3장인터랙티브프로그램만들기[계산퀴즈]29
3.1애플리케이션사양30
____3.1.1실행예30
3.2준비작업30
____3.2.1코드안주석30
____3.2.2값과데이터타입31
____3.2.3변수33
____3.2.4표현식과구문34
____3.2.5불변성과가변성34
3.3퀴즈정답판정하기35
____3.3.1프로젝트작성35
____3.3.2사용자입력받기36
____3.3.3덧셈문제만들기:if문38
____3.3.4뺄셈문제만들기:unsigned/signed40
____3.3.5무작위문제생성하기42
3.4다양한제어흐름사용하기45
____3.4.1종료판정하기:forin/while45
____3.4.2퀴즈종류나누기:match46
____3.4.3정답을맞힐때까지문제반복하기:loop48

▶4장다양한자료구조다루기[포커게임]53
4.1애플리케이션사양53
____4.1.1실행예54
4.2프로젝트작성하기55
4.3트럼프카드정의하기55
4.4트럼프카드를변수에대입하기57
4.552장카드더미만들기58
4.6카드더미섞기59
4.7카드더미에서카드뽑기59
4.8패교환61
4.9조합판정62

▶5장함수와메서드다루기[메모리기능이있는계산기]65
5.1애플리케이션사양66
5.2덧셈,뺄셈,곱셈,나눗셈기능만들기66
____5.2.1함수를사용하지않는구현66
____5.2.2함수정의와호출방법68
____5.2.3처리를함수로분할하기71
____5.2.4함수의장점72
5.3메모리기능구현하기74
____5.3.1메모리읽고쓰기74
____5.3.2참조전달과값전달79
5.4메모리기능확장하기82
____5.4.1메모리를10개로늘리기82
____5.4.2소유권시스템86
____5.4.3재도전:메모리를10개로늘리기90
____5.4.4메모리이름지정하기94
5.5복잡한수식계산하기107
____5.5.1토큰의미해석위치정리하기108
____5.5.2[심화내용]괄호가없는수식계산하기112
____5.5.3[심화내용]괄호가있는수식계산하기116

▶6장파일입출력이있는명령줄도구만들기[가계부프로그램]123
6.1애플리케이션사양123
6.2명령어만들기124
____6.2.1CLI명령어만들기124
____6.2.2서브명령어만들기126
6.3CSV파일다루기130
____6.3.1파일작성하기:new명령어구현하기130
____6.3.2파일에내용추가하기:deposit,withdraw명령어구현하기135
____6.3.3여러레코드일괄작성하기:import명령어구현하기144
____6.3.4여러파일조작하기:report명령어구현하기153

▶7장직접만든라이브러리공개하기[도서관리프로그램]159
7.1패키지,크레이트,모듈이해하기159
____7.1.1패키지와크레이트160
____7.1.2모듈이해하기162
____7.1.3모듈사용하기162
____7.1.4모듈을여러파일로분할하기173
7.2외부크레이트사용하기175
____7.2.1crates.io175
____7.2.2크레이트추가하기176
7.3라이브러리직접만들기181
____7.3.1구현하기181
____7.3.2다른크레이트불러오기186
____7.3.3깃사용하기187
____7.3.4만든라이브러리사용하기192

▶8장단위테스트작성하기[스터디모임캘린더]195
8.1테스트란무엇인가?196
____8.1.1끝없는버그196
____8.1.2테스트하기197
____8.1.3이장에서다루는내용197
8.2일정을읽고쓰는기능구현하기198
____8.2.1애플리케이션사양198
____8.2.2데이터저장형식198
____8.2.3일정목록표시하기199
____8.2.4일정추가하기203
8.3중복일정확인하기206
____8.3.1중복일정판정206
____8.3.2테스트작성하기209
____8.3.3중복확인로직수정하기215
____8.3.4테스트간결하게작성하기218
8.4일정삭제하기225
____8.4.1일정삭제기능구현하기225
____8.4.2디버깅방법229

▶9장오류처리하기[스터디모임캘린더]239
9.1오류처리239
9.2오류처리의기본개념240
9.3오류타입정의하기242
9.4?를사용한오류처리243
9.5실용적인오류처리244
____9.5.1달력읽기함수의오류처리244
____9.5.2달력저장함수의오류처리245
____9.5.3사용자지정오류타입구현하기246
____9.5.4오류변환로직구현하기248
____9.5.5thiserror248

▶10장간단한웹앱만들기[TODO앱]251
10.1웹브라우저작동원리251
10.2TODO앱만들기252
____10.2.1애플리케이션사양253
____10.2.2메시지표시하기253
____10.2.3HTML표시하기257
____10.2.4데이터저장하기267
____10.2.5TODO앱완성하기274

▶11장직접만든웹앱공개하기[TODO앱]287
11.1사전준비287
11.2깃리포지터리작성288
11.3Render.com등록하기290

▶12장병렬처리다루기[썸네일생성프로그램]295
12.1썸네일생성프로그램만들기295
____12.1.1병렬처리프로그램작성하기296
12.2병렬처리시작하기300
____12.2.11을10억번더하기300
____12.2.2이상한덧셈301
____12.2.3배타적제어로안전한데이터동기화304
12.3다양한데이터동기화방법309
____12.3.1썸네일생성도구병렬화309
____12.3.2채널313
____12.3.3rayon으로간편하게병렬처리하기316

▶13장채용면접대비하기321
13.1전형절차321
____13.1.1서류전형321
____13.1.21차면접322
____13.1.3기술면접322
____13.1.42차면접323
13.2기술면접준비하기323
____13.2.1문제A323
____13.2.2문제A풀이324
____13.2.3문제B328
____13.2.4문제B풀이329

찾아보기332

출판사 서평

8개프로그램을완성하며배우는러스트식사고법!
프로그램을만들면서문제를해결하는힘을기른다!

이책은문법부터외우기보다실제로실행되는프로그램하나를처음부터끝까지완성하는과정을먼저보여준다.각장의프로그램은하나의과제를잘게쪼개서생각하도록짜여있고구현에필요한개념만그때그때단계적으로등장한다.구조체,열거형,컬렉션같은개념도따로떼어설명하지않는다.계산기같은실제프로그램을구현하면서왜이런타입이필요한지,왜이런구조가안전한지를직접보여준다.이렇게문제를쪼개고,구현하고,수정하는과정을거치며러스트식문제해결법을기른다.

이책에서다루는내용
●계산퀴즈
●계산기
●도서관리프로그램
●TODO앱
●포커게임
●가계부프로그램
●스터디모임캘린더
●썸네일생성프로그램