logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

러스트 프로페셔널 코드

러스트 프로페셔널 코드

(동시성, 성능 최적화, 디자인 패턴 등 러스트 전문가가 되기 위한 모든 것)

브렌든 매슈스 (지은이), 장연호 (옮긴이)
제이펍
27,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
24,300원 -10% 0원
1,350원
22,950원 >
24,300원 -10% 0원
카드할인 10%
2,430원
21,870원 >
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 10개 14,000원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
aladin 18,900원 -10% 940원 16,070원 >

책 이미지

러스트 프로페셔널 코드
eBook 미리보기

책 정보

· 제목 : 러스트 프로페셔널 코드 (동시성, 성능 최적화, 디자인 패턴 등 러스트 전문가가 되기 위한 모든 것)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9791193926482
· 쪽수 : 304쪽
· 출판일 : 2024-09-04

책 소개

안정성, 성능, 보안성이라는 삼박자를 갖춘 러스트. 이 강력한 언어의 잠재력을 끌어내는 것은 쉽지 않지만, 이 책과 함께라면 가능하다. 풍부한 예제를 통해 시스템 프로그래밍부터 웹 개발, 비동기와 동시성 프로그래밍, 성능 최적화까지 빠르게 학습할 수 있다.

목차

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

CHAPTER 1 러스트스러운 느낌 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

PART I 프로 러스트
CHAPTER 2 카고로 프로젝트 관리하기 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.1 Cargo.lock 파일 다루기 22
2.3 기능 플래그 22
2.4 종속성 패치하기 25
__2.4.1 간접 종속성 28 / 2.4.2 종속성 패치의 모범 사례 28
2.5 크레이트 게시 29
__2.5.1 CI/CD 통합 29
2.6 C 라이브러리에 연결하기 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

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

PART II 코어 데이터
CHAPTER 4 데이터 구조 79
4.1 String, str, &str, &'static str에 대한 설명 80
__4.1.1 String과 str 80 / 4.1.2 효율적으로 문자열 사용하기 81
4.2 슬라이스와 배열 이해하기 84
4.3 벡터 87
__4.3.1 Vec으로 더 깊이 뛰어들기 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.6 Result로 오류 처리하기 105
4.7 From/Into로 타입 변환하기 107
__4.7.1 TryFrom과 TryInto 109 / 4.7.2 From과 Into를 사용하는 타입 변환의 모범 사례 110
4.8 러스트 타입으로 FFI 호환성 처리하기 110
4.9 요약 112

CHAPTER 5 메모리 작업 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

PART III 정확성
CHAPTER 6 단위 테스트 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

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

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

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

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

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

APPENDIX A 설치 지침 275
찾아보기 279

저자소개

브렌든 매슈스 (지은이)    정보 더보기
소프트웨어 엔지니어이자 기업가이며, 초창기부터 러스트를 사용해온 오픈 소스 참여자다. 13년 이상 깃허브 기여자로 활동하며, 여러 러스트 크레이트 및 오픈 소스 러스트 프로젝트에 참여했고, 제품 수준의 러스트 애플리케이션을 전문적으로 구축했다.
펼치기
장연호 (옮긴이)    정보 더보기
20여 년간 웹프로그래머로 활동했으며 의료, 교육, 메타버스 등 다양한 분야에서 일했다. 취미로 OCaml, Common Lisp를 이용해 게임을 제작하고 있으며, 신화와 역사, SF와 판타지 콘텐츠를 즐겨 본다. 깃허브 github.com/siabard 블로그 siabard.wordpress.com
펼치기

책속에서



이 책은 초중급 러스트 개발자가 언어, 도구, 데이터 구조, 메모리 관리, 테스트, 비동기 프로그래밍, 모범 사례를 최대한 빨리 익히는 데 초점을 맞추고 있다. 이 책을 다 읽을 때쯤이면 관용적(또는 러스트적(Rustaceous)) 러스트로 출시 품질에 준하는 소프트웨어 시스템을 구축하는 데 자신감을 갖게 될 것이다. 이 책은 러스트 언어나 그 도구에 대한 완전한 참고서는 아니다. 대신 도움이 될 만한 것에 주목하고 있다.


러스트가 제공하는 다양한 도구를 활용하면 코드 생산성을 향상하고 고품질 소프트웨어를 생산하는 데 필요한 작업량을 줄일 수 있다. 러스트의 컴파일러인 rustc는 LLVM을 기반으로 구축되었으므로 러스트는 LLVM의 디버거인 LLDB 같은 LLVM에서 제공하는 많은 도구를 그대로 이용할 수 있다. 이런 도구 이외에도 러스트에서 제공하는 다양한 러스트용 도구를 알아보자.


추천도서

이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책
9791193926581