본문 바로가기
프로그래밍/Golang

Go configration 불러오기

by Loper Lee 2020. 7. 9.

Golang으로 설정파일 불러오기

Go언어로 Config를 불러오는 2가지 방법을 소개한다.

Yaml 파일 불러오기

많은 프로젝트에서 설정파일로 손꼽히는 yaml이다.
우선 yaml은 Go의 공식라이브러리엔 존재하지 않는다.
때문에 해당 라이브러리를 받아야만 사용이 가능하다.

addr: 127.0.0.1
port: 3306
user: root
pass: password
// YAML struct
type Config struct {
    Addr string `yarm: "addr"`
    Port int    `yarm: "port"`
    User string `yarm: "user"`
    Pass string `yarm: "pass"`
}

func LoadConfigration(path string) Config {
    var config Config
    bytes, err := ioutil.ReadFile(path)
    if err != nil {
        fmt.Println(err.Error())
    }
    err = yaml.Unmarshal(bytes, &config)
    if err != nil {
        log.Fatalf("error: %v", err)
    }
    return config
}

Json 파일 불러오기

Json은 Go의 내장 라이브러리가 존재하므로 이를 통해서 불러올 수 있다.
또한 꿀팁을 주자면 해당 사이트에서 Json문자열을 통해 손쉽게 구조체를 생성할 수 있다.

{
    "addr": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "pass": "password"
}
// JSON struct
type Config struct {
    Addr string `json: "addr"`
    Port int    `json: "port"`
    User string `json: "user"`
    Pass string `json: "pass"`
}

func LoadConfigration(path string) Config {
    var config Config
    file, err := os.Open("config.json")
    defer file.Close()
    if err != nil {
        fmt.Println(err.Error())
    }
    jsonParser := json.NewDecoder(file)
    jsonParser.Decode(&config)
    return config
}