[파이썬] Flask 앱 환경 변수 관리

Flask는 Python으로 개발된 간단하고 가벼운 웹 애플리케이션 프레임워크입니다. 환경 변수는 애플리케이션의 설정과 동작에 중요한 역할을 합니다. 이 글에서는 Flask 앱 환경 변수를 효과적으로 관리하는 방법에 대해 알아보겠습니다.

왜 환경 변수를 사용해야 할까요?

환경 변수는 애플리케이션을 실행할 때 설정을 제공하는 유연하고 보안성 있는 방법입니다. 이를 통해 애플리케이션의 동작을 조정하거나 외부 서비스와의 연결 설정 등을 관리할 수 있습니다. Flask 앱에서 환경 변수를 사용하면 앱의 설정을 모든 환경에서 일관되게 유지할 수 있으며, 개발, 테스트, 프로덕션 환경에서 다른 값을 사용할 수 있습니다.

Flask 환경 변수 관리 방법

Flask는 환경 변수를 관리하기 위해 python-dotenv 패키지를 기본적으로 제공합니다. 이 패키지를 사용하면 .env 파일에 정의된 환경 변수를 쉽게 로드할 수 있습니다.

  1. 먼저, .env 파일을 프로젝트 루트 디렉토리에 생성합니다.

  2. .env 파일에 환경 변수를 설정합니다. 다음은 예시입니다:

API_KEY=your_api_key
DATABASE_URL=your_database_url
DEBUG=True
  1. Flask 앱의 app.py 파일에 다음 코드를 추가하여 .env 파일을 로드합니다:
from dotenv import load_dotenv
import os

# .env 파일 경로 설정
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')

# .env 파일 로드
load_dotenv(dotenv_path)

# 앱 생성 및 설정
app = Flask(__name__)
app.config['API_KEY'] = os.getenv('API_KEY')
app.config['DATABASE_URL'] = os.getenv('DATABASE_URL')
app.config['DEBUG'] = os.getenv('DEBUG', False) == 'True'
  1. 이제 app.config를 통해 환경 변수에 접근할 수 있습니다. 예를 들어, app.config['API_KEY'].env 파일에서 설정한 API 키 값을 반환합니다.

환경 변수의 보안

환경 변수에는 암호, 키, 비밀번호 등 애플리케이션 보안에 중요한 정보가 포함될 수 있습니다. 따라서 .env 파일은 항상 .gitignore 파일에 포함되어야 합니다. 이렇게 함으로써 환경 변수 값이 공개되는 것을 방지하고 애플리케이션의 보안을 강화할 수 있습니다. 또한, 프로덕션 환경에서는 서버 설정을 통해 환경 변수를 설정하는 것이 더 안전합니다.

결론

Flask 앱에서 환경 변수를 관리하는 것은 애플리케이션 설정을 효과적으로 관리하고 보안을 강화하는 데 중요한 역할을 합니다. python-dotenv 패키지를 사용하여 .env 파일에 정의된 환경 변수를 쉽게 사용할 수 있습니다. 애플리케이션의 개발, 테스트, 프로덕션 환경에 따라 다른 환경 변수 값을 사용할 수 있습니다. 환경 변수 값은 .env 파일에 저장되지만 보안을 위해 .gitignore 파일에 추가되어야 합니다.

이러한 환경 변수 관리 방법을 통해 Flask 앱의 설정을 유연하게 조정하고 보안을 강화할 수 있습니다.