⊢ AI 모델 활용

FastAPI를 활용한 API 구축

최 수빈 2025. 3. 25. 19:25

 

머신 러닝 모델 서빙(Serving)

 

학습이 완료된 모델을 외부 애플리케이션에서 사용할 수 있도록 제공하는 과정

 

 

작동 흐름

  1. 사용자가 입력 데이터를 보냄 (ex. 이미지, 텍스트 등)
  2. 서버가 모델에 데이터를 전달해 예측 수행
  3. 예측 결과를 응답으로 반환

→ 처리를 외부에서 접근할 수 있도록 하려면 API(Application Programming Interface)를 만들어야 함

 

 

RESTful API

 

REST(Representational State Transfer) 아키텍처 스타일을 따르는 API

HTTP를 통해 클라이언트와 서버 간에 데이터를 주고받는 방식

 

RESTful API는 리소스에 접근하기 위한 경로(Path)와 메서드 조합으로 동작함

→ 경로에 포함된 매개변수를 통해 다양한 작업을 수행할 수 있음

 

HTTP 메서드

GET 리소스(데이터) 조회
POST 새로운 리소스 생성
PUT 기존 리소스 수정
DELETE 리소스 삭제

 

 

FastAPI

 

Python 기반의 비동기 웹 프레임워크

빠르게 RESTful API를 구축할 수 있도록 설계됨

  • 자동 문서화 (/docs, /redoc)
  • 빠른 실행 속도 (Starlette + Pydantic 기반)
  • 타입 힌트를 활용한 높은 개발 생산성

 

FastAPI로 Hello World API 구축

 

FastAPI 설치

pip install fastapi uvicorn

fastapi: API 서버 기능 제공

uvicorn: FastAPI 앱을 실행하는 ASGI 서버

 

 

"Hello World" API 작성

 

main.py라는 이름의 파일을 만들고 코드 작성

from fastapi import FastAPI

# FastAPI 인스턴스 생성
app = FastAPI()

# 루트 경로에 GET 요청이 들어왔을 때 "Hello World!"를 반환하는 엔드포인트 정의
@app.get("/")
def read_root():
    return {"message": "Hello World!"}

 

 

서버 실행

uvicorn main:app --reload

main: 파일 이름 (main.py)

app: FastAPI 인스턴스

--reload: 코드 변경 시 자동 재시작

 

 

실행 결과

INFO:     Uvicorn running on http://127.0.0.1:8000

 

 

API 테스트

 

브라우저에서 주소로 접속

http://127.0.0.1:8000/

 

JSON 응답 반환

{
  "message": "Hello World!"
}

localhost

자동 문서 확인

Swagger UI: http://127.0.0.1:8000/docs

http://127.0.0.1:8000/docs

ReDoc: http://127.0.0.1:8000/redoc

http://127.0.0.1:8000/redoc