이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 PDF
eBook 러스트 클린 코드
러스트다운 디자인 패턴과 모범사례 스마트한 PDF 필기 기능을 사용해 보세요!
가격
19,600
19,600
YES포인트?
980원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요
PDF 안내

이 상품은 구매 후 지원 기기에서 예스24 eBook앱 설치 후 바로 이용 가능한 상품입니다.

예스24만의 독보적인 PDF 필기 기능을 경험해 보세요!

카드뉴스로 보는 책

카드뉴스0
카드뉴스1
카드뉴스2
카드뉴스3
카드뉴스4
카드뉴스5
카드뉴스6

상세 이미지

소개

목차

옮긴이 머리말 x
베타리더 후기 xi
시작하며 xiii
감사의 글 xiv
이 책에 대하여 xv
표지에 대하여 xix

PART I 구성 요소

CHAPTER 1 러스트다운 패턴 3
1.1 이 책에서 다루는 내용 5
1.2 디자인 패턴이란? 6
1.3 이 책이 다른 이유 9
1.4 필요한 도구 10
1.5 정리하며 11

CHAPTER 2 러스트의 기본 구성 요소 13
2.1 제네릭 14
2.1.1 튜링 완전성 타입 시스템 14
2.1.2 왜 제네릭인가? 15
2.1.3 제네릭의 기초 15
2.1.4 러스트의 Option 살펴보기 19
2.1.5 마커 구조체와 팬텀 타입 19
2.1.6 제네릭 매개변수 트레이트 바운드 23
2.2 트레이트 23
2.2.1 트레이트가 객체 지향 프로그래밍이 아닌 이유 24
2.2.2 트레이트에 들어 있는 것들 25
2.2.3 객체 지향 코드를 살펴보며 트레이트 이해하기 26
2.2.4 제네릭과 트레이트 결합하기 30
2.2.5 자동으로 트레이트 도출하기 35
2.2.6 트레이트 객체 37
2.3 정리하며 40

CHAPTER 3 코드 흐름 43
3.1 패턴 매칭 둘러보기 44
3.1.1 패턴 매칭의 기초 44
3.1.2 ? 연산자로 간결하게 처리하기 50
3.2 함수적 러스트 53
3.2.1 러스트 함수형 프로그래밍의 기초 54
3.2.2 클로저 변수 캡처 56
3.2.3 반복자 살펴보기 57
3.2.4 iter(), into_iter(), iter_mut()로 반복자 얻기 62
3.2.5 반복자의 기능 71
3.3 정리하며 76

PART II 핵심 패턴

CHAPTER 4 기본 패턴 79
4.1 리소스의 획득은 초기화 80
4.1.1 C와 C++의 RAII 81
4.1.2 러스트의 RAII 둘러보기 85
4.1.3 러스트의 RAII 요약 87
4.2 인자를 값으로 전달하기와 레퍼런스로 전달하기 89
4.2.1 값으로 전달하기 89
4.2.2 레퍼런스로 전달하기 91
4.2.3 언제 무엇을 할 것인가?: 값으로 전달하기와 레퍼런스로 전달하기 93
4.3 생성자 94
4.4 객체 멤버 가시성과 접근성 97
4.5 오류 처리 99
4.6 전역 상태 102
4.6.1 lazy-static.rs 105 / 4.6.2 once_cell 106
4.6.3 static_init 107 / 4.6.4 std::cell::OnceCell 108
4.7 정리하며 109

CHAPTER 5 디자인 패턴: 기본을 넘어서 111
5.1 매크로를 사용한 메타프로그래밍 112
5.1.1 기본적인 선언적 매크로 113
5.1.2 언제 매크로를 사용해야 할까요? 115
5.1.3 매크로를 사용해 미니 DSL 작성하기 121
5.1.4 DRY에 매크로 사용하기 122
5.2 선택적 함수 인자 126
5.2.1 파이썬에서 선택적 인자 살펴보기 126
5.2.2 C++에서 선택적 인자 살펴보기 127
5.2.3 러스트에는 선택적 인자가 없다 127
5.2.4 트레이트로 선택적 인자 모방하기 128
5.3 빌더 패턴 131
5.3.1 빌더 패턴 구현하기 132
5.3.2 트레이트로 빌더 강화하기 134
5.3.3 매크로로 빌더 발전시키기 135
5.4 플루언트 인터페이스 패턴 139
5.4.1 플루언트 빌더 139
5.4.2 플루언트 빌더 테스트 142
5.5 관찰자 패턴 143
5.5.1 콜백을 쓰지 않는 이유 143
5.5.2 관찰자 구현하기 144
5.6 명령 패턴 147
5.6.1 명령 패턴 정의하기 148
5.6.2 명령 패턴 구현하기 149
5.7 뉴타입 패턴 152
5.8 정리하며 155

CHAPTER 6 라이브러리 디자인하기 157
6.1 좋은 라이브러리 디자인 158
6.2 한 가지만, 올바르게, 잘하기 159
6.3 과도한 추상화 피하기 160
6.4 기본 타입에 충실하기 160
6.5 도구 사용 161
6.6 좋은 예술가는 베끼고, 위대한 예술가는 훔친다(표준 라이브러리에서) 162
6.7 모든 것을 문서화하고 예제를 제공하세요 162
6.8 사용자의 코드를 망치지 마세요 163
6.9 상태를 생각하세요 163
6.10 미학 고려하기 164
6.11 러스트 라이브러리의 편리한 사용성 165
6.11.1 연결 리스트 다시 살펴보기 165
6.11.2 rustdoc을 사용해 API 디자인 개선하기 167
6.11.3 더 많은 테스트를 통해 연결 리스트 개선하기 174
6.11.4 다른 사람이 디버깅하기 쉬운 라이브러리 만들기 176
6.12 정리하며 179

PART III 고급 패턴

CHAPTER 7 특수한 작업에 트레이트, 제네릭, 구조체 사용하기 183
7.1 상수 제네릭 184
7.2 외부 크레이트 타입에 대한 트레이트 구현하기 186
7.2.1 래퍼 구조체 187 / 7.2.2 Deref를 사용하여 래핑된 구조체 언래핑하기 187
7.3 확장 트레이트 189
7.4 블랭킷 트레이트 191
7.5 마커 트레이트 194
7.6 구조체 태깅 196
7.7 레퍼런스 객체 199
7.8 정리하며 205

CHAPTER 8 상태 기계, 코루틴, 매크로, 프렐류드 207
8.1 트레이트 상태 기계 208
8.2 코루틴 212
8.3 절차적 매크로 218
8.4 프렐류드 222
8.5 정리하며 226

PART IV 문제 피하기
CHAPTER 9 불변성 229
9.1 불변성의 장점 230
9.2 불변성이 만능이 아닌 이유 232
9.3 불변 데이터에 대해 생각하는 방법 233
9.4 러스트의 불변성 이해하기 234
9.5 불변성의 기본 개념 살펴보기 236
9.6 트레이트를 사용해 (거의) 모든 것을 불변으로 만들기 239
9.7 불변성을 위해 Cow 사용하기 240
9.8 불변 데이터 구조를 위한 크레이트 244
9.8.1 im 사용하기 244 / 9.8.2 rpds 사용하기 245
9.9 정리하며 247

CHAPTER 10 안티패턴 249
10.1 안티패턴이란? 250
10.2 unsafe 사용하기 251
10.2.1 unsafe는 어떤 기능을 하나요? 253
10.2.2 unsafe는 어디에 사용할 수 있나요? 254
10.2.3 언제 unsafe를 사용해야 하나요? 256
10.2.4 unsafe는 위험한가요? 257
10.3 unwrap() 사용하기 257
10.4 Vec을 사용하지 않는 것 258
10.5 너무 많은 복제 262
10.6 다형성 모방을 위한 Deref 사용 263
10.7 전역 데이터와 싱글톤 268
10.8 너무 많은 스마트 포인터 269
10.9 앞으로 나아갈 방향 270
10.10 정리하며 271

APPENDIX A 러스트 설치하기 273
A.1 이 책에 필요한 도구 설치하기 273
A.1.1 Homebrew를 사용하여 맥OS용 도구 설치하기 273
A.1.2 리눅스 시스템용 도구 설치하기 274
A.1.3 윈도우용 도구 설치하기 274
A.2 rustc와 다른 러스트 구성 요소를 rustup 관리하기 275
A.2.1 rustc 및 기타 구성 요소 설치하기 275
A.2.2 rustup으로 기본 툴체인 전환하기 275
A.2.3 러스트 구성 요소 업데이트하기 275

찾아보기 277

저자 소개 2

서울대학교에서 공학 학사와 석사 학위를 취득하고, 현재 SAP Labs Korea에서 백엔드 개발자로 근무하고 있다. 한 줄의 코드가 세상을 더 나은 곳으로 만들 수 있다는 신념을 가지고 지식을 나누기 위해 여러 기업과 대학에서 강연을 이어가고 있다. 또한 프로그래머스, 클래스101, 인프런, 베어유 등 여러 플랫폼에서 다양한 주제로 온라인 클래스도 운영하고 있으며, 저서로는 《LUVIT♥ 실전 백엔드 러스트 Axum 프로그래밍》(제이펍, 2025)이 있다.

윤인도의 다른 상품

브렌든 매슈스

관심작가 알림신청
 

Brenden Matthews

아파치 소프트웨어 재단의 멤버이자 소프트웨어 엔지니어 겸 기업가이며, 초창기부터 러스트를 사용해온 오픈소스 참여자로서 《러스트 프로페셔널 코드》(제이펍, 2024)의 저자다. 14년 이상 깃허브 기여자로 활동하며, 여러 러스트 크레이트 및 오픈소스 러스트 프로젝트에 참여했고, 제품 수준의 러스트 애플리케이션을 전문적으로 구축했다.

브렌든 매슈스의 다른 상품

관련 분류

카테고리 분류

품목정보

발행일
2025년 12월 11일
이용안내
  •  배송 없이 구매 후 바로 읽기
  •  이용기간 제한없음
  •   TTS 가능 ?
  •  저작권 보호를 위해 인쇄 기능 제공 안함
지원기기
크레마, PC(윈도우 - 4K 모니터 미지원), 아이폰, 아이패드, 안드로이드폰, 안드로이드패드, 전자책단말기(저사양 기기 사용 불가), PC(Mac)
파일/용량
PDF(DRM) | 5.76MB ?
글자 수/ 페이지 수
약 303쪽 ?
ISBN13
9791124205143

출판사 리뷰

러스트 심층 탐구. 러스트의 이론이 아닌 실용적 핵심을 파헤친다

진입 장벽이 높은 러스트의 진정한 힘을 끌어내기 위해서는 단순한 문법 습득을 넘어서 이 언어만의 고유한 설계 패턴과 관용구를 이해하고 활용하는 것이 필수적이다.

실제 프로젝트에서 러스트를 활용하기 시작했다면 이제 완전히 새로운 차원의 탐구가 시작된다. 러스트 애플리케이션에서 표준 디자인 패턴을 어떻게 적용할 수 있을까? IntoIterator는 어디서, 왜 사용해야 할까? 러스트 개발자들이 PhantomData 타입을 사랑하는 이유는 무엇일까? 이 책은 이러한 질문들 외에도 많은 궁금증에 답을 제시해준다.

《러스트 클린 코드》는 러스트 고유의 언어 설계를 최대한 활용할 수 있도록 러스트다운 클린 코드와 디자인 패턴을 소개하며, 명확한 설명과 재사용 가능한 코드 예제를 통해 메타프로그래밍, 라이브러리를 직접 구현하는 방법, 플루언트 인터페이스 작성 등 다양한 주제를 다룬다. 이 과정에서 러스트의 내부 작동 원리를 이해하며, 유지보수가 쉽고 지속적인 발전이 가능한 효율적인 러스트 코드 작성법을 배울 수 있을 것이다.

■ 사용하기 즐거운 API 만들기
■ 빌더 패턴 등의 고전적인 디자인 패턴 적용 방법
■ 함수형 프로그래밍 패턴
■ 러스트 안티패턴

리뷰/한줄평4

리뷰

10.0 리뷰 총점

한줄평

10.0 한줄평 총점

클린봇이 부적절한 글을 감지 중입니다.

설정