[go] 인코딩 및 디코딩
Go 언어에서 데이터를 다양한 형식으로 인코딩하고 디코딩하는 것은 매우 중요합니다. 인코딩은 데이터를 문자열이나 바이트 배열 등의 형식으로 변환하고, 디코딩은 인코딩된 데이터를 다시 원래 형식으로 변환하는 과정입니다.
JSON 인코딩 및 디코딩
Go에서 JSON 데이터를 인코딩하려면 encoding/json
패키지를 사용하여 데이터를 JSON 형식의 문자열로 변환할 수 있습니다.
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string
Age int
}
func main() {
person := Person{Name: "Alice", Age: 30}
// JSON 인코딩
jsonData, err := json.Marshal(person)
if err != nil {
fmt.Println("JSON 인코딩 에러:", err)
return
}
fmt.Println(string(jsonData))
// JSON 디코딩
var decodedPerson Person
err = json.Unmarshal(jsonData, &decodedPerson)
if err != nil {
fmt.Println("JSON 디코딩 에러:", err)
return
}
fmt.Println(decodedPerson)
}
Base64 인코딩 및 디코딩
다음은 Go에서 Base64 인코딩 및 디코딩을 수행하는 방법입니다.
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// 문자열을 Base64로 인코딩
text := "Hello, World!"
encodedText := base64.StdEncoding.EncodeToString([]byte(text))
fmt.Println(encodedText)
// Base64를 디코딩하여 원래 문자열로 복원
decodedText, err := base64.StdEncoding.DecodeString(encodedText)
if err != nil {
fmt.Println("Base64 디코딩 에러:", err)
return
}
fmt.Println(string(decodedText))
}
위의 예제 코드에서 encoding/json
및 encoding/base64
패키지를 사용하여 JSON 및 Base64 인코딩 및 디코딩을 수행하는 방법을 살펴보았습니다.
이러한 기술은 데이터를 다른 시스템 간에 교환할 때 중요하며, Go 언어에서는 이러한 처리를 위한 표준 라이브러리를 제공합니다.
결론
인코딩 및 디코딩은 데이터 처리 과정에서 매우 중요한 부분입니다. Go 언어에서는 encoding/json
, encoding/base64
등의 표준 라이브러리를 사용하여 다양한 형식의 데이터를 안전하고 효율적으로 처리할 수 있습니다.
참고: Go JSON 패키지, Go Base64 패키지