[go] Go에서 JSON 데이터 유니코드 처리하기

Go 언어는 기본적으로 UTF-8 인코딩을 사용하여 유니코드 문자를 다룹니다. JSON 데이터를 다룰 때 Go에서도 유니코드 문자를 올바르게 처리할 수 있습니다. 이번 블로그 포스트에서는 Go에서 JSON 데이터의 유니코드 문자를 다루는 방법에 대해 알아보겠습니다.

JSON 데이터 유니코드 처리하기

JSON 마샬링(Marshaling)

JSON 마샬링이란 Go의 데이터 구조를 JSON 형식으로 변환하는 과정을 말합니다. 이 과정에서 유니코드 문자가 포함된 데이터를 올바르게 다루기 위해서는 Go의 json.Marshal 함수를 사용해야 합니다.

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	data := map[string]string{
		"message": "안녕, 세상! Hello, world!",
	}
	
	jsonData, err := json.Marshal(data)
	if err != nil {
		fmt.Println("에러 발생:", err)
		return
	}

	fmt.Println(string(jsonData))
}

위의 예제에서는 맵 형식의 데이터를 JSON 형식으로 변환하고 있습니다. “안녕, 세상! Hello, world!”라는 메시지는 유니코드 문자를 포함하고 있습니다. 이를 JSON 형식으로 변환하면 유니코드 이스케이프 시퀀스로 처리됩니다.

JSON 언마샬링(Unmarshaling)

JSON 언마샬링은 JSON 데이터를 Go의 데이터 구조로 변환하는 과정을 말합니다. 유니코드 문자를 포함한 JSON 데이터를 다룰 때는 json.Unmarshal 함수를 사용합니다.

package main

import (
	"encoding/json"
	"fmt"
)

func main() {
	jsonData := []byte(`{"message":"안녕, 세상! Hello, world!"}`)
	
	var data map[string]string
	err := json.Unmarshal(jsonData, &data)
	if err != nil {
		fmt.Println("에러 발생:", err)
		return
	}

	fmt.Println(data["message"])
}

위의 예제에서는 JSON 형식의 데이터를 맵 형식으로 언마샬링하고 있습니다. 유니코드 문자가 포함된 JSON 데이터를 Go의 데이터로 변환할 때도 문제없이 처리됩니다.

이처럼 Go에서는 기본적으로 JSON 데이터의 유니코드 문자를 올바르게 처리할 수 있습니다.

결론

Go 언어에서는 JSON 데이터의 유니코드 문자를 마샬링과 언마샬링 과정에서 자동으로 처리할 수 있습니다. 코드 작성 시에는 이러한 내부 처리 과정을 이해하고 있어야 합니다. 유니코드 문자를 올바르게 다루면서 안정적으로 JSON 데이터를 처리할 수 있습니다.

이상으로 Go에서 JSON 데이터의 유니코드 처리에 대해 알아보았습니다. 추가적인 궁금증이 있다면 Go 언어의 공식 문서나 관련 자료를 참고하세요.