viper config 예제

Viper는 Go 언어에서 설정 파일을 처리하기 위한 유용한 라이브러리입니다. 아래 예제에서는 Viper를 사용하여 설정 파일을 로드하고, 필요한 설정 값을 가져오는 방법에 대해 설명하겠습니다.

먼저, Viper를 인스턴스화하고 설정 파일을 로드해야 합니다. 설정 파일은 YAML, JSON, TOML, HCL 등 다양한 형식으로 작성할 수 있습니다. 아래 예제에서는 YAML 형식을 사용하겠습니다.

package main

import (
	"fmt"
	"github.com/spf13/viper"
)

func main() {
	// Viper 인스턴스 생성
	v := viper.New()

	// 설정 파일 경로 설정
	v.SetConfigFile("config.yaml")

	// 설정 파일 로드
	err := v.ReadInConfig()
	if err != nil {
		fmt.Printf("설정 파일을 로드하는 중 오류가 발생했습니다: %v\n", err)
		return
	}

	// 필요한 설정 값 가져오기
	dbHost := v.GetString("db.host")
	dbPort := v.GetInt("db.port")
	apiKey := v.GetString("api.key")

	fmt.Println("DB 호스트:", dbHost)
	fmt.Println("DB 포트:", dbPort)
	fmt.Println("API 키:", apiKey)
}

위의 예제에서는 config.yaml 파일을 로드하고, db.host, db.port, api.key 필드의 값을 가져오고 출력합니다. 설정 파일에는 다음과 같이 작성할 수 있습니다:

db:
  host: localhost
  port: 5432
api:
  key: secret-api-key

위 예제를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

DB 호스트: localhost
DB 포트: 5432
API 키: secret-api-key

이제 Viper를 사용하여 Go 언어로 설정 파일을 손쉽게 처리할 수 있는 방법을 알게 되었습니다. Viper는 설정 값을 변경하거나 환경변수로부터 설정 값을 가져오는 등 다양한 기능을 제공합니다. 추가적인 정보는 Viper의 공식 문서를 참고하시기 바랍니다.

#viper #config #golang