[go] gob 패키지의 활용 예시

GOB는 Go 언어의 내장 패키지 중 하나로, 데이터의 직렬화(serialization)와 역직렬화(deserialization)를 위한 기능을 제공합니다.

이번 포스팅에서는 GOB 패키지의 간단한 활용 예시를 다뤄보겠습니다.

데이터 직렬화 및 역직렬화

GOB 패키지를 사용하여 데이터를 직렬화하고, 그것을 파일에 저장한 후에 다시 역직렬화하는 예시를 살펴보겠습니다.

package main

import (
	"bytes"
	"encoding/gob"
	"fmt"
	"log"
)

type Person struct {
	Name string
	Age  int
}

func main() {
	var network bytes.Buffer

	person := Person{Name: "Alice", Age: 30}

	// 데이터 직렬화
	enc := gob.NewEncoder(&network)
	err := enc.Encode(person)
	if err != nil {
		log.Fatal("encode error:", err)
	}

	// 파일에 저장
	// ...

	// 데이터 역직렬화
	var newPerson Person
	dec := gob.NewDecoder(&network)
	err = dec.Decode(&newPerson)
	if err != nil {
		log.Fatal("decode error:", err)
	}

	fmt.Printf("Name: %s, Age: %d", newPerson.Name, newPerson.Age)
}

위의 예시에서, Person 구조체를 gob.Encoder를 이용하여 network 버퍼에 직렬화하고, 이를 파일에 저장한 후에 다시 gob.Decoder를 이용하여 역직렬화하는 과정을 담고 있습니다.

GOB 패키지는 사용하기 간편하며, 다양한 데이터 유형을 지원하고 있습니다.

더 많은 정보는 공식 문서를 참고하시기 바랍니다.