FastAPI 란 .. ?
웹 애플리케이션 개발 및 웹 서비스 개발을 하기 위해서는 크게 웹 프레임워크, 마이크로 프레임워크, ASGI 애플리케이션으로 나눌 수 있습니다.
여기서 웹 프레임워크란 어떤 목적을 이루기 위해서 메뉴얼적인 룰을 제공하는 프로그램을 의미합니다.
웹 프레임워크에는 크게 Spring Framework, Django, Flask, Sanic 등등이 있습니다.
마이크로 프레임워크는 작고 경량화된 웹 개발 프레임워크로, 필수 기능만 제공하여 개발자에게 유연성을 부여하고, 더 적은 추상화로 코드를 작성하게 돕습니다.
마이크로 프레임워크에는 Flask, Sanic이 있습니다.
WSGI(웹 서버 게이트웨이 인터페이스)는 Python 웹 애플리케이션과 웹 서버 간의 표준 인터페이스입니다. WSGI는 웹 서버와 프레임워크 간의 소통을 가능하게 하며, 서로 다른 구성 요소 간의 호환성을 제공합니다.
간단히 말하면, WSGI는 웹 애플리케이션과 웹 서버 사이에서 데이터를 주고받을 수 있도록 규칙을 정의하는 것입니다. 이를 통해 여러 프레임워크와 서버가 함께 작동할 수 있고, Python 웹 애플리케이션을 쉽게 배포하고 실행할 수 있게 됩니다. WSGI를 사용하면 다양한 프레임워크와 서버 간의 호환성을 높일 수 있어, Python 기반의 웹 애플리케이션 개발이 편리해집니다. 여기서 ASGI는 WSGI랑 같은 것이지만 비동기를 지원한다는 점에서 차이가 있습니다.
여기서 FastAPI는 동기를 지원하는 마이크로프레임워크입니다.
왜 FastAPI 인가 ?
- 모던 파이썬 문법: FastAPI는 Python 3.6 이상을 지원하며, 최신 파이썬 문법을 활용하여 개발을 할 수 있습니다.
- 비동기 키워드: async, await: 비동기(Asynchronous) 프로그래밍을 지원하며, async 및 await 키워드를 사용하여 비동기 코드를 간편하게 작성할 수 있습니다.
- 타입 힌트: Python의 타입 힌트를 적극적으로 활용하여 코드의 가독성을 높이고, 개발자에게 코드 작성 시 타입 정보를 제공합니다.
- OpenAPI 기반 (+GraphQL): OpenAPI 표준을 기반으로 API를 정의하고 문서화할 수 있으며, GraphQL도 지원하여 유연한 API 설계를 가능케 합니다.
- 자동 문서 생성: FastAPI는 코드에서 API 문서를 자동으로 생성합니다. Swagger UI나 ReDoc과 같은 도구를 통해 인터랙티브하게 API 문서를 탐색할 수 있습니다.
- 마이크로프레임워크: 경량화된 구조를 가진 마이크로프레임워크로, 필요한 기능만을 제공하여 간단하게 웹 애플리케이션을 개발할 수 있습니다.
- API 서버: 주로 API 서버 개발에 사용되며, HTTP 요청을 처리하고 JSON 형식의 응답을 생성하는 등의 기능을 제공합니다.
- MSA (Microservices Architecture): FastAPI는 마이크로서비스 아키텍처 구축에도 활용될 수 있어, 큰 규모의 애플리케이션을 구축할 때 유용합니다.
이러한 특징들은 FastAPI를 쉽게 배울 수 있게 만들어주며, 현대적이고 효율적인 웹 애플리케이션 개발에 적합하게 만들어진 프레임워크입니다.
다음은 FastAPI tutorial 코드입니다.
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello():
return "Hello, World!"
if __name__ == '__main__':
uvicorn.run("main:app", reload = True)
'FastAPI' 카테고리의 다른 글
FastAPI 쿼리 매개변수 (0) | 2024.01.16 |
---|---|
순서 문제 (1) | 2024.01.15 |
경로 매개변수 (0) | 2024.01.15 |
HTTP 파이 (0) | 2024.01.15 |
FastAPI 설치 및 Pydantic 소개 (0) | 2024.01.15 |