[go] CSV 파일의 데이터 정렬

Go 언어를 사용하여 CSV(Comma-Separated Values) 파일에서 데이터를 읽고 정렬하는 방법에 대해 알아보겠습니다.

CSV 파일 읽기

우선 encoding/csv 패키지를 사용하여 CSV 파일을 읽는 방법을 살펴보겠습니다. 아래는 CSV 파일을 열어 데이터를 읽고 각 라인을 슬라이스로 반환하는 예제 코드입니다.

package main

import (
    "encoding/csv"
    "os"
    "log"
)

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

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

    // 데이터 처리
    // ...
}

데이터 정렬

이제 데이터를 정렬하는 방법을 알아보겠습니다. Go에는 sort 패키지를 사용하여 슬라이스를 정렬할 수 있습니다. 다음은 CSV 파일의 데이터를 정렬하는 예제 코드입니다.

// ...

import (
    "sort"
)

// ...

// 나이를 기준으로 데이터를 정렬하는 예제
type ByAge [][]string

func (a ByAge) Len() int           { return len(a) }
func (a ByAge) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
func (a ByAge) Less(i, j int) bool { return a[i][2] < a[j][2] }

func main() {
    // ...

    // 나이를 기준으로 정렬
    sort.Sort(ByAge(records))

    // 정렬된 데이터 출력
    for _, record := range records {
        // 데이터 출력
    }
}

위의 예제 코드에서 ByAge 구조체를 정의하고 Less 함수를 구현하여 나이를 기준으로 데이터를 정렬하였습니다.

마무리

이제 Go를 사용하여 CSV 파일의 데이터를 읽고 정렬하는 방법을 알아보았습니다. encoding/csv 패키지를 사용하여 CSV 파일을 읽고, sort 패키지를 사용하여 데이터를 정렬할 수 있습니다.

더 많은 정보는 Go 언어 공식 문서를 참조하시기 바랍니다.