[go] CSV 파일의 데이터 가공

CSV(Comma-Separated Values)는 텍스트 파일 형식의 데이터 저장 방식으로, 쉼표로 구분된 데이터를 가지고 있습니다. 이 튜토리얼에서는 Go 언어를 사용하여 CSV 파일을 읽고 데이터를 가공하는 방법을 살펴볼 것입니다.

CSV 파일 읽기

가장 먼저, encoding/csv 패키지를 사용하여 CSV 파일을 읽어야 합니다.

package main

import (
    "encoding/csv"
    "os"
)

func main() {
    file, err := os.Open("data.csv")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    reader := csv.NewReader(file)
    records, err := reader.ReadAll()
    if err != nil {
        panic(err)
    }

    // records를 가공하기
}

위의 코드는 data.csv 파일을 열고, CSV 리더를 사용하여 파일의 모든 레코드를 읽습니다.

데이터 가공

읽어들인 데이터를 가공하여 필요한 작업을 수행할 수 있습니다. 예를 들어, 각 레코드의 값을 출력하거나 특정 필터를 적용하여 원하는 결과를 얻을 수 있습니다.

for _, record := range records {
    for _, value := range record {
        fmt.Println(value)
    }
}

결과 저장

데이터를 가공한 뒤에는 필요에 따라 결과를 새로운 CSV 파일에 저장할 수도 있습니다.

file, err := os.Create("output.csv")
if err != nil {
    panic(err)
}
defer file.Close()

writer := csv.NewWriter(file)
defer writer.Flush()

for _, record := range processedRecords {
    err := writer.Write(record)
    if err != nil {
        panic(err)
    }
}

위의 코드는 processedRecords를 새로운 CSV 파일에 쓰는 방법을 보여줍니다.

데이터의 길이나 형식, 해당 데이터를 어떻게 가공할지에 따라 더 많은 작업이 필요할 수 있지만, Go의 encoding/csv 패키지를 사용하면 CSV 파일을 쉽게 가공할 수 있습니다.

결론

이 튜토리얼에서는 Go 언어를 사용하여 CSV 파일을 읽고 데이터를 가공하는 기본적인 방법을 다뤘습니다. CSV 파일을 가공할 때는 실제 데이터의 구조와 필요한 작업에 따라 다양한 방법을 적용할 수 있습니다. 코드를 실행하여 실제 데이터에 적용해보면서 익숙해지는 것이 좋습니다.