# Part 8: FastAPI를 이용한 모델 서빙 용어집 ## 핵심 용어 | 용어 (Term) | 설명 (Description) | | --- | --- | | **모델 서빙 (Model Serving)** | 학습된 머신러닝 모델을 실제 애플리케이션이나 사용자가 접근하여 예측 결과를 받을 수 있도록 배포하고 운영하는 과정입니다. API 형태로 제공하는 것이 일반적입니다. (비유: 비법 레시피로 요리를 만들어 손님에게 판매하는 '레스토랑' 운영) | | **API (Application Programming Interface)** | 애플리케이션(소프트웨어)들이 서로 상호작용하기 위한 약속 또는 규격입니다. 클라이언트(손님)가 서버(주방)에 특정 형식으로 요청(주문)을 보내면, 서버는 약속된 형식으로 응답(요리)을 제공합니다. 웹에서는 주로 HTTP 프로토콜을 사용합니다. | | **FastAPI** | Python 3.7+ 버전을 위한 현대적이고, 빠르며(고성능), 사용하기 쉬운 웹 프레임워크입니다. ASGI(Asynchronous Server Gateway Interface)를 기반으로 비동기 처리를 지원하며, Pydantic을 이용한 자동 데이터 검증 및 직렬화, 자동 API 문서 생성(Swagger UI, ReDoc) 기능이 강력합니다. | | **uvicorn** | FastAPI와 같은 ASGI 애플리케이션을 위한 가볍고 빠른 ASGI 서버입니다. 개발 환경 및 프로덕션 환경에서 FastAPI 애플리케이션을 실행하는 데 사용됩니다. (비유: 레스토랑의 서버 매니저) | | **Pydantic** | 파이썬 타입 힌트를 사용하여 데이터 유효성 검사 및 설정을 관리하는 라이브러리입니다. FastAPI에서는 요청 및 응답 데이터의 형식을 정의하고, 입력 데이터가 정의된 형식과 일치하는지 자동으로 검증하며, 데이터를 직렬화/역직렬화하는 데 사용됩니다. (비유: 주문서 양식 및 검토 직원) | | **경로 매개변수 (Path Parameter)** | API 엔드포인트의 URL 경로 일부로 전달되는 변수입니다. 특정 리소스를 식별하는 데 사용됩니다. (예: `/items/{item_id}` 에서 `{item_id}` 부분) FastAPI에서는 함수 매개변수에 타입 힌트와 함께 선언하여 사용합니다. | | **요청 본문 (Request Body)** | 클라이언트가 서버로 데이터를 전송할 때 HTTP 요청의 본문(body)에 담아 보내는 데이터입니다. 주로 POST, PUT, PATCH 메소드에서 사용되며, JSON, XML, 폼 데이터 등 다양한 형식이 가능합니다. FastAPI에서는 Pydantic 모델을 사용하여 요청 본문의 구조를 정의하고 유효성을 검사합니다. | | **Swagger UI** | OpenAPI Specification(OAS)을 기반으로 API를 시각적으로 문서화하고, 브라우저에서 직접 API를 테스트할 수 있는 대화형 UI 도구입니다. FastAPI는 자동으로 Swagger UI를 `/docs` 경로에 생성해줍니다. (비유: 스마트 메뉴판) | | **`lifespan` (FastAPI)** | FastAPI 애플리케이션의 시작과 종료 시점에 특정 작업을 수행하도록 하는 이벤트 핸들러입니다. 비동기 컨텍스트 매니저(`@asynccontextmanager`)를 사용하여 정의하며, 서버 시작 시 모델 로드, 데이터베이스 연결 초기화 등을, 서버 종료 시 리소스 정리 등을 수행하는 데 유용합니다. (비유: 가게 오픈 전 준비, 마감 후 정리) | --- *이 용어집은 `geumdo_docs/ai lecture/part_8_model_serving_with_fastapi.md` 파일 내용을 기반으로 작성되었습니다.*