| 000 | 00000cam c2200205 c 4500 | |
| 001 | 000046009016 | |
| 005 | 20191212172918 | |
| 007 | ta | |
| 008 | 191212s2019 ggk 001c kor | |
| 020 | ▼a 9791188621729 ▼g 93000 | |
| 035 | ▼a (KERIS)BIB000015442511 | |
| 040 | ▼a 011005 ▼c 011005 ▼d 011005 ▼d 221016 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 0 | ▼a 005.13/3 ▼2 23 |
| 085 | ▼a 005.133 ▼2 DDCK | |
| 090 | ▼a 005.133 ▼b R971 2019 | |
| 100 | 1 | ▼a Klabnik, Steve |
| 245 | 1 0 | ▼a 러스트 프로그래밍 공식 가이드 / ▼d 스티브 클라브닉, ▼e 캐롤 니콜스 지음 ; ▼e 장현희 옮김 |
| 246 | 1 9 | ▼a The Rust programming language |
| 246 | 3 9 | ▼a Rust programming languag |
| 260 | ▼a 파주 : ▼b 제이펍, ▼c 2019 | |
| 300 | ▼a xxi, 634 p. ; ▼c 25 cm | |
| 500 | ▼a Rust 2018 반영 | |
| 500 | ▼a 부록: A. 키워드, B. 연산자와 심볼, C. 상속 가능한 트레이트 외 | |
| 500 | ▼a 색인수록 | |
| 650 | 0 | ▼a Rust (Computer programming language) |
| 700 | 1 | ▼a Nichols, Carol, ▼d 1983-, ▼e 저 |
| 700 | 1 | ▼a 장현희, ▼e 역 |
| 900 | 1 0 | ▼a 클라브닉, 스티브, ▼e 저 |
| 900 | 1 0 | ▼a 니콜스, 캐롤, ▼e 저 |
| 945 | ▼a KLPA |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.133 R971 2019 | 등록번호 121251451 (14회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
빠르고 안전한 소프트웨어를 개발하기 위한, 오픈 소스 시스템 프로그래밍 언어인 러스트의 첫 한국어판 번역 도서이자 공식 안내서다. 러스트는 고수준의 소프트웨어 공학을 담고 있으면서 일반적인 저수준 언어의 불편함을 해소하였다. 따라서 메모리 사용 등의 저수준 상세 구현을 제어할 수 있는 옵션을 제공한다.
이 책에서는 러스트의 핵심 개발자 두 명이 러스트 언어의 설치부터 견고하고 확장 가능한 프로그램을 작성하는 기법에 이르기까지 러스트가 제공하는 모든 기능의 활용 방법을 설명한다. 이 책을 통해 함수의 생성, 데이터 타입의 선택, 변수의 바인딩 같은 기본적인 개념부터 다음의 고급 개념까지 학습할 수 있다.
러스트 핵심 멤버 2인이 집필하고 RUST 2018이 반영된 국내 첫 러스트 공식 문서!
사람에게 더 친숙한 고수준의 프로그래밍과 저수준의 제어는 프로그래밍 언어 디자인에서 서로 상충하는 경향이 있습니다. 러스트는 이러한 상충관계에 도전장을 내민 언어입니다. 러스트는 강력한 기술적 기능과 훌륭한 개발자 경험 사이의 균형을 적절히 갖춘 언어입니다. 러스트는 스택오버플로우 설문 조사에서 4년간 개발자 대상 가장 인기 있는 프로그래밍 언어 1위를 차지했습니다. 국내에 처음으로 출간되는 러스트 도서, 《러스트 프로그래밍 공식 가이드》를 통해 러스트에 대한 갈증을 해소하시기 바랍니다.
고수준 프로그래밍 언어와 저수준 시스템 제어를 결합했다!
러스트의 핵심 개발자 두 명이 소개하는 프로그래머와 시스템 개발자 모두를 위한 러스트 프로그래밍!
《러스트 프로그래밍 공식 가이드》는 빠르고 안전한 소프트웨어를 개발하기 위한, 오픈 소스 시스템 프로그래밍 언어인 러스트의 첫 한국어판 번역 도서이자 공식 안내서다. 러스트는 고수준의 소프트웨어 공학을 담고 있으면서 일반적인 저수준 언어의 불편함을 해소하였다. 따라서 메모리 사용 등의 저수준 상세 구현을 제어할 수 있는 옵션을 제공한다.
이 책에서는 러스트의 핵심 개발자 두 명이 러스트 언어의 설치부터 견고하고 확장 가능한 프로그램을 작성하는 기법에 이르기까지 러스트가 제공하는 모든 기능의 활용 방법을 설명한다. 이 책을 통해 함수의 생성, 데이터 타입의 선택, 변수의 바인딩 같은 기본적인 개념부터 다음의 고급 개념까지 학습할 수 있다.
■ 소유권과 대여, 수명 그리고 트레이트
■ 러스트의 메모리 안정성 보장을 활용한 빠르고 안전한 프로그래밍 작업
■ 테스트, 에러 처리 그리고 효율적인 리팩토링
■ 제네릭, 스마트 포인터, 멀티스레딩, 트레이트 객체, 그리고 고급 패턴 매칭
■ 러스트의 내장 패키지 매니저인 카고를 이용한 빌드, 테스트, 코드의 문서화 및 의존성 관리
■ 러스트의 고급 컴파일러 기능을 활용한 컴파일러 주도 프로그래밍 기법
정보제공 :
저자소개
캐럴 니컬스(지은이)
러스트 커뮤니티 팀의 멤버이고, 이전에는 러스트 코어 팀의 멤버였다. 루비 커뮤니티에서도 활발히 활동 중이며, 2012~2014년 스틸 시티 루비 콘퍼런스의 핵심 주최자였다.
스티브 클라브닉(지은이)
모질라의 러스트 커뮤니티 팀 리더로서 공식적인 러스트 커뮤니티 문서를 담당하고 있고 신뢰받는 러스트 커뮤니티 애드버킷이기도 하다. 콘퍼런스에 발표자로 자주 참가하며, 루비 온 레일즈 프로젝트의 최다 기여자 중 한 명이다.
장현희(옮긴이)
지난 10여 년간 호주와 캐나다에서 시니어 엔지니어 및 스태프 엔지니어로 경험을 쌓았으며 현재는 프린시펄 소프트웨어 엔지니어(principal software engineer)로서 소프트웨어 개발은 물론 성공적인 엔지니어링 팀과 문화의 구축에 힘을 쏟고 있다. 지금까지 30권이 넘는 개발 관련서를 집필/번역하면서 책이라는 매개체로 멀리서나마 국내 개발자들과 꾸준히 소통하고 있으며 대표적인 번역서로는 『일 잘하는 엔지니어의 생각 기법』(책만, 2025) 『필독! 개발자 온보딩 가이드』(책만, 2023), 『딱 한 줄로! 파이썬 제대로 코딩하기』(책만, 2024), 『스태프 엔지니어』(길벗, 2022), 『SRE를 위한 시스템 설계와 구축』(한빛미디어, 2022), 『엔터프라이즈 데이터 플랫폼 구축』(책만, 2020), 『사이트 신뢰성 엔지니어링』(제이펍, 2018), 『클라우드 네이티브 자바』(책만, 2018) 등이 있다.
목차
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〈T〉를 이용해 힙 메모리의 데이터 참조하기 379 15.2 Deref 트레이트를 이용해 스마트 포인터를 참조처럼 취급하기 384 15.3 Drop 트레이트를 구현해서 메모리를 해제할 때 코드 실행하기 391 15.4 Rc〈T〉, 참조 카운터 스마트 포인터 395 15.5 RefCell〈T〉 타입과 내부 가변성 패턴 400 15.6 메모리 누수의 원인이 되는 순환 참조 410 CHAPTER 16 자신 있는 동시성 421 16.1 코드를 동시에 실행하기 위한 스레드 422 16.2 공유 상태 동시성 438 16.3 Sync와 Send 트레이트로 동시성 확장하기 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 일치 비교를 위한 PartialEq와 Eq 614 순서를 비교하는 PartialOrd와 Ord 615 값을 복제하기 위한 Clone과 Copy 616 어떤 값을 고정된 크기의 값에 매핑하는 Hash 617 기본값을 제공하는 Default 617 APPENDIX D 유용한 개발 도구 619 rustfmt를 이용한 자동 포매팅 619 rustfix 도구로 코드 수정하기 620 Clippy 린트 621 러스트 언어 서버를 이용한 IDE 통합 623 APPENDIX E 에디션 625 찾아보기 627



