데이터는 가장 짧게 살아도 되는 프레임워크 클래스에 둔다

클래스 이름부터 고르지 말고 데이터의 수명과 공개 범위를 먼저 묻는다. 오래 사는 객체일수록 더 적고 안정적인 정보만 가져야 한다.

APP LIFETIME

UGameInstance

레벨 전환 뒤에도 남아야 하는 세션, 설정, 진행도만 둔다. 현재 월드의 액터 참조는 오래 보관하지 않는다.

SERVER → ALL

GameMode → GameState

서버 전용 GameMode가 규칙과 승패를 판정하고, 클라이언트가 읽을 점수·시간·라운드는 GameState로 복제한다.

PLAYER LIFETIME

APlayerController

해당 플레이어의 입력, 카메라, 로컬 UI 명령을 소유하고 현재 Pawn을 제어한다. 월드의 몸과 판단 주체를 분리한다.

SPAWN LIFETIME

Pawn · Actor · Component

스폰부터 파괴까지 존재하는 몸체와 이동·충돌·감지 같은 기능을 둔다. 재사용 기능은 작은 Component로 조립한다.