본문 바로가기
IT

FastAPI - Study 1일차 (Hello, FastAPI)

by 고래(부와 성공) 2024. 12. 16.

1. FastAPI 란?

FastAPI는 파이썬 언어를 위해 설계된 최신 웹 프레임워크이다.

특히 API 개발에 최적화되어 있고, 비동기 프레임워크인 Starlette(스타레테)를 기반으로 웹 요청을 처리할 수 있다.

그리고 데이터 검증과 설정을 위해 Pydantic(파이단틱) 라이브러리를 사용한다.

 

FastAPI는 이름에서도 알 수 있듯 성능에 중점을 두고 있어서, 비동기(async) 프로그래밍을 지원한다.

그래서 I/O 작업이 많은 애플리케이션에 대해 빠른 처리 속도를 제공한다. 

 

결국, RESTful API를 쉽게 구축해주도록 돕는 것이 FastAPI이다. 이러한 AIP를 구축함에 있어 필요한 

많은 기본 설정과 보일러플레이트 코드를 줄여준다.

보일러플레이트 코드(boilerplate code)란, 애플리케이션의 동작과 관련 없이 반복되어 작성되어야 하는

코드 조각들을 말한다.

 

 

2. FastAPI의 장점(vs. Flask)

1) 성능 

FastAPI는 매우 빠른 웹 프레임워크이다. 플라스크나 장고보다 빠르며, Go 언어도 버금간다. 

플라스크에 비해 FastAPI는 비동기 처리에 최적화되어 있어 특히 I/O 바운드 작업에서 더 빠르다.

 

2) 문서 자동화

FastAPI는 API만 작성하면 자동으로 API 문서를 생성한다. 물론 플라스크에서도 Swagger(스웨거) 같은 

확장 모듈을 사용하면 API를 문서화할 수 있다.

하지만, FastAPI는 이러한 기능이 기본 내장되어 있어 별도의 확장 기능 없이도 쉽게 문서를 생성할 수 있다.

 

3) 쉬운 유효성 검사

FastAPI는 Pydantic(파이단틱) 라이브러리를 활용하여 데이터 유효성 검사를 간단히 수행할 수 있다.

 

4) 비동기 프로그래밍

FastAPI는 비동기 작업을 간단히 처리할 수 있다. 플라스크는 기본적으로 동기 작업에 최적화되어 있다.

 

 

3. FastAPI로 Hello, World!! 만들어 보자

1) FastAPI를 이용하려면 파이썬 3.6 이상의 버전이 필요하며, 아래와 같이 라이브러리 설치를 해야 한다.

]# pip install fastapi[all]

=> 만약 설치시 에러가 난다면 커맨드 창(또는 Powerhell) 을 관리자 모드로 실행후 다시 시도해 보길 바란다.

 

 

2) 설치가 되었다면 main.py 이름으로 코드를 작성해본다.

# main.py로 작성
from fastapi import FastAPI  # FastAPI 라이브러리를 import 한다.

app = FastAPI()  # FastAPI 인스턴스를 생성한다.


@app.get("/")
def root_api(): 
    return {'message':'Hello World!!'}

 

 

3) 서버 실행

서버(로컬) 실행을 위해 Uvicorn이라는 ASGI 서버 구현체를 설치 한다.

 

]# pip install uvicorn

 

=> 만약 설치시 에러가 난다면 커맨드 창(또는 Powerhell) 을 관리자 모드로 실행후 다시 시도해 보길 바란다.

 

위와 같이 설치가 되었으면 터미널에서 아래와 같이 입력한다.

]# uvicorn main:app --reload

 

● main : FastAPI 애플리케이션 코드가 작선된 파이썬 파일의 이름을 의미(즉, main.py를 의미)

● app : FastAPI 인스턴스를 생성하는 객체의 변수 이름을 가르친다. (즉, app = FastAPI()라고 정의된 경우)

● --reload : 이 옵션은 개발 중 코드를 수정할 때 서버가 자동으로 재시작 되도록 해준다. 코드 변경이 바로바로 적용된다.

 

 

4) 웹브라우저 실행

http://127.0.0.1:8000

 

 

짝짝짝~ 참 잘했어용~