새소식

이것저것 개발노트

[FastAPI] [Chapter 1] FastAPI 개요

  • -

마이크로프레임워크:

핵심적인 기능만을 가지고 있는 작고 강력한 웹 애플리케이션 프레임워크 <--> 풀 스택 프레임워크와 대조 

Web API를 제공하는데 더 집중한 프레임워크 

 

SPA (Single Page Application) 또는 Web API 또는 Batch에서 호출하여 처리하는 것이 특기 

 

FastAPI의 특징 

- 요청(request) 및 응답 (response) 스키마 정의에 따라 Swagger UI 문서를 자동으로 생성 

- 위 스키마를 명시적으로 정의함으로써 타입 안전 (type safety) 개발이 가능

- ASGI (Asynchronous Server Gateway Interface)를 지원하므로 비동기 처리가 가능해 속도가 빠름 

 

ASGI:

파이썬에서 비동기 웹 애플리케이션을 위한 표준 인터페이스

이는 비동기적인 웹 서버와 애플리케이션을 연결하여 빠르고 실시간으로 작동하는 서비스를 구현할 수 있도록 도와줌

ASGI는 이벤트 기반 처리를 지원하여 WebSocket과 같은 기술을 사용할 수 있게 해주며, Django와 FastAPI와 같은 프레임워크에서 비동기 처리를 가능하게 한다. 

 

인공지능 서비스 개발에 있어서 FastAPI

최근에 머신러닝의 부상으로 파이썬을 이용한 머신러닝 서비스 제공을 위해 FastAPI를 선택하는 사람들이 늘어나고 있다.

머신러닝의 처리 중에 API로 구축되는 경우가 많은 추론 단계에서 비교적 시간과 부하가 많이 걸리는데, 이러한 경우 비동기 처리를 통한 빠른 속도를 활용할 수 있다. 

 

FastAPI 개발에는 요청과 응답의 스키마를 정의하게 되고 이를 통해 프론트엔드 엔지어가 구현할 때 사용할 문서를 간단히 자동 생성할 수 있고, 실제로 요청 파라미터를 변경해 API 호출을 시험해 볼 수 있다.

 

스키마 기반 개발 (Schema-Driven Development, SDD):

- 스키마를 먼저 정의하고 프론트엔드와 백엔드 간의 인터페이스를 정해, 각각의 개발을 동시에 시작하는 방식을 스키마 기반 개발이라고 한다. 

- 개발 전에 미리 공통적인 스키마라는 데이터 구조를 정의하는 개발 방법론 

- 이는 데이터의 형식, 필수/선택적인 요소, 제약 조건등을 명확히 정의하여 데이터의 일관성과 유효성을 보장한다. 

 

FastAPI 사용 장점 

- 노하우나 사전 지식이 없어도 스키마 기반 개발을 시작할 수 있음 

- 스키마 기반 개발을 이용하면 프론트엔드와 백엔드를 통합할 때, 설계 오류 등으로 발생하는 리스크를 줄일 수 있고 개발 속도를 높일 수 있음

- 웹 서비스의 백엔드 개발에서, FastAPI는 개발 속도 향상에 기여하며 이후의 개발 단계어서도 강력한 힘을 발휘함

- 확장성 문제 완화

- 타입 안전을 지원할 뿐만 아니라 속도가 빠름 

- Go와 같은 정적 타입 언어와 비교해도 뒤지지 않는 성능을 지니고 있어, 서비스가 확대되는 시기에도 충분히 부하를 견딜 수 있는 API를 만들 수 있음 

 

Flask와 비교 

Flask에 없는 특징을 가지고 있음 

- 자동으로 Swagger UI 문서 생성 

- 타입 안전 

- 속도가 빠름 

 

 

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.