노출 대상과 허용 동작을 따로 결정한다

리플렉션 매크로는 C++ 심볼을 에디터·Blueprint·직렬화·GC 시스템에 등록하고, specifier가 사용 범위를 좁힌다.

선택 순서무엇을 노출하나 → 어디서 보나 → 누가 바꾸나 → 수명·권한이 안전한가

UCLASS

타입

클래스 자체의 Blueprint 사용 방식과 상속 가능 범위를 정한다.

BlueprintType변수 타입으로 사용
BlueprintableBP 자식 클래스 생성
UPROPERTY

데이터

Details 편집 범위와 Blueprint 그래프 접근 권한은 서로 다른 축이다.

EditDefaultsOnly클래스 기본값만 편집
BlueprintReadOnly그래프에서는 읽기만
UFUNCTION

호출

Blueprint 호출 가능성과 네트워크 실행 방향을 명시한다.

Callable / Pure실행 노드 / 조회 노드
Server / ClientRPC 실행 위치

독립 축을 한 선언에 조합

UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category="Combat")
float MaxHealth = 100.0f;

UPROPERTY()
TObjectPtr<UObject> ActiveEffect;
GC
UObject 참조를 추적

멤버 참조는 UPROPERTY와 TObjectPtr로 수명 시스템에 보이게 한다.

GUARD
노출은 권한 검증이 아니다

BlueprintCallable이나 RPC에도 서버 측 값 검증은 별도로 필요하다.