[python] python-dotenv를 사용하여 CORS 설정하기

CORS는 Cross-Origin Resource Sharing의 약자로, 웹 애플리케이션에서 다른 도메인으로부터 리소스를 요청할 때 발생하는 보안 이슈를 해결하기 위해 사용됩니다. Python으로 웹 애플리케이션을 개발할 때, 서버 측에서 CORS를 설정하는 작업이 필요합니다. 이번 포스트에서는 python-dotenv 라이브러리를 사용하여 Python 애플리케이션에서 CORS를 설정하는 방법에 대해 알아보겠습니다.

1. python-dotenv 설치하기

먼저, python-dotenv 패키지를 설치해야합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install python-dotenv

2. .env 파일 생성하기

CORS 설정을 위해 .env 파일을 생성해야합니다. 이 파일에는 원하는 CORS 설정 값을 지정할 수 있습니다. 예를 들어, 다음과 같이 .env 파일을 작성할 수 있습니다:

CORS_ALLOWED_ORIGINS=http://localhost:3000,http://example.com
CORS_ALLOWED_METHODS=GET,POST

위의 예시에서는 CORS_ALLOWED_ORIGINS 변수를 사용하여 허용된 도메인을 지정하고, CORS_ALLOWED_METHODS 변수를 사용하여 허용된 HTTP 메서드를 지정합니다.

3. settings.py 파일에서 .env 파일 로드하기

CORS 설정 값을 사용하기 위해, settings.py 파일에서 .env 파일을 로드해야합니다.

import os
from dotenv import load_dotenv

load_dotenv()

CORS_ALLOWED_ORIGINS = os.getenv("CORS_ALLOWED_ORIGINS")
CORS_ALLOWED_METHODS = os.getenv("CORS_ALLOWED_METHODS")

위의 예시에서는 .env 파일을 로드하고, os.getenv() 함수를 사용하여 .env 파일에 정의된 변수 값을 가져옵니다.

4. CORS 미들웨어 추가하기

마지막으로, Python 웹 애플리케이션의 미들웨어에 CORS를 설정해야합니다. 예를 들어, Django 프레임워크를 사용한다면, settings.py 파일에 다음 코드를 추가할 수 있습니다:

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    ...
]

CORS_ALLOWED_ORIGINS = ['http://localhost:3000', 'http://example.com']
CORS_ALLOW_METHODS = ['GET', 'POST']

위의 예시에서는 corsheaders.middleware.CorsMiddleware를 미들웨어에 추가하고, CORS_ALLOWED_ORIGINS 변수를 사용하여 허용된 도메인을 지정하며, CORS_ALLOWED_METHODS 변수를 사용하여 허용된 HTTP 메서드를 지정합니다.

이제 Python 애플리케이션에서 CORS가 설정되었습니다.

결론

python-dotenv를 사용하여 Python 애플리케이션에서 CORS를 설정하는 방법에 대해 알아보았습니다. 이 방법을 사용하면 .env 파일에 원하는 CORS 설정값을 지정하여 간편하게 CORS를 설정할 수 있습니다.