본문 바로가기
Unity & C# Basics

C# 공부일지 : 데이터의 저장, 로드

by 나만두 2025. 1. 24.

데이터의 저장&로드

 

텍스트: 단순하거나 비계층적, 중첩되지 않은 정보를 저장하는 데 사용.

 

XML (eXtensible Markup Language)

여는 태그와 닫는 태그로 데이터를 구분.  자식 요소를 사용하여 더 복잡한 객체를 저장할 수 있음.

 형식:

<?xml version="1.0"?>
<ArrayOfWeapon>
    <Weapon>
        <Name>Sword</Name>
        <Damage>10</Damage>
    </Weapon>
    <Weapon>
        <Name>Bow</Name>
        <Damage>5</Damage>
    </Weapon>
</ArrayOfWeapon>

 특징: 구조화가 상세하고, 사람이 읽기 쉽지만 공간을 많이 사용.

 

JSON (JavaScript Object Notation)

 키-값 쌍으로 데이터를 저장. 키는 문자열, 값은 문자열, 숫자, 배열, 객체 등 다양한 형식이 가능.

형식:

{
    "Weapon": [
        {
            "name": "Sword",
            "damage": 10
        },
        {
            "name": "Bow",
            "damage": 5
        }
    ]   
}

특징: 간단하고 가볍고, 파싱이 더 효율적이지만, 때때로 복잡한 구조에서는 파싱이 어려울 수 있음.

 

XML과 JSON 차이점:

XML은 구조가 복잡하고 세밀함. 태그가 많아 공간을 많이 차지하고, 사람이 읽기 쉬우나 구문이 길어 읽기 불편할 수 있음. 파싱은 유연하지만 메모리를 많이 사용함.

JSON은 구조가 간단하고 직관적임. 공간을 적게 차지하며, 빠르고 효율적으로 파싱됨. 그러나 복잡한 데이터를 다룰 때 제약이 있을 수 있음.

 

Stream: 데이터를 순차적으로 읽거나 쓸 수 있게 해주는 데이터의 흐름. 파일이나 네트워크 같은 곳에서 데이터를 주고받을 때 사용

주로 게임 세이브 데이터 저장/로드, 로그 파일 작성, 설정 파일 읽기/쓰기, 대용량 데이터 처리에 사용됨

StreamWriter: 데이터를 파일에 쓰는 데 사용됨

StreamReader: 파일에서 데이터를 읽는 데 사용됨

 

 

 

DataManager

 

  • 파일 시스템 정보 출력
  • 디렉토리 생성/삭제
  • 텍스트 파일 생성/업데이트/읽기/삭제
  • Stream을 사용한 텍스트 파일 쓰기/읽기
  • XML형식으로 쓰기/읽기

 

 

실행결과
실행 결과
실행결과
실행결과