시스템/배포(Deploy)

RestAPI, FastAPI, Flask 차이

EastHoon 2024. 7. 7. 20:26

REST API

  • 정의: REST API는 특정 프레임워크가 아니라 웹 서비스를 설계하는 아키텍처 스타일입니다. REST(Representational State Transfer) 원칙을 따르는 API를 의미합니다.
  • 목적: 클라이언트와 서버 간의 통신을 위한 구조를 제공.
  • 특징:
    • 자원 기반 구조.
    • HTTP 메서드(예: GET, POST, PUT, DELETE)를 사용하여 자원 조작.
    • 상태 무저장(stateless).
    • URI를 통해 자원 식별.

FastAPI

  • 정의: FastAPI는 Python으로 작성된 현대적인 고성능 웹 프레임워크입니다.
  • 목적: 빠르고 쉽게 RESTful API를 만들기 위해 설계됨.
  • 특징:
    • 고성능: Starlette과 Pydantic을 기반으로 하여 비동기 기능과 데이터 검증을 지원.
    • 자동화된 문서화: Swagger UI 및 ReDoc을 통해 자동으로 API 문서 생성.
    • 타입 힌트 지원: Python의 타입 힌트를 사용하여 코드의 가독성과 유지보수성 향상.
    • 비동기 지원: 비동기 처리 기능을 기본적으로 제공하여 고성능 애플리케이션 구축 가능.

Flask

  • 정의: Flask는 Python으로 작성된 마이크로 웹 프레임워크입니다.
  • 목적: 단순하고 가벼운 웹 애플리케이션을 구축하기 위해 설계됨.
  • 특징:
    • 경량: 최소한의 구성 요소로 시작하며, 필요에 따라 확장 가능.
    • 유연성: 플러그인과 확장 기능을 통해 기능 확장 가능.
    • 동기 처리: 비동기 기능은 기본적으로 지원하지 않으며, 추가 설정이 필요.
    • 쉬운 학습 곡선: 간단한 구조로 인해 빠르게 학습하고 사용할 수 있음.

비교 요약

 

비교 요약

특징 REST API FastAPI Flask
정의 아키텍처 스타일 고성능 웹 프레임워크 마이크로 웹 프레임워크
주요 목적 클라이언트-서버 통신 구조 제공 빠르고 효율적인 API 구축 단순하고 가벼운 웹 애플리케이션 구축
주요 특징 자원 기반, 상태 무저장 고성능, 비동기 지원, 자동 문서화,
타입 힌트
경량, 유연성, 확장 가능
비동기 지원 기본적으로 지원 안 함 기본적으로 지원 기본적으로 지원 안 함
자동 문서화 없음 Swagger UI, ReDoc 지원 없음
사용 사례 다양한 웹 서비스 및 API 설계 고성능 및 대규모 API 간단한 웹 사이트 및 API
반응형