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

인기 검색어

실시간 검색어

검색가능 서점

도서목록 제공

강력한 러스트 매크로 작성법

강력한 러스트 매크로 작성법

(지루한 코딩을 줄이는 러스트 매크로의 단계별 실전 가이드)

샘 밴 오버마이어 (지은이), 김찬빈 (옮긴이)
제이펍
33,000원

일반도서

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

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

강력한 러스트 매크로 작성법
eBook 미리보기

책 정보

· 제목 : 강력한 러스트 매크로 작성법 (지루한 코딩을 줄이는 러스트 매크로의 단계별 실전 가이드)
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
· ISBN : 9791194587354
· 쪽수 : 376쪽
· 출판일 : 2025-12-04

책 소개

중급 러스트 프로그래머에게 매크로의 세계를 열어주는데, 먼저 선언적 매크로부터 시작하여 기본기를 다지고, 빌더를 자동으로 생성하고, 자신만의 도메인 특화 언어를 만드는 방법을 배우는 등 절차적 매크로로 나아간다.
러스트의 반복적인 패턴들을 자동화하고자 한다면 바로 이 책이 필요할 겁니다
진입 장벽이 높은 러스트의 진정한 힘을 끌어내기 위해서는 단순한 문법 습득을 넘어서 이 언어만의 고유한 패턴과 관용구를 이해하고 활용하는 것이 필수적이며, 매크로는 러스트의 가장 중요하고 강력한 도구 중 하나다. 다루기 까다롭다고 알려져 있지만, 이 메타프로그래밍 기법은 그만한 가치가 있다. 컴파일 시간에 매크로를 사용하여 새로운 러스트 코드를 생성하면, 런타임 성능에 거의 영향을 주지 않으면서도 몇 시간이고 반복해야 할 지루한 코딩 작업을 줄일 수 있다. 이 책은 러스트의 이러한 강력한 기능을 완벽하게 마스터하는 방법을 정확히 안내한다.
이 책은 중급 러스트 프로그래머에게 매크로의 세계를 열어주는데, 먼저 선언적 매크로부터 시작하여 기본기를 다지고, 빌더를 자동으로 생성하고, 자신만의 도메인 특화 언어를 만드는 방법을 배우는 등 절차적 매크로로 나아간다. 학습 과정에서 매크로 테스트, 크레이트와의 매크로 통합, 심지어 다른 개발자와 매크로를 공유하는 방법 등 실용적인 기술을 익힐 수 있다.

· 매크로 코드 읽기 및 디버깅
· 러스트 라이브러리에서 매크로를 사용하는 방법
· 뉴타입(newtype)과 타입 상태 패턴(type state pattern)

목차

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

CHAPTER 메타프로그래밍의 세계로 1
1.1 러스트 개발자의 하루 2
1.2 메타프로그래밍이란 무엇인가? 3
1.3 러스트에서의 메타프로그래밍 4
1.3.1 매크로의 다양성 6 / 1.3.2 적절한 사용 사례 8
1.3.3 부적절한 용도: 매크로를 사용하지 말아야 할 때 12
1.4 이 책의 접근 방식 13
1.5 연습문제 14
1.6 요약 14

CHAPTER 2 선언적 매크로 15
2.1 벡터 생성하기 16
2.1.1 기본 구문 17 / 2.1.2 선언적 매크로 선언 및 내보내기 17
2.1.3 첫 번째 매처 설명 18 / 2.1.4 비어 있지 않은 매처 19
2.2 사용 사례 24
2.2.1 가변 인자와 기본 인자 24 / 2.2.2 코드를 확장하는 여러 방법 26
2.2.3 뉴타입 29 / 2.2.4 DSL 36 / 2.2.5 구성하기는 쉽습니다 39
2.2.6 반면에 커링은… 43 / 2.2.7 위생도 고려해야 할 사항입니다 45
2.3 실제 사례 46
2.4 연습문제 48
2.5 요약 49

CHAPTER 3 "Hello, World" 절차적 매크로 51
3.1 절차적 매크로 프로젝트의 기본 설정 52
3.2 절차적 매크로 설정 분석 55
3.3 출력 생성하기 58
3.4 코드 실험하기 61
3.5 cargo expand 62
3.6 syn과 quote를 사용하지 않는 동일한 매크로 64
3.7 실제 사례 66
3.8 연습문제 67
3.9 요약 68

CHAPTER 4 속성형 매크로를 활용한 필드 공개화 69
4.1 속성형 매크로 프로젝트 설정 70
4.2 속성형 매크로와 파생 매크로의 비교 71
4.3 공개 가시성의 첫 단계 73
4.4 필드 가져오기 및 사용하기 74
4.5 가능한 확장 80
4.6 토큰 스트림을 파싱하는 여러 방법 81
4.6.1 사용자 정의 구조체에 작업 위임하기 81 / 4.6.2 Parse 트레이트 구현하기 84
4.6.3 커서를 활용한 세밀한 제어 86
4.7 개발과 디버깅을 위한 추가 방법 88
4.8 실제 사례 89
4.9 연습문제 94
4.10 요약 95

CHAPTER 5 함수형 매크로를 이용한 정보 은닉과 미니 DSL 작성 96
5.1 정보 은닉 96
5.1.1 정보 은닉 매크로 구성 97 / 5.1.2 구조체 다시 생성하기 100
5.1.3 헬퍼 메서드 생성하기 102
5.2 일반 코드 작성을 통한 디버깅 107
5.3 함수 합성 109
5.4 매크로별 고유 장점 114
5.5 실제 사례 115
5.6 연습문제 116
5.7 요약 117

CHAPTER 6 빌더 매크로 테스트 118
6.1 빌더 매크로 프로젝트 구성 120
6.2 프로젝트 구조의 구체화 122
6.3 화이트박스 단위 테스트 추가하기 124
6.4 블랙박스 단위 테스트 127
6.4.1 정상 경로 테스트 128 / 6.4.2 실제 프로퍼티 값이 있는 정상 경로 테스트 130
6.4.3 리팩터링을 위한 테스트 136 / 6.4.4 추가 개선과 테스트 141
6.4.5 새로운 접근 방식 145 / 6.4.6 예외 경로 테스트 148
6.5 단위 테스트의 필요성과 범위 150
6.6 단위 테스트를 넘어서 151
6.7 실제 사례 153
6.8 연습문제 154
6.9 요약 155

CHAPTER 7 패닉을 Result로, 우아한 오류 처리 156
7.1 오류와 제어 흐름 157
7.2 순수 함수와 비순수 함수 158
7.3 예외 처리의 대안 161
7.4 러스트의 Result와 패닉 165
7.5 패닉 프로젝트 구성 167
7.6 가변성과 불변성 반환 169
7.7 결과 얻기 171
7.8 패닉 제거하기 177
7.8.1 패닉을 Result로 변경하기 177 / 7.8.2 디버깅 과정에서의 발견 180
7.9 오류 처리 방식 181
7.9.1 syn을 활용한 오류 처리 183
7.9.2 오류 처리를 위한 proc_macro_error 사용하기 188
7.9.3 syn과 proc_macro_error 중 선택하기 193
7.10 실제 사례 193
7.11 연습문제 197
7.12 요약 197

CHAPTER 8 속성을 활용한 빌더 패턴 198
8.1 이름 변경 속성 199
8.1.1 새로운 속성 테스트하기 199 / 8.1.2 속성의 작동 구현하기 200
8.1.3 파싱의 여러 구현 방식 205
8.2 속성의 대체 이름 지정 206
8.3 적절한 기본값 210
8.4 기본값에 대한 더 나은 오류 메시지 214
8.5 더 나은 빌드 구현 217
8.5.1 잘못된 상태를 방지하고 타입 상태 패턴 사용하기 218
8.5.2 빌더 패턴과 타입 상태의 결합 220
8.6 조건문 분산 방지 230
8.7 속성 토큰과 속성 232
8.8 기타 속성들 239
8.9 실제 사례 241
8.10 연습문제 244
8.11 요약 244

CHAPTER 9 인프라스트럭처 DSL 작성 245
9.1 IaC와 AWS란 무엇인가? 246
9.2 DSL의 작동 방식 247
9.3 입력값 파싱하기 249
9.3.1 프로젝트 구성과 사용 예시 249
9.3.2 Parse 트레이트 구현하기 251
9.4 구문 분석의 대안적 접근법 258
9.4.1 사용자 정의 구조체와 함께 Punctuated 활용하기 258
9.4.2 사용자 정의 열거형과 빌더를 활용한 Punctuated 사용하기 261
9.5 실제 서비스 생성하기 265
9.6 2개의 AWS 클라이언트 270
9.7 오류와 선언적 매크로 274
9.8 올바른 테스트 방법 277
9.9 실제 사례 277
9.10 연습문제 281
9.11 요약 281

CHAPTER 10 매크로의 실전 활용 282
10.1 함수형 설정 매크로 283
10.1.1 매크로 프로젝트 구조 283 / 10.1.2 코드 개요 285
10.1.3 전체 경로 사용하기 288
10.2 매크로 추가하기 290
10.3 Feature 플래그 시스템 293
10.4 매크로 문서화하기 299
10.5 매크로 배포하기 303
10.6 실제 사례 304
10.7 다음 단계로의 여정 311
10.8 연습문제 312
10.9 요약 312

APPENDIX A 연습문제 해답 313
찾아보기 351

저자소개

샘 밴 오버마이어 (지은이)    정보 더보기
소프트웨어 개발자이지만 역사학과 고고학을 전공했다. 클라우드 엔지니어로서 10년간 자바, 자바스크립트, 파이썬, 그루비, Go 등 다양한 프로그래밍 언어를 다루며 실무 경험을 쌓았고, 숙련된 러스트 개발자이자 다수의 책, 과학 논문, 블로그 게시물의 저자다. 러스트, AWS, Cloudflare, 머신러닝, 도메인 주도 설계가 주요 관심사다.
펼치기
샘 밴 오버마이어의 다른 책 >
김찬빈 (옮긴이)    정보 더보기
숭실대학교에서 정보통신공학 학사와 석사를 취득하였다. 2017년부터 시스템 엔지니어로 근무하며 소규모 보안망에서부터 대규모 대국민 서비스까지 다양한 인프라를 아우르는 시스템을 설계하고 구현해왔다. 레거시 시스템들을 최적의 아키텍처 시스템으로 여러 번 마이그레이션한 경험이 있으며, 그중 기존의 C/C++ 기반 라이브러리 코드를 전부 러스트로 재작성하여 메모리 안정성을 확보하였다. Go 언어의 매력에 깊이 빠져 있지만, 러스트의 마성에도 가끔씩 취해서 종종 일부 시스템 도구를 작성하며 두 언어의 철학을 모두 흡수하고 있다. 평소 팀원들에게 철학을 가지고 코드를 작성하라고 하는 꼰대 팀장이며, 여전히 백발의 개발자를 꿈꾸며 개발과 삽질을 즐기는 중이다.
펼치기

책속에서



그리고 문득 깨닫게 됩니다. 아무리 간단한 러스트 코드를 작성하더라도, 어떻게든 매크로를 사용하게 될 수밖에 없다는 사실을요. 우리는 이미 러스트의 메타프로그래밍이 만들어 낸 결과물들에 둘러싸여 있었던 겁니다.


왜 이렇게 많은 사람이 매크로를 작성할까요? 러스트에서 매크로는 매우 강력한 형태의 메타프로그래밍을 제공하면서도, 상대적으로 사용하기 쉽고 안전하기 때문입니다. 이러한 안정성 중 일부는 러스트 자체가 컴파일 언어이기 때문에 가능합니다. 제 생각에 꽤나 어려운 언어인 Clojure와 한번 비교해 보세요. Clojure에서도 매크로를 쉽게 사용할 수 있지만, Clojure에는 컴파일 타임에 검사하는 기능은 전혀 없습니다. 자바스크립트와 파이썬도 마찬가지입니다. 자바스크립트의 경우 Mozilla 문서에서 '절대로 직접 eval()을 사용하지 말라'는 조언을 하는 중요한 이유도 바로 안전성과 보안성 때문입니다.


추천도서

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