2024-10
장고, 플라스크, 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는 파이썬 기반의 오픈소스 웹 프레임워크다.
2018년 시작.
넷플릭스, 우버, 시스코등에서 사용 중.
파이썬 기반 웹프레임워크인 플라스크, 장고의 뒤를 이어 3위를 차지하고 있음.
https://fastapi.tiangolo.com/ko/
2
FastAPI 특징?
실행 속도가 빠르다.
코드 생산성이 높다.
버그가 줄어든다.
직관적이다.
3
포어트리를 이용한 가상 환경과 의존성 관리.
여기 실습에서는 파이썬 3.7 이상 버전이 필요하다.
기존 3.6 파이썬 사용 중인 경우 의존성 문제가 생긴다.
의존성 문제를 해결하기 위해 가상 환경을 분리한다.
이 책에서는 poetry를 이용해 가상 환경을 구축한다.
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
1
TIL (today i learned) 앱을 만드는 과정을 하나씩 하며 FastAPI를 배우는 책이다.
하나씩 배워가며 또 다른 나의 무기를 만들 수 있는 책으로 추천한다.
2
개발 환경 구축하고 실습해보자
https://brunch.co.kr/@topasvga/4117
감사합니다.