[go] encoding/binary 패키지를 사용하여 구조체를 바이너리로 인코딩하는 방법
Go 언어에서는 encoding/binary
패키지를 사용하여 구조체를 바이너리 데이터로 인코딩할 수 있습니다. 이를 통해 데이터를 효율적으로 저장하고 전송할 수 있습니다.
구조체 정의
먼저, 바이너리로 인코딩할 구조체를 정의합니다. 아래는 예시 구조체입니다.
type Data struct {
ID uint32
Name [20]byte
}
인코딩
이제 encoding/binary
패키지의 Write
함수를 사용하여 구조체를 바이너리로 인코딩합니다.
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
data := Data{ID: 100, Name: [20]byte{'J', 'o', 'h', 'n'}}
buf := new(bytes.Buffer)
err := binary.Write(buf, binary.LittleEndian, data)
if err != nil {
fmt.Println("binary write error:", err)
return
}
binaryData := buf.Bytes()
fmt.Printf("%x\n", binaryData)
}
위 예제에서는 구조체를 LittleEndian
으로 인코딩하여 이진 데이터를 생성했습니다.
위 코드를 실행하면 구조체가 이진 형식으로 인코딩된 결과를 확인할 수 있습니다.
결론
Go 언어의 encoding/binary
패키지를 사용하면 구조체를 바이너리 데이터로 쉽게 인코딩할 수 있습니다. 이를 통해 효율적인 데이터 처리 및 전송이 가능해집니다.
참고 문헌: