Go 언어는 데이터를 저장하고 전송하기 위한 다양한 방법을 제공합니다. 이 포스트에서는 Go의 데이터 구조를 저장하고 전송하기 위한 몇 가지 일반적인 방법에 대해 알아보겠습니다.
Contents
구조체
구조체는 Go에서 여러 필드를 하나로 묶어 표현할 수 있는 데이터 유형입니다. 구조체를 사용하여 데이터를 조직화하고 필드를 정의할 수 있습니다. 이때, struct
키워드를 사용하여 구조체를 정의합니다.
type Person struct {
Name string
Age int
}
위의 예시에서 Person
구조체는 Name
필드와 Age
필드를 가지고 있습니다. 이러한 구조체는 데이터를 구성하고 필드를 표현하는 데 사용됩니다.
맵
맵은 Go에서 키-값 쌍을 저장하는 자료 구조입니다. Go 언어는 내장 타입인 map
을 통해 이러한 자료를 쉽게 다룰 수 있습니다.
// 문자열을 키로, 정수를 값으로 갖는 맵 생성
m := map[string]int{"apple": 5, "banana": 3}
위의 예시에서 m
은 문자열을 키로, 정수를 값으로 갖는 맵을 표현합니다. 맵은 데이터를 저장하고 검색하기에 적합한 유형의 데이터 구조입니다.
JSON 인코딩 및 디코딩
Go에서는 JSON 데이터를 인코딩하고 디코딩하는 기능을 지원합니다. encoding/json
패키지를 사용하여 Go 데이터를 JSON으로 인코딩하거나 JSON을 Go 구조체로 디코딩할 수 있습니다.
type Person struct {
Name string
Age int
}
// 구조체를 JSON으로 인코딩
p := Person{"Alice", 25}
jsonBytes, err := json.Marshal(p)
// JSON을 구조체로 디코딩
var newPerson Person
err := json.Unmarshal(jsonBytes, &newPerson)
바이트 슬라이스
Go 언어에서 바이트 슬라이스는 바이트를 담는 동적 배열을 나타냅니다. 바이트 슬라이스는 데이터를 바이트 단위로 다루는 작업에 유용합니다.
// 문자열을 바이트 슬라이스로 변환
byteSlice := []byte("hello")
// 바이트 슬라이스를 문자열로 변환
str := string(byteSlice)
위의 예시에서는 문자열을 바이트 슬라이스로 변환하고, 그 반대로 바이트 슬라이스를 문자열로 다시 변환하는 방법을 보여줍니다.
위에서 소개한 이러한 Go의 데이터 저장 및 전송 방법은 데이터를 효율적으로 조직화하고 처리할 수 있도록 도와줍니다. 데이터 구조와 전송에 대해 더 많이 알아보고 싶다면, 공식 Go 언어 문서를 참조해보세요.