Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 2023
- JP Study
- CS
- 프로그래머스
- 선형대수
- 혼자 공부하는 SQL
- FastAPI
- 1463
- PCA
- 퓨처셀프
- 컴퓨터 과학이 여는 세계
- 다시 왔다!
- 백준
- 문제풀이
- mysql
- Programmers
- 미래혁신대전
- WIL
- Til
- 덴드로그램
- SQL
- stored function
- 멀티스레딩
- 한 권으로 읽는 컴퓨터 구조와 프로그래밍
- computer science
- Stored Procedure
- Django
- 엘런 튜링
- MVT
- Recommender system
Archives
- Today
- Total
Growth Hoon
[0부] FastAPI 시작 본문
FastAPI란?
- Python에서 사용하는 웹 프레임워크.
- 가장 간단한 http요청을 받고 응답해주는 Micro Framework
- Server side는 지원해주지 않고, Django에 있는 ORM이 없음
- 따라서 서드파티(Thirdparty) 프로그램인 SQLAlchemy 프로그램을 사용함.
- FastAPI는 ASGI라는 interface이다.
- ASGI는 WSGI를 계승한 것으로 ASGI만이 비동기를 지원한다.
- ASGI 개발용 서버로 보통 uvicorn을 사용한다고 한다.
왜 FastAPI를 사용하는지?
- FastAPI는 modern python 문법을 사용한다. (다만 3.6 version이상)
- 3.6버전 이상인 이유는 async, await, type hint(:)를 지원하기 때문이다.
- FastAPI는 OpenAPI기반으로 만들어졌다. (그래서 GraphQL도 지원한다고 한다)
- OpenAPI?? >> 예전에는 Swagger라고 불렀다고 한다.
- Swagger는 RESTful API의 스펙을 표기하기 위한 스펙이라고 한다 (????)
- 따라서 FastAPI는 RESTful API기반이다.
FastAPI의 가장 큰 장점은 API문서를 자동으로 생성해준다는 것이다.
(예전에는 Swagger 스펙을 다 익히고 작성해줬어야 한다고 한다.)
FastAPI를 배워야하는 이유?
- Micro Framework이기 때문이다.
- 예전 Spring이나 Django와 같은 Framework는 Monolithic 아키텍처를 제공했었다.
- 그래서 하나의 서비스에 오류가 발생했을 때, 서비스 전체에 장애를 줄 수 있었다 (서비스간의 의존성이 높았음)
- FastAPI는 각 기능이 독립적인 서비스로 분리되어 개발하는 Micro Service 아키텍처로 만들어진 Framework이다.
- Micro Service 아키텍처는 작은 단위의 서비스가 서로 통신하며 거대한 서비스를 이루게 만드는 아키텍처이다.
- 예시) 쿠팡에서 장바구니 서비스가 다운된다고 해도 로그인 기능이 죽진 않는다.
- 그래서 대부분의 서비스들은 MicroService로 가려는 추세이다.
- 위 이유와 같은 이유로 Microservice를 관리하는 프로그램인 쿠버네티스(Kubernetes)가 뜨고 있는 것이다.
Sping에는 Spring Boot, Django에는 Django REST framework를 이용해서
Micro Service 아키텍처를 구현할 수 있다.
알아봐야할 내용
- WSGI와 ASGI
- RESTful API & OpenAPI & Swagger
- GraphQL
- SQLAlchemy
- 개발용 서버? >> 서버에 대한 구분
- Django에도 RESTful Framework가 있는데, FastAPI의 장점은?