코드를 수정하지 않고 외부 데이터(테이블, 설정 파일)로 동작을 바꿀 수 있는 설계 방식
ex)
하드코딩 (Hard Coding)
void Attack() {
damage = 150; // 수치 바꾸려면 코드 수정
cooldown = 2.0f; // 빌드 다시 해야 함
range = 300.0f; // 기획자가 못 건드림
}
데이터 드리븐 (Data-Driven)
void Attack() {
damage = SkillTable["Slash"].Damage; // 테이블만 수정
cooldown = SkillTable["Slash"].Cooldown; // 빌드 불필요
range = SkillTable["Slash"].Range; // 기획자가 직접 조정
}
Lv1. 상수 분리 : config 파일, ini 로 구성되어있고 가장 단순하다
Lv2. 테이블 기반 : DataTable, CSV로 구성되어있고 행 추가로 콘텐츠 확장
Lv3. 에셋 기반 : DataAsset, ScriptableObject로 구성되어있고 복잡한 구조 표현이 가능하다
Lv4. 런타임 로드 : 서버에서 내려받는 수치로 라이브 서비스, 핫픽스가 가능하다.
레벨이 높다고 무조건 좋은게 아니다. 레벨이 높을수록 유연하지만 복잡도가 증가한다. 프로젝트 규모에 맞게 레벨을 선택하는 판단력이 중요하다.
관련 용어들
OCP(개방-폐쇄 원칙) : SOLID의 O. 확장에는 열려 있고, 수정에는 닫혀 있어야한다. 데이터 드리븐이 이 원칙을 구조적으로 구현하는 방식이다.
핫픽스/핫리로드 : 서버나 클라이언트 재시작 없이 데이터를 갱신하는 것. 라이브 서비스에서 밸런스 긴급 수정할 때 사용한다.
설정 주도 설계 ( Configuration-Driven ) : 데이터 드리븐의 상위 개념. 수치뿐 아니라 동작 방식 자체를 데이터로 정의하는 것.
'Word' 카테고리의 다른 글
| 밸런스 패치 ( Balance Patch ), 스코프 ( Scope ), 확장성 ( Scalability ) (0) | 2026.06.26 |
|---|---|
| 게임 필 ( Game Feel / Juice ) (0) | 2026.06.25 |
| 리텐션 ( Retention ) (0) | 2026.06.25 |
| 병목 ( Bottleneck ) (0) | 2026.06.24 |
| 크런치 ( Crunch ), 히트박스/헛박스 (Hitbox/Hurtbox) (0) | 2026.06.24 |
