[go] Go 언어로 데이터 저장하기 (CSV, JSON 등)

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/csvencoding/json 패키지를 사용하면 간단하게 파일에 데이터를 저장할 수 있습니다. 이러한 기능을 활용하여 데이터를 원하는 형식으로 저장하고 활용할 수 있습니다.