🔥 소개

183자
3분

프로그래밍을 하다 보면 반복적으로 작성해야 하는 코드가 있기 마련입니다. 이런 반복 작업은 시간도 오래 걸릴 뿐더러 실수로 이어질 수 있죠. 하지만 걱정 마세요! Swift의 매크로 기능이 여러분의 코딩 작업을 한결 수월하게 만들어 줄 거예요.

매크로는 컴파일 시점에 여러분의 소스 코드를 변환합니다. 덕분에 반복적인 코드를 일일이 작성할 필요가 없어지죠. 컴파일러는 매크로를 확장한 뒤, 코드를 빌드합니다.

lecture image

매크로 확장은 언제나 기존 코드에 무언가를 추가하는 과정이에요. 새로운 코드를 생성할 순 있어도, 기존 코드를 삭제하거나 수정하진 않습니다.

매크로의 입력값과 매크로 확장으로 생성된 코드는 모두 문법적으로 유효한 Swift 코드인지 검사를 거칩니다. 매크로에 전달하는 값들과 매크로가 생성한 코드의 값들 역시 올바른 타입인지 확인하죠. 게다가 매크로를 확장하는 과정에서 오류가 발생하면, 컴파일러는 이를 컴파일 오류로 취급합니다. 이런 안전장치 덕분에 매크로를 사용하는 코드를 이해하기가 한결 쉬워지고, 매크로를 잘못 사용했거나 매크로 구현에 버그가 있는 문제를 빠르게 발견할 수 있게 되죠.

Swift에는 두 가지 종류의 매크로가 있습니다.

  • 독립형 매크로(Freestanding macros)는 선언과 독립적으로 사용할 수 있어요.
  • 첨부형 매크로(Attached macros)는 매크로가 사용된 곳을 변경하는 매크로입니다.

독립형 매크로와 첨부형 매크로를 호출하는 방식은 약간 다르지만, 매크로 확장 모델을 따르는 점은 동일해요. 이 두 매크로는 구현 방식도 같답니다. 지금부터 두 종류의 매크로에 대해 자세히 알아볼게요.