Go 언어는 데이터를 다양한 형식으로 저장하는 데에 매우 편리한 기능을 제공합니다. 이번 포스트에서는 Go 언어를 사용하여 CSV와 JSON 형식으로 데이터를 저장하는 방법에 대해 알아보겠습니다.
CSV 파일로 데이터 저장하기
Go 언어에서는 encoding/csv
패키지를 사용하여 CSV 파일로 데이터를 저장할 수 있습니다.
package main
import (
"encoding/csv"
"os"
)
func main() {
data := [][]string{
{"이름", "나이", "이메일"},
{"John Doe", "30", "johndoe@example.com"},
{"Jane Smith", "25", "janesmith@example.com"},
}
file, err := os.Create("data.csv")
if err != nil {
panic(err)
}
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
for _, row := range data {
err := writer.Write(row)
if err != nil {
panic(err)
}
}
}
위의 예제에서는 data
라는 2차원 문자열 슬라이스에 데이터를 저장하고, os.Create()
함수를 사용하여 “data.csv”라는 파일을 생성합니다. 그리고 csv.NewWriter()
함수를 호출하여 writer
를 생성하고, writer.Flush()
를 호출하여 데이터를 실제 파일에 기록합니다.
JSON 파일로 데이터 저장하기
Go 언어에서는 encoding/json
패키지를 사용하여 JSON 파일로 데이터를 저장할 수 있습니다.
package main
import (
"encoding/json"
"os"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Email string `json:"email"`
}
func main() {
people := []Person{
{Name: "John Doe", Age: 30, Email: "johndoe@example.com"},
{Name: "Jane Smith", Age: 25, Email: "janesmith@example.com"},
}
file, err := os.Create("data.json")
if err != nil {
panic(err)
}
defer file.Close()
encoder := json.NewEncoder(file)
err = encoder.Encode(people)
if err != nil {
panic(err)
}
}
위의 예제에서는 Person
이라는 구조체를 정의하고, people
이라는 Person
구조체의 슬라이스에 데이터를 저장합니다. 그리고 os.Create()
함수를 사용하여 “data.json”이라는 파일을 생성하고, json.NewEncoder()
함수를 호출하여 encoder
를 생성합니다. 마지막으로 encoder.Encode()
를 호출하여 데이터를 JSON 형식으로 파일에 기록합니다.
결론
Go 언어를 사용하여 데이터를 CSV와 JSON 형식으로 저장하는 방법에 대해 알아보았습니다. encoding/csv
와 encoding/json
패키지를 사용하면 간단하게 파일에 데이터를 저장할 수 있습니다. 이러한 기능을 활용하여 데이터를 원하는 형식으로 저장하고 활용할 수 있습니다.