FastAPI에 대해 알아보자.

tjdxordlsmsa·2026년 6월 28일

FastAPI란?

FastAPI는 Python으로 고성능 REST API를 쉽고 빠르게 개발할 수 있도록 만들어진 웹 프레임워크로, AI 모델을 웹 서비스로 배포하는 데 매우 적합한 프레임워크로 평가받고 있다.
기존의 웹 프레임워크인 Flask는 사용이 간단하지만 개발자가 직접 구현해야 하는 기능이 많고, Django는 다양한 기능을 제공하지만 비교적 무거운 편이다. 반면 FastAPI는 간결한 코드와 높은 성능을 동시에 제공하여 AI 서비스나 마이크로 서비스 개발에 많이 활용된다.

FastAPI의 특징

1. 높은 성능

FastAPI는 비동기 처리를 지원하여 많은 요청을 효율적으로 처리할 수 있다. 예를 들어, 여러 사용자가 동시에 AI 모델에 예측을 요청하는 경우에도 요청을 순차적으로 처리하는 것이 아니라, 효율적으로 관리하여 응답속도를 높일 수 있다.

2. 자동 API 문서 생성

FastAPI의 가장 큰 장점은 API 문서를 자동으로 생성한다는 점이다. API를 작성하면 별도의 작업 없이 Swagger UI, ReDoc을 제공하여 API를 테스트하고 확인할 수 있다. 덕분에 API를 개발하면서 별도의 테스트 프로그램 없이 브라우저에서 요청과 응답을 확인할 수 있다.

3. 데이터 검증

FastAPI는 Pydantic을 이용하여 입력 데이터를 자동으로 검증한다. 타입 힌트를 적극적으로 활용하여 입력 타입을 지정하면 자동검증, 자동문서생성, IDE 자동완성 등 기능을 함께 제공한다.

FastAPI 코드 구성

FastAPI를 이용해 AI 모델을 웹 API 형태로 제공할 때는 기능별로 역할을 분리하여 구성하는 것이 유지 보수성과 확장성 측면에서 가장 바람직하다. 하나의 main.py에 모든 코드를 작성하는 것은 프로젝트 규모가 커질수록 관리가 어려워지므로, 일반적으로 API 라우팅, 비즈니스 로직, AI 모델, 데이터베이스, 데이터 모델을 각각 별도의 디렉토리로 분리한다.

1. main.py

프로젝트의 시작점으로 FastAPI 애플리케이션을 생성하고 모든 API를 등록한다.
역할은 다음과 같다.

  • FastAPI 실행
  • API 등록
  • 서버 설정
  • CORS 설정
  • 이벤트 등록

2. api/

API 주소(URL)를 정의하는 공간이다. 여기서는 요청을 받아 서비스를 호출하고 결과를 반환하는 작업만 수행한다. 라우터가 AI모델을 직접 실행하지는 않으며, 이 부분에서는 실제 모델 추론 함수를 호출하는 코드가 포함된다.

3. services/

실제 비즈니스 로직이 들어가는 곳이다.

사용자 입력

전처리

AI 모델 호출

후처리

결과 반환

서비스 계층을 분리하여 API를 변경하거나 모델을 변경이 필요할 때, 서로 영향을 주지 않도록 할 수 있다.

4. models/

AI 모델을 관리하는 공간이다. 모델을 별도로 관리하면 모델을 나중에 변경하더라도 service 코드는 거의 수정하지 않아도 된다.

5. schemas/

API 입출력 형식을 정의한다. FastAPI에서는 일반적으로 Pydantic 모델을 사용하는데, Pydantic은 자동 검증, 자동 문서화, 타입 검사의 기능을 제공한다.

6. database/

SQLite, PostgreSQL, MySQL 등 DB 연결을 관리한다.

7. utils/

공통 기능을 모아두는 공간이다. 텍스트 전처리, 토큰화, 날짜 변환, 파일 저장, 로그 등 필요한 기능들에 대한 코드를 작성한다.

기능 별로 코드를 분리하면 다음과 같은 장점이 있다.

  • 유지보수성 향상: API, AI 모델, DB, 공통 기능이 독립적으로 관리되어 수정 범위가 명확함.
  • 확장성 확보: 새로운 AI 모델이나 API를 추가할 때 기존 구조를 크게 변경하지 않아도 됨.
  • 재사용성 증가: 전처리 함수나 모델 로딩 로직을 여러 API에서 공통으로 사용할 수 있음.
  • 협업 효율 향상: 프론트엔드, 백엔드, AI 엔지니어가 서로 다른 영역을 병렬로 개발하기 쉬움.

이처럼 라우터(API) → 서비스(비즈니스 로직) → 모델(AI 추론)의 계층 구조를 중심으로 프로젝트를 설계하면, AI 모델을 포함한 FastAPI 기반 웹 서비스를 체계적이고 확장 가능하게 구현할 수 있다.

profile

0개의 댓글