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 |
반응형
'시스템 > 배포(Deploy)' 카테고리의 다른 글
[Part4] [3] Kubernetes Manifest 작성을 위한 Helm 활용 (0) | 2024.08.26 |
---|---|
Part2. Docker 활용 (0) | 2024.08.25 |
[Part4] [1] Terraform을 활용한 AWS EKS 생성 (0) | 2024.08.21 |
Part4. 개발자를 위한 Kubernetes 활용 (0) | 2024.08.21 |