언리얼 엔진의 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 |