--- title: "Go Client" slug: "dataquery-go-client-vpc" updated: 2026-09-17T09:07:29Z published: 2026-09-17T09:07:29Z canonical: "guide.ncloud-docs.com/dataquery-go-client-vpc" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Go Client VPC 환경에서 이용 가능합니다. Data Query에서 제공하는 Go Client 사용 방법을 설명합니다. ## 준비 사항 Go Client를 사용할 환경에 Go 1.22 이상이 설치되어 있어야 합니다. ## 사용 방법 Data Query Go Client 사용 방법을 설명합니다. ### 1. 패키지 설치 [pkg.go.dev](https://pkg.go.dev) 에 공개되어 있는 [dataquery-go-client](https://pkg.go.dev/github.com/NaverCloudPlatform/dataquery-go-client@v0.323.0) 패키지를 설치합니다. ``` go get github.com/NaverCloudPlatform/dataquery-go-client ``` ### 2. Go Client 연동 예시 #### 인증 방식 NCP IAM 인증 방식을 지원합니다. DSN 문자열에 사용자의 AccessKey 및 SecretKey 입력이 필요합니다. #### 쿼리 제출 및 결과 확인 코드를 작성하여 쿼리를 제출하고 결과를 확인합니다. <예시> ``` package main import ( "database/sql" "fmt" "log" _ "github.com/NaverCloudPlatform/dataquery-go-client/trino" ) func main() { accessKey := "_your_access_key_" secretKey := "_your_secret_key_" endpoint := "_dataquery_endpoint_" dsn := fmt.Sprintf("https://%s:%s@%s?catalog=data_catalog&schema=default", accessKey, secretKey, endpoint) db, err := sql.Open("dataquery", dsn) if err != nil { log.Fatalf("Failed to connect to DataQuery: %v", err) } defer db.Close() if err := db.Ping(); err != nil { log.Fatalf("Ping failed: %v", err) } query := "SELECT * FROM public_data.korea_national_railway.subway_seoul_capital_area LIMIT 10" rows, err := db.Query(query) if err != nil { log.Fatalf("Query failed: %v", err) } defer rows.Close() columns, err := rows.Columns() if err != nil { log.Fatalf("Failed to get columns: %v", err) } for rows.Next() { values := make([]interface{}, len(columns)) valuePtrs := make([]interface{}, len(columns)) for i := range values { valuePtrs[i] = &values[i] } if err := rows.Scan(valuePtrs...); err != nil { log.Fatalf("Failed to scan row: %v", err) } for i := range columns { val := values[i] if b, ok := val.([]byte); ok { fmt.Print(string(b)) } else { fmt.Print(val) } if i < len(columns)-1 { fmt.Print(" ") } } fmt.Println() } } ``` ``` // 결과 예시 코레일 경강 판교(판교테크노밸리) 127.111135 37.394798 코레일 경강 이매 127.128272 37.395846 코레일 경강 삼동 127.203279 37.408654 코레일 경강 경기광주 127.253201 37.398974 코레일 경강 초월 127.299996 37.373389 코레일 경강 곤지암 127.346193 37.350518 코레일 경강 신둔도예촌 127.405251 37.315499 코레일 경강 이천 127.442135 37.264222 코레일 경강 부발 127.490303 37.260411 코레일 경강 세종대왕릉 127.570764 37.293636 ``` #### 사용 가능한 옵션 - DSN 문자열의 인자값으로 입력합니다. - (예시) `https://_accessKey_:_secretKey_@_endpoint_?catalog=data_catalog&schema=default&reuse_query_result=true&reuse_query_max_age=10` | 옵션명 | 데이터 타입 | 입력값 | 필수 여부 | 비고 | | --- | --- | --- | --- | --- | | accessKey | String | 사용자 accessKey | Y | | | secretKey | String | 사용자 secretKey | Y | | | endpoint | String | Data Query Endpoint | Y | 리전별 Data Query Service Endpoint 참고 | | reuse_query_result | Boolean | `true` 또는 `false` | N | * default : `false` | | reuse_query_max_age | Integer | `1` ~ `10,080` | N | * default : `60` * reuse-query-result 값이 `true` 인 경우에만 사용됩니다. (단위: 분) | **리전별 Data Query Service Endpoint** 현재 KR 리전만 사용 가능하며, 리전 확대 예정입니다. | 리전 | Endpoint | | --- | --- | | KR | kr.dataquery.naverncp.com | 참고 dataquery-go-client는 trino-go-client를 기반으로 제공합니다. 위 안내된 옵션 외 추가 내용은 [Trino 문서](https://github.com/trinodb/trino-go-client/tree/v0.323.0)를 참조해 주십시오.