Go에서 환경 변수 작업
환경 변수는 실행 중인 프로그램 작업에 영향을 주는 데 사용되는 호스트 환경에서 동적으로 이름이 지정된 키-값 쌍입니다.
환경 변수는 환경 인터페이스에 대한 추상화를 제공하므로 응용 프로그램에 민감한 데이터와 상호 작용하는 데 널리 사용됩니다. 환경 변수를 사용하여 애플리케이션의 보안을 강화할 수 있습니다.
Go는 환경 변수 작업을 위한 기본 제공 지원을 제공 하며 Go 생태계에는 환경 변수 및 환경 변수 파일( .env ) 작업을 위한 많은 패키지가 있습니다.
환경 변수 및 os 패키지
os 패키지 는 호스트 환경의 운영 체제와 상호 작용하기 위한 기능을 제공합니다. os 패키지는 환경 변수 키-값 쌍을 설정하고 검색하는 방법을 제공합니다 .
호스트 시스템에서 환경 변수를 설정, 로드 및 인쇄하기 위해 이러한 패키지를 가져옵니다.
import (
"fmt"
"log"
"os"
"strings"
)
os 패키지 의 Setenv 메소드를 사용하여 환경 변수 키-값 쌍을 설정할 수 있습니다 . Setenv 메서드는 쌍을 취하고 가능한 오류를 반환합니다 .
err: = os.Setenv("NAME", "John")
err = os.Setenv("OTHER", "DOE")
if err! = nil {
return
}
Getenv 메소드 를 사용하여 키(이름)로 환경 변수를 가져올 수 있습니다 . Getenv 메서드 는 환경 변수의 이름을 받아 키와 관련된 값을 반환합니다.
name: = os.Getenv("NAME")
other: = os.Getenv("OTHER")
Environ 방법을 사용하면 호스트 시스템의 모든 환경 변수에 액세스할 수 있습니다 . Environ 메서드 는 반복할 수 있고 환경 변수의 키에 액세스할 수 있는 문자열 조각을 반환합니다.
for _, variables: = range os.Environ() {
envPair: = strings.SplitN(variables, "=", 2)
fmt.Println(envPair[0])
}
strings 패키지 의 SplitN 메서드는 구분 기호로 분할하는 데 도움이 됩니다. 이 경우 변수 이름을 값에서 분리합니다.
환경 변수를 로드하는 방법. env 파일
godotenv 패키지는 dotenv 파일에서 환경 변수를 로드하기 위한 Ruby dotenv 프로젝트의 Go 포트입니다 .
godotenv 패키지 는 os 패키지 를 통해 dotenv 파일 작업을 위한 기능을 제공하며 .env 파일 에서 읽고 쓸 수 있습니다.
이 명령을 실행 하여 작업 디렉터리에 .env 파일을 만듭니다.
touch. env
touch 명령은 새 파일을 만드는 데 사용됩니다. dotenv 파일에 다음 코드 줄을 추가합니다. godotenv 패키지를 사용 하여 Go 프로그램에서 이러한 환경 변수를 읽습니다.
# env
NAME="John"
OTHER="James"
프로젝트 디렉터리의 터미널에서 이 명령을 실행하여 godotenv 패키지를 프로젝트 종속성으로 설치합니다.
go get github.com/joho/godotenv
이러한 패키지를 Go 파일로 가져옵니다. godotenv 패키지 와 함께 사용하여 환경 변수를 로드하고 콘솔에 출력하거나 오류를 기록합니다.
import (
"fmt"
"github.com/joho/godotenv"
"log"
"os"
)
godotenv 패키지 의 Load 메서드를 사용하여 .env 파일을 로드할 수 있습니다 . Load 메서드는 파일 이름을 가져와 가능한 오류를 반환합니다 .
err: = godotenv.Load(".env")
if err! = nil {
log.Fatalf("Error loading environment variables file")
}
dotenv 파일을 로드한 후 os 패키지의 Getenv 메소드를 사용 하여 환경 변수를 로드할 수 있습니다.
name: = os.Getenv("NAME")
other: = os.Getenv("OTHER")
fmt.Println(name)
fmt.Println(other)
godotenv 패키지 의 Write 메서드를 사용하여 dotenv 파일에 쓸 수 있습니다 . Write 메서드 는 문자열을 문자열로 매핑하고 가능한 오류를 반환합니다.
func writeToDotEnv(){
env, _: = godotenv.Unmarshal("KEY=value")
err: = godotenv.Write(env, ".env")
if err! = nil {
log.Println("There was an error writing to the dotenv file")
}
}
godotenv 패키지 는 Unmarshal 메서드를 사용하여 키-값 쌍 문자열을 언마샬링 하고 env 변수는 문자열 대 문자열 유형의 맵이 됩니다.
writeToDotEnv 함수는 맵 의 내용을 작업 디렉토리 의 .env 파일에 씁니다. 이 작업은 기존 데이터를 덮어씁니다.
환경 변수는 항상 유용합니다.
환경 변수를 사용하면 코드나 구성을 변경하지 않고도 애플리케이션의 실행 매개변수를 쉽게 설정하고 변경할 수 있으므로 애플리케이션의 이식성이 향상됩니다.
다양한 시나리오에 대한 여러 환경 변수 및 dotenv 파일을 사용하여 다양한 매개 변수 또는 조건에서 애플리케이션이 실행되는 방식을 테스트할 수 있습니다.
답글 남기기