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

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

$33.00
Description
러스트 매크로에 관한 가장 포괄적인 참고서
이 책은 중급 러스트 프로그래머에게 매크로의 세계를 열어주는데, 먼저 선언적 매크로부터 시작하여 기본기를 다지고, 빌더를 자동으로 생성하고, 자신만의 도메인 특화 언어를 만드는 방법을 배우는 등 절차적 매크로로 나아간다. 학습 과정에서 매크로 테스트, 크레이트와의 매크로 통합, 심지어 다른 개발자와 매크로를 공유하는 방법 등 실용적인 기술을 익힐 수 있다.
저자

샘밴오버마이어

소프트웨어개발자이지만역사학과고고학을전공했다.클라우드엔지니어로서10년간자바,자바스크립트,파이썬,그루비,Go등다양한프로그래밍언어를다루며실무경험을쌓았고,숙련된러스트개발자이자다수의책,과학논문,블로그게시물의저자다.러스트,AWS,Cloudflare,머신러닝,도메인주도설계가주요관심사다.

목차

옮긴이머리말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

CHAPTER2선언적매크로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.4DSL36/2.2.5구성하기는쉽습니다39
2.2.6반면에커링은…43/2.2.7위생도고려해야할사항입니다45
2.3실제사례46
2.4연습문제48
2.5요약49

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

CHAPTER4속성형매크로를활용한필드공개화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.2Parse트레이트구현하기84
4.6.3커서를활용한세밀한제어86
4.7개발과디버깅을위한추가방법88
4.8실제사례89
4.9연습문제94
4.10요약95

CHAPTER5함수형매크로를이용한정보은닉과미니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

CHAPTER6빌더매크로테스트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

CHAPTER7패닉을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.1syn을활용한오류처리183
7.9.2오류처리를위한proc_macro_error사용하기188
7.9.3syn과proc_macro_error중선택하기193
7.10실제사례193
7.11연습문제197
7.12요약197

CHAPTER8속성을활용한빌더패턴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

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

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

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

출판사 서평

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

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