[c#] C# 직렬화와 병렬 처리
C#은 개체를 직렬화 및 병렬 처리하는 데 매우 강력한 기능을 제공합니다. 이 기능을 효과적으로 활용하면 데이터를 효율적으로 처리하고 저장할 수 있습니다.
직렬화(Serialization)
C#에서는 System.Runtime.Serialization
네임스페이스를 사용하여 개체를 직렬화할 수 있습니다. 직렬화란 객체를 바이트 스트림 또는 XML로 변환하는 과정을 말합니다. 이를 통해 데이터를 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다.
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
// 직렬화 가능한 클래스
[Serializable]
public class Person
{
public string Name;
public int Age;
}
class Program
{
static void Main()
{
Person person = new Person { Name = "Alice", Age = 30 };
// 개체를 파일에 직렬화
IFormatter formatter = new BinaryFormatter();
using (Stream stream = new FileStream("person.bin", FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(stream, person);
}
}
}
병렬 처리(Parallel Processing)
C#에서는 System.Threading
및 System.Threading.Tasks
네임스페이스를 사용하여 병렬 처리를 구현할 수 있습니다. 병렬 처리는 여러 작업을 동시에 실행하여 시간을 단축하고 성능을 향상시키는 기술입니다.
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
// 병렬 처리를 사용한 예제
Parallel.For(0, 10, i =>
{
Console.WriteLine($"Task {i} is running on thread {Task.CurrentId}");
});
}
}
결론
C#에서는 직렬화를 통해 데이터를 효율적으로 저장하고, 병렬 처리를 통해 작업을 효율적으로 처리할 수 있습니다. 이러한 기능을 적절히 활용하여 성능을 향상시키고 개발 작업을 효율적으로 처리할 수 있습니다.
참고: Microsoft Docs - Serialization