[c#] 직렬화 데이터 타입
직렬화(serialization)는 데이터 구조나 객체를 다른 형태로 변환하는 과정을 의미합니다. C#에서는 System.Runtime.Serialization
네임스페이스를 사용하여 직렬화와 관련된 클래스와 인터페이스를 제공합니다. C#에서는 다양한 데이터 타입을 직렬화할 수 있습니다.
직렬화 가능한 데이터 타입
C#에서 직렬화 가능한 데이터 타입은 몇 가지가 있습니다. 그 중에서 일부 예시는 다음과 같습니다.
- Primitive Types
int
,float
,double
,bool
등- 이러한 기본 데이터 타입은
Serializable
속성을 사용하기 위한 특별한 처리가 필요하지 않습니다.
- Custom Classes
- 직렬화를 위해서는
Serializable
속성을 클래스에 적용해야 합니다. - 모든 멤버 변수들도 직렬화할 수 있도록
Serializable
속성이 적용되어야 합니다.
- 직렬화를 위해서는
- Collections
- 배열, 리스트, 딕셔너리 등의 컬렉션 데이터도 직렬화할 수 있습니다.
- 각 요소가 직렬화 가능한 데이터 타입이어야 합니다.
직렬화 관련 속성
C#에서 직렬화를 위해서는 클래스나 데이터 멤버에 다음과 같은 직렬화 관련 속성을 적용할 수 있습니다.
[Serializable]
- 클래스에 이 속성을 부여하면 해당 클래스의 인스턴스를 직렬화할 수 있습니다.
[NonSerialized]
- 특정 변수에 이 속성을 부여하면 해당 변수가 직렬화되지 않습니다. 보안이나 성능 이슈로 인해 일부 데이터를 직렬화에서 제외할 때 사용합니다.
데이터 타입의 약어
직렬화 데이터 타입을 다루며 자주 사용하는 약어는 다음과 같습니다.
- XML (Extensible Markup Language): 데이터의 구조와 의미를 설명하는 마크업 언어입니다. C#에서는 XML 직렬화를 제공합니다.
- JSON (JavaScript Object Notation): 가벼운 데이터 교환 형식으로, C#에서도 JSON 직렬화를 지원합니다.
직렬화는 데이터를 다른 포맷으로 변환함으로써 데이터 교환과 저장에 유용합니다. C#에서 제공하는 직렬화 기능을 적절히 활용하여 데이터 관리를 보다 효율적으로 할 수 있습니다.
참고 자료
- Microsoft Docs. “SerializableAttribute Class.” Microsoft, https://docs.microsoft.com/en-us/dotnet/api/system.serializableattribute?view=net-6.