[Unreal] 모의 면접 질문 리스트

_ dfdeer·2025년 9월 11일

모의 면접

목록 보기
3/5

1. 언리얼 오브젝트 (UObject)

언리얼 엔진의 모든 객체의 기본 클래스이다.
Actor, Conmponent 등 대부분의 UE 클래스가 UObject 를 상속 받는다.

Class Default Object (CDO)

각 UClass 가 생성될 때 만들어지는 기본 객체이다.

게임 실행 전 기본 값을 가지고 있고, 인스턴스를 만들 때 이 CDO 의 값이 복사된다.

주로 디폴트 값 설정, 프로퍼티 초기화의 용도로 활용된다.

2. GI / GM / GS / PS 클래스의 차이점

클래스역할생존 범위
GameInstance전체 게임 세션 동안 유지되는 데이터클라이언트 + 서버 (항상 살아 있음)
GameMode게임 규칙, 승패, 스폰 등 게임 로직 담당서버 전용 (레벨 전환 시 파괴)
GameState현재 게임 상태 공유 (점수, 시간 등)서버 + 클라이언트 (레벨 전환 시 파괴)
PlayerState플레이어별 상태 (HP, 점수, 이름 등)서버 + 클라이언트 (항상 살아 있음)

위 클래스들을 활용한 경험

클래스활용 경험
GameInstance게임 전체 점수
GameMode플레이어, AI 스폰 및 레벨 전환 등 게임 플로우 로직
GameState실시간 점수 동기화 및 UI 업데이트

3. 가비지 컬렉션

UObject 기반 객체는 레퍼런스 카운트 기반이 아닌, 가비지 컬렉터가 주기적으로 참조를 탐색한다.
UPROPERTY 로 선언된 포인터만 가비지 컬렉션이 추적이 가능하다.
AddToRoot() 함수를 통해 수동으로 관리할 수도 있다.

가비지 컬렉션은 순환 참조를 방지하고 메모리 안전성을 확보하기 위해 사용된다.

4. 스마트 포인터

타입기능
TSharedPtr참조 카운트 기반, 메모리 자동 해제
TWeakPtr약한 참조, 소유권 없음, nullptr 체크 필요
TUniquePtr단독 소유, 이동 가능, 복사 불가

C++ 에서의 스마트 포인터

https://velog.io/@dfdeer/CC-모의-면접-질문-리스트

    1. C++ 스마트 포인터

부분을 보면 스마트 포인터에 대한 설명이 상세히 적혀있다.

5. 언리얼 빌드 툴 / 헤더 툴

Unreal Build Tool (UBT)

  • C++ 프로젝트를 컴파일할 때 필요한 파일/모듈 관리, 빌드 옵션 제공.

Unreal Header Tool (UHT)

  • UCLASS, UPROPERTY 등 매크로를 해석하고, 리플렉션 데이터 코드 자동 생성.

6. StaticClass() / GetClass()

메서드설명
StaticClass()클래스 자체를 반환. 객체 없이 호출 가능
GetClass()객체 인스턴스에서 호출, 해당 객체의 클래스 반환

TSubclassOf 변수 초기화 -> StaticClass()
런타임 객체 타입 체크 -> GetClass()

7. TSubclassof

탬플릿 클래스로, 특정 클래스의 자식 클래스 타입만 가질 수 있는 안전한 포인터이다.

8. IsValid / == nullptr

구분설명
IsValid(Object)UObject 가 유효하고 GC 에 의해 삭제되지 않았는지 확인
== nullptr단순히 포인터가 nullptr 인지 확인

9. 언리얼 string 클래스

종류역할
FString문자열 저장, 수정/복사 가능
FName해시 기반, 식별자/키로써 사용, 성능 좋음
FText로컬라이제이션 가능, UI용

10. 비헤이비어 트리 / FSM

종류역할
Behavior Tree (BT)AI 의사결정 트리, 조건과 액션 기반
FSM (Finite State Machine)상태 전환 기반, 단순 AI, UI 상태 관리

활용 경험

적 NPC AI -> BT 로 추적, 공격, 도망 패턴 구현

0개의 댓글