spf13/viper 예제

spf13/viper는 Go 언어로 작성된 강력한 구성 관리 라이브러리로, 환경 변수, 플래그 등 다양한 소스에서 구성 정보를 로드하고 읽을 수 있습니다. 이 라이브러리는 다른 구성 관리 라이브러리와 비교해 가독성과 유연성이 뛰어나기 때문에, 많은 Go 개발자들에게 많이 사용되고 있습니다.

설치

spf13/viper를 사용하기 위해서는 먼저 Go 언어가 설치되어 있어야 합니다. 설치가 완료되었다면, 아래의 명령어를 실행하여 spf13/viper 라이브러리를 설치합니다.

go get -u github.com/spf13/viper

기본 사용법

spf13/viper는 아주 직관적이며 쉽게 사용할 수 있습니다. 먼저 Go 파일의 상단에 아래와 같이 import문을 추가합니다.

import "github.com/spf13/viper"

기본 구성값 설정

spf13/viper를 사용하여 기본 구성값을 설정하려면, 다음과 같이 코드를 작성합니다.

viper.SetDefault("database.host", "localhost")

위의 코드는 database.host라는 키에 대한 기본값으로 localhost를 설정합니다.

구성 파일 로드

spf13/viper는 다양한 유형의 구성 파일을 지원합니다. YAML, JSON, TOML 등 원하는 형식을 사용할 수 있습니다. 아래의 예제는 YAML 형식의 구성 파일을 로드하는 코드입니다.

viper.SetConfigName("config")   // 기본 config 파일명 설정
viper.SetConfigType("yaml")     // 구성 파일 형식 설정
viper.AddConfigPath("/etc/app") // 구성 파일을 찾을 디렉토리 추가
viper.AddConfigPath("$HOME/.app")
viper.AddConfigPath(".")        // 현재 디렉토리에도 구성 파일이 있을 수 있음

err := viper.ReadInConfig()     // 구성 파일을 읽음
if err != nil {
    panic(fmt.Errorf("config 파일을 읽을 수 없음: %s", err))
}

구성 값 읽기

spf13/viper를 사용하여 구성 값을 읽으려면, 아래와 같이 코드를 작성합니다.

fmt.Println("database.host:", viper.GetString("database.host"))

위의 코드는 database.host 키에 대한 값을 문자열 형식으로 출력합니다.

마치며

이렇게 spf13/viper를 사용하여 Go 언어의 구성 관리를 쉽고 효율적으로 처리할 수 있습니다. 더 많은 기능과 사용 예제는 공식 문서에서 확인할 수 있습니다.

#GoLang #spf13 #viper