[python] python-dotenv를 사용하여 서비스별 환경 설정하기

환경 변수 관리는 애플리케이션 개발에서 중요한 부분입니다. 특히, 서로 다른 서비스를 개발하거나 여러 개발 환경을 관리하는 경우, 각각의 서비스나 환경에 맞는 설정을 손쉽게 변경할 수 있어야 합니다.

이 글에서는 python-dotenv라는 파이썬 라이브러리를 사용하여 서비스별 환경 설정을 어떻게 관리할 수 있는지 알아보겠습니다.

1. python-dotenv란?

python-dotenv는 .env 파일을 사용하여 환경 변수를 관리하는 라이브러리입니다. .env 파일은 애플리케이션에 필요한 환경 변수를 가지고 있으며, python-dotenv를 사용하면 이 파일을 읽어와 환경 변수로 설정할 수 있습니다. 이렇게 함으로써 애플리케이션을 실행하는 서버 또는 로컬 환경에 따라 쉽게 환경 변수를 다르게 설정할 수 있습니다.

2. python-dotenv 설치하기

python-dotenv를 설치해봅시다. 다음 명령어를 사용하여 설치할 수 있습니다.

pip install python-dotenv

3. .env 파일 생성하기

먼저, 각 서비스별로 .env 파일을 생성해야 합니다. 이 파일에는 해당 서비스에 필요한 환경 변수를 선언합니다. 예를 들어, DB 접속 정보나 API 키 등을 저장할 수 있습니다.

새로운 .env 파일을 생성하고, 다음과 같이 환경 변수를 설정해봅시다.

# .env 파일

DB_HOST=localhost
DB_PORT=5432
DB_USER=myuser
DB_PASSWORD=mypassword
API_KEY=abcdefg123456

4. python-dotenv를 이용하여 환경 설정하기

이제, python-dotenv를 이용하여 환경 설정을 할 수 있습니다. 먼저, 다음과 같이 dotenv 모듈을 불러옵니다.

from dotenv import dotenv_values

그리고, .env 파일로부터 환경 변수를 로드합니다.

config = dotenv_values(".env")

이제 config 변수를 사용하여 환경 변수를 참조할 수 있습니다. 예를 들어, DB 접속 정보를 가져와보겠습니다.

db_host = config["DB_HOST"]
db_port = config["DB_PORT"]
db_user = config["DB_USER"]
db_password = config["DB_PASSWORD"]

print(f"DB 접속 정보: {db_user}:{db_password}@{db_host}:{db_port}")

5. 실행 결과 확인하기

위의 코드를 실행하면, .env 파일에 설정된 환경 변수 값을 읽어와서 출력할 수 있습니다. 로컬 환경에서는 .env 파일에 설정한 값이 출력되고, 서버 환경에서는 해당 서버의 .env 파일에 설정한 값이 출력됩니다.

DB 접속 정보: myuser:mypassword@localhost:5432

6. 결론

python-dotenv는 애플리케이션 개발시 환경 변수를 깔끔하게 관리할 수 있는 편리한 라이브러리입니다. .env 파일로 환경 변수를 선언하고, python-dotenv를 이용하여 해당 파일로부터 환경 변수를 로드합니다. 이를 통해 서비스별로 다른 환경 설정을 손쉽게 관리할 수 있고, 코드를 더욱 유연하게 만들 수 있습니다.

자세한 내용은 python-dotenv 공식 문서를 참고하세요.