프로젝트에서 DB접속주소, ID/PW 등의 정보들을 포함하여 사용할 경우가 있습니다.
Git으로 프로젝트를 올리면 외부에서 DB접속이 가능하고 ID/PW의 계정정보까지 확인이 가능한 단점이 있어 config.json파일이나 env환경변수를 사용하여 보안을 강화하는법이 있습니다.

 

환경변수 직접 가져와서 사용하기

host := os.Getenv("DB_URL")
port := os.Getenv("DB_PORT")
user := os.Getenv("DB_ID")
password := os.Getenv("DB_PW")

#DB연결
connString := fmt.Sprintf("host=%s port=%d user=%s password=%s sslmode=disable", host, port, user, password)
DB, err := sql.Open("postgres", connString)
if err != nil {
    panic(err)
}

 

Viper패키지를 사용하여 환경변수 사용

  • .env에서 읽어오기
viper.SetConfigFile(".env")
err := viper.ReadInConfig()

host := viper.Get("HOST")
port := viper.Get("PORT")

 

  • config.json 파일에서 읽어오기
viper.AddConfigPath("./config")
viper.SetConfigName("config")
viper.SetConfigType("json")
viper.ReadInConfig()

port := viper.Get("db.port")

- config경로 내부 config.json 파일을 읽어옵니다.

 

 

 

 

반응형

'Go' 카테고리의 다른 글

Go - ioutil 패키지 deprecated  (0) 2023.04.25
rwMutex 사용  (0) 2023.04.18
Go - 한가지 변수에 다른 type 사용하기  (0) 2023.04.12
gorm 조건에 따른 Where() 사용하기  (0) 2023.03.24
golang time.AddDate()  (0) 2023.03.21

+ Recent posts