[go] encoding/binary 패키지를 사용하여 데이터를 압축하는 방법
이 블로그 포스트에서는 Go 프로그래밍 언어의 encoding/binary
패키지를 사용하여 데이터를 바이너리로 압축하는 방법에 대해 알아보겠습니다.
1. encoding/binary
패키지란?
Go 언어의 encoding/binary
패키지는 데이터를 바이너리로 인코딩하고 디코딩하는 데 사용됩니다. 이를 통해 데이터를 빅 엔디안(big-endian) 또는 리틀 엔디안(little-endian) 형식으로 인코딩할 수 있습니다.
2. 바이너리 데이터로의 인코딩
다음은 encoding/binary
패키지를 사용하여 데이터를 바이너리로 인코딩하는 간단한 예제 코드입니다.
package main
import (
"encoding/binary"
"fmt"
"bytes"
)
func main() {
var buf bytes.Buffer
data := uint16(42)
err := binary.Write(&buf, binary.LittleEndian, data)
if err != nil {
fmt.Println("binary write failed:", err)
return
}
fmt.Printf("%x\n", buf.Bytes())
}
위 코드는 16비트의 부호 없는 정수를 리틀 엔디안 형식으로 바이너리로 인코딩하는 예제입니다.
3. 바이너리 데이터로의 디코딩
이제 encoding/binary
패키지를 사용하여 바이너리 데이터를 디코딩하는 예제 코드를 살펴보겠습니다.
package main
import (
"encoding/binary"
"fmt"
"bytes"
)
func main() {
data := []byte{0x2a, 0x00}
var value uint16
buf := bytes.NewReader(data)
err := binary.Read(buf, binary.LittleEndian, &value)
if err != nil {
fmt.Println("binary read failed:", err)
return
}
fmt.Println(value) // 42
}
위 코드는 리틀 엔디안 형식으로 인코딩된 16비트 부호 없는 정수를 디코딩하는 예제입니다.
encoding/binary
패키지를 사용하여 데이터를 바이너리로 압축하는 방법에 대해 간단히 살펴보았습니다. 이를 통해 데이터를 효율적으로 저장하고 전송할 수 있습니다.
더 자세한 내용은 공식 문서를 참조하세요.