편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.06.21

    flask 의 글로벌 객체 사용 관련.


    안녕하세요.

    "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 조합으로 웹 서비스를 운영하고 있습니다.

    고수분들의 조언 부탁 드립니다.

    그럼 오늘도 좋은 하루 되세요.