[go] encoding/binary 패키지를 사용하여 데이터를 압축하는 방법
Go 언어의 encoding/binary
패키지는 데이터의 이진 표현을 다룰 때 사용됩니다. 이 패키지를 사용하여 데이터를 압축할 수 있습니다. 아래는 encoding/binary
패키지를 사용하여 데이터를 압축하는 방법을 설명합니다.
1. 데이터를 바이트 배열로 변환하기
압축할 데이터를 바이트 배열로 변환해야 합니다. 이를 위해 encoding/binary
패키지의 Write
메서드를 사용할 수 있습니다. 예를 들어, uint16
타입의 데이터를 바이트 배열로 변환하려면 다음과 같이 할 수 있습니다.
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
var data uint16 = 42
buf := new(bytes.Buffer)
binary.Write(buf, binary.LittleEndian, data)
fmt.Printf("%x\n", buf.Bytes())
}
위 코드는 binary.Write
메서드를 사용하여 uint16
타입의 데이터를 바이트 배열로 변환하고, 그 결과를 16진수 형태로 출력합니다.
2. 바이트 배열을 데이터로 변환하기
압축된 바이트 배열을 다시 데이터로 변환하는 것도 가능합니다. encoding/binary
패키지의 Read
메서드를 사용할 수 있습니다. 예를 들어, 압축된 바이트 배열에서 uint16
타입의 데이터를 추출하려면 다음과 같이 할 수 있습니다.
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
byteData := []byte{0x2a, 0x00}
buf := bytes.NewReader(byteData)
var data uint16
binary.Read(buf, binary.LittleEndian, &data)
fmt.Println(data)
}
위 코드는 binary.Read
메서드를 사용하여 바이트 배열에서 uint16
타입의 데이터를 추출하고, 그 결과를 출력합니다.
encoding/binary
패키지를 사용하여 데이터를 압축하고 해제하는 방법에 대해 간단히 설명했습니다. 더 자세한 내용은 공식 문서를 참고하시기 바랍니다.