막학기 기념으로 한 학기 동안 fastapi를 다루는 백엔드 기초 세션을 수강하기로 했는데 이왕이면 기록해두면 좋을 것 같아 매주 기록도 하고 복습도 해보려고 한다.
백엔드란?
: 사용자가 직접 볼 수 없는 서버 측에서 작동하는 모든 것
백엔드의 역할 :
- 데이터 처리 및 저장
- 비즈니스 로직 수행
- API 제공
- 보안 관리
FastAPI란?
Django나 Flask와 같은 기존 Python프레임워크의 한계를 보완하고 성능과 개발자 경험을 개선하고자 2018년 출시된 Python Web Framework
속도, 적은 버그, 직관성 등등에서 장점을 가짐
Uvicorn ASGI Server을 사용함
ASGI란, Asynchronous Server Gateway Interface의 약자로, 비동기 web server을 의미함 (async/await 구문 사용)
(비동기 방식이란 DB나 API 연동 과정에서 발생하는 대기 시간을 낭비하지 않고, CPU가 다른 작업을 할 수 있도록 하는 방식)
uvicorn : lightweight ASGI 서버로, fastapi는 ASGI와 호환되는 웹 서버를 필요로 하는데 그 예시가 uvicorn.
비동기 방식이 가능한 Python web server framework와 application 사이의 표준 인터페이스를 제공함
배포에 별도의 준비가 필요 없음
설치 및 코드 구현
아나콘다를 이용해 가상환경을 구축한 (Python 버전은 3.12.5로 설정) 뒤의 과정
개발 환경 설정 - FastAPI & uvicorn 설치
pip install fastapi==0.110.1
pip install uvicorn
작업 폴더에 main.py 파일 생성 후 아래와 같이 코드 입력
from fastapi import FastAPI
#인스턴스 생성
app = FastAPI(
title = '24-2 백엔드 세션'
)
@app.get('/') #get method로 '/'에 해당하는 .. 생성
def root():
return {'message': 'Hello World'}
terminal에 아래 명령어를 입력하면 서버가 생성됨
uvicorn main:app --reload
- main : 모듈명 #(main.py)
- app: FastAPI로부터 생성된 인스턴스 #app = FastAPI()
- --reload: 코드 수정 시 새로고침됨을 의미 (Flask의 app.rn(debug=True)와 같은 효과
로컬 브라우저 주소(localhost:8000/docs)에 접속하면 Swagger UI 확인 가능
Reference
1. 세션 강의 자료,
'DEVELOP' 카테고리의 다른 글
[Dart] 노마드코더 <Dart 시작하기> - 2. Variables (0) | 2024.08.16 |
---|---|
[Dart] 노마드코더 <Dart 시작하기> - 1. Introduction (0) | 2024.08.16 |