본문 바로가기

IT IS IT/IT 경험공유

[FastAPI] 패스트 API란? 특징 및 장점 정리

728x90
반응형

우선 FastAPI가 무엇인지 알아보기 전에 API가 무엇인지 짚어보고 넘어가자.

 

API(Application Programing Interface).

애플리케이션 프로그래밍 인터페이스의 줄임말인 API는 위키백과에서 다음과 같이 설명하고 있다.

API는 응용 프로그램에서 사용할 수 있도록,
운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

 

그러니까 특정 기능을 개발해놓았는데 사람들이 이걸 좀 더 편하게 쓸 수 있도록 제공해주는 서비스가 api인 셈이다.

우리는 API가 정해놓은 방식에 따라 호출하고 돌려주는 결과값을 활용하여 편하게 원하는 정보를 얻을 수 있다.

 

대표적으로 챗gpt를 제공하는 OpenAI도 API의 형식으로 ChatGPT를 쓸 수 있게 한다.

이 외에도 공공데이터 등에서 제공하는 오픈API, 네이버나 카카오 등에서 제공해주는 지도 API등 그 종류는 다양하다.

공공데이터포털의 기상청 단기예보 API 제공 페이지

 

 

그렇다면 FastAPI는 무엇일까?

파이썬을 활용하여 만든 기능을 웹에서 요청 및 처리할 수 있도록 도움을 주는 'API'다.

이름에 Fast가 붙는 이유는? 해당 서비스가 빨라서 그렇다나~

 

그럼 지금부터 FastAPI의 특징에 대해서 알아보자.

아래 내용은 Wikocods에서 '점프 투 FastAPI'를 참고하여 작성했다.

- 교재 바로가기

 

1. 빠른 속도

FastAPI는 파이썬을 기반으로 하는 웹 프레임워크중에 가장 속도가 빠르다고 한다.

NodeJS나 Go와 비교해도 뒤쳐지지 않을 만큼 높은 성능을 자랑한다고 하는데, 이런 일이 가능한 이유는 FastAPI 내부에서 Starlette라는 비동기 프레임워크를 활용하기 때문이라고 한다.

 

2. 작성의 간편함

대부분의 API 개발은 입출력을 위한 규격을 정하고 기능을 만든다. 이후 테스트까지 진행하는 방식으로 이루어진다.

FastAPI는 이부분에서 입출력 정의 및 입출력 값의 검증을 빠르게 할 수 있다.

 

3. 테스트 가능한 api 문서

그리고 작성한 API에 대한 API문서가 자동으로 생성되서 테스트가 굉장히 간편하다.

http://127.0.0.1:8000/docs 이런 느낌으로 접속주소 뒤에 /docs만 붙여주면 문서로 정리된 글을 통해 원하는 테스트값을 넣고 그 결과를 살펴볼 수 있다.

 

 

docs를 통해 테스트를 할 수 있는 모습

 

 

4. 데이터베이스

SQLAlchemy를 사용하여 ORM을 사용할 수 있다고 한다.

ORM이란 Object Relational Mapping으로, 객체와 데이터베이스의 관계를 매핑해주는 도구다.

이를 통해서 언어를 통한 DB 제어가 가능해지는 것 아닐까?

 

이제 다음에는 FastAPI를 실제로 활용해볼 예정이다.

그 외에 Flutter에서 챗지피티API를 활용하는 사례가 궁금하다면 아래 글을 살펴보자.

 

https://hobbyspoon.tistory.com/33

 

[Flutter] ChatGPT API를 활용하여 대화 앱 만들기

챗 지피티를 활용하여 대화를 하는 앱을 만들어보자. 전체 소스는 아래와 같다. 저기서 apiKey 부분에 내 OpenAI에서 발급받은 API Key를 삽입하면 된다. 여기서 발전시키고 싶다면 채팅 초기화 등의

hobbyspoon.tistory.com

 

728x90
반응형