[go] go 언어의 메시지 포맷 처리
목차
들어가기
Go는 텍스트, JSON, XML 등 다양한 형식의 데이터를 다룰 수 있는 강력한 기능을 제공합니다. 이번 블로그에서는 Go 언어에서 다양한 메시지 포맷을 처리하는 방법에 대해 알아보겠습니다.
텍스트 포맷
텍스트 포맷은 가장 일반적인 데이터 형식 중 하나로, Go 언어는 fmt
패키지를 사용하여 텍스트 메시지를 형식화하고 출력할 수 있습니다. 다음은 “Hello, World!”를 출력하는 예제 코드입니다.
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
JSON 포맷
Go에서는 encoding/json
패키지를 사용하여 JSON 형식의 데이터를 처리할 수 있습니다. 아래 예제는 JSON 데이터를 Marshal(직렬화)하고 Unmarshal(역직렬화)하는 방법을 보여줍니다.
package main
import (
"encoding/json"
"fmt"
)
func main() {
// Marshal(직렬화)
data := map[string]interface{}{
"name": "John Doe",
"age": 30,
}
jsonStr, _ := json.Marshal(data)
fmt.Println(string(jsonStr))
// Unmarshal(역직렬화)
var person map[string]interface{}
json.Unmarshal(jsonStr, &person)
fmt.Println(person)
}
XML 포맷
XML 형식의 데이터를 처리하기 위해 Go에서는 encoding/xml
패키지를 제공하고 있습니다. 아래의 예제는 XML 데이터를 Unmarshal하여 구조체에 저장하는 방법을 보여줍니다.
package main
import (
"encoding/xml"
"fmt"
)
type Person struct {
Name string `xml:"name"`
Age int `xml:"age"`
}
func main() {
// XML Unmarshal
xmlStr := []byte(`<Person><name>John Doe</name><age>30</age></Person>`)
var person Person
xml.Unmarshal(xmlStr, &person)
fmt.Println(person)
}
참고 자료
- Go 언어 공식 문서
- A Tour of Go - Go 언어 튜토리얼 페이지