FastAPI 1화 - 프로젝트 생성



main

FASTAPI 시작하기

 


안녕하세요. 오랜만에 글을 써요!

제가 회사에서 이것저것 하느라 바빴습니다.


넥스트 유니콘 유망주 중에 한 회사에서 리드 파이썬 엔지니어로의 커리어를 쌓아가고 있습니다. 회사에 많은 프로젝트가 FastAPI로 되어 있는데요, 뭐 회사에서는 해당 오픈소스 Contributor도 계시고 많이 배우며 공부하고 있습니다.


하지만, 아직 공식문서도 한글로 번역이 다 되어 있지 않고, 정보도 많이 없는 것 같아서 프로덕션레벨로 현업에서는 어떻게 사용하고 있는지를 알려드리고 싶어서 프로젝트를 진행해 보려고 합니다. 이제 고작 1편이지만, 꾸준히 해보려 합니다. 간단하게 노티피케이션 서비스를 만들어 볼려구요.


제가 만들 서비스는 아래와 같습니다.

  1. 타겟은 이제 갓 스타트업이나 솔플하시는 프리랜서 분들 입니다.
  2. 뉴스레터 구독자 관리
  3. 뉴스레터 및 광고 이메일 발송
  4. 카카오톡 알림톡 발송
  5. 알림톡 및 뉴스레터 스케줄링

정도 입니다. 물론 무료! 또는 실비 정도? 만 받게 될 것 입니다.



시작해 볼께요!


아참, 시작하기 전에 Video 버전으로 보시고 싶으시면 아래에서 보실 수 있습니다.



1. FastAPI 공홈으로 Go!

 FastAPI 대한 간단한 소개는 저의 다른 포스트에 되어 있습니다. 딩그르르 다른 글 보기
다시 몇 가지 이야기 하자면, pydantic을 이용한 밸리데이션 Starlette 을 기반으로한 비동기 API 서버 구축, OpenAPI를 이용한 Swagger 자동 생성 등이 있습니다. 아참, 괴물같은 퍼포먼스는 덤입니다! 

 


2. 무작정 시작해 보기

Pycharm 을 사용할 예정입니다. 파이참은 Community 버전이 있다는 것! 아시죠?

파이참이 없으시다면 아래 링크에서 다운 받으실 수 있습니다.




우선 파이참에서 프로젝트를 만들어 주시고요. 아래처럼 Uvicorn 이랑 FastAPI 2가지만 설치해 주시면 끝!!



그리고 main.py 에 아래 내용을 복붙! 해주세요.

from typing import Optional

from fastapi import FastAPI



app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
    return {"item_id": item_id, "q": q}

 

이것만 해주면 끝납니다. 

그리고 실행은 아래처럼 터미널에 입력해 주세요

uvicorn main:app --reload


이렇게 하시면 무작정 시작했지만 REST API 백엔드 서버를 만드셨습니다.

이렇게 간단하고 편한데.. 퍼포먼스까지 좋은 API 라니




3. 자동으로 만들어진 Swagger 맛보기

8000번 포트로 열렸을테니 http://127.0.0.1:8000 로 진입해주시면 "헬로월드" 를 만나실 수 있을 겁니다. 이제 http://127.0.0.1:8000/docs 로 가주세요! 아래와 같은 화면이 보이시나요?

지금까지 이거 없이 어떻게 살았나 싶을 정도로 편안합니다.



이상 프로젝트를 만들어 봤고, 다음 편에는 데이터 베이스를 연결해 보겠습니다.




 



  • [[a.original_name]] ([[a.file_size | fileSizer]])
'FastAPI 프로젝트' 시리즈 포스트
Python FastAPI 로 백엔드 만들기 3화 - MySQL 연결
2020-12-27
Python FastAPI 로 백엔드 만들기 2화 - 프로젝트 구조
2020-12-21
FastAPI 1화 - 프로젝트 생성
2020-12-18
파이썬에서 가장 빠른 웹프레임워크 FastAPI Feat. Pydandic
2021-01-04
Python으로 로그인 구현하기 (JWT X FastAPI)
2021-01-07
Node.js 아성에 도전한다. FastAPI written in Python
2020-10-13
좋아요[[ postLike | likePlus ]]
공유
라이언

“Lead Python Engineer”

댓글 [[totalCommentCount]]
[[ comment.author__nick_name ]] [[ comment.datetime_updated | formatDate]] (수정됨)

[블라인드 처리된 글 입니다.]

답장
[[ sub.author__nick_name ]] [[ sub.datetime_created | formatDate ]] (수정됨)

취소
댓글을 남겨주세요.
'파이썬' 관련 최신 포스트
[[ post.title ]]
[[ post.datetime_published_from | DateOnly ]]