[c#] C#에서의 Binary 직렬화 방법

C#에서는 BinaryFormatter 클래스를 사용하여 개체를 바이너리 형식으로 직렬화하고 역직렬화할 수 있습니다. 바이너리 직렬화를 사용하면 객체를 바이너리 데이터로 변환하여 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다.

직렬화

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "John", Age = 30 };
        BinaryFormatter formatter = new BinaryFormatter();

        using (FileStream stream = new FileStream("person.bin", FileMode.Create))
        {
            formatter.Serialize(stream, person);
        }
    }
}

위의 예제에서는 Person 클래스를 Serializable로 표시하고, BinaryFormatter를 사용하여 객체를 직렬화하고 FileStream을 사용하여 파일에 쓰기 작업을 수행합니다.

역직렬화

static void Main()
{
    BinaryFormatter formatter = new BinaryFormatter();

    using (FileStream stream = new FileStream("person.bin", FileMode.Open))
    {
        Person person = (Person)formatter.Deserialize(stream);
        Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
    }
}

위의 예제에서는 BinaryFormatter를 사용하여 파일로부터 객체를 역직렬화하고 이를 통해 원래의 개체를 다시 만들 수 있습니다.

이러한 방식으로 C#에서 객체를 바이너리 형식으로 직렬화하고 역직렬화할 수 있습니다. 이는 특히 파일 또는 네트워크를 통해 데이터를 전송할 때 유용합니다.

참고문헌: