Company
교육 철학

Data Systems

개요

GameFramework의 데이터 시스템(Data Systems)은 게임 데이터, 설정, 구성 등을 관리하기 위한 강력한 메커니즘을 제공합니다.
이 컴포넌트는 다섯 가지 주요 데이터 관리 하위 시스템으로 구성되며, 각각 게임 데이터의 저장, 접근, 조직화, 지속성을 담당합니다.

다섯 가지 주요 매니저

1.
DataTableManager – 고유 식별자를 가진 행(Row) 단위의 구조화된 데이터 테이블 관리
2.
LocalizationManager – 다국어 텍스트 콘텐츠 관리(키-값 딕셔너리 기반)
3.
ConfigManager – 키-값 기반 게임 설정 값 접근
4.
SettingManager – 사용자 설정 값 저장/로드
5.
DataNodeManager – 계층적 트리 구조의 데이터 노드 관리

공통 패턴

각 시스템은 다른 데이터 타입을 처리하지만 다음과 같은 공통 아키텍처 패턴을 공유합니다.
모든 매니저는 GameFrameworkModule을 상속
데이터 로드를 위한 DataProvider 패턴 사용
플랫폼별 구현을 위한 Helper 인터페이스 활용
효율적인 조회를 위한 딕셔너리(Dictionary) 기반 저장
타입 안전성(Type-safe) 있는 데이터 접근 메서드 제공

시스템별 상세 설명

1. DataTable System

구조화된 타입 안전 데이터 저장소를 제공하며, 캐릭터 스탯, 아이템 속성, 레벨 설정 등에 주로 사용됩니다.
특징
제네릭을 통한 강력한 타입 안전성
ID 기반 빠른 데이터 조회
행(Row) 필터링, 검색, 정렬 지원
문자열/바이너리/리소스에서 데이터 로드 가능
사용 예시
1.
IDataRow 인터페이스를 구현하는 클래스 생성
2.
DataTableManager.CreateDataTable<T>()로 테이블 생성
3.
ParseData 또는 리소스 시스템을 통해 데이터 로드
4.
ID나 조건식으로 행 검색

2. Localization System

다국어 지원을 위해 문자열 딕셔너리를 관리하는 시스템입니다.
특징
다중 언어 지원
키 기반 문자열 검색
플레이스홀더 기반 문자열 포맷팅
리소스 시스템과 연계하여 언어 데이터 로드
사용 예시
1.
LocalizationManager.Language로 현재 언어 설정
2.
ReadData로 언어 데이터 로드
3.
GetString으로 번역된 문자열 가져오기

3. Configure System

게임 전역 설정을 키-값 형태로 제공하며, 주로 정적 게임 설정에 사용됩니다.
특징
Key-Value 기반 설정 저장
bool, int, float, string 등 다양한 타입 지원
런타임 수정 가능
리소스 시스템과 연동 가능
사용 예시
1.
ReadData로 설정 데이터 로드
2.
HasConfig로 특정 키 존재 여부 확인
3.
Get<Type> 메서드로 값 조회
4.
필요 시 런타임 수정

4. Settings System\

사용자 설정 값을 세션 간 유지하기 위해 설계된 시스템입니다.
특징
영구적(파일/플랫폼별) 저장
bool, int, float, string, object 타입 지원
저장/불러오기 기능 제공
Helper를 통한 플랫폼 독립 구현
사용 예시
1.
SetSettingHelper로 플랫폼별 헬퍼 지정
2.
Load로 기존 설정 불러오기
3.
Getter/Setter로 값 조회 및 변경
4.
Save로 변경 사항 저장

5. DataNode System

계층적 트리 구조를 기반으로 데이터를 관리합니다.
특징
부모-자식 관계의 트리형 구조
경로 기반 노드 접근
Variable 시스템을 통한 다양한 데이터 타입 지원
동적 노드 생성 및 삭제 가능
사용 예시
1.
GetOrAddNode("Root/Child")로 노드 접근 또는 생성
2.
SetData로 값 설정
3.
GetData로 값 읽기

리소스 시스템 연동

SettingManager를 제외한 모든 데이터 시스템은 리소스 시스템과 연계됩니다.
데이터 로딩 과정:
1.
SetResourceManager로 리소스 매니저 지정
2.
ReadData(AssetName) 호출
3.
비동기 로드 → 데이터 파싱
4.
로드 성공/실패/진행 상황을 이벤트로 알림

데이터 시스템 비교표

시스템
주요 용도
구조
지속성
타입 안전성
리소스 연동
DataTable
게임 데이터(아이템, 캐릭터)
타입 지정 테이블
읽기 전용(대개)
강함(제네릭)
O
Localization
다국어 텍스트
Key-Value
읽기 전용(대개)
문자열 기반
O
Config
전역 게임 설정
Key-Value
읽기/런타임
기본 타입
O
Setting
사용자 설정
Key-Value
영구 저장
기본+객체 직렬화
X
DataNode
계층적 동적 데이터
트리 구조
메모리 상
Variable 기반
X