[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/jsonencoding/base64 패키지를 사용하여 JSON 및 Base64 인코딩 및 디코딩을 수행하는 방법을 살펴보았습니다.

이러한 기술은 데이터를 다른 시스템 간에 교환할 때 중요하며, Go 언어에서는 이러한 처리를 위한 표준 라이브러리를 제공합니다.

결론

인코딩 및 디코딩은 데이터 처리 과정에서 매우 중요한 부분입니다. Go 언어에서는 encoding/json, encoding/base64 등의 표준 라이브러리를 사용하여 다양한 형식의 데이터를 안전하고 효율적으로 처리할 수 있습니다.

참고: Go JSON 패키지, Go Base64 패키지