Flask는 파이썬으로 작성된 웹 프레임워크로, 글로벌 컨텍스트(global context)를 활용하여 애플리케이션 전역에서 사용되는 변수나 객체를 관리할 수 있습니다. 글로벌 컨텍스트는 애플리케이션 실행 중에 공유되며, 요청과 관련된 정보를 저장하거나 다른 모듈에서 전역적으로 접근할 수 있는 데이터를 관리하는 데 유용합니다.
Flask의 글로벌 컨텍스트 종류
Flask에서는 두 개의 주요한 글로벌 컨텍스트를 제공합니다.
1. 애플리케이션 컨텍스트(Application Context)
애플리케이션 컨텍스트는 Flask 애플리케이션의 인스턴스에 대한 상태를 저장하는 데 사용됩니다. 이 컨텍스트를 통해 애플리케이션의 설정, 데이터베이스 연결 등과 같은 전역적으로 활용되는 데이터를 관리할 수 있습니다. 애플리케이션 컨텍스트는 current_app
객체로 접근할 수 있습니다.
from flask import current_app
# 애플리케이션 컨텍스트에서 설정 값 가져오기
secret_key = current_app.config['SECRET_KEY']
2. 요청 컨텍스트(Request Context)
요청 컨텍스트는 HTTP 요청이 처리되는 동안에만 존재하는 컨텍스트로, 이를 통해 요청과 관련된 데이터를 저장하거나 다른 모듈에서 접근할 수 있습니다. 요청 컨텍스트는 request
객체로 접근할 수 있습니다.
from flask import request
# 요청 컨텍스트에서 HTTP 메서드 가져오기
http_method = request.method
글로벌 컨텍스트 활용 예제
다음은 Flask 애플리케이션에서 글로벌 컨텍스트를 사용하는 간단한 예제입니다.
from flask import Flask, current_app, request
app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecretkey'
@app.route('/')
def index():
# 애플리케이션 컨텍스트에서 설정 값을 가져오기
secret_key = current_app.config['SECRET_KEY']
# 요청 컨텍스트에서 HTTP 메서드 가져오기
http_method = request.method
return f"Secret key: {secret_key}, HTTP method: {http_method}"
if __name__ == '__main__':
app.run()
위 예제에서 /
경로로 요청이 들어오면 애플리케이션 컨텍스트에서 설정된 시크릿 키와 요청 컨텍스트에서 HTTP 메서드를 가져와 클라이언트에게 반환합니다.
Flask의 글로벌 컨텍스트를 활용하면 애플리케이션 전역에서 사용되는 데이터를 효율적으로 관리할 수 있으며, 다른 모듈 간의 데이터 공유 역시 용이해집니다. Flask 개발 시에는 글로벌 컨텍스트의 활용에 유의하여 보다 효율적이고 구조적인 애플리케이션을 개발해보세요.