안녕하세요.
"Flask 기반의 파이썬 웹프로그래밍" 이란 책을 보다가 궁금한 점이 생겨서 문의 드립니다.
아래 내용은 책의 일부 입니다.
"글로벌 객체는 애플리케이션 전반에서 공유해야 할 데이터를 저장해두고 사용하는 데 효율적이지만, 글로벌 객체에 저장한 속성에 다수의 동시접근이 이뤄지면 애플리케이션 운용에 문제가 발생할 수 있습니다."
from flask import g
@resource.after_request
def after_request(response):
# 글로벌 객체를 사용하는 한 예제.
pritn g.userid
# 기본 Auth Check
def authCheck(func):
@wraps(func)
def checkFunc(*args, **kwargs):
g.userid = 'H2'
return func(*args, **kwargs)
return checkFunc
@app.route("/")
@authCheck
def main():
# 글로벌 객체를 사용하는 또 다른 예제.
print "hello", g.userid
위 내용 중, "다수의 동시접근" 이라는 부분이 있는데, 제가 기존에 글러벌 객체 사용을 사용자ID 로 쓰고 있었습니다. (g.userid)
한 세션의 요청을 처리할 때, 어떤 함수에서도 해당 ID 값을 가져다 사용할 수 있도록...
그런데, 위 책의 내용은 저와 같이 사용하면 안된다는 걸까요? 여러 사용자의 요청이 동시에 들어온다면, ID값이 바뀔수 있다는?
그렇다면 큰 문제인데요...
저는 현재 nginx + uwsgi + flask 조합으로 웹 서비스를 운영하고 있습니다.
고수분들의 조언 부탁 드립니다.
그럼 오늘도 좋은 하루 되세요.