[go] go 언어의 메시지 포맷 처리

목차

  1. 들어가기
  2. 텍스트 포맷
  3. JSON 포맷
  4. XML 포맷
  5. 참고 자료

들어가기

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)
}

참고 자료