[go] Go 언어에서 기본적으로 제공하는 encoding/binary 패키지

Go 언어에는 binary 데이터를 읽고 쓰기 위한 편리한 방법을 제공하는 encoding/binary 패키지가 있습니다. 이 패키지를 사용하면 데이터를 binary 형식으로 인코딩하고 디코딩하는 데 유용한 기능들을 사용할 수 있습니다.

encoding/binary 패키지 소개

encoding/binary 패키지는 바이트 슬라이스와 기본 Go 데이터 형식 사이의 변환을 제공합니다. 이를 통해 데이터를 binary 형식으로 인코딩하고 디코딩할 수 있으며, 이를 통해 네트워크 통신이나 파일 입출력 등 다양한 상황에서 사용할 수 있습니다.

사용 예시

다음은 encoding/binary 패키지를 사용하여 uint16 값을 binary로 인코딩하고 디코딩하는 간단한 예시입니다.

package main

import (
	"encoding/binary"
	"fmt"
	"bytes"
)

func main() {
	var buf bytes.Buffer
	var num uint16 = 12345

	// 인코딩
	err := binary.Write(&buf, binary.LittleEndian, num)
	if err != nil {
		fmt.Println("binary write failed:", err)
		return
	}
	fmt.Printf("Encoded binary data: %x\n", buf.Bytes())

	// 디코딩
	var decodedNum uint16
	err = binary.Read(&buf, binary.LittleEndian, &decodedNum)
	if err != nil {
		fmt.Println("binary read failed:", err)
		return
	}
	fmt.Printf("Decoded number: %d\n", decodedNum)
}

위의 코드는 encoding/binary 패키지의 WriteRead 함수를 사용하여 uint16 값을 binary 데이터로 인코딩하고 디코딩하는 예시를 보여줍니다.

더 많은 정보는 encoding/binary 공식 문서를 참고하실 수 있습니다.