본문 바로가기

추천 검색어

실시간 인기 검색어

러스트 프로그래밍

팀 맥나마라 지음 | 장연호 옮김
인사이트

2022년 07월 20일 출간

종이책 : 2022년 07월 12일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 pdf (7.49MB)
ISBN 9788966263660
쪽수 557쪽
듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 전자책 화면에 표기된 주석 등을 모두 읽어 줍니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
  • '교보 ebook' 앱을 최신 버전으로 설치해야 이용 가능합니다. (Android v3.0.26, iOS v3.0.09,PC v1.2 버전 이상)
소득공제
소장
정가 : 28,000원

쿠폰적용가 25,200

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 300원

작품소개

이 상품이 속한 분야

실무에 적용 가능한 다양한 예제로 배우는 러스트 프로그래밍

러스트는 시스템 프로그래밍에 적합한 언어이다. C와 같은 저수준 언어에 견줄 만한 성능과 두려움 없이 코딩할 수 있는 매우 견고한 안전 요소를 함께 제공한다. 러스트 프로그램은 간결하고, 가독성이 좋고, 엄청나게 빨라서 동시성을 필요로 하는 애플리케이션에 이상적이다. 똑똑하기로 유명한 러스트의 컴파일러는 감지하기 힘든 코딩 에러까지 피할 수 있도록 도와준다.

《한 줄 한 줄 짜면서 익히는 러스트 프로그래밍》은 러스트로 하는 시스템 프로그래밍에 대한 실무형 안내서이다. 문법과 구조를 넘어 실세계에서 사용되는 사례를 제공한다. 파일 처리, 네트워킹, 커널 수준 프로그래밍에 대한 러스트 구현을 탐험하면서 병렬성과 동시성에 대한 놀라운 기법들을 발견할 수 있다. 이 과정에서 가비지 컬렉터 없이 메모리를 관리하기 위한 러스트의 독특한 ‘대여 검사기’ 모델을 이해하게 될 것이다.

· 러스트 프로그래밍의 기본 문법과 특징
· 시스템 프로그래밍에 필요한 기본 개념
· 러스트 데이터 타입과 오류 처리 기능 구성 방법
· 명령행 유틸리티 만들기
· 키-값 저장소 만들기
· 네트워크 스택 구현하기
· NTP 클라이언트 만들기
· 운영 체제 커널 만들고 컴파일하기
1장 러스트 소개
1.1 러스트는 어디에 사용되는가?
1.2 러스트를 실무에서 추천하기
1.3 언어 맛보기
-1.3.1 “Hello, world!” 프로그램을 편법으로 만들어 보기
-1.3.2 첫 번째 러스트 프로그램
1.4 이 책의 소스 코드 다운로드
1.5 러스트의 생김새와 느낌
1.6 러스트는 어떤 언어인가?
-1.6.1 러스트의 목표: 안전성
-1.6.2 러스트의 목표: 생산성
-1.6.3 러스트의 목표: 통제력
1.7 러스트의 큰 특징
-1.7.1 성능
-1.7.2 동시성
-1.7.3 메모리 효율성
1.8 러스트의 단점
-1.8.1 순환 데이터 구조
-1.8.2 컴파일 시간
-1.8.3 엄격성
-1.8.4 언어의 크기
-1.8.5 과대광고
1.9 TLS 보안 사례 연구
-1.9.1 하트블리드
-1.9.2 goto fail
1.10 러스트는 어디에 잘 맞을까?
-1.10.1 명령행 유틸리티
-1.10.2 데이터 처리
-1.10.3 애플리케이션 확장
-1.10.4 자원이 제한된 환경
-1.10.5 서버 애플리케이션
-1.10.6 데스크톱 애플리케이션
-1.10.7 데스크톱
-1.10.8 모바일
-1.10.9 웹
-1.10.10 시스템 프로그래밍
1.11 러스트의 숨은 특징: 커뮤니티
1.12 러스트 경구
요약

1부 러스트 언어의 특색
2장 러스트 언어의 기초
2.1 실행 프로그램 만들기
-2.1.1 rustc로 단일 파일을 컴파일하기
-2.1.2 카고로 러스트 프로젝트 컴파일하기
2.2 러스트 문법 개요
-2.2.1 변수 정의와 함수 호출
2.3 숫자
-2.3.1 정수와 부동 소수점 수
-2.3.2 이진, 팔진, 십육진법을 이용하는 정수
-2.3.3 수의 비교
-2.3.4 유리수, 복소수 그리고 다른 숫자 타입
2.4 흐름 제어
-2.4.1 for: 반복의 중심축
-2.4.2 continue: 현재 반복의 남은 부분을 건너뛰기
-2.4.3 while: 조건의 상태가 바뀔 때까지 반복하기
-2.4.4 loop: 러스트 반복 구성의 기본
-2.4.5 break: 반복문 끝내기
-2.4.6 if, if else 그리고 else: 조건 분기
-2.4.7 match: 타입 패턴 매칭
2.5 함수 정의
2.6 참조 사용
2.7 프로젝트: 망델브로 집합 출력하기
2.8 고급 함수 정의
-2.8.1 명시적인 수명 애너테이션
-2.8.2 제네릭 함수
2.9 grep-lite 만들기
2.10 배열, 슬라이스, 벡터로 리스트 만들기
-2.10.1 배열
-2.10.2 슬라이스
-2.10.3 벡터
2.11 서드 파티 코드 사용하기
-2.11.1 정규식 지원 추가하기
-2.11.2 서드 파티 크레이트의 문서를 로컬에서 생성하기
-2.11.3 rustup으로 러스트 툴체인 관리하기
2.12 명령행 인자 지원
2.13 파일에서 읽어 들이기
2.14 표준 입력에서 읽기
요약

3장 복합 데이터 타입
3.1 보통 함수를 이용하여 API를 실험하기
3.2 struct로 파일 모델링하기
3.3 impl로 구조체에 메서드 추가하기
-3.3.1 new()를 구현하여 객체 생성을 간략화하기
3.4 오류 반환
-3.4.1 알려진 전역 변수를 수정하기
-3.4.2 Result 반환 타입을 이용하기
3.5 열거형을 정의하고 사용하기
-3.5.1 내부 상태를 관리하는 데 열거형 사용하기
3.6 공통 동작을 트레이트로 정의하기
-3.6.1 Read 트레이트 만들기
-3.6.2 자신만의 타입에 std::fmt::Display 구현하기
3.7 자신이 만든 타입 공개하기
-3.7.1 비공개 데이터 보호하기
3.8 프로젝트의 인라인 문서 만들기
-3.8.1 rustdoc으로 한 소스 파일의 문서 만들기
-3.8.2 카고로 크레이트와 의존성에 대한 문서 만들기
요약

4장 수명, 소유권, 대여
4.1 모의 큐브 위성 지상 관제소 구현하기
-4.1.1 첫 번째 수명 이슈와의 조우
-4.1.2 원시 타입의 특수한 행위
4.2 이 장에서 쓰이는 그림에 대한 가이드
4.3 소유자는 무엇인가? 책임을 갖고 있는가?
4.4 소유권 이동 방식
4.5 소유권 문제 해결하기
-4.5.1 완전한 소유권이 필요하지 않을 때 참조를 사용하라
-4.5.2 오래 지속되는 값은 더 적게 사용하라
-4.5.3 값의 사본 만들기
-4.5.4 데이터를 특별한 타입으로 감싸기
요약


2부 시스템 프로그래밍 이해하기
5장 데이터 심화
5.1 비트 패턴과 타입
5.2 정수의 수명
-5.2.1 엔디언 이해하기
5.3 십진수 표현하기
5.4 부동 소수점 수
-5.4.1 f32의 내부 들여다보기
-5.4.2 부호 비트를 분리하기
-5.4.3 지수부 분리하기
-5.4.4 가수부 분리하기
-5.4.5 부동 소수점 수 해부하기
5.5 고정 소수점 수 형식
5.6 임의의 바이트로부터 난수 확률을 만들어 내기
5.7 CPU를 구현해 함수 역시 데이터임을 입증하기
-5.7.1 CPU RIA/1: 가산기
-5.7.2 CPU RIA/1 전체 코드: 가산기
-5.7.3 CPU RIA/2: 곱셈기
-5.7.4 CPU RIA/3: 호출자
-5.7.5 CPU 4: 나머지를 추가하기
요약

6장 메모리
6.1 포인터
6.2 러스트의 참조와 포인터 타입 탐험하기
-6.2.1 러스트의 원시 포인터
-6.2.2 러스트의 포인터 생태계
-6.2.3 스마트 포인터를 이루는 블록
6.3 프로그램에 데이터를 위한 메모리 제공하기
-6.3.1 스택
-6.3.2 힙
-6.3.3 동적 메모리 할당이란?
-6.3.4 동적 메모리 할당의 영향 분석하기
6.4 가상 메모리
-6.4.1 배경 설명
-6.4.2 1단계: 프로세스가 자신의 메모리를 조사하게 하기
-6.4.3 가상 주소를 물리 주소로 변환하기
-6.4.4 2단계: 운영 체제를 이용해 주소 공간을 조사하기
-6.4.5 3단계: 프로세스 메모리를 읽고 쓰기
요약

7장 파일과 저장소
7.1 파일 형식이란?
7.2 데이터 저장을 위해 독자적인 파일 형식 만들기
-7.2.1 serde와 bincode 형식으로 데이터를 디스크에 저장하기
7.3 hexdump 복제품 구현하기
7.4 러스트의 파일 작업
-7.4.1 러스트에서 파일을 열고 파일의 모드를 제어하기
-7.4.2 std::fs::Path를 사용해 타입 안전한 방법으로 파일 시스템과 상호 작용하기
7.5 로그 구조의 추가 전용 저장 구조를 가진 키-값 저장소 구현하기
-7.5.1 키-값 모델
-7.5.2 actionkv v1: 명령행 인터페이스를 가진 인메모리 키-값 저장소
7.6 actionkv v1: 프런트엔드 코드
-7.6.1 조건부 컴파일로 컴파일되는 내용을 조정하기
7.7 actionkv의 핵심 이해하기: libactionkv 크레이트
-7.7.1 ActionKV 구조체 초기화
-7.7.2 개별 레코드 처리하기
-7.7.3 다중 바이트 바이너리 데이터를 보장된 바이트 순서로 디스크에 쓰기
-7.7.4 I/O 에러를 체크섬으로 검증하기
-7.7.5 기존 데이터베이스에 새로운 키-값 쌍 삽입하기
-7.7.6 actionkv 전체 코드
-7.7.7 HashMap과 BTreeMap으로 키와 값을 다루기
-7.7.8 HashMap 생성과 값 채우기
-7.7.9 HashMap과 BTreeMap에서 값을 검색하기
-7.7.10 HashMap과 BTreeMap 중 하나를 고르기
-7.7.11 actionkv v2.0에 데이터베이스 색인 추가하기
요약

8장 네트워킹
8.1 일곱 단락으로 네트워크 요약하기
8.2 reqwest를 이용하여 HTTP GET 요청 만들기
8.3 트레이트 객체
-8.3.1 트레이트 객체로 무엇이 가능한가?
-8.3.2 트레이트 객체는 무엇인가? 319
-8.3.3 작은 롤플레잉 게임 만들기: rpg 프로젝트
8.4 TCP
-8.4.1 포트 번호란?
-8.4.2 호스트 이름을 IP 주소로 바꾸기
8.5 라이브러리에 대한 인간 공학적 오류 처리
-8.5.1 문제: 다양한 에러 타입의 반환이 불가능하다
-8.5.2 다운스트림 오류를 독자적인 오류 타입을 정의하여 감싸기
-8.5.3 unwrap()과 expect()로 속이기
8.6 MAC 주소
-8.6.1 MAC 주소 생성하기
8.7 러스트의 열거형으로 상태 기계 구현하기
8.8 원시 TCP
8.9 가상 네트워킹 장치 만들기
8.10 ‘원시’ HTTP
요약

9장 시간과 시간 관리
9.1 배경지식
9.2 시간의 원천
9.3 정의
9.4 시간 인코딩하기
-9.4.1 시간대 표현하기
9.5 clock v0.1.0: 시간을 알리는 방법을 애플리케이션에 가르치기
9.6 clock v0.1.1: ISO 8601과 이메일 표준을 준수하도록 타임스탬프 형식화하기
-9.6.1 더 다양한 아키텍처를 지원하도록 clock v0.1.0 코드 리팩터링
-9.6.2 시간 형식화하기
-9.6.3 완전한 명령행 인터페이스 제공하기
-9.6.4 clock v0.1.1: 전체 프로젝트
9.7 clock v0.1.2: 시간 설정
-9.7.1 공통 동작
-9.7.2 libc를 이용하는 운영 체제에서 시간 설정하기
-9.7.3 마이크로소프트 윈도우에서 시간 설정
-9.7.4 clock v0.1.2: 전체 코드
9.8 오류 처리 향상시키기
9.9 clock 0.1.3: 네트워크 시간 프로토콜로 클록 간 차이 해결하기
-9.9.1 NTP 요청을 보내고 응답을 해석하기
-9.9.2 서버 응답에 따른 로컬 시간 조정
-9.9.3 다른 정밀도와 기원을 사용하는 시간 표현 간 변환
-9.9.4 clock v0.1.3: 전체 코드
요약

10장 프로세스, 스레드, 컨테이너
10.1 익명 함수
10.2 스레드 생성하기
-10.2.1 클로저 소개
-10.2.2 스레드 생성하기
-10.2.3 적은 스레드를 생성했을 때의 영향
-10.2.4 많은 스레드를 생성했을 때의 영향
-10.2.5 결과 재현하기
-10.2.6 공유 변수
10.3 클로저와 함수의 차이
10.4 다중 스레드 파서와 코드 생성기에서 절차적으로 생성된 아바타
-10.4.1 render-hex와 해당 출력을 실행하는 방법
-10.4.2 단일 스레드 render-hex 오버뷰
-10.4.3 논리적 작업별 스레드 생성
-10.4.4 스레드 풀과 작업 대기열 이용하기
10.5 동시성과 작업 가상화
-10.5.1 스레드
-10.5.2 콘텍스트 전환이란?
-10.5.3 프로세스
-10.5.4 웹어셈블리
-10.5.5 컨테이너
-10.5.6 결국 운영 체제를 사용하는 이유는 무엇인가?
요약

11장 커널
11.1 신생 운영 체제 FledgeOS
-11.1.1 운영 체제 커널 개발을 위한 개발 환경 구축하기
-11.1.2 개발 환경 검증하기
11.2 Fledgeos-0: 뭔가 동작하게 하기
-11.2.1 첫 부팅
-11.2.2 컴파일 방법
-11.2.3 소스 코드 목록
-11.2.4 패닉 처리
-11.2.5 VGA 호환 텍스트 모드로 화면에 쓰기
-11.2.6 _start(): FledgeOS용 main() 함수
11.3 fledgeos-1: 바쁜 루프 피하기
-11.3.1 CPU와 직접 상호 작용하여 전력 소모 줄이기
-11.3.2 fledgeos-1 소스 코드
11.4 fledgeos-2: 커스텀 예외 처리
-11.4.1 예외를 거의 제대로 처리하기
-11.4.2 fledgeos-2 소스 코드
11.5 fledgeos-3: 텍스트 출력
-11.5.1 화면에 색깔 있는 텍스트 쓰기
-11.5.2 열거형의 메모리 내 표현 제어
-11.5.3 왜 열거형을 쓰는가?
-11.5.4 VGA 프레임 버퍼에 출력할 수 있는 타입 만들기
-11.5.5 화면에 출력하기
-11.5.6 fledgeos-3 소스 코드
11.6 fledgeos-4: 커스텀 패닉 처리
-11.6.1 사용자에게 오류를 보고하도록 패닉 핸들러 구현하기
-11.6.2 core::fmt::Write를 사용해서 panic() 재구현하기
-11.6.3 core::fmt::Write 구현하기
-11.6.4 fledge-4 소스 코드
요약

12장 시그널, 인터럽트, 예외
12.1 용어
-12.1.1 시그널 대 인터럽트
12.2 인터럽트는 애플리케이션에 어떻게 영향을 끼치는가?
12.3 소프트웨어 인터럽트
12.4 하드웨어 인터럽트
12.5 시그널 처리
-12.5.1 기본 동작
-12.5.2 프로그램 작업 일시 중단 및 재개
-12.5.3 운영 체제에서 지원하는 모든 시그널의 목록
12.6 사용자 지정 작업으로 시그널 처리
-12.6.1 러스트에서의 전역 변수
-12.6.2 종료가 시작됐음을 나타내는 전역 변수 사용
12.7 애플리케이션 정의 시그널 보내기
-12.7.1 함수 포인터와 해당 구문 이해
12.8 시그널 무시하기
12.9 깊이 중첩된 호출 스택으로부터 종료하기
-12.9.1 sjlj 프로젝트 소개
-12.9.2 프로그램에 내장 함수 설정하기
-12.9.3 포인터를 또 다른 타입으로 변환하기
-12.9.4 sjlj 프로젝트 컴파일하기
-12.9.5 sjlj 프로젝트 소스 코드
12.10 시그널이 없는 플랫폼에 이러한 기술을 적용하는 방법에 대한 참고 사항
12.11 예외 복습하기
요약

작가정보

저자(글) 팀 맥나마라

저자 : 팀 맥나마라
Tim McNamara
자연어 처리, 텍스트 마이닝, 기계 학습과 인공 지능 분야에 관심이 많은 프로그래머다. 뉴질랜드 오픈 소스 그룹에서 활발하게 활동하고 있다.

번역 장연호

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다.
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다.
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    러스트 프로그래밍 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    러스트 프로그래밍 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 제공(제외조건 유의사항 참조)
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    러스트 프로그래밍
    저자 모두보기
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글북액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글북액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)