[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 패키지는 사용하기 간편하며, 다양한 데이터 유형을 지원하고 있습니다.
더 많은 정보는 공식 문서를 참고하시기 바랍니다.