본문 바로가기

도서 소개

러스트 프로그래밍 공식 가이드

이 책의 종이책은 현재 절판입니다. 그간 읽어주신 독자님들께 감사드립니다.
전자책은 계속 판매 중이며, 개정판은 2024년 2월 말경 출간 예정입니다(https://jpub.tistory.com/1529).

 

러스트 핵심 멤버 2인이 집필하고 RUST 2018이 반영된 국내 첫 러스트 공식 문서

 

도서구매 사이트(가나다순)

[교보문고] [도서11번가] [반디앤루니스] [알라딘] [영풍문고] [예스이십사] [인터파크] [쿠팡]

 

전자책 구매 사이트(가나다순)

[교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] [인터파크]

 

출판사 제이펍

원출판사 No Starch Press

원서명 The Rust Programmming Language(Covers Rust 2018)(원서 ISBN: 9781718500440)

저자명 스티브 클라브닉, 캐롤 니콜스

역자명 장현희

출판일 20191128

페이지 656

판 형 188*245*31.9

제 본 무선(soft cover)

정 가 34,000원

ISBN 979-11-88621-72-9(93000)

키워드 러스트 / 카고 / 소유권 / 빌드 / 패키지 / 크레이트 / 모듈 / 제네릭 / I/O 프로젝트 / 클로저 / 반복자 / crates.jo / 스마트 포인터

분야 프로그래밍 / 러스트

 

관련 사이트

저작권사 도서 소개 페이지

아마존 도서 소개 페이지

러스트 공식 사이트

러스트 프로그래밍 공식 가이드 영문 사이트

 

관련 포스트

2019/11/15 - [출간전 책소식] - 국내에 처음 소개되는 러스트, 그것도 공식 가이드!

 

관련 파일 다운로드

예제 코드

 

 

 

 

강의보조 자료 다운로드

교재로 채택하신 분들은 메일을 보내주시면 아래의 자료를 보내드리겠습니다: jeipubmarketer@gmail.com

■ 본문의 그림과 표

 

샘플 PDF

(차례, 감사의 글, 이 책에 대하여, 베타리더 후기, 1장 '헬로, 안드로이드' 전체, 3장 '애플리케이션, 액티비티, 프래그먼트, 기타 등등' 일부, 5장 '사용자 인터페이스 빌드하기' 일부, 7장 '인터넷 리소스 사용하기' 일부)

 
러스트프로그래밍공식가이드_sample.pdf
다운로드

 

정오표 페이지

https://jpub.tistory.com/1020

 

도서구매 사이트(가나다순)

[교보문고] [도서11번가] [반디앤루니스] [알라딘] [영풍문고] [예스이십사] [인터파크] [쿠팡]

 

전자책 구매 사이트(가나다순)

[교보문고] [구글북스] [리디북스] [알라딘] [예스이십사] [인터파크]

 

도서 소개

고수준 프로그래밍 언어와 저수준 시스템 제어를 결합했다!

러스트의 핵심 개발자 두 명이 소개하는 프로그래머와 시스템 개발자 모두를 위한 러스트 프로그래밍!

 

러스트 프로그래밍 공식 가이드는 빠르고 안전한 소프트웨어를 개발하기 위한, 오픈 소스 시스템 프로그래밍 언어인 러스트의 첫 한국어판 번역 도서이자 공식 안내서다. 러스트는 고수준의 소프트웨어 공학을 담고 있으면서 일반적인 저수준 언어의 불편함을 해소하였다. 따라서 메모리 사용 등의 저수준 상세 구현을 제어할 수 있는 옵션을 제공한다.

 

이 책에서는 러스트의 핵심 개발자 두 명이 러스트 언어의 설치부터 견고하고 확장 가능한 프로그램을 작성하는 기법에 이르기까지 러스트가 제공하는 모든 기능의 활용 방법을 설명한다. 이 책을 통해 함수의 생성, 데이터 타입의 선택, 변수의 바인딩 같은 기본적인 개념부터 다음의 고급 개념까지 학습할 수 있다.

 

소유권과 대여, 수명 그리고 트레이트

러스트의 메모리 안정성 보장을 활용한 빠르고 안전한 프로그래밍 작업

테스트, 에러 처리 그리고 효율적인 리팩토링

제네릭, 스마트 포인터, 멀티스레딩, 트레이트 객체, 그리고 고급 패턴 매칭

러스트의 내장 패키지 매니저인 카고를 이용한 빌드, 테스트, 코드의 문서화 및 의존성 관리

러스트의 고급 컴파일러 기능을 활용한 컴파일러 주도 프로그래밍 기법

 

지은이 소개

스티브 클라브닉(Steve Klabnik)

러스트 문서화 팀을 이끌고 있으며, 러스트의 핵심 개발자 중 한 명이다. 콘퍼런스의 발표자로 다양한 오픈 소스에 기여하고 있으며, 그전에는 루비(Ruby)’루비 온 레일즈(Ruby on Rails)’ 관련 프로젝트에 참여했다. 지금은 모질라(Mozilla)에 근무하고 있다.

 

캐롤 니콜스(Carol Nichols)

러스트 코어 팀의 구성원이자 세계 최초의 러스트 소프트웨어 컨설팅 기업인 Integer 32, LLC의 공동 창립자다. 또한, 러스트 벨트(Rust Belt)라는 러스트 콘퍼런스의 주최자이기도 하다.

 

옮긴이 소개

장현희

21년째 개발자의 길을 걷고 있다. 지난 19년간 총 23종의 개발 관련서를 집필하거나 번역했다. 현재 캐나다 밴쿠버 근교에 있는 PressReader에서 시니어 소프트웨어 엔지니어로 근무 중이며, 국내 개발자들에게 조금이라도 도움이 되는 번역서를 만들기 위해 틈틈이 노력하고 있다. 앞으로도 책이라는 매개체를 통해 멀리서나마 국내 개발자들과 계속해서 소통할 계획이다.

 

차례

CHAPTER 1 시작하기 1

1.1 설치하기 1

1.2 첫 번째 러스트 프로그램 작성하기 4

1.3 카고 알아보기 9

 

CHAPTER 2 숫자 맞히기 게임의 구현 15

2.1 새 프로젝트 셋업하기 16

2.2 플레이어가 예측한 값 처리하기 17

2.3 난수 생성하기 23

2.4 난수와 사용자의 입력 비교하기 28

2.5 반복문을 이용해 다중 입력 지원하기 32

 

더보기

CHAPTER 3 일반 프로그래밍 개념 39

3.1 변수와 가변성 40

3.2 데이터 타입 45

3.3 함수 53

3.4 주석 60

3.5 흐름 제어 61

 

CHAPTER 4 소유권 73

4.1 소유권이란? 73

4.2 참조와 대여 86

4.3 슬라이스 타입 93

 

CHAPTER 5 구조체를 활용한 관련 데이터의 구조화 101

5.1 구조체 정의와 인스턴스 생성 102

5.2 구조체를 사용하는 예제 프로그램 107

5.3 메서드 문법 112

 

CHAPTER 6 열거자와 패턴 매칭 119

6.1 열거자 정의하기 120

6.2 match 흐름 제어 연산자 127

6.3 if let을 이용한 간결한 흐름 제어 133

 

CHAPTER 7 패키지, 크레이트, 모듈로 프로젝트 관리하기 137

7.1 패키지와 크레이트 138

7.2 모듈을 이용한 범위와 접근성 제어 140

7.3 경로를 이용해 모듈 트리의 아이템 참조하기 142

7.4 use 키워드로 경로를 범위로 가져오기 150

7.5 모듈을 다른 파일로 분리하기 157

 

CHAPTER 8 범용 컬렉션 161

8.1 벡터에 일련의 값 저장하기 162

8.2 String 타입에 UTF-8 형식의 텍스트 저장하기 168

8.3 키와 값을 저장하는 해시 맵 178

 

CHAPTER 9 에러 처리 185

9.1 panic! 매크로를 이용한 회복 불가능한 에러 처리 186

9.2 Result 타입으로 에러 처리하기 189

9.3 패닉에 빠질 것인가? 말 것인가? 200

 

CHAPTER 10 제네릭 타입, 트레이트 그리고 수명 207

10.1 함수로부터 중복 제거하기 208

10.2 제네릭 데이터 타입 211

10.3 트레이트: 공유 가능한 행위를 정의하는 방법 220

10.4 수명을 이용해 참조 유효성 검사하기 233

10.5 제네릭 타입 매개변수, 트레이트 경계, 그리고 수명 248

 

CHAPTER 11 자동화 테스트 작성하기 251

11.1 테스트의 작성 252

11.2 테스트 실행 제어하기 268

11.3 테스트의 조직화 274

 

CHAPTER 12 I/O 프로젝트: 명령줄 프로그램 작성하기 283

12.1 명령줄 인수 처리하기 284

12.2 파일 읽기 287

12.3 모듈화와 에러 처리 향상을 위한 리팩토링 289

12.4 테스트 주도 방법으로 라이브러리의 기능 개발하기 303

12.5 환경 변수 다루기 310

12.6 stderr을 이용해 에러 메시지 출력하기 316

 

CHAPTER 13 함수형 언어의 기능: 반복자와 클로저 321

13.1 클로저: 주변 환경을 캡처하는 익명 함수 322

13.2 반복자를 이용해 일련의 아이템 처리하기 337

13.3 입출력 프로젝트의 개선 346

 

CHAPTER 14 카고와 crates.io 353

14.1 릴리즈 프로필을 이용한 빌드 커스터마이징 354

14.2 crates.io 사이트에 크레이트 발행하기 355

14.3 카고 작업공간 367

14.4 cargo install 명령을 이용해 crates.io에서 바이너리 설치하기 374

14.5 사용자 정의 명령을 이용해 카고 확장하기 375

 

CHAPTER 15 스마트한 포인터 377

15.1 Box를 이용해 힙 메모리의 데이터 참조하기 379

15.2 Deref 트레이트를 이용해 스마트 포인터를 참조처럼 취급하기 384

15.3 Drop 트레이트를 구현해서 메모리를 해제할 때 코드 실행하기 391

15.4 Rc, 참조 카운터 스마트 포인터 395

15.5 RefCell 타입과 내부 가변성 패턴 400

15.6 메모리 누수의 원인이 되는 순환 참조 410

 

CHAPTER 16 자신 있는 동시성 421

16.1 코드를 동시에 실행하기 위한 스레드 422

16.2 공유 상태 동시성 438

16.3 SyncSend 트레이트로 동시성 확장하기 446

 

CHAPTER 17 러스트의 객체지향 프로그래밍 기능 449

17.1 객체지향 언어의 특징 450

17.2 다른 타입의 값을 허용하는 트레이트 객체 454

17.3 객체지향 디자인 패턴 구현 462

 

CHAPTER 18 패턴과 매칭 477

18.1 패턴을 활용할 수 있는 위치 478

18.2 부인 가능성: 패턴이 일치할 수도 있고 그렇지 않을 수도 있는 경우 484

18.3 패턴 문법 486

 

CHAPTER 19 러스트의 고급 기능 505

19.1 안전하지 않은 러스트 506

19.2 고급 트레이트 517

19.3 고급 타입 시스템 529

19.4 고급 함수와 클로저 537

19.5 매크로 541

 

CHAPTER 20 최종 프로젝트: 다중 스레드 웹서버 구축 555

20.1 단일 스레드 웹서버 구현하기 556

20.2 다중 스레드 서버로 전환하기 568

20.3 우아한 종료와 해제 591

 

APPENDIX A 키워드 601

현재 사용 중인 키워드 601

향후에 사용하기 위해 예약한 키워드 603

원시 식별자 603

 

APPENDIX B 연산자와 심볼 605

연산자 605

비연산자 심볼 607

 

APPENDIX C 상속 가능한 트레이트 613

프로그래머용 출력을 위한 Debug 614

일치 비교를 위한 PartialEqEq 614

순서를 비교하는 PartialOrdOrd 615

값을 복제하기 위한 CloneCopy 616

어떤 값을 고정된 크기의 값에 매핑하는 Hash 617

기본값을 제공하는 Default 617

 

APPENDIX D 유용한 개발 도구 619

rustfmt를 이용한 자동 포매팅 619

rustfix 도구로 코드 수정하기 620

Clippy 린트 621

러스트 언어 서버를 이용한 IDE 통합 623

 

APPENDIX E 에디션 625

 

찾아보기 627

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

네이버 책 포스트 유튜브 인스타그램 트위터 페이스북