brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 21. 2024

(책) FastAPI로 배우는 백엔드 프로그래밍

2024-10

파이썬 기반 웹 프레임워크 중 하나인 Fast API를 배울 수 있는 책이다.

장고, 플라스크, FastAPI가  파이썬 기반 웹 프레임워크이다.

FastAPI 개발 환경을 구축하도록 해준다.

클린 아키텍처에 대해 알려준다.

앱을 만드는 과정을 설명한다.

TIL (today i learned) 앱을 만드는 과정을 하나씩 하며 FastAPI를 배울수 있다.


JPUB 출판사에서 책을  제공받아 작성된 서평입니다.



대상 독자

웹 개발, 특히 백엔드 프로그래밍을 처음 접하는 독자.



책에서 사용하는 기술

운영체제는 macOS를 이용해 코드를 구성하고 테스트함. macOS 환경이 기본.

윈도도 테스트함.

파이썬 가상환경 : 포어 트리

파이썬 : 3.11x

Mysql : v8.x

FastAPI : v0.111.x



이 책은

TIL (today i learned) 앱을 만드는 과정으로 설명된다. 

TIL은 메모 기법으로 그낭 알게 된 지식을 가볍게 정리하고 쉽게 찾아볼 수 있도록 한다.

회원 가입이 필요하다

사용자 정보를 다루는 유저앱이 필요하다.




이 책에서 배우는 것


<1> FastAPI 개발 환경 구축법

<2> 회원 가입, 의존성 주입, 회원 리소스의 CRUD기능, 비동기 프로그래밍, 로그인, 환경변수, TIL Note 구현, 백그라운드 작업:환영 이메일 발송, 미들웨어, 테스트 방법

<3> 개인 정리




<1> FastAPI 개발 환경 구축법



1

FastAPI는 파이썬 기반의 오픈소스 웹 프레임워크다.

2018년 시작.

넷플릭스, 우버, 시스코등에서 사용 중.

파이썬 기반 웹프레임워크인 플라스크, 장고의 뒤를 이어 3위를 차지하고 있음.


https://fastapi.tiangolo.com/ko/



2

FastAPI 특징?

실행 속도가 빠르다.

코드 생산성이 높다.

버그가 줄어든다.

직관적이다.



3

포어트리를 이용한 가상 환경과 의존성 관리.

여기 실습에서는 파이썬 3.7 이상 버전이 필요하다.

기존 3.6 파이썬 사용 중인 경우 의존성 문제가 생긴다.

의존성 문제를 해결하기 위해 가상 환경을 분리한다.

이 책에서는 poetry를 이용해 가상 환경을 구축한다.






<2> 회원 가입, 의존성 주입, 회원 리소스의 CRUD기능, 비동기 프로그래밍, 로그인, 환경변수, TIL Note 구현, 백그라운드 작업:환영 이메일 발송, 미들웨어, 테스트 방법



1

FastAPI를 이용해 TIL 애플리케이션을 만들자.

TIL앱은 다수 사용자가 사용하는 앱이다.

따라서 회원 가입 기능이 필요하다.


2

User 도메인?

회원을 나타내는  리소스 이름을 User라고 하자.

회원 리소스를 다루는 기능을 유저 서비스라 칭하자.



3

회원 가입 기능에 대한 요구사항?

전달받은 이메일과 패스워드를 User 테이블에 저장한다.

중복된 이메일이 존재한다면 에러를 발생시킨다.

패스워드는 사람이 읽지 못하게 암호화되어야 한다.



4

ULID 사용?

유저의 ID는 임의의 ULID문자열을 사용한다.

ULID(정렬 가능한 범용 고유 식별자)는 유일한 값을 가지고, 사전적으로 정렬할 수 있는 식별자이다.



5

파이단틱을 이용한 유효성 검사?

파이단틱은 데이터 유효성 검사와 직렬화/역직렬화르  위해 FastAPI가 기본으로 사용하고 있는 라이브러리이다.



6

의존성 주입?

객체 간의 의존성을 외부에서 주입하는  소프트웨어 디자인 패턴이다.



7

회원 리소스의 CRUD기능 완성?

유저를 생성하는 기능을 만들었으니 이제 유저 정보를 조회, 수정, 삭제하는 기능을 추가해 보자.

유저 메모 속성 추가부터 진행



7

비동기 프로그래밍?

FastAPI는 비동기 프로그래밍을 효율적으로 처리한다.

파이썬의 asyncio패키지를 기반으로 하므로 FastAPI는 async, await문법을 사용해 비동기 코드를 작성할 수 있다.



8

로그인?

인증/인가에 가장 많이 사용되고 있는 JWT 적용.

JSON웹 토큰이다.



9

이외

환경변수로 보안 강화, TIL Note 구현, 백그라운드 작업:환영 이메일 발송, 미들웨어, 테스트에 대해 배울수 있다.




10

사용 사례

스타벅스 챗봇 어플리케이션


https://brunch.co.kr/@topasvga/4085





<3> 개인 정리


1

TIL (today i learned) 앱을 만드는 과정을 하나씩 하며 FastAPI를 배우는 책이다.

하나씩 배워가며 또 다른 나의 무기를 만들 수 있는 책으로 추천한다.



2

개발 환경 구축하고 실습해보자


https://brunch.co.kr/@topasvga/4117


감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari