[FastAPI] lifespan - 생명주기
·
Backend/Python
생명주기생명주기는 어떤 객체나 프로그램이 생성되고, 실행되면서 소멸할 때까지의 전체 과정을 의미합니다. FastAPI에서의 생명주기는 서버가 켜지고 꺼질 때까지의 과정이라고 볼 수 있습니다. 보통 서버의 생명주기에서는 다음과 같은 작업이 순서대로 이루어집니다.Startup (시작): 서버가 막 가동될 때입니다. 이때 보통 DB 연결이나 AI 모델 로드, 설정 파일 읽기 같은 무거운 작업을 미리 해둡니다.Running (운영): 서버가 사용자(클라이언트)들의 요청을 처리하며 열심히 일하는 단계입니다.Shutdown (종료): 서버가 꺼질 때입니다. 이때 DB 연결을 안전하게 닫거나, 임시 파일을 삭제하는 등 뒷정리를 합니다.asynccontextmanagerFastAPI에서 생명주기를 설정하는 함수는 비동..
[FastAPI] APIRouter - 라우팅 설정하기
·
Backend/Python
FastAPI에서 각 엔드포인트들의 주소를 하나로 묶어 사용하려면 APIRouter() 객체를 사용하면 됩니다.include_router( )우선 FastAPI 객체가 필요합니다. from fastapi import FastAPIapp = FastAPI()app의 include_router( ) 함수로 APIRouter( ) 객체를 연결할 수 있습니다.from fastapi import FastAPIfrom app.routes.news import news_router # APIRouter 객체app = FastAPI()app.include_router(news_router, prefix="/news", tags=["news"])news_router | APIRouter 객체 이름prefix | ..
[FastAPI] FastAPI에 대하여
·
Backend/Python
FastAPI는 Python의 표준 타입 힌트* 기반의 API를 구축하기 위한 웹 프레임워크입니다. Node.js나 Go과 대등할 정도로 빠른 개발 속도와 처리 속도를 가지고 있어 Fast라는 이름이 붙여졌습니다. *표준 타입 힌트 : Python 3.6 버전부터 도입된 type hinting 문법을 API 개발에 그대로 활용하는 것. 자세한 내용은 아래 후술간단한 작성방식 Starlette과 Pydantic을 기반으로 하여 빠른 코드 작성을 지원할 뿐 아니라, 코드 중복을 최소화하고 코드 자체를 간결하게 만들어 직관적이고 배우기 쉬운 프레임워크를 설계하였습니다. 예를 들어 서버의 라우팅 과정을 Flask와 비교하면 이름 식별자나 routing 파일 위치(Flask에서는 blueprint 위치)등을 작성..