[go] Go 언어에서의 다양한 인코딩 방식 비교
Go 언어는 텍스트와 데이터를 다양한 방식으로 인코딩하고 디코딩하는 데 사용할 수 있는 기능을 제공합니다. 이번 포스트에서는 Go 언어에서 제공하는 다양한 인코딩 방식에 대해 비교해 보겠습니다.
UTF-8 인코딩
UTF-8은 가변 길이 문자 인코딩 방식으로, 유니코드 코드 포인트를 8비트 시퀸스로 변환합니다. Go 언어는 문자열을 UTF-8로 인코딩하고 디코딩하는 기능을 내장하고 있으며, utf8
패키지를 통해 UTF-8 인코딩 방식을 다룰 수 있습니다.
import "unicode/utf8"
func main() {
str := "안녕, 世界"
encoded := []byte(str)
decoded, _ := utf8.DecodeRune(encoded)
fmt.Println(decoded)
}
위 예제는 UTF-8로 인코딩된 문자열을 디코딩하는 과정을 보여줍니다.
Base64 인코딩
Base64는 이진 데이터를 텍스트 데이터로 변환하는 데 사용되는 인코딩 방식입니다. 이는 이메일 시스템을 비롯한 여러 프로토콜에서 이진 데이터를 안전하게 전송하기 위해 사용됩니다. Go 언어는 encoding/base64
패키지를 통해 Base64 인코딩을 지원합니다.
import b64 "encoding/base64"
func main() {
data := "hello, 世界"
encoded := b64.StdEncoding.EncodeToString([]byte(data))
fmt.Println(encoded)
}
위 예제는 문자열을 Base64로 인코딩하는 방법을 보여줍니다.
JSON 인코딩
JSON은 데이터를 텍스트로 표현하는 경량 데이터 교환 형식입니다. Go 언어는 encoding/json
패키지를 통해 JSON 데이터를 인코딩하고 디코딩할 수 있습니다.
import "encoding/json"
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
person := Person{Name: "철수", Age: 25}
encoded, _ := json.Marshal(person)
fmt.Println(string(encoded))
}
위 예제는 구조체를 JSON으로 인코딩하는 방법을 보여줍니다.
위의 내용을 통해 Go 언어에서 제공하는 다양한 인코딩 방식의 활용 및 차이를 살펴보았습니다. 이것은 데이터를 다루는 과정에서 매우 중요한 요소이므로, 적절한 인코딩 방식을 선택하는 일은 매우 중요합니다.