vec!처럼 반복 패턴과 작은 DSL을 $(),
*, + 매처로 선언합니다.
macro expansion
Rust 매크로는 토큰 확장이 필요한 순간에만 고른다
반복 제거가 목적이면 함수와 제네릭을 먼저 보고, 호출 문법 자체를 만들거나 trait 구현을 생성해야 할 때 매크로를 선택합니다.
#[derive(Debug, Clone)]처럼 구조체와 enum에 trait
구현을 자동 생성합니다.
#[route], #[test]처럼 아이템에 붙어 함수
시그니처나 등록 코드를 변환합니다.
sql!(...)처럼 함수 호출 형태로 입력 토큰을 받아 새 Rust
코드를 출력합니다.