Macro vs Function

매크로와 함수 선택, 실행 핀, 컴파일 펼침 구조

매크로는 편리하지만 컴파일 시 그래프가 펼쳐지고 디버깅 경계가 흐려지므로 함수, 매크로, 이벤트의 책임을 구분해야 합니다.

01

목적 확인

계산 재사용인지, 실행 흐름 제어인지, 이벤트 분배인지 먼저 구분합니다.

intent
02

함수 우선 검토

입출력 계약으로 표현 가능하고 부작용이 명확하면 함수로 만듭니다.

function
03

매크로 기준 확인

여러 실행 핀, 반복 흐름, early exit 같은 그래프 형태 재사용이 필요할 때 매크로를 씁니다.

macro
04

확장 비용 확인

매크로는 호출 위치마다 펼쳐져 그래프와 디버깅 비용이 커질 수 있습니다.

expand
05

공유 범위 결정

프로젝트 전체 공통이면 Macro Library나 Function Library로 위치를 명확히 합니다.

library
Function
값 계산과 명확한 작업 입력과 출력이 분명하고 단일 책임으로 읽히는 작업에 적합합니다.
디버깅 쉬움
Macro
그래프 흐름 재사용 실행 핀을 여러 개 만들거나 반복 흐름을 감싸야 할 때 의미가 있습니다.
남용 방지
Event
외부 트리거 수신 플레이어 입력, 충돌, 타이머처럼 시스템이 호출하는 진입점입니다.
상태 전환 명확히

매크로 사용 점검

디버깅 경계 문제가 생겼을 때 매크로 내부 흐름을 추적할 수 있어야 합니다.
숨은 부작용 매크로 안에서 외부 상태를 바꾸면 호출부에서 위험이 잘 보이지 않습니다.
중복 확장 많은 곳에서 호출되는 큰 매크로는 그래프와 컴파일 비용을 키울 수 있습니다.