FastAPI에서 캐싱(Caching) 적용하기

FastAPI는 빠른 속도와 효율적인 처리를 제공하는 고성능 웹 프레임워크입니다. 이를 효과적으로 활용하기 위해서는 캐싱(Caching) 기능을 사용하여 자주 사용되는 데이터나 계산 결과를 저장하고 재사용하는 것이 중요합니다.

캐싱이란?

캐싱은 이전에 계산된 결과나 데이터를 재사용하여 반복적인 작업을 효율적으로 처리하는 기술입니다. 이를 통해 서버의 응답시간을 줄이고 처리량을 증가시킬 수 있습니다.

FastAPI에서의 캐싱 적용 방법

FastAPI에서 캐싱을 적용하기 위해서는 다음의 단계를 따라야 합니다:

  1. 필요한 패키지 설치하기

    FastAPI에서 캐싱을 사용하기 위해서는 cachetools 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.

    pip install cachetools
    
  2. 캐시 객체 생성하기

    FastAPI 애플리케이션의 어느 곳에서나 접근 가능한 캐시 객체를 생성해야 합니다. 가장 간단한 방법은 애플리케이션 모듈의 최상단에 캐시 객체를 생성하는 것입니다. 예를 들어:

    from cachetools import TTLCache
    
    cache = TTLCache(maxsize=100, ttl=300)
    

    위의 코드에서는 TTLCache 객체를 생성하고 최대 크기를 100으로 설정하였으며, 데이터의 유효 기간을 300초로 설정하였습니다.

  3. 캐시 사용하기

    캐시를 사용할 함수나 라우터에서는 데이터를 가져오기 전에 캐시 객체를 확인하고, 이미 캐시된 데이터가 있는 경우 해당 데이터를 반환합니다.

    from fastapi import FastAPI
    from cachetools import TTLCache, cached
    
    app = FastAPI()
    cache = TTLCache(maxsize=100, ttl=300)
    
    @app.get("/data")
    @cached(cache)
    def get_data():
        data = fetch_data_from_database() # 데이터베이스에서 데이터 가져오기
        return data
    

    위의 예제 코드에서는 @cached(cache) 데코레이터를 사용하여 캐시를 활성화하였습니다. get_data 함수는 먼저 캐시 객체에서 데이터를 찾고, 데이터가 없는 경우 데이터베이스에서 데이터를 가져와서 캐시에 저장합니다.

마무리

FastAPI에서 캐싱을 적용하는 방법에 대해 알아보았습니다. 캐싱을 사용하여 반복적인 작업을 효율적으로 처리하고, 서버의 응답시간을 줄일 수 있습니다. 캐싱은 FastAPI를 더욱 성능적으로 사용할 수 있는 중요한 기능이므로, 적절하게 활용해보시기 바랍니다.

#FastAPI #캐싱