• 메인으로 이동
    AD광고
    New사랑과 우정으로 빛나는 모험프린세스 캐치 티니핑
    AD광고
    Best Seller소년 김구의 가슴 뜨거운 역사설민석의 한국사 대모험 38
    • 베스트
    • 소득공제
    • 무료배송

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

    • 샘 밴 오버마이어 저
    • 김찬빈 역
    • 제이펍
    • 2025년 12월 04일
    10%29,70033,000
    적립금
    1,650원 (5% 적립)
    추가 적립
    추가 적립 안내
    • 5만원 이상 결제 시 (*배송비 제외)

      정가제FREE(상품/사은품) 금액이 2,000원 이상이면 2,000원 추가적립

    • 10만원 이상 결제 시 (*배송비 제외)

      정가제FREE(상품/사은품) 금액이 2,000원 이상이면 2,000원 추가적립

      정가제FREE(상품/사은품) 금액이 5,000원 이상이면 5,000원 추가적립

    결제혜택
    무이자 할부
    결제사 혜택
    쿠폰
    회원 가입 즉시 지급되는 적립금 과 등급별 다양한 회원 혜택 보기
    배송비
    무료  (해외배송의 경우 지역에 따라 상이)

    배송안내

    서울특별시 강남구 강남대로 542(논현동, 영풍빌딩)
    지금 택배 주문하면 9/21(월) 출고 가능
    택배보다 빠른, 나우드림
    29,700

    [네이버페이]

    상품 규격 정보
    상품상세정보
    ISBN ISBN-13 : 9791194587354
    쪽수376쪽
    크기기타 규격
    제품구성단행본
    이 책이 속한 분야
    • 컴퓨터/IT > 인터넷
    관련 이벤트
    • 사은품

    이달의 리뷰왕

    2026.01.01 ~ 2026.12.31

    • 사은품

    신규가입시 최대 10,800원

    2025.12.31 ~ 2026.12.31

    • 사은품

    『디그 잇3』 출간기념 포토카드 증정 이벤트

    2026.09.14 ~ 2026.10.02

    • 사은품

    2026 추석 프로모션 - 영롱한 보름달처럼 풍성한 추석 혜택

    2026.09.09 ~ 2026.09.27

    • 사은품

    『유치원 Wars 17』 출간 기념 포토카드 증정!

    2026.09.01 ~ 2026.09.28

    • 사은품

    9월 특별선물 《영풍문고 리유저블백》

    2026.09.01 ~ 2026.09.30

    • 사은품

    이달의 리뷰왕

    2026.01.01 ~ 2026.12.31

    • 사은품

    신규가입시 최대 10,800원

    2025.12.31 ~ 2026.12.31

    • 사은품

    『디그 잇3』 출간기념 포토카드 증정 이벤트

    2026.09.14 ~ 2026.10.02

    • 사은품

    2026 추석 프로모션 - 영롱한 보름달처럼 풍성한 추석 혜택

    2026.09.09 ~ 2026.09.27

    책 소개

    러스트 매크로에 관한 가장 포괄적인 참고서

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

    목차

    [목 차]
      

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


    [본 문]
      

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

     

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

     

    마지막으로, 함수형 매크로는 파생 매크로보다는 속성형 매크로와 더 비슷한 특징을 가지고 있습니다. 입력으로 받은 토큰이 출력으로 대체된다는 점이 그렇습니다(그림 5.1 참고). 이는 매우 자연스러운 작동 방식입니다. 다른 매크로들이 구조체나 열거형 같은 구조화된 데이터를 입력으로 받는 것과 달리, 함수형 매크로는 유효한 러스트 코드가 아닌 것을 포함해 어떤 형태의 입력이든 받을 수 있습니다. 만약 이러한 입력이 소스 코드에 그대로 남아 있다면 컴파일러는 잘못된 구문이라며 오류를 발생시킬 것이고, 이는 원하는 결과가 아닐 것입니다. _99

     

    매크로 개발 과정에서 만나게 되는 오류 메시지들은 종종 이해하기가 어렵고, 해당 메시지만 읽어서는 다음에 무엇을 어떻게 해야 할지 판단하기가 쉽지 않습니다. 물론 가장 기본적인 해결 방법으로는 그냥 천천히 오류 메시지를 다시 읽어보면 됩니다. 당연한 조언이지만 실제로 도움이 되는 경우가 많습니다. 하지만 오류 메시지를 읽어보는 것만으로 문제가 해결되지 않을 때가 있습니다. 이런 경우에는 매크로가 최종적으로 생성하고자 하는 결과물을 매크로 코드가 아닌 일반 코드로 작성해 보면 효과적으로 해결할 수 있습니다. _107

    추천사

    노아 기프트 (Pragmatic AI Labs, 듀크대학교 Executive-in-Residence)

    러스트의 가장 강력한 기능 중 하나인 매크로 시스템을 심층적으로 다루며, 메타프로그래밍의 기술을 명쾌하게 풀어냅니다. 필독서입니다!

     

    숀 매카서 (hyper.rs 메인테이너)

    러스트 매크로를 '어떻게' 사용해야 하는지에 대한 지식뿐만 아니라, '언제' 사용해야 하는지에 대한 통찰력까지 전문적으로 갖추게 해줍니다.

    출판사 서평



    러스트의 반복적인 패턴들을 자동화하고자 한다면 바로 이 책이 필요할 겁니다

    진입 장벽이 높은 러스트의 진정한 힘을 끌어내기 위해서는 단순한 문법 습득을 넘어서 이 언어만의 고유한 패턴과 관용구를 이해하고 활용하는 것이 필수적이며, 매크로는 러스트의 가장 중요하고 강력한 도구 중 하나다. 다루기 까다롭다고 알려져 있지만, 이 메타프로그래밍 기법은 그만한 가치가 있다. 컴파일 시간에 매크로를 사용하여 새로운 러스트 코드를 생성하면, 런타임 성능에 거의 영향을 주지 않으면서도 몇 시간이고 반복해야 할 지루한 코딩 작업을 줄일 수 있다. 이 책은 러스트의 이러한 강력한 기능을 완벽하게 마스터하는 방법을 정확히 안내한다.

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

     

    ■ 매크로 코드 읽기 및 디버깅

    ■ 러스트 라이브러리에서 매크로를 사용하는 방법

    ■ 뉴타입(newtype)과 타입 상태 패턴(type state pattern)

    저자 소개
    저자 : 샘 밴 오버마이어
    도서리뷰
    이 책을 읽고 어떤 느낌을 받으셨나요? 리뷰를 남기고 다른 독자들과 함께 공유해보세요.

    구매(배송/수령완료) 후 리뷰를 작성하시면 적립금 300원을 드려요!

    등록된 리뷰가 없습니다

    첫번째 리뷰어가 되어주세요

    이 분야에서 요즘 뜨는 책
    에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
    AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
    인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
    비전공자를 위한 이해할 수 있는 파이썬 - 챗GPT 시대에 최적화된 파이썬 공부법최원영 | 티더블유아이지
    엔트리 인공지능 with 햄스터 로봇 - 개정판강윤지,박찬규,강성웅,김원유,심재민,김연구,홍성용,김경상,정인재 | 영진닷컴
    에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
    AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
    인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
    비전공자를 위한 이해할 수 있는 파이썬 - 챗GPT 시대에 최적화된 파이썬 공부법최원영 | 티더블유아이지
    엔트리 인공지능 with 햄스터 로봇 - 개정판강윤지,박찬규,강성웅,김원유,심재민,김연구,홍성용,김경상,정인재 | 영진닷컴
    에러가 무섭지 않게 되는 책 - 에러 잘 읽는 법부터 효율적으로 디버깅하고 디버깅이 쉬운 코드를 작성하는 법까지사쿠라바 히로유키, 모치즈키 고타로 | 제이펍
    AI혁신:개정판 - 나의 커리어를 높이는 스마트워크 전략박대형, 김상용, 차명일, 임성기 | 지식과감성
    인생 언리얼 5 프로젝트 교과서 - 언리얼 엔진으로 3D 이머시브 콘텐츠 개발이영호, 박원석, 박현상, 탁광욱, 이영훈, 김현진 | BM성안당
    교환/반품/환불
    반품/교환방법
    • 마이페이지 > 주문관리 > 주문/배송조회 > 주문조회 후  [1:1상담신청]  또는 고객센터 (1544-9020)
    • ※ 오픈마켓, 해외배송 주문상품 문의 시 [1:1상담신청] 또는 고객센터 (1544-9020)
    반품/교환 가능기간
    • 변심반품의 경우 수령 후 7일 이내
    • 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
    반품/교환비용
    • 단순변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    • 해외직배송 도서 구매 후 단순변심에 의한 취소 및 반품 시 도서판매가의 20% 수수료 부과
    반품/교환 불가 사유
    • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
      예) 만화, 잡지, 수험서 및 문제집류
    • 복제가 가능한 상품 등의 포장을 훼손한 경우
      예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
    • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
    • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    상품 품절
    • 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
    소비자 피해보상
    환불지연에 따른 배상
    • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함
    공지사항
    • [이벤트 당첨자 발표] 26년 9월 <이달의 작가> 댓글 이벤트 당첨자 안내
    • [이벤트 당첨자 발표] 8월 모두의 서가 이벤트 당첨자 판매금액 리워드 안내
    • [이벤트 당첨자 발표] 26년 8월 <리뷰왕을 찾아라> 이벤트 당첨자 안내
    • [이벤트 당첨자 발표] 서울국제정원박람회, 김진명 작가 북토크 당첨자 안내
    • [이벤트 당첨자 발표] 9월 모두의 서가 이벤트 당첨자 안내
    공지더보기