hy30nq's blog

파이썬 플라스크에서 캐싱과 static_url_path 사용하기 본문

Web/web dev

파이썬 플라스크에서 캐싱과 static_url_path 사용하기

hy30nq 2024. 6. 17. 13:58
728x90

안녕하세요, 여러분! 😊 오늘은 파이썬 플라스크에서 웹 성능을 향상시키기 위해 캐싱과 static_url_path를 어떻게 사용하는지 알아보려고 해요.

1. 캐싱이란 무엇인가요?

캐싱은 한 번 로딩된 정적 파일(이미지, CSS, JavaScript 등)을 사용자 브라우저에 임시 저장하여 다음에 동일한 파일을 요청할 때 다시 다운로드하지 않고 저장된 파일을 사용하는 방법이에요. 이렇게 하면 웹 페이지의 로딩 속도가 빨라져요.

예를 들어, 여러분이 자주 방문하는 웹사이트가 있다고 가정해요. 이 웹사이트의 로고 이미지가 매번 새로 다운로드된다면 불필요한 네트워크 트래픽이 발생하고 로딩 속도가 느려지겠죠? 하지만 캐싱을 사용하면 한 번 로딩된 로고 이미지를 브라우저가 기억하고 있다가 다음에 방문할 때 빠르게 보여줄 수 있어요.

2. 플라스크에서 캐싱 적용하기

플라스크에서는 Flask-Caching이라는 확장 모듈을 사용하여 쉽게 캐싱을 적용할 수 있어요. 먼저, Flask-Caching을 설치해야 해요.

pip install Flask-Caching

그리고 플라스크 애플리케이션에 캐싱을 설정해요.

from flask import Flask
from flask_caching import Cache

app = Flask(__name__)

# 캐시 설정
cache = Cache(config={'CACHE_TYPE': 'simple'})
cache.init_app(app)

@app.route('/')
@cache.cached(timeout=60)
def index():
    return '이 페이지는 60초 동안 캐시됩니다.'

if __name__ == '__main__':
    app.run(debug=True)

위 코드에서 @cache.cached(timeout=60) 데코레이터를 사용하여 index 함수의 결과를 60초 동안 캐싱하도록 설정했어요.

3. static_url_path 사용하기

static_url_path는 플라스크에서 정적 파일의 URL 경로를 지정할 때 사용해요. 기본적으로 플라스크는 /static 경로를 사용하여 정적 파일을 제공하지만, 이를 변경하고 싶을 때 static_url_path를 사용하면 돼요.

예를 들어, /assets 경로를 사용하고 싶다면 다음과 같이 설정할 수 있어요.

from flask import Flask

app = Flask(__name__, static_url_path='/assets')

@app.route('/')
def index():
    return '''
    <html>
        <head>
            <link rel="stylesheet" type="text/css" href="/assets/style.css">
        </head>
        <body>
            <h1>정적 파일 예시</h1>
            <img src="/assets/logo.png" alt="로고">
        </body>
    </html>
    '''

if __name__ == '__main__':
    app.run(debug=True)

위 코드에서 /assets 경로를 통해 CSS 파일과 이미지를 제공하도록 설정했어요. 이렇게 하면 정적 파일의 URL 경로를 자유롭게 커스터마이징할 수 있어요.

4. 캐싱과 static_url_path를 활용한 예시

이제 캐싱과 static_url_path를 모두 적용한 예시를 보여드릴게요.

from flask import Flask
from flask_caching import Cache

app = Flask(__name__, static_url_path='/assets')

# 캐시 설정
cache = Cache(config={'CACHE_TYPE': 'simple'})
cache.init_app(app)

@app.route('/')
@cache.cached(timeout=60)
def index():
    return '''
    <html>
        <head>
            <link rel="stylesheet" type="text/css" href="/assets/style.css">
        </head>
        <body>
            <h1>캐싱과 static_url_path 예시</h1>
            <img src="/assets/logo.png" alt="로고">
        </body>
    </html>
    '''

if __name__ == '__main__':
    app.run(debug=True)

이 코드는 정적 파일을 /assets 경로로 제공하고, 메인 페이지를 60초 동안 캐싱하도록 설정했어요. 이렇게 하면 웹 페이지 로딩 속도가 크게 향상된답니다!

결론

캐싱과 static_url_path를 잘 활용하면 플라스크 애플리케이션의 성능을 크게 향상시킬 수 있어요. 캐싱은 웹 페이지 로딩 속도를 높여 사용자 경험을 개선하고, static_url_path는 정적 파일 경로를 유연하게 관리할 수 있게 해줘요. 여러분도 플라스크 애플리케이션에 적용해 보세요!

728x90