러스트 프로페셔널 코드 : 동시성, 성능 최적화, 디자인 패턴 등 러스트 전문가가 되기 위한 모든 것

러스트 프로페셔널 코드 : 동시성, 성능 최적화, 디자인 패턴 등 러스트 전문가가 되기 위한 모든 것

$27.88
저자

브렌든매슈스

저자:브렌든매슈스
소프트웨어엔지니어이자기업가이며,초창기부터러스트를사용해온오픈소스참여자다.13년이상깃허브기여자로활동하며,여러러스트크레이트및오픈소스러스트프로젝트에참여했고,제품수준의러스트애플리케이션을전문적으로구축했다.

역자:장연호
20여년간웹프로그래머로활동했으며의료,교육,메타버스등다양한분야에서일했다.취미로OCaml,CommonLisp를이용해게임을제작하고있으며,신화와역사,SF와판타지콘텐츠를즐겨본다.
깃허브github.com/siabard
블로그siabard.wordpress.com

목차


옮긴이머리말xii
베타리더후기xiv
시작하며xvi
이책에대하여xvii
감사의글xxi
표지에대하여xxii

CHAPTER1러스트스러운느낌1
1.1러스트는무엇인가?2
1.2러스트는무엇이독특한가?4
__1.2.1러스트는안전하다5/1.2.2러스트는현대적이다6/1.2.3순수오픈소스로서의러스트7/1.2.4러스트와다른언어비교7
1.3언제러스트를써야하는가?8
__1.3.1러스트사용사례9
1.4필요한도구들10
1.5요약10

PARTI프로러스트
CHAPTER2카고로프로젝트관리하기13
2.1카고둘러보기14
__2.1.1기본사용법14/2.1.2새애플리케이션이나라이브러리만들기15/2.1.3빌드,실행,테스트17/2.1.4툴체인간변경18
2.2의존성관리19
__2.2.1Cargo.lock파일다루기22
2.3기능플래그22
2.4종속성패치하기25
__2.4.1간접종속성28/2.4.2종속성패치의모범사례28
2.5크레이트게시29
__2.5.1CI/CD통합29
2.6C라이브러리에연결하기32
2.7바이너리배포35
__2.7.1교차컴파일36/2.7.2정적연결바이너리만들기37
2.8러스트프로젝트문서화하기38
__2.8.1문서화예제41
2.9모듈42
2.10작업공간46
2.11전용빌드스크립트48
2.12임베디드환경용러스트프로젝트51
__2.12.1메모리할당52
2.13요약52

CHAPTER3러스트도구이용하기53
3.1러스트도구개요54
3.2rust-analyzer를이용하여러스트통합개발환경에통합55
__3.2.1마법완성56
3.3rustfmt로코드정리하기59
__3.3.1rustfmt설치하기61/3.3.2rustfmt설정하기61
3.4코드품질을향상하기위한Clippy의사용62
__3.4.1Clippy설치하기62/3.4.2Clippy의린트63/3.4.3Clippy설정하기65/3.4.4Clippy제안을자동으로적용하기65/3.4.5Clippy를CI/CD에서사용하기66
3.5sccache로컴파일시간단축하기67
__3.5.1sccache설치하기67/3.5.2sccache설정하기68
3.6VSCode등의통합개발환경과통합하기68
3.7툴체인사용하기:안정이냐nightly냐69
__3.7.1nightly전용기능70/3.7.2공개된크레이트에nightly채널사용하기70
3.8추가적인도구들:cargo-update,cargo-expand,cargo-fuzz,cargo-watch,cargo-tree71
__3.8.1패키지를최신으로업데이트하기:cargo-update72/3.8.2매크로디버깅하기:cargo-expand72/3.8.3cargo-fuzz로테스트하기73/3.8.4cargo-watch로반복적개발74/3.8.5종속성검사:cargo-tree75
3.9요약76

PARTII코어데이터
CHAPTER4데이터구조79
4.1String,str,&str,&'staticstr에대한설명80
__4.1.1String과str80/4.1.2효율적으로문자열사용하기81
4.2슬라이스와배열이해하기84
4.3벡터87
__4.3.1Vec으로더깊이뛰어들기87/4.3.2벡터래핑하기89/4.3.3벡터관련타입89
4.4맵90
__4.4.1사용자지정해시함수91/4.4.2해시가능한타입만들기92
4.5러스트타입:기본형,구조체,열거형,별칭93
__4.5.1기본타입사용하기93/4.5.2튜플사용하기97/4.5.3구조체사용하기98/4.5.4열거형사용하기101/4.5.5별칭사용하기104
4.6Result로오류처리하기105
4.7From/Into로타입변환하기107
__4.7.1TryFrom과TryInto109/4.7.2From과Into를사용하는타입변환의모범사례110
4.8러스트타입으로FFI호환성처리하기110
4.9요약112

CHAPTER5메모리작업113
5.1메모리관리:힙과스택114
5.2소유권이해하기:복사,대여,참조,이동116
5.3깊은복사118
5.4복사피하기119
5.5박스할것인가말것인가:스마트포인터121
5.6참조카운트125
5.7쓰기시복제128
5.8맞춤할당자132
__5.8.1맞춤할당자작성하기133/5.8.2보호메모리를위한맞춤할당자만들기136
5.9스마트포인터요약141
5.10요약142

PARTIII정확성
CHAPTER6단위테스트145
6.1러스트에서의테스트는어떤차이가있는가?146
6.2내장테스트기능살펴보기148
6.3테스트프레임워크149
6.4테스트하지말아야할것:컴파일러가당신보다더잘아는이유153
6.5병렬테스트특수사례와전역상태처리154
6.6리팩터링에대한고려160
6.7리팩터링도구161
__6.7.1재형식화161/6.7.2이름바꾸기161/6.7.3재배치163/6.7.4다시쓰기163
6.8코드커버리지165
6.9변화하는생태계에대처하기167
6.10요약168

CHAPTER7통합테스트169
7.1통합테스트와단위테스트비교170
7.2통합테스트전략173
7.3내장통합테스트와외부통합테스트비교175
7.4통합테스트라이브러리와도구176
__7.4.1assert_cmd를사용하여CLI애플리케이션테스트하기176/7.4.2통합테스트에proptest사용하기178/7.4.3다른통합테스트도구179
7.5퍼즈테스트180
7.6요약184

PARTIV비동기러스트
CHAPTER8비동기러스트187
8.1런타임189
8.2비동기식으로사고하기190
8.3Futures:비동기작업결과처리하기192
__8.3.1#[tokio::main]으로런타임정의하기194
8.4async와.await:언제그리고어디서사용하는가195
8.5async으로하는동시성과병렬성197
8.6async관찰자구현하기202
8.7동기식과비동기식을혼합하기208
8.8async를사용하면안될때210
8.9비동기코드의추적과디버깅211
8.10테스트시비동기다루기214
8.11요약216

CHAPTER9HTTPRESTAPI서비스만들기217
9.1웹프레임워크고르기218
9.2아키텍처만들기219
9.3API설계220
9.4라이브러리와도구221
9.5애플리케이션기본틀작성223
__9.5.1main()223/9.5.2init_tracing()224/9.5.3init_dbpool()225
9.6데이터모델링227
__9.6.1SQL스키마227/9.6.2데이터와인터페이싱하기228
9.7API경로선언하기232
9.8API경로구현233
9.9오류처리235
9.10서비스실행237
9.11요약241

CHAPTER10HTTPRESTAPI명령행도구만들기243
10.1사용할도구와라이브러리결정244
10.2CLI설계하기245
10.3명령선언하기246
10.4명령구현하기248
10.5요청의구현250
10.6오류를적절히처리하기251
10.7CLI검사하기252
10.8요약255

PARTV최적화
CHAPTER11최적화259
11.1무비용추상화260
11.2벡터261
__11.2.1벡터메모리할당261/11.2.2벡터반복자264/11.2.3Vec과슬라이스를이용한빠른복사266
11.3SIMD267
11.4Rayon을통한병렬화269
11.5러스트를사용하여다른언어가속화하기272
11.6이제부터나아가야할길273
11.7요약274

APPENDIXA설치지침275
찾아보기279

출판사 서평

러스트프로페셔널로가는길,실전중심의마스터클래스

러스트실력을높이는데답답함을느끼나요?이책《러스트프로페셔널코드》는여러분을러스트마스터로도약하게할최고의가이드입니다.시스템프로그래밍부터웹개발,비동기프로그래밍까지실전에서바로사용할수있는풍부한예제를통해러스트의진정한힘을경험해보세요.또한,프로젝트관리도구,디자인패턴,코드분석및테스트등프로의노하우를한권에담아개발자여러분의역량을한층더강화해줄것입니다.

러스트언어의전반적인개념,철학,작동원리등을포괄적으로이해하고,도구의한계와가능성을명확히이해하도록돕는이책은,러스트를사용하여신속하게생산성을높일수있는방법을제시합니다.마치경험이풍부한선배프로그래머가이제막여러문제를겪기시작한후배에게해결책을차근차근알려주는느낌으로구성하여실용적이면서도깊이있는해설을담았습니다.이를통해언어를심도있게이해하도록도우며,러스트생태계의다양한면면을살펴봄으로써보다넓은시야를갖고문제를해결할수있도록안내합니다.

이책은러스트의데이터구조와메모리관리모델을상세히설명하며,소유권개념,스마트포인터,맞춤할당자와같은핵심주제를다룹니다.정확한테스트기법과비동기프로그래밍의핵심을익히고,러스트의최적화방법까지상세히다루어최적의성능을끌어내는비법을전수합니다.또한,HTTPRESTAPI서비스와명령행도구를만드는실습을통해실제프로젝트에바로적용할수있는능력을기릅니다.

《러스트프로페셔널코드》는정체된러스트실력향상을극복하는데큰도움이되는책입니다.풍부한예제와실전에서바로활용할수있는조언을통해,러스트의잠재력을극대화하고,실전에서러스트마스터로거듭나보세요.러스트실력을한단계올리고싶은분들께강력히추천합니다.

주요내용

시스템프로그래밍과웹개발을아우르는러스트핵심기술
러스트도구활용과효과적인테스팅방법론
비동기및동시성프로그래밍마스터하기
실전에바로적용가능한API설계및구현기법
효율적인메모리관리와성능최적화전략