์„œ๋น„์Šค
๊ต์œก ์ฒ ํ•™

Data Systems

Abstract

๐Ÿ“Œ
๊ฒŒ์ž„์—๋Š” ์ฝ”๋“œ ๋ง๊ณ ๋„ ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์ ์˜ ์ฒด๋ ฅ, ํ™”๋ฉด ๋ฌธ๊ตฌ, ์„œ๋ฒ„ ์ฃผ์†Œ, ๋ณผ๋ฅจ, ํ˜„์žฌ ์ ์ˆ˜. ์ด ํŽ˜์ด์ง€๋Š” ๊ทธ ๊ฐ’๋“ค์„ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋„ฃ์–ด ๋‘๋Š” ๋‹ค์„ฏ ๊ฐœ์˜ ์„œ๋ž์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ์–ด๋А ์„œ๋ž์— ๋„ฃ์„์ง€๋Š” ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์œผ๋กœ ์ •ํ•ด์ง‘๋‹ˆ๋‹ค: ๋ˆ„๊ฐ€ ๊ฐ’์„ ์ •ํ•˜๋‚˜, ๊ทธ๋ฆฌ๊ณ  ์–ธ์ œ๊นŒ์ง€ ๋‚จ์•„์•ผ ํ•˜๋‚˜.
์–ด๋А ์„œ๋ž์— ๋„ฃ์„๊นŒ
graph TD
    Q1{"๊ฐ’์„ ๋ˆ„๊ฐ€ ์ •ํ•˜๋‚˜?"}
    Q1 -- "๊ฐœ๋ฐœ์ž (๋นŒ๋“œ ์ „์— ์ •ํ•ด์ง)" --> Q2{"์–ด๋–ค ๋ชจ์–‘์ธ๊ฐ€?"}
    Q1 -- "์‹คํ–‰ ์ค‘์— ์ƒ๊ธด๋‹ค" --> Q3{"๊ฒŒ์ž„์„ ๊บผ๋„<br>๋‚จ์•„์•ผ ํ•˜๋‚˜?"}
    Q2 -- "๊ฐ™์€ ๋ชจ์–‘์˜ ํ–‰์ด ์—ฌ๋Ÿฌ ๊ฐœ" --> DT["DataTable<br>์  ์Šคํƒฏ, ์•„์ดํ…œ ๋ชฉ๋ก"]
    Q2 -- "์ด๋ฆ„ ํ•˜๋‚˜์— ๊ฐ’ ํ•˜๋‚˜" --> CF["Config<br>์„œ๋ฒ„ ์ฃผ์†Œ, ์ƒ์ˆ˜"]
    Q2 -- "์–ธ์–ด๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ฌธ์žฅ" --> LC["Localization<br>UI ๋ฌธ๊ตฌ"]
    Q3 -- "๋‚จ์•„์•ผ ํ•œ๋‹ค" --> ST["Setting<br>๋ณผ๋ฅจ, ์ตœ๊ณ  ์ ์ˆ˜"]
    Q3 -- "์ด๋ฒˆ ์‹คํ–‰๋งŒ" --> DN["DataNode<br>ํ˜„์žฌ ์Šคํ…Œ์ด์ง€, ์ž„์‹œ ์ƒํƒœ"]
Mermaid
๋ณต์‚ฌ
์„œ๋ž
๊ฐ’์˜ ์ถœ์ฒ˜
๊ฒŒ์ž„ ์ฝ”๋“œ๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋‚˜
์ €์žฅ๋˜๋‚˜
์ƒ์„ธ
DataTable
ํ…์ŠคํŠธ ์—์…‹
์ฝ๊ธฐ๋งŒ
Config
ํ…์ŠคํŠธ ์—์…‹
์ฝ๊ธฐ (๋Ÿฐํƒ€์ž„ ์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅ)
Localization
ํ…์ŠคํŠธ ์—์…‹ (์–ธ์–ด๋ณ„)
์ฝ๊ธฐ๋งŒ
Setting
ํ”Œ๋ ˆ์ด์–ด ๊ธฐ๊ธฐ
์ฝ๊ณ  ์“ฐ๊ธฐ
๋””์Šคํฌ
DataNode
์‹คํ–‰ ์ค‘ ์ฝ”๋“œ
์ฝ๊ณ  ์“ฐ๊ธฐ
๋ฉ”๋ชจ๋ฆฌ๋งŒ
์•ž์˜ ์…‹(DataTable ยท Config ยท Localization)์€ "ํ…์ŠคํŠธ ์—์…‹์„ ์ฝ์–ด ํ•ด์„ํ•œ๋‹ค"๋Š” ๊ณผ์ •์ด ๊ฐ™์•„์„œ ๊ฐ™์€ ๋กœ๋”ฉ ๋ถ€ํ’ˆ์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค(Data Provider System(๋ฐ์ดํ„ฐ ๊ณต๊ธ‰์ž ์‹œ์Šคํ…œ)). ๊ทธ๋ž˜์„œ ์…‹ ๋‹ค ReadData(์ฃผ์†Œ) โ†’ ์„ฑ๊ณต ์ด๋ฒคํŠธ โ†’ ์กฐํšŒ๋ผ๋Š” ๊ฐ™์€ ์ˆœ์„œ๋กœ ์”๋‹ˆ๋‹ค.
ToyboxNightmare ๋Š” ์–ด๋””์— ๋ฌด์—‡์„ ๋‘์—ˆ๋‚˜
๋‹ค์„ฏ ์„œ๋ž ์ค‘ ํ•˜๋‚˜๋„ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทœ๋ชจ๊ฐ€ ์ž‘์•„์„œ ์ „๋ถ€ ์ฝ”๋“œ์™€ ๊ฐ์ฒด๋กœ ์ถฉ๋ถ„ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  "๋‚˜์ค‘์— ์–ด๋А ์„œ๋ž์œผ๋กœ ๊ฐˆ ๊ฐ’์ธ์ง€"๊ฐ€ ๋“œ๋Ÿฌ๋‚˜๋„๋ก ๋ชจ์•„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
์ง€๊ธˆ ์žˆ๋Š” ๊ณณ
๋‚ด์šฉ
์ปค์ง€๋ฉด ๊ฐˆ ๊ณณ
EnemyTable, WeaponTable, AllyTable (C# ์ƒ์ˆ˜ ๋ฐฐ์—ด)
์  5์ข…ยท๋ฌด๊ธฐ 4์ข…ยท์•„๊ตฐ์˜ ์ˆ˜์น˜
DataTable
UITable, SoundTable (C# ์ƒ์ˆ˜)
Addressables ์ฃผ์†Œ, ๊ทธ๋ฃน ์ด๋ฆ„
Config ๋˜๋Š” ๊ทธ๋Œ€๋กœ
HUDForm ์˜ const string
"Select a character", "Score: {0}"
Localization
(์ €์žฅํ•˜์ง€ ์•Š์Œ)
๋ณผ๋ฅจ, ์ตœ๊ณ  ์ ์ˆ˜
Setting
SurvivalGame ์˜ ํ•„๋“œ
ํ˜„์žฌ ์ ์ˆ˜, ๊ฒŒ์ž„์˜ค๋ฒ„ ์—ฌ๋ถ€
๊ทธ๋Œ€๋กœ (๋˜๋Š” Procedure ๊ฐ€ ๋Š˜๋ฉด DataNode)
"์ฒ˜์Œ๋ถ€ํ„ฐ ์ „๋ถ€ ํ…Œ์ด๋ธ”๋กœ" ๋งŒ๋“ค ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ ํ•œ๊ณณ์— ๋ชจ์•„ ๋‘๊ธฐ๋งŒ ํ•˜๋ฉด ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์€ ๋‚˜์ค‘์— ๋ฐ˜๋‚˜์ ˆ ์ผ์ž…๋‹ˆ๋‹ค. ํฉ์–ด์ ธ ์žˆ์œผ๋ฉด ์˜ฎ๊ธธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
โš ๏ธ
์ด ์—๋””์…˜์—์„œ ๋‹ค๋ฅธ ์  ยท ๋ณธ๋ฌธ์„ ์ฝ์„ ๋•Œ ์ฃผ์˜ํ•  ์ 
โ€ข
๋ณธ๋ฌธ์˜ DataTableManager.CreateDataTable<T>(), SetSettingHelper, Load ๋“ฑ์€ ์ฝ”์–ด API ์ž…๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์ฝ”๋“œ๋Š” GameEntry.GetComponent<DataTableComponent>() ๊ฐ™์€ Unity ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•˜๊ณ , ํ—ฌํผ ์ง€์ •๊ณผ ์ดˆ๊ธฐ ๋กœ๋“œ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋Œ€์‹  ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
"๋ฆฌ์†Œ์Šค ์‹œ์Šคํ…œ ์—ฐ๋™"์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์€ ์ด ์—๋””์…˜์—์„œ Addressables ์— ๋“ฑ๋กํ•œ TextAsset ์ด๊ณ , ReadData ์—๋Š” ๊ทธ ์ฃผ์†Œ๋ฅผ ๋„˜๊น๋‹ˆ๋‹ค. "์ง„ํ–‰ ์ƒํ™ฉ ์ด๋ฒคํŠธ"๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์„ฑ๊ณตยท์‹คํŒจ๋งŒ ์˜ต๋‹ˆ๋‹ค.
โ€ข
๋กœ๋“œ๋Š” ๋น„๋™๊ธฐ์ž…๋‹ˆ๋‹ค. ReadData ์งํ›„์—๋Š” ๋น„์–ด ์žˆ๊ณ , ์„ฑ๊ณต ์ด๋ฒคํŠธ ๋’ค์— ์กฐํšŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์€ ๋ณดํ†ต ๊ฒŒ์ž„ ์‹œ์ž‘ ์ „ ์ „์šฉ Procedure(Preload)์—์„œ ๋ชจ์•„์„œ ํ•˜๊ณ , ์ „๋ถ€ ๋๋‚˜๋ฉด ๋‹ค์Œ Procedure ๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

๊ฐœ์š”

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