GameDevelop/UnrealEngine

TArray, TMap

Une_ 2026. 1. 10. 00:02

 

언리얼 엔진의 TArray와 TMap에 대해 정리해보았습니다.

구글링 및 AI를 참고했습니다.

 

Unreal Engine의 TArray와 TMap

1. Unreal 컨테이너를 왜 따로 쓰는가?

언리얼 엔진에는 STL 대신 자체 컨테이너(TArray, TMap, TSet) 가 있다.

이유는 다음과 같다.

  • 엔진 메모리 관리 시스템과 통합
  • Garbage Collection / Reflection 지원
  • 플랫폼별 최적화
  • 직렬화(Serialize) 지원

👉 STL보다 엔진 친화적

 

2. TArray란?

1) 한 줄 정의

TArray는 언리얼 엔진의 동적 배열 컨테이너다.
STL의 std::vector 와 유사하다.

2) 기본 특징

  • 연속 메모리 구조
  • 인덱스 기반 접근
  • 자동 크기 확장

3) 내부 구조 핵심

  • 내부적으로 힙 메모리 연속 할당
  • Capacity 개념 존재
  • 재할당 시 메모리 이동 발생

👉 인덱스 접근은 O(1)

4) 언제 쓰나?

  • 순서가 중요한 데이터
  • 반복 접근이 많은 경우
  • 캐시 친화적 구조 필요할 때

 

3. TMap이란?

1) 한 줄 정의

TMap은 Key–Value 기반 해시 테이블 컨테이너다.
STL의 std::unordered_map 과 유사하다.

2) 내부 구조 핵심

  • Hash 기반
  • Key → Hash → Bucket
  • 평균 탐색 시간 O(1)

👉 순서 보장 안 됨

3) Key 타입 주의사항

  • Key는 반드시:
    • GetTypeHash() 가 정의되어 있어야 함
    • == 연산자 필요

 

4. TArray vs TMap 비교

항목 TArray TMap
구조 배열 해시 테이블
접근 방식 인덱스 Key
탐색 O(N) O(1) 평균
순서 유지
메모리 적음 많음

5. 게임 개발 실무 기준 선택

TArray를 써야 할 때

  • 순서 중요
  • 빈번한 반복
  • 성능 민감 코드

TMap을 써야 할 때

  • ID → 객체 매핑
  • 빠른 검색 필요
  • 순서 불필요

8. 한문장 요약

TArray는 연속 메모리 기반의 동적 배열로, 반복 접근에 유리하고,
TMap은 해시 기반 Key–Value 컨테이너로, 빠른 조회에 적합합니다.

'GameDevelop > UnrealEngine' 카테고리의 다른 글

UBT (Unreal Build Tool)  (0) 2026.01.15
UHT (Unreal Header Tool)  (0) 2026.01.15
UnrealEngine - 언리얼엔진의 UI 렌더링 과정  (1) 2025.12.31
UnrealEngine - UObject와 AActor  (0) 2025.12.18
UnrealEngine - Garbage Collection(GC)  (0) 2025.12.18