hy30nq's blog
파이썬 플라스크에서 캐싱과 static_url_path 사용하기 본문
안녕하세요, 여러분! 😊 오늘은 파이썬 플라스크에서 웹 성능을 향상시키기 위해 캐싱과 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
는 정적 파일 경로를 유연하게 관리할 수 있게 해줘요. 여러분도 플라스크 애플리케이션에 적용해 보세요!
'Web > web dev' 카테고리의 다른 글
프로그램 실행 중 로깅의 중요성 (0) | 2024.06.17 |
---|---|
Flask에서 세션과 쿠키 활용하기 (0) | 2024.06.17 |
Flask로 정적 파일 제공하기: 이미지 파일 제공 예시 (0) | 2024.06.17 |
Flask 템플릿 상속으로 효율적인 웹 페이지 만들기 (0) | 2024.06.17 |
Flask Jinja2 템플릿 엔진 사용법 가이드 (1) | 2024.06.15 |