# 매크로 ### 매크로 사용의 경험적 규칙 - 함수로도 가능한 기능이라면 매크로를 작성하지 않는 것이 좋다. 매크로는 문법적 추상화나 바인딩 구문 생성이 필요할 때 작성하자 - 매크로의 예제를 작성해두자 - 작성한 매크로의 예제를 직접 확장해보자. - macroexpand, macroexpand-1, clojure.walk/[[macroexpand-all]] 등을 사용해서 구현한 매크로의 동작을 확인하자 - 작성한 매크로를 [[REPL]]에서 테스트해보자 - 복잡한 매크로는 가능하면 작은 함수들로 분리하자 ### 매크로 정리 - 매크로는 클로저에서 메타 프로그래밍을 하는 방법이다 - 매크로의 이점은 간결한 코드, 반복된 패턴 제거, 언어 기능 생성이다 - [[defmacro]]와 보통의 [[list]] 함수로 매크로를 만드는 방법을 보았다 - [[defmacro]]와 [[템플릿]]으로 매크로를 만드는 방법을 보았다 - 매크로의 힘이 강력하다는 것과 그것을 절제해서 사용해야 한다는 것을 보았다