Data Format
데이터를 "저장하거나 전달하기 위해 약속된 구조"
컴퓨터가 데이터를 이해할 수 있도록 일정한 규칙으로 표현한 형태를 말한다.
텍스트로 표현할 수도 있고 ( CSV , JSON 등 ) 이진 ( binary )형태로 빠르게 저장할 수 있다. ( Image , mp3 등 )
데이터 포맷이 필요한 이유
1. 서로 다른 시스템 간에 데이터를 주고 받기 위해
- 게임 서버 ↔ 클라이언트
- 웹 브라우저 ↔ 서버
- Unity ↔ 외부 데이터 파일 ( CSV , JSON )
이때 같은 규칙 ( 포맷 ) 으로 구조화되어 있어야 해석할 수 있다
2. 데이터를 효율적으로 저장하기 위해
- 텍스트 기반 포맷 → 사람이 읽기 쉽다
- Binary 포맷 → 크기가 작고 처리속도가 빠르다
각 상황에 맞는 포맷을 선택해야 한다
3. 불필요한 정보 없이 구조화하여 유지보수하기 좋다
{"name": "Slime", "hp": 30}
이런 JSON 을 보면 어떤 데이터인지 바로 이해할 수 있다
데이터 포맷의 종류
1. 텍스트 기반 포맷 ( 읽기 쉬움 , 수정 쉬움 )
① CSV
- Comma - Separated Values
- 테이블 ( 표 ) 형태의 데이터를 저장한다
- Excel , Google Sheet 등이 사용하는 방식이다
- 단순하고 가볍다
Name,HP,Speed
Slime,30,2
Orc,100,1
② JSON
- JavaScript Object Notation
- "키 - 값" 형태의 구조이다
- 웹 / 앱 / 게임 모든 분야에서 가장 널리 사용한다
- Unity 의 JsonUtility , Newtonsoft 로 쉽게 다룬다
{
"name": "Slime",
"hp": 30,
"skills": ["Punch", "Poison"]
}
③ XML
- 태그 기반 구조
- 예전에는 많이 사용했지만 JSON 이 더 가볍고 단순해서 요즘은 사용이 줄어들었다
<Enemy>
<Name>Slime</Name>
<Hp>30</Hp>
</Enemy>
2. 바이너리 Binary 포맷 ( 빠르다 , 용량이 작다 )
- JPG , PNG
- mp3 , wav
- Unity 의 .asset ( ScriptableObject 저장 형태 )
- 게임 리로스에서 주로 사용한다
ⓐ 장점
- 처리 속도가 빠르다
- 텍스트보다 용량이 매우 작다
ⓑ 단점
- 사람이 직접 읽기가 어렵다
3. 구조화된 스키마 기반 포맷
- Protocol Buffers ( Google )
- MessagePack
- Thrift
서버 - 클라이언트 고성능 통신에서 많이 사용한다
JSON 보다 3~10 배 빠르고 가볍다
CSV vs JSON
| 항목 | CSV | JSON |
| 구조 | 표 형식 ( 행 / 열 ) | 계층형 구조 |
| 난이도 | 아주 단순하다 | 조금 복잡하다 |
| 용도 | 스프레드시트 , 데이터 테이블 | 설정 파일 , 플레이어 데이터 저장 |
| Unity 적용 | 몬스터 스탯 , 아이템 표 | Save / Load 시스템 |
Unity 에서 자주 사용하는 데이터 포맷
1. CSV : 게임 테이블
- 몬스터 스탯
- 아이템 목록
- 스킬 CSV
2. JSON : 설정 저장 / 로드
- 세이브 파일
- 인벤토리 상태
- 옵션 설정
3. ScriptableObject : 에디터 제작용 데이터
- 직접 관리하는 데이터 에셋
- 빠르고 안전하지만 외부 파일 연동을 불편하다
정리
- 데이터 포맷은 데이터를 저장 / 전달하기 위한 약속된 구조
- CSV 는 표 형태 , JSON 은 계층 구조를 표현할 때 사용한다
- Unity 에서는 CSV ( 데이터 테이블 ) , JSON ( 저장 / 로드 ) 가 가장 많이 사용된다
'🧊Unity Basic > 데이터 관리' 카테고리의 다른 글
| Scriptable Object (0) | 2026.04.08 |
|---|