메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

FastAPI를 사용한 파이썬 웹 개발

라우팅 기초부터 이벤트 플래너 애플리케이션 구축 및 배포까지 I 윈도우/리눅스 명령어 제공

한빛미디어

번역서

판매중

  • 저자 : 압둘라지즈 압둘라지즈 아데시나
  • 번역 : 김완섭
  • 출간 : 2023-03-22
  • 페이지 : 208 쪽
  • ISBN : 9791169210874
  • 물류코드 :11087
  • 초급 초중급 중급 중고급 고급
4.7점 (33명)
좋아요 : 9

FastAPI의 핵심 기능과 5가지 기술 스택(몽고DB, 도커, pydantic, SQLModel, pytest)으로

이벤트 플래너 애플리케이션을 처음부터 끝까지 완성해본다!

 

이 책의 강점은 ‘이벤트 플래너 애플리케이션 완성’이라는 목표를 가지고 라우팅부터 데이터베이스 연결, 인증, 테스트, 배포까지 FastAPI의 핵심 기능을 단계별로 적용해본다는 점입니다. 또한 쉽게 실습을 진행할 수 있도록 윈도우와 리눅스 명령어를 각각 제공합니다.

 

실습 코드는 간결하고 명확합니다. 플라스크, 장고 같은 웹 프레임워크보다 배우기 쉬운 FastAPI의 장점이 잘 반영되어 있기 때문이죠. 반대로 핵심 기능과 코드에 관한 설명은 FastAPI 공식 문서보다 꼼꼼하고 자세합니다. 따라서 웹 개발 초보자도, 다른 프레임워크로 웹 개발을 경험해본 존 개발자도 웹 개발 실력을 한층 더 높일 수 있습니다.

 

FastAPI에 익숙해진 후에는 저자가 블로그에서 제공하는 실습 자료(Okteto를 사용한 방명록 애플리케이션 구축과 몽고DB, JWT 인증, 리액트를 활용한 애플리케이션 구축 예제)를 통해 추가 학습도 진행할 수 있습니다.

 

상세이미지_700_FastAPI를 사용한 파이썬 웹 개발.jpg

압둘라지즈 압둘라지즈 아데시나 저자

압둘라지즈 압둘라지즈 아데시나

숙련된 파이썬 개발자이자 소프트웨어 백엔드 엔지니어다. 기술 저자로도 활동하며 폭넓은 경험과 기술을 지니고 있다. 명령줄 애플리케이션뿐만 아니라 FastAPI를 사용한 백엔드 애플리케이션, 알고리즘 기반 보물찾기 도구 등을 개발했다. 또한 블로그에서 파이썬을 가르치고 수학 문제 푸는 것을 즐긴다. 2022년까지는 수자원 및 환경공학 프로젝트에 참여했으며 지금은 Auth0, LogRocket, Okteto 등의 초대 기술 저자로 활동하고 있다.

김완섭 역자

김완섭

네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사 학위를 취득하고 약 9년간 일본과 한국의 기업에서 IT 및 GIS/LBS 분야 업무를 수행했다. 일본에서는 세콤 계열사인 파스코에서 일본 외무부, 국토지리정보원 같은 정부 기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다. 이후 야후 재팬에서 야후 맵 개발 담당 시니어 엔지니어로 근무하다 한국으로 돌아와 SK에서 내비게이션 지도 데이터 담당 매니저로 일했다. 지금은 싱가포르에 있는 일본계 회사에서 은행 관련 IT 프로젝트를 담당하고 있으며 저자 및 역자로도 왕성히 활동 중이다. 저서로는 『나는 도쿄 롯폰기로 출근한다』가 있으며, 역서로는 『알고리즘 도감』, 『처음 만나는 HTML5 & CSS3』, 『인공지능 70』, 『처음 만나는 자바스크립트』, 『다양한 언어로 배우는 정규표현식』, 『그림으로 공부하는 IT 인프라 구조』, 『그림으로 공부하는 시스템 성능 구조』 등 40여종이 있다. 또한 블로그를 통해 IT 번역 관련 이야기와 싱가포르 직장 생활을 소개하고 있다.

 

PART 1 FastAPI 시작하기

 

CHAPTER 1 FastAPI 소개

1.1 Git 기초

_Git 설치

_Git 실행

_Git 브랜치

1.2 virtualenv를 사용한 개발 환경 구축

_가상 환경 생성

_가상 환경 활성화/비활성화

1.3 pip을 사용한 패키지 관리

_pip 설치

_기본 명령

1.4 도커 설정

_도커파일

1.5 간단한 FastAPI 애플리케이션 개발

정리하기

 

CHAPTER 2 라우팅

2.1 FastAPI의 라우팅

_라우팅 예

2.2 APIRouter 클래스를 사용한 라우팅

2.3 pydantic 모델을 사용한 요청 바디 검증

_중첩 모델

2.4 경로 매개변수와 쿼리 매개변수

_경로 매개변수

_쿼리 매개변수

2.5 요청 바디

_FastAPI 자동 문서화

2.6 간단한 CRUD 애플리케이션 개발

정리하기

 

CHAPTER 3 응답 모델과 오류 처리

3.1 FastAPI의 응답

3.2 응답 모델 작성

3.3 오류 처리

정리하기

 

CHAPTER 4 템플릿팅

4.1 Jinja

_필터

_if문

_반복문

_매크로

_템플릿 상속

4.2 FastAPI에서 Jinja를 사용하는 방법

정리하기

 

PART 2 FastAPI 애플리케이션 개발하기

 

CHAPTER 5 구조화

5.1 FastAPI 애플리케이션 구조화

_이벤트 플래너 애플리케이션 개발

_모델 구현

_라우트 구현

정리하기

 

CHAPTER 6 데이터베이스 연결

실습 환경

6.1 SQLModel 설정

_테이블

_로우

_세션

6.2 데이터베이스 생성

_이벤트 생성

_이벤트 조회

_이벤트 변경

_이벤트 삭제

6.3 몽고DB 설정

_문서

_데이터베이스 초기화

6.4 CRUD 처리

_생성 처리

_조회 처리

_변경 처리

_삭제 처리

_routes/events.py

_routes/users.py

정리하기

 

CHAPTER 7 보안

7.1 FastAPI의 인증 방식

_의존성 주입

_의존 라이브러리 생성

7.2 OAuth2와 JWT를 사용한 애플리케이션 보안

_패스워드 해싱

_액세스 토큰 생성과 검증

_사용자 인증

7.3 애플리케이션 변경

_로그인 라우트 변경

_이벤트 라우트 변경

_이벤트 문서 클래스와 라우트 변경

7.4 CORS 설정

정리하기

 

PART 3 FastAPI 애플리케이션 테스트 및 배포하기

 

CHAPTER 8 테스트

8.1 pytest를 사용한 단위 테스트

_픽스처를 사용한 반복 제거

8.2 테스트 환경 구축

8.3 REST API 라우트 테스트 작성

_사용자 등록 라우트 테스트

_로그인 라우트 테스트

_CRUD 라우트 테스트

_조회 라우트 테스트

_생성 라우트 테스트

_변경 라우트 테스트

_삭제 라우트 테스트

8.4 테스트 커버리지

정리하기

 

CHAPTER 9 배포

9.1 배포 준비

_의존 라이브러리 관리

_환경 변수 설정

9.2 도커를 사용한 배포

_도커파일 작성

_도커 이미지 빌드

_로컬에 애플리케이션 배포

_애플리케이션 실행

9.3 도커 이미지 배포

_데이터베이스 배포

정리하기

 

빠르게 배워 실무에 바로 적용하는 FastAPI 핵심 안내서

 

이 책은 파이썬 기반 웹 API 프레임워크인 FastAPI를 애플리케이션 개발에 단계별로 적용합니다. 이 과정을 통해 FastAPI의 필수 기능을 익히고 API 서버, 마이크로서비스, 빠른 개발이 필요한 백엔드 프로젝트에 활용해볼 수 있습니다.

 

또한 파이썬 3와 몽고DB를 사용해 이벤트 플래너 애플리케이션을 처음부터 끝까지 만들어봅니다. 따라서 웹 개발의 핵심인 라우팅 시스템 구축은 물론 데이터베이스, 보안, 테스트와 배포까지 웹 개발의 전과정을 어렵지 않게 경험할 수 있습니다.

 

파이썬에 관한 기본 지식만 있다면 웹 개발 경험이 전혀 없는 사람도 수월하게 읽을 수 있습니다. 현직 웹 개발자라면 FastAPI의 핵심 기능을 애플리케이션 개발에 적용해보며 실무 적응력을 높이고, 웹 개발 경험이 없는 사람이라면 이 책의 안내에 따라 첫 FastAPI 애플리케이션을 완성해봅시다!

 

대상 독자

- 웹 개발 실력을 레벨업하고 싶은 파이썬 사용자

- 플라스크나 장고를 사용하는 웹 개발자

- 웹 개발의 전 과정을 실습해보고 싶은 웹 개발 입문자

 

이 책에서 다루는 내용

- 라우팅 시스템

- 응답 모델링

- 오류 처리

- 템플릿

- 모델 구조화

- 데이터베이스

- 보안

- 테스트

- 배포

책 내용은 이해하기 쉽고, 실습으로 만들어가는 맛이 있으나, 코드에 오타 및 빠진 부분이 많아서 고민할 거리가 있음.

덕분에 공부는 더 되는거 같음..ㅋㅋ

Python으로 웹 서비스를 만들어보고자 하는 초보를 위한 조감도라고 한 줄로 설명할 수 있을 것 같다.

 

웹 서비스를 만들어본 경험이 없고 익숙하지 않다면, 어디서부터 무엇을 시작해야 하는지 막막할 수 있다.

어떤 구성 요소들이 있고 무엇을 어떻게 다루어야 하는지, 전체 과정을 훑어서 살펴줄 일종의 조감도가 필요하지 않을까.

그런 역할을 해줄 수 있는 책이다.

단순히 연구 알고리즘에서 끝낼 것이 아니라, 배포를 원한다면 본인이 만든 알고리즘 정도는 APi로 띄울 줄 알면 좋습니다. 팀원간 협업할 때 테스트 하기도 좋고 여러 장점이 있어 AI ML engineer라면 한 번 읽어보면 좋을 것 같습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

파이썬은 분야를 막론하고 가장 많이 사용하는 프로그래밍 언어 중 하나입니다.

최근에 백엔드 프레임워크가 많이 성장을 보여주고 있는데 Django와 Flask가 많이 사용되는데 FastAPI는 간결하면서 Flask와 비슷합니다. 배우기가 쉽고 활용도가 굉장히 높은 프레임워크입니다.

이 책은 분량은 작지만 부담이 없고 실제 구현과 여러가지를 학습을 하며 실용적으로 만들어진 책입니다.

웹 프로그래밍에 관심이 있다면 꼭 추천을 드리고 싶습니다.

FastaAPI는 RESTful API를 쉽게 구축하고 문서화할 수 있는 도구로, 다양한 장점과 사용 이유가 있습니다. 하지만, 사용 시 고려해야 할 단점도 있으므로 전반적인 장단점을 고려하여 결정하는 것이 좋습니다. 저역시 Flask에서 FastAPI로 변경하고 있는 도중에 이책은 많은 도움을 주었고, 다양한 코드예제와 개발황경, MVC, DB(CRUD)관련 및 TDD까지 간략하면서도 핵심을 다루기에 부담없이 볼 수 있어 독자들에게 어필될 것 같습니다.

이 책은 파이썬을 이용하는 모든 개발자들에 추천하고 싶다. 백엔드 하면 왠지 어렵고 서버구축의 어려움이 있을 것 같은데 CRUD만 생각해보면 프론트보다 쉬운게 백엔드일수도 있겠다는 생각이 든다.특히, 몇줄의 코드로 강력한 비동기처리 서버를 구축할 수 있는 방법을 아는 것만으로도 강력한 무기를 가지게 된 느낌일 것 같고 데이터사이언티스트 들에게도 추천한다.

혹시 파이썬을 안해보았거나 async, raise, def, @데코레이터 문법 이 생소하다고 느낀다면 다른 기초서적을 먼저시작해보길 바라고, Flask로 운영중이라면 성능개선을 위해서도 FastAPI를 적극 추천하고 이 책은 많은 도움을 줄 것이다.

 

 

AI 모델을 개발하는 연구직은 프론트/백엔드에 대한 지식은 전무해도 괜찮다고 생각하며 살아왔었다. 그러나 입사 후 가장 먼저 필요했던 기술은 파이썬으로 웹 개발을 하는 것, 모델을 서빙하여 API로 올리는 것이었다. 공공데이터를 다운받을 때도 겨우 API 를 써서 데이터를 받아왔었는데 이를 직접 배포해야한다고 했을 때의 막막함을 추억해보면 아직도 숨이 막힌다.

 

그 때 엄청난 구글링과 회사분들에게 질문을 해서 겨우 해결을 해왔는데, 이런 책이 출간되다니 너무 기대되는 순간이었다. 그 때는 급하게 처리하느라 원론이나 기초에 대해서는 아예 파악이 안되었는데 해당 책을 보니 정리가 되었다.


 
해당 서적에서는 API 를 아예 모르는 사람도 직접 애플리케이션을 구축해볼 수 있게 한다.

실제로 챕터 1에서는 단 몇 줄만의 코드로 api를 구현해볼 수 있는데, 실제로 해봤다. API 는 할 때마다 새롭고 신기하당

 

간단하고 쉽게 설명되어있는데, 그렇다고 아예 코드만 몇 줄 적어둔 게 아닌 정말 필요한 부분만 핵심적으로 잘 설명해주어 FastAPI 에 대한 두려움이 사라졌다.

 

이후의 내용들도 라우팅, 응답모델/오류처리/상태코드 등 소개하고 템플릿팅 등과 같은 엄청나게 실무에서 필요했던ㅜ 정보들을 잘 담고 있다. 나처럼 실제 실무에서 급하게 필요한데, 원리를 이해해야 정확히 쓸 수 있는 사람들에게는 정말 안성맞춤인 서적이었다.

 

​※  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."  또한 , 이 글은 저의 주관적인 생각이 담겼습니다.



가볍고 빠르게 배워 웹 개발을 해보자

- FastAPI를 사용한 파이썬 웹 개발 -

IMG_1928.JPG

 

1. 이 책은 어떤 사람들을 위한 책인가요?

 

FastAPI는 파이썬으로 웹 개발을 하고 싶은데 장고나 플라스크 보다 더 빠르고 가벼운 프레임워크를 공부하고 싶은 사람들을 위한 책입니다. 특히 데이터 분석을 공부하고 있는 사람이라면 데이터 전처리, 모델 개발 등에는 많은 시간을 들여서 공부하지만 막상 모델을 개발 하고 난 이후 배포에 관한 공부는 많이 하지 못하게 되는 것이 일반적인데요. 모델 개발까지 공부하고 어느정도 자신이 붙었다면 이제는 개발한 모델을 실제 서비스 할 수 있도록 하기 위해 배포에 대한 공부도 필요합니다. 

 

FastAPI는 일반적으로 많이 알려진 Django나 Flask에 비해서 속도가 빠르고 코드 작성에 있어서 보다 유연하다는 장점을 가지고 있습니다. 그래서 데이터 분석 모델을 개발 후 배포하는데 있어서 보다 빠르게 서비스를 개발 할 수 있어 최근 많이 사용되고 있습니다. 하지만 새로 나온 프레임워크이다 보니 사용법에 대한 책이 많지 않은데요. 이번에 한빛미디어에서 FastAPI에 대한 책이 나와 아주 반갑습니다. 

 

이 책은 가벼운 웹 서비스를 빠르게 구축하고 싶은 독자들에게 추천합니다. 

 

2.FastAPI를 사용한 파이썬 웹 개발 내용중 인상적이었던 부분

 

FastAPI 책을 처음 받아보면 예상 외로 얇은 두께에 조금 당황할 수 있습니다. 보통 웹 개발 서적을 보면 상당히 두꺼운 것이 일반적인데 책 크기도 작은데 페이지도 200 페이지 정도라 상당히 작고 가볍습니다. 그런데 내용을 막상 살펴보면 다루는 범위는 상당히 넓습니다. 

 

책의 내용 중 인상적이었던 부분을 몇 가지 소개하면

 

1. Git을 활용한 버전 관리에 대해 소개하고 있습니다. 

분석 모델을 개발할 때도 마찬가지이지만 특히 웹 개발을 하면서 코드 수정을 위한 버전 관리는 필수 입니다. 

자세히 다루고 있지는 않지만 그래도 기본적인 사용방법을 소개하면서 버전 관리를 해야 한다는 점을 알려주고 있습니다. 

 

IMG_3235.JPG

 

 

2.  파이썬 venv 를 이용한 가상환경 구축 및 패키지 버전 관리를 소개합니다. 

    개발을 처음 하는 사람들은 가상환경이나 패키지 의존성에 관해 잘 모르는 경우가 많은데 실제로 개발을 하다보면 개발 환경의 중요성을 절실히 깨닫게 됩니다. 내가 개발하는 컴퓨터의 환경과 실재로 서비스가 돌아가는 서버의 환경이 다르다보니 개발에 사용된 패키지 버전이 맞지 않아 오류가 난다거나 패키지 자체가 설치되어 있지 않다거나 하는 경우가 많습니다. 그래서 개발할 때는 실제로 서비스가 돌아가는 곳의 환경과 동일한 환경을 만들어 놓고 개발을 해야 문제가 없는데요. 그런 부분에 대해서도 자세하게 소개하고 있어 아주 마음에 들었습니다. 

 

IMG_3236.JPG

IMG_3237.JPG

 

3. 도커를 활용한 서비스 배포도 소개

  2번의 내용과 이어지는 것인데, 개발 환경과 서비스 환경이 다르기 때문에 발생하는 여러가지 문제를 쉽게 해결할 수 있는 방법으로 도커를 활용해 개발환경 전체와 서비스 프로그램을 컨테이너화 시키는 방법이 있습니다. 도커를 활용하면 개발환경 그대로 서비스용 서버에서도 동일하게 프로그램이 동작하게 할 수 있기 때문에 개발과 운영에 있어서 발생할 수 있는 많은 문제점을 해결해 줍니다. 

 

IMG_3234.JPG

 

즉, 단순히 FastAPI에 대한 문법 설명과 웹 개발만 하는 것에 치우친 것이 아니라 웹 개발을 하고 실제로 서비스 하는 부분까지 자세히 다루면서 개발 환경 구축과 운영상에서 발생할 수 있는 문제점까지 세세하게 신경쓰고 있습니다 

 

4. 리눅스와 윈도우 코드 두가지로 모두 설명

프로그램을 작성하고 실행할 때 리눅스, MAC, 윈도우에 따라서 실행 명령어가 달라질 수 있습니다. 이 책에서는 독자가 어느 환경에서 개발하던 쉽게 따라할 수 있도록 리눅스/MAC 과 윈도우 명령어를 같이 설명해 놓아 책을 보다가 따로 자신의 환경에 맞춰 검색해 실행해 보아야 하는 번거로움을 줄여 주었습니다. 

 

3. 마무리

FastAPI를 사용한 파이썬 웹 개발은 최근 떠오르는 웹 프레임워크인 FastAPI에 관한 책입니다. 다소 얇은 감이 있지만 내용을 읽어보면 예상외로 많은 내용을 담고 있으며 단순히 FastAPI의 문법만 공부하는 것이 아닌 버전관리, 개발환경관리, 테스트, 배포까지 웹 개발에서부터 운영까지 모두 다루고 있습니다. 

 

하나하나 세세하게 다루기 보다는 웹 개발의 준비와 개발 서비스가 이런 식으로 이루어진다는 것을 전체적을 알려줘서 웹 개발 전체 프로세스를 직접 체험해 보는데 아주 좋습니다. 

 

데이터 분석을 공부하고 서비스 쪽에도 관심이 있다면 이 책을 통해서 웹서비스 개발을 익히는 것을 추천합니다. 

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

2023년 현재, 파이썬은 분야를 막론하고 전 세계에서 가장 많이 사용 되는 프로그래밍 언어 중 하나입니다. 특히 수년간 개선을 거듭해온 Django와 Flask는 이미 대표적인 웹 개발 프레임워크로 손꼽히고 있습니다. 대규모 서비스용으로는 적합하지 않다는 평도 많지만, 스타트업을 비롯하여 거대하지 않은 규모의 서비스, 개인용 웹 운영 등에는 손색이 없다는 것인데요.

 

특히 Django의 슬로건 (DjangoThe web framework for perfectionists with deadlines.)은 강력한 생산성을 지닌 Django만의 특색을 잘 보여줍니다. Flask의 경우, 일종의 마이크로 웹 프레임워크로, 작은 단위의 구현을 지향하는 프레임워크로 다음 문장이 이를 잘 나태내어 줍니다. "Web development, one drop at a time."

 

쉽게 풀어 말하면, Django는 이미 웹 개발을 위한 많은 부분이 구현되어 있으며, 개발자가 최대한 그대로 가져다 씀과 동시에, 필요한 만큼  커스터마이징을 할 수 있는 형태로 구성되어 있습니다. 반면에, Flask는 정말 최소한의 구현만 이루어져 있으며, 그 외의 대부분의 요소는 직접 만들거나, 혹은 모듈 형태로 가져다 쓰도록 되어 있습니다. 즉, 서로 장단이 있는 것인데요. 두 프레임워크 모두 API를 구현하는 것이 가능하지만, Django를 오로지 API 형태로만 사용하기에는 많은 군더더기가 있으므로, 대부분 API 구현 목적으로는 Flask를 사용하곤 했습니다.

 

예컨대, AI 모델을 개발 및 학습하여, 실제 서비스에 서빙하기 위해서는 특정 주소로 요청을 한 후, 이에 대한 응답을 내어주는 API가 구현 및 배포되어 있어야 합니다. 이를 Flask를 이용하여 파이썬으로 손쉽게 구현이 가능한 것인데요. FastAPI 역시 Flask와 비슷한 형태와 목적을 지니고 있습니다. 이미 Flask를 많이 사용해보신 분들이라면, FastAPI가 무척 유사하게 느껴지실 수도 있습니다. 하지만 FastAPI는 태초부터 낮은 수준의 러닝 커브와 높은 성능을 지향점으로 두고 개발 되었기에, 훨씬 더 많은 장점을 지니고 있습니다. 가장 현대적인 최신 프레임워크인 탓에 아직까지 커뮤니티의 완숙함이나 레퍼런스가 부족하다는 단점이 있지만, 그만큼 따라오는 이점 또한 많을 것입니다. 

 

FastAPI는 아직까지 국내 번역서나 레퍼런스가 부족하여, 학습에 꽤나 부담이 있는 상황이었습니다. 그렇기에 이 책이 가지는 의의는 상당한데요. 약 200 페이지 남짓한 부담 없는 분량에도 불구하고, FastAPI 활용을 위한 내용은 모두 꾹꾹 잘 담겨 있습니다. 아주 기본적인 설정부터 라우팅과 기본 구조에 대해서 학습하고, 이후 실제 API 구현과 DB 연결, 테스트와 배포 등에 대해 학습하는 구조 입니다.

 

어느정도 경험 있는 파이썬 개발자라면 길어도 하루 안에 책의 내용을 전부 테스트해보고, 학습할 수 있는 구조인데요. 그럼에도 불구하고 핵심은 모두 담겨 있고, 바로 실무에서 FastAPI를 써볼 수 있을 정도로 구성되어 있습니다. 

 

이 책은 타겟 독자가 명확합니다. 적어도 기본적인 수준의 웹 개발 및 API 개발 경험이 있어야 하며, 파이썬을 어느 정도 다뤄본 분들이 읽으셔야 할 책입니다. 분량이 적은 만큼 기초적인 용어 설명이나 디테일한 가이드는 생략되어 있기에, 초심자의 입장에서 읽게 된다면 불친절한 책으로 느껴질 수 있습니다. 열심히 실습 하더라도, 실제로 응용하기에 어려움을 겪을 가능성도 크다고 느껴집니다.

하지만, 특정한 목적에 의해 FastAPI 학습에 대한 필요성을 느낀 개발자라면, 이 책은 정말 큰 도움이 될 것입니다. 제 경우, Django 및 Flask의 대체재로, 그리고 AI 모델 서빙에 활용해보고자 FastAPI 학습을 하게 되었는데요. 정말 굵직 굵직한 핵심만 꿰고 있는 이 책에서 상당한 도움을 받을 수 있었습니다. 특히, FastAPI 학습자들은 대부분 웹 개발이나 API 개발 초심자가 아닐 것이란 점에서, 이 책의 콘텐츠나 기획이 잘 되었다고 느꼈습니다. 모쪼록, FastAPI 학습에 대한 니즈를 느끼시는 분들에게는 강력 추천 드리는 책입니다.

 

 

본 리뷰는 한빛미디어의 도서 서평단 <나는 리뷰어다 2023> 프로그램의 일환으로, 무상으로 도서를 증정 받고 작성된 리뷰임을 고지합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

FastAPI 를 사용한 파이썬 웹개발

 

 

안녕하세요 상훈입니다. 
이번에 리뷰하게 된 도서의 제목은  [ FastAPI 를 사용한 파이썬 웹개발 ] 입니다.

주로 React.js, Vue.js 를 이용한 SPA 의 프론트엔드 개발을 하다가 우연히도 발견한 FastAPI 를 사용한 파이썬 웹개발 책이 리뷰어 리스트에 있길래 냉큼 신청하였습니다.

 

이 책의 첫번째 좋은 점!

일단 저는 Docker에 관심은 있었지만 최근 1년 이상 건드려본 기억이 없어서 어떻게 해야할지도 감이 없는 상태였습니다.
그런데 이 책에서 virtualenv (가상환경설정) 를 간단하게 설명해주어, 스스로 검색하여 찾아보고 가상환경을 세팅해주고, 이어서 도커 사용을 하였습니다.

그다음으로는 pip 관련 기초 명령어를 통해 설치 후 진행하게 되는데, 만약 설치가 안되어 있으시다면, 아래 링크를 통해 설치해주시길 바랍니다.

https://pip.pypa.io/en/stable/installation/

 

 

 

이하 자세한 내용이 있지만, 사이드프로젝트와 본업이라는 변명으로 계속 개발을 못하고있음에 부끄럽지만 전부 읽어보지 못하였습니다.

웹개발은 거기서 거기다! 라는 말을 예전에는 무슨 소리야? 라는 생각이 있었는데, html, php, java, vue.js, react.js ... 등등을 경험하면서 느낀 바는 진짜 유사하다는 것을 느꼈습니다.

페이지를 이동할때는 항상 % router % 관련된 메서드를 호출하고 parameter 를 넘겨주어 설정하더라구요.

파이썬 또한 비슷하게 사용하였습니다.

router = APIRouter()
@router.get('/') ...

마치 node.js 에서 사용하는것과 거의 동일하게 보였습니다!

요즘 웹개발 트렌드인지 모르겠지만, 상당히 유사하였으며 코드 자체가 수월하게 눈에 읽혔습니다.

 

오류처리

모든 웹어플리케이션을 비롯한 어플리케이션들은 필수적으로 오류처리를 해야합니다.

그 중에서 이 책에서는 404 not found 에 대한 내용에 대해 간략하게 서술해주어서 더 좋았습니다. 에러처리를 직접해주는 도서가 흔하지 안더라구요.

raise HTTPException(
    ....
)

이렇게 작성하게 되는데, 마치 자바에서 Interceptor - Error Exception 을 출력할 때의 모습과 유사했습니다.

 

Todo List 구현

그리고 위와 같은 여러 과정들을 거쳐 구현하게 된 Todo List!

 

 

 

놀랍게도 DB 를 만드는데 있어 *.py 를 사용하더라구요?

지금까지 모든 언어들을 접하면서 db 구성은 erd 통해서 ~ 어쩌구~ 저쩌구 작성했었는데, FastAPI의 방식인지 파이썬의 방식인지 모르겠지만 python 파일을 만들고 쓸지 전혀 예상하지 못하였습니다.

그리고 구현 후 swagger-ui 와 비슷하게 생긴 인터렉티브 문서를 통해 확인까지. 3박자가 고루 갖춰진 내용이었습니다.

 

덕분에 파이썬으로 웹개발을 해보는 귀한 경험을 해보았습니다.

이상입니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

파이썬 웹 프레임워크인 Django, Flask를 공부했었는데 이번에 다른 파이썬 웹 프레임워크인 FastAPI를 "FastAPI 를 사용한 파이썬 

웹 개발" 책을 통해 학습하게 되었습니다. 

FastAPI는 요세 파이썬 웹 프레임워크에서 자주 언급되며 인기를 얻어가고 있는 프레임워크 입니다. 

 

"FastAPI 를 사용한 파이썬 웹 개발" 책은 빠르게 FastAPI의 핵심기능을 학습할 수 있는 구성으로 되어있습니다. 

총 9 개의 챕터로 FastAPI를 훝어볼 수 있습니다. 

 

"FastAPI 를 사용한 파이썬 웹 개발" 책의 장점은 

1. 200 페이지 내외로 빠르게 FastAPI 학습 가능 

2. 라우팅, 데이터베이스 연결 (MongoDB), 인증(JWT), 보안, 테스트, 배포(Docker) 등 웹 개발에 대한 필수 기능 학습 가능 

3. 리눅스, 윈도우 환경에서 모두 수행할 수 있는 명령어 및 설명

4. 저자의 동영상 강의 (https://www.okteto.com/blog/authors/abdulazeez-abdulazeez-adeshina/)

이라고 할 수 있을 것 같습니다. 

 

"FastAPI 를 사용한 파이썬 웹 개발" 책을 통해서 학습하면 웹 페이지, 연동 API 개발도 가능하다고 생각합니다. 

현재 회사에서는 Spring 프레임워크로 연동 API 개발을 진행하는데 FastAPI 는 좀더 쉽게 그리고 더 빠르게 연동 API 를 개발할 수 있을 것 같습니다.  

 

"FastAPI 를 사용한 파이썬 웹 개발" 책을 읽어보니 왜 파이썬 웹 프레임워크에서 FastAPI 가 인기를 얻는지 알 수 있을것 같았습니다. 쉬운 설정 방법에 하나씩 책을 따라가면서 CRUD를 구현하고 구조화, 데이터 베이스 연결, 인증을 하면서 FastAPI 의 핵심기능을 학습할 수 있습니다. 

 

저는 PyCharm 을 통해서 "FastAPI 를 사용한 파이썬 웹 개발" 책에 실려있는 코드를 치면서 직접 학습하였습니다. 각각의 환경도 잘 돌아가고 소스도 큰 문제없이 학습할 수 있었습니다.  

학습을 하신다면 PyCharm, Visual Studio Code, Postman 을 통해서 학습하는 것을 추천합니다. 

Postman 에서 URL을 get,post 방식등으로 FastAPI의 핵심기능을 확인할 수 있습니다. 

 

기존에 파이썬 웹 프레임워크인 Django, Flask를 공부했다면 쉽게 FastAPI도 공부해보기를 추천합니다. 

그리고 파이썬을 공부하고 웹 프레임워크를 선택할때 FastAPI를 공부하는 선택하는 것도 좋은 방법이라고 생각합니다. 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

파이썬으로 웹 개발을 할 때 양대산맥으로 일컬어지는 프레임워크가 있다. 바로 Django(장고)와 Flask(플라스크)다. 각각의 프레임워크가 제공하는 기능과 특징이 뚜렷해서, 개발자의 선호도에 따라 호오가 갈리긴 하지만 아직까지 파이썬 웹 개발 프레임워크의 대세는 장고로 굳혀지는 추세이다. 

 

그런데, 어느 날 갑자기 파이썬 웹 개발 생태계를 뒤흔들 만한 위력을 과시하는 프레임워크가 혜성처럼 등장하고야 말았다. 그 주인공은 바로 FastAPI다. 프레임워크의 이름 그 자체가 의미하듯, API를 빠르게 제작하는 데 특화된 도구로 평가된다. 개발자 사이에서 FastAPI의 유명세는 나날이 높아지고 있고 FastAPI에 대한 사용률도 덩달아 올라가고 있는 실정이다. 

 

다만, FastAPI에 대한 서적이 국내에 도입된 게 전무하여 막상 FastAPI를 학습할 수 있는 여건이 그리 썩 좋은 환경이 아닌 상황이다. 때마침 FastAPI를 다루는 서적이 국내에 한빛미디어를 통해 출간되었고 가뭄에 단비처럼 FastAPI에 대한 목마름으로 가득찬 독자에게는 더더욱 좋은 일이 아닐 수 없게 되었다. 오늘은 이 책에 대한 이야기를 풀어 나가려 한다.  

 

KakaoTalk_20230406_154904922.jpg

 

본 서적은 FastAPI에 대해 간략히 소개하고 본격적으로 실습 환경을 구축할 수 있는 기반을 상세히 안내한다. FastAPI에 대한 특징과 기능에 대해 자세한 설명이 없는 게 아쉬웠지만, 이러한 생각은 책 전체를 통틀어 하나씩 완성된 애플리케이션을 만들어 가면서 이내 눈 녹듯이 사라지는 경험을 하게 된다. 그만큼 FastAPI에 대한 장황한 설명보다 실습을 통해 특징과 기능을 직접 체험하고 알아가는 묘미가 이 책의 장점으로 꼽힌다고 할 수 있겠다. 

 

FastAPI에 대한 실습 환경이 온전히 구성된 상태에서 드디어 FastAPI에 대한 기능을 하나씩 풀어헤치는 여정이 시작된다. 클라이언트의 요청을 처리하는 라우팅을 위시하여 응답 모델과 오류 처리에 대한 과정을 학습하고 Jinja로 템플릿팅하는 방법을 익히게 된다. 

 

Part 2부터는 본격적으로 FastAPI를 통해 애플리케이션을 개발하는 단계로 진입하게 되는데, 이벤트 플래너 애플리케이션을 컨셉으로 하여 책의 후반부에 이르기까지 전 과정이 굉장히 흥미롭게 전개된다. 이벤트 플래너에 대한 뼈대를 잡은 후 데이터베이스와 연동하는 부분 역시 빠질 수 없게 되는데, 본 서적에서는 도큐먼트 기반 NoSQL의 최강자인 MongoDB를 DBMS로 활용하고 있다. MongoDB와의 연동을 통해 테이블을 구성하고 CRUD 처리에 대한 과정을 학습하게 되면, 이윽고 보안을 다루는 챕처와 마주하게 된다. FastAPI의 인증 방식을 이해하고 OAuth2와 JW를 통해 클라이언트를 인증하는 로직을 구현하면서 최종적으로 CORS 설정을 통해 리소스를 안전하게 서비스할 수 있는 배움이 기다린다. 

 

마지막 파트에서는 애플리케이션을 배포하기에 앞서 단위 테스트를 비롯하여 REST API를 테스트할 수 있는 구체적인 지침과 가이드가 여과 없이 제공된다. 이를 통해 오류와 버그 없는 애플리케이션 배포에 다다를 수 있는 명징한 초석이 마련되며, 드디어 배포 과정과 맞닥뜨리게 된다. 도커를 통해 애플리케이션 배포에 필요한 환경이 구성되고 패키징이 마무리되면 비로소 애플리케이션을 실행할 수 있는 제반 과정이 닻을 내리게 된다. 

 

이 책은 FastAPI를 통해 파이썬 기반의 효율적이고 빠른 웹 애플리케이션 제작하는 과정을 훌륭하게 안내하는 서적이다. 비록 책에 구성된 분량이 많지 않아, 보다 많은 걸 자세히 다룰 수 없는 한계가 명확하지만 반대로 책이 얆은 만큼 빠른 속도로 책을 읽어 가면서 FastAPI의 전반에 대해 이해하고, FastAPI 특징과 중요 기능을 체험할 수 있는 토대가 여실히 마련되어 있다. 속도의 경제가 비즈니스를 좌우하는 현실 속에서, 효율적이고 빠른 웹 서비스를 만들어 낼 수 있다면 이는 곧 비즈니스 목표 달성에 기여하는 초석이 되리라 생각한다. FastAPI라는 훌륭한 도구로 빠르고 멋진 웹 서비스를 만들어 나고 싶은 개발자라면, 이 책과 함께 그 여정을 시작해 보길 강력히 추천한다. 

 

P.S 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

Django와 Flask를 이용한 웹 서비스를 접해본 개발자라면 FastAPI의 간결함에 감탄을 금치 못할 것이다.
군더더기 없고, 딱 필요한 기능만 가진 채로 가볍고 빠르게 개발이 가능하고, 깔끔하다.
또한 Swagger과 ReDoc을 기본으로 제공해서 API 문서화 또간 간편하게 가능하다.

200여 페이지의 가볍게 볼 수 있는 책으로써 개발 입문자도 쉽게 따라올 수 있도록 가장 기본적인 세팅부터 개발, 테스트, 배포까지 한번에 체험해볼 수 있다.
배포는 서버 인스턴스 로컬에 배포하는 방법과 도커를 이용한 배포 2가지를 배워볼 수 있다.
물론 가장 일반적인 방법을 설명하고 있으므로 다양한 실제 운영 환경에 적용하기 위해서는 별도의 공부가 필요하긴 하지만 말이다.

FastAPI가 무엇인지 궁금한 기존의 개발자 or 개발에 입문하는 초심자에게 적합한 책이다.

[한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.]

안녕하세요 마개입니다.

이번 달에 소개해 드릴 책은 "FastAPI를 사용한 파이썬 웹 개발"입니다. 해당 책에 대해 알아봅시다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

도서 소개

 

 

9791169210874.jpeg

 

* 도서명 : FastAPI를 사용한 파이썬 웹 개발

* 지은이 : 압둘라지즈 압둘라지즈 아데시나

* 옮긴이 : 김완섭

* 출판사 : 한빛미디어

* 출간 일자 : 2023-03-22

* 페이지 : 208쪽

* 가격 : 정가 20,000원

 

 

해당 책은 208쪽으로 다른 기술 서적들에 비하면 매우 얇고 모든 케이스들에 대해 상세하게 다루지는 않지만 웹 개발, API 개발을 하는 데 있어 필요한 것들을 다 살펴본다는 것이 인상적입니다. 아래의 목차를 보겠습니다.

 

Chapter 1. FastAPI 소개

Chapter 2. 라우팅

Chapter 3. 응답 모델과 오류 처리

Chapter 4. 템플릿팅

Chapter 5. 구조화

Chapter 6. 데이터베이스 연결

Chapter 7. 보안

Chapter 8. 테스트

Chapter 9. 배포

 

목록을 보면 알 수 있듯이 단순한 개발을 넘어 DB (SQL/NoSQL) 이용, 보안, 테스트 및 배포 등 웹 개발을 위한 A to Z까지 모두 살펴볼 수 있다는 점이 매우 좋았습니다. 그뿐만 아니라 git과 Docker를 이용하는 등 실제 현업에서 사용하는 방식을 알려주며 바로 적용할 수 있도록 알려주는 것이 좋았습니다. 또한, 책에는 실행 결과에 대한 모습과 실습을 진행하면서 변경된 내용을 다른 색으로 표기해 주는 등 독자들에게 손쉽게 이해를 도와준다는 것이 좋았습니다.

 

 

총평

 

웹 개발, 딥러닝 모델 서빙, API 개발 등 백엔드 영역이 중요하고 강조되는 가운데 해당 책은 파이썬으로 개발된 FastAPI 프레임워크에 대한 내용들을 다룹니다. 또 다른 파이썬 웹 프레임워크인 Django와 Flask가 먼저 이름값을 날리며 유명해졌지만 FastAPI가 나오면서 더 각광받고 있습니다.

저 또한 기존에 Flask를 이용해서 프로젝트들을 진행했었는데 FastAPI가 주목받으면서 언제 한번 사용해 보고 싶었는데 해당 책을 통해 처음부터 끝까지 경험해 볼 수 있어서 좋았고 다음번에 이용해 볼 생각에 들떠있습니다.

저와 같은 고민을 가지신 분 또는 FastAPI를 경험해 보고 싶으신 분들에게 매우 좋은 책으로 추천드립니다.

 

streamlit은 웹 지식이 없더라도 쉽게 웹 애플리케이션을 만들 수는 있지만, 뭔가 전문적으로 하기에는 다소 아쉽고...

 

Django은 멋지기는 하지만, 다소 어렵고...

그렇다고 Flask는 쉽기는 하지만, 뭔가 또 아쉽고...

 

그래서 최근에 FastAPI를 살펴보았습니다. FastAPI는 깔끔하게 웹 서비스를 구현하기도 쉽지만 Postman과 같은 프로그램을 사용하지 않아도 자체적으로 REST API를 테스트할 수 있게 해주기도 하고, REST API 문서를 정말 이쁘게 만들어 주어서 참 마음에 들었습니다.

 

이번에 읽는 책이 FastAPI를 사용한 파이썬 웹 개발입니다. 원서가 Packt출판사의 책답게 두껍지도 않고, 가볍게 볼 수 있는 페이지 수준입니다.

이 책은 파이썬 웹 프레임워크 FastAPI를 소개하고, 이를 활용한 웹 애플리케이션을 개발하는 방법을 다룹니다. 

 

특이하게도 이 책은 FastAPI를 시작하기 전에 Git의 기초 및 VirtualEnv를 활용한 개발 환경 구축을 다룹니다. 또한, pip 관리 및 도커 사용법도 알려줍니다. 다른 책과는 다소 다른 접근법을 가지고 있습니다. 

 

FastAPI의 기본 개념과 기능, 실제 서비스 구현에서 가장 중요한 데이터베이스 연결 방법, 보안 기능, 테스트 코드 작성 방법, REST API 작성 방법, 비동기 처리 방법, 도커를 이용한 배포 방법 등을 자세히 설명해 줍니다.

 

특히, 윈도우, 맥, 리눅스에서 모두 실행할 수 있도록 신경 써 준 것도 이 책이 장점인 것 같습니다.

 

약 200페이지 정도의 내용으로 모든 것을 다룰 수는 없겠지만, 기초 수준에서 FastAPI로 서비스를 구현하는 것에 만족을 해야하는 수준입니다. FastAPI를 back end로 구현하고, React나 다른 Front end와 연동하는 부분이 없는 것이 다소 아쉽습니다.

 

웹서버 및 scaling에 대한 방법이 없는 것도 다소 아쉽습니다.

 

그러나, 파이썬으로 쉽게 웹 서비스를 구현할 수 있는 쉬운 시작 포인트로 좋을 것 같습니다.

 

 

B9703548802_l.jpg

 

 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

0. 도서정보

- 도서명 : FastAPI를 사용한 파이썬 웹 개발

- 저자 : 압둘라지즈 압둘라지즈 아데시나

- 링크 : https://product.kyobobook.co.kr/detail/S000201188332

 

 

1. 서평

 - FastAPI 를 들어본 지는 꽤 되었으나 실체를 본 적은 한 번도 없다. 개인적으로 쟝고나 플라스크의 튜토리얼은 해보았으나 FastAPI 는 하지 못하였고, 그것이 이번 서평을 지원하게 된 이유이기도 하다. 기본적으로 파이썬은 알고 있다는 전제하여 진행되며 해당도서를 통하여 git, 파이썬의 가상환경, 도커 등에 대한 간단한 지식도 얻을 수 있다. 이러한 지식은 1장에서 배울 수 있으며, 2장에서는 간단한 프로젝트를 통하여 FastAPI 에 대하여 학습을 할 수 있도록 구성이 되어있다. 데이터베이스를 통한 데이터 교환을 할 수 있으며 배포까지 진행할 수 있다. 깔끔하게 진행되기는 하지만, 그림보다는 글이 압도적으로 많아..(당연하게도...) 서버 초보자인 나에게는 조금 읽기 쉬운 책은 아닌거 같다.

FastAPI를 사용한 파이썬 웹개발 (저자: 압둘라지즈 압둘라지즈 아데시나)

FastAPI를 사용한 파이썬 웹개발 (저자: 압둘라지즈 압둘라지즈 아데시나)

파이썬 개발자를 위한 FastAPI 입문서

업무를 하던 중 사내 대상으로 모델을 서빙하는 API를 만들어야 했던 시기가 있었는데, FastAPI를 기반으로 만들게 되었다. FastAPI라는 도구도 처음이었거니와, API를 만든다는 것 자체가 처음이어서 상당한 기간 헤맸던 기억이 난다.

이번에 한빛미디어에서 출간한 “FastAPI를 사용한 파이썬 웹개발” 에서 밝힌 대상 독자는 “웹 API 구축에 관심 있는 파이썬 개발자” 이다. 책의 내용은 대부분 익숙하지만, FastAPI를 몰랐던 과거의 내가 읽었다면 얼마나 도움이 되었을지에 초점을 맞추어보았다.

FastAPI 한바퀴

책은 아래와 같이 FastAPI를 구성하는 기본적인 요소들을 다루고 있으며, 예제를 따라가면서 실습을 할 수 있는 구조로 되어 있다.

  • 라우팅 방법
  • Pydantic을 적용한 검증
  • Response, Error, Status
  • Template
  • 어플리케이션 설계
  • Database
  • 보안, 인증
  • 테스트
  • 배포

가장 간단한 To-do 어플리케이션을 개발하는 과정에서, 위의 요소들을 어떻게 활용하는지에 대한 예제가 짜임새 있게 구성되어 있다. 가장 참고하기 좋았던 부분은 FastAPI 가 비교적 개발하기 쉽고 유연한 도구지만, 프로젝트가 더 복잡해질 경우를 고려했을 때 어플리케이션을 어떻게 “구조화"하는 것이 좋은 방향인지, 라우트와 모델을 활용하여 설명한 챕터였다.

아쉬운 부분

이 책의 한계점 또는 아쉬운 부분을 짚어보면 여러가지가 있다.

  1. 이 책은 웹개발에 대한 개념을 깊이 있게 설명하지는 않는다. 따라서 파이썬 개발자이지만 다른 직군으로서 웹개발에 대한 지식이 없다면, 예재를 보아도 도움이 되지 않거나 이해가 되지 않을 것이다.

  2. 웹 어플리케이션을 만드는 것에 있어 빠질 수 없는 로깅에 대한 부분이 빠져있다. 개인적으로 FastAPI를 처음 사용할 때, 로깅의 best practice에 대한 정보를 찾기가 어려워서 시간을 많이 소요한 적이 있었는데, 이 책에서는 어떻게 다루었을지 궁금했었다. 로깅에 대한 내용이 없어 아쉬웠던 부분.

  3. 배포가 도커 이미지를 빌드하고 로컬 환경에서 실행하는 단계까지만 다루어져 있다. 가벼운 어플리케이션 예제라면 클라우드 무료 인스턴스를 활용한 배포까지도 다루었으면 어땠을까 하는 생각이 있다. (물론 필수인 부분은 아니지만)

이러한 점들을 놓고 봤을 때, 나 같은 데이터 직군의 파이썬 개발자가 처음 접하고 내용을 숙지하기에는 약간은 아쉬운 부분이 있다. 오히려 “웹 API개발 경험이 있지만 FastAPI는 처음 사용해보는 개발자”에게 적합하지 않을까?


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

3344.jpeg1122.jpeg



저는 파이썬 관련 백엔드 프레임워크를 장고를 먼저 접하였습니다. 전 어쩔 수 없이 파이선 개발자가 퇴사하는 바람에 어쩔 수 없이 접해서 파이썬이란 언어도 자세하게 알아보지도 못하고 바로 업무부터 투입되어서 실제 운영까지 좀 어려웠어요.
 
그 후에 서버리스 프레임워크를 활용해서 여러 업무를 하던 중에 노드 말고도 파이썬으로도 여러 라이브러리를 붙여서 해야 할 업무들이 점점 생겨서 노드에서 처럼 익숙한 express 프레임워크처럼 간단하게 접할 수 있는 프레임워크가 뭐가 없을까? 알아보다가 FastAPI를 알게 되었어요. 
 
장고는 모든 걸 다 갖추고 있어서 자바 진영의 스프링과 비슷한 대규모의 정식 서비스에 어울린다면 FastAPI 빠른 개발을 원하는 기업의 스타일에 적당할 것 같습니다.
실제로 사용 중인 기업 중에서 대규모 트래픽을 가지고 있는 서비스 중에서 넷플릭스와 우버는 FastAPI를 사용한다고 하니 안정성은 검증이 된 프레임워크입니다.
 
유일한 단점은 아직은 그래도 다른 프레임워크에 비하면 커뮤니티가 좀 작지만 그래도 해당 책 《FastAPI를 사용한 파이썬 웹 개발》를 보면서 학습하시다 보면 더욱더 빠르게 익힐 수가 있으실 겁니다. 책의 목차 첫 번째가 Git 사용법, 마지막으로는 실제 배포까지 있으므로 백엔드 개발자로서는 아주 좋은 학습입니다.
 
그리고 해당 책은 저자의 블로그 https://www.youngest.dev를 참고하면 좀 더 다양한 내용을 추가로 실습하실 수 있어요. 저자가 제공하는 추가 실습자료는 Okteto를 사용한 방명록 구축 동영상 강의, 몽고 DB, JWT 인증, 리액트를 활용한 추가예제등이 있어요.
 
해당 책을 《FastAPI를 사용한 파이썬 웹 개발》을 읽고 나면. 파이선 라이브러리 pydantic, SQLModel, pytestDB로는 몽고 DB를 배포 방식은 도커를 활용한 방법을 알게 되실 겁니다. 파이썬을  활용한 프레임워크 FastAPI를 활용해서 자신만의 간단한 서비스를 직접 구축해 보시길 바랍니다. 


"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

retargetable back
 
 
 

최근 뜨고 있는 파이썬 백엔드 프레임워크죠. "FastAPI" 책을 추천합니다. 도서명은 《FastAPI를 사용한 파이썬 웹 개발》입니다.

 

책에 대한 이야기를 하기 전에, "FastAPI"를 먼저 이야기해볼게요. 이 백엔드 프레임워크는 파이썬으로 만들어진 3번째(??) 유명한 놈이라고 하면 되려나요? 아무튼 Django(장고), Flask(플라스크) 다음으로 잘나가는 프레임워크입니다.

 

장고가 모든 걸 다 갖추고 있어서 대규모의 정식 서비스에 어울린다면 FastAPI는 그보다는 빠른 개발을 원하는 스타트업에 어울릴 것 같습니다.

 

셋 중 가장 빠르게 개발하면서 개발자 버그는 비교적 적게 나온다고 하는군요. 넷플릭스와 우버는 FastAPI를 사용한다고 하니 꽤 믿을만한 프레임워크인 것 같아요.

 

유일한 단점은 새롭게 뜨는 애라 커뮤니티의 규모가 작다는 것인데, 우리에겐 좋은 책이 많지 않습니까? 한글로 번역이 잘 된 《FastAPI를 사용한 파이썬 웹 개발》를 보면 되겠습니다.

 

《FastAPI를 사용한 파이썬 웹 개발》은 한빛미디어에서 출판한 번역서이고요. 책을 끝까지 따라하면 어플리케이션을 하나 완성하는, 프로젝트 좋아하는 사람에게 추천하는 책입니다.

 

책의 목차 첫번째가 Git 으로 시작해서, 마지막은 테스트와 도커를 사용한 배포로 끝이 납니다. 그냥 FastAPI만 배우고 끝나는 책이 아니라는 걸 알 수 있습니다.

 

그렇기 때문에 책을 효율적으로 익히려면, (당연히) 파이썬은 기본으로 할 수 있어야 하고요. 다른 RestAPI 프레임워크를 이미 다뤄본 경험이 있다면 큰 도움이 됩니다.

 

《FastAPI를 사용한 파이썬 웹 개발》을 다 읽고 나면 다음의 5가지 기술 스택을 배울 수 있습니다.

.- 파이썬 라이브러리: pydantic, SQLModel, pytest

.- DB: 몽고DB

.- 배포: 도커

 

pydantic은 데이터의 유효성을 검증하는 라이브러리, SQLModel은 DB는 다루는 라이브러리, pytest는 테스트 라이브러리입니다.

 

소스코드 관리(Git)부터 배포(Docker)까지 배우지만 책이 두껍지 않은 만큼(200p) 아주 초보자가 이해하기에는 쉽지 않은 것이 사실입니다. 파이썬이든 웹 개발이든 조금의 경험이 있는 분께 《FastAPI를 사용한 파이썬 웹 개발》을 추천합니다!

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 파이썬을 사용해서 FastAPI부터 데이터베이스 연결, 보안, 배포까지의 과정을 경험해볼 수 있는 책이다. 초보자보다는 파이썬과  Git등을 사용해 본 사람이 FastAPI를 경험해보고 싶을 때 참고하기 좋은 책이라고 생각한다. 

Fastapi 는 온전한 사이트를 만드는 것이 목적이 아니라,
API서버를 작업하는데 최적화된 모듈 입니다.
 
200 페이지 얇은 책 속에 Fastapi, 인증, 테스트, 배포까지 다 담느라, 웹서비스 화면이 거의 없고
터미널 환경에서 작업하는 내용이 대부분 입니다.
 
터미널 환경에서 개발한 경험이 없는 분들은
https://fastapi.tiangolo.com/ko/
에서 튜토리얼 빠르게 연습을 한 뒤, 책 내용을 실습하면 많은 도움이 될 것입니다.



책 두께가 얇아 만만하게 보았다가 개발환경 구축부터 당황해서 어버버했다.

그리고 대상독자를 파이썬 아는 대상으로 했는데 내가 볼 때는 파이썬을 알고 다른 언어를 대상으로 웹을 해본 독자가 읽는 게 좋지 않나 생각된다.(어려웠다. 웹은 왜 이리 낯설고 익숙해지질 않는지..)



[나의 한줄 추천사]

- 파이썬으로 웹을 빠르게 개발하기 위한 프레임워크를 고민하고 있다면 이 책을 보라.

[책 추천 이유]

- 파이썬 웹개발 Full Stack 형태로 FastAPI 웹 프레임워크 이용하여 "이벤트 플래너 웹 개발"을 End to End 형태 로 Git 설치부터, 도커 배포까지 다 해볼 수 있다.

[내가 찾고자 했던 질문들]

1. FastAPI 웹프레임워크 End to End 개발 

- 소스코드 깃연동 소개

- 자동문서화 방법 소개

- 개발 : Jinja 템플릿을 이용한 웹페이지 만들고, 파일 구조화 및 API 라우팅 설계, Exception 처리

- 데이터베이스 연동 : SQLModel 이용하여 MongoDB 연동해서 CRUD API 구성해본다.

- 보안 : OAuth2, JWT 이용하여 로그인 인증을 만든다. 

- 테스트 : pytest 으로 단위테스트 진행하고, 전체 코드에서 얼만큼 테스트 수행을 했는지 coverage 통해서 품질 보장되는지 직접 확인 할 수 있다. 

- 배포 : 의존라이브러리 requirement.txt 추출하고 도커파일 yml 파일을 작성하여 이미지 빌드하고 로컬에서 docker-compose를 통해서 실행시킨다. 해당 이미지를 퍼블리 클라우드에 올려서 실행시면 퍼플리 클라우드에서도 잘 작동할것이다.

2. 번역본인데, 저장 블로그 및 원서 소스 다운로드는?

https://www.youngest.dev/

https://github.com/PacktPublishing/Building-Python-Web-APIs-with-FastAPI

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

1_표지.jpg

 

 

 

 

국내에 FastAPI만을 다룬 책이 많지 않기에 굉장히 반가운 책입니다. 회사에서 flask와 사용법이 유사해서 공식문서를 보며, 익혔던 기억이 있다. 그래도, FastAPI만을 다룬 책이 있으면 학습하기 훨씬 좋다고 생각한다. 

 

이 책은 데이터베이스 연동과 보안 인증, 그 중에서도 NoSQL(몽고DB)를 다루기에 조금 더 흥미롭다. 간단한 웹 애플리케이셔을 직접 구축하려고 한다면 이 책이 굉장히 유용할 것이다. 라우팅 시스템, 응답 모델링, 오류 처리, 템플릿 등을 챕터별로 나눠서 설명한다. 사실, 직무를 떠나서 파이썬으로 개발을 한다면, FastAPI는 필수로 요구되는 프레임워크라고 생각한다. 데이터 분석 직무를 제외하고는 모두 다 볼 필요가 있다고 생각한다. 

 

 

2_라우팅.jpg

3_템플릿.jpg

 

 

 

책은 200페이지 조금 넘어서 하루 이틀정도 집중해서 실습까지 다 해볼 수 있는 분량이다. 입문서이기에, 중간중간 따로 공부할 주제 등은 별도로 표시해뒀다가 구글링하거나 관련 강의나 책으로 스터디하면 좋을 것 같다. 번역과 코드 모두 준비가 잘되었다. 최근, 파이썬으로 만드는 API들은 FastAPI로 비중이 확대되고 있다고 생각한다. 트렌드를 따라가려는 파이썬 개발자가 되려면 이 책이 꽤 도움될 것으로 본다. 

 

아쉬운 점이 있다면, 완전 개발 경험이 0인 사람이 보기엔 조금 어려울 수 있다. Git, 도커 등을 다루는 게 아주 짤막하게 나와 있어서 이런 건 별도의 책이나 강의 등으로 익힐 필요가 있다. 

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

 

오랜만에 리뷰 이벤트에 참여를 했다. 이제 전자책으로도 볼 수 있나 보다. 종이책 할지 전자책 할지 고민을 꽤 많이 했다. 이상하게 전자책은 따로 이북 리더기 같은 게 없어서인지 휴대폰으로 보려고 해도 손이 잘 가지 않는다. 하지만 리뷰 이벤트... 리뷰를 꼭 해야 하니까 꼭 읽어지겠지 하는 심정으로 전자책으로 신청.

IT 서적이고 코드가 많이 포함되어 있어서인지 휴대폰으로 구글 북스를 통해 보기는 좀 힘들었다. 폰트 사이즈만 커지는 옵션이 활성화가 안되고 페이지 전체가 커져서 불편한 점이 있었다. PC로 볼 땐 좀 나은 것 같아서 다행이다.

요즘 클라우드 서비스를 개발하고 있는데 백엔드 api 서버에 FastAPI를 쓸걸... 하고 생각하게 된다. 너무 필요한 내용들만 쏙쏙 들어있어서가 아니려나...

기능단위의 REST API 개발이 필요했고, 프런트엔드 서버와의 인증도 필요하고, 데이터 베이스 연동도 필요하고, 배포 또한 도커를 활용하는 걸로 고민하면서 개발 중에 있다. 어라... 이 책에 다 나오는 내용이다. 이미 회사에서 쓰던 언어가 있어서 Fast API는 검토 대상이 아니긴 했지만... 쓸 수 있었다면 조금 더 쉽게 접근할 수 있지 않았을까라는 생각이 든다. 하지만 사용자 인증이나 배포 등의 내용은 많이 참고할 수 있을 것 같다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

[FastAPI를 사용한 파이썬 웹 개발]은 파이썬 웹 프레임워크인 FastAPI를 활용하여 웹 애플리케이션 개발에 대한 전반적인 이해를 돕는 책입니다. FastAPI에 대한 안내뿐만 아니라 uvicorn을 이용한 웹 서비스와 템플릿 엔진 jinja2를 이용한 간단한 UI 구성, pydantic을 이용한 검증, pytest로 테스트 케이스 작성이 포함되어 있고 가상환경 구성, 도커 활용방안, OAuth2 및 JWT를 사용한 앱 보안, DB 활용 방법 등 작은 분량에 이 책 한 권만으로 포괄적인 웹앱 개발이 가능하도록 구성되었습니다. 템플릿 엔진 Jinja2를 활용해 장고(django)를 조금이라도 알고 있는 독자라면 이질감 없이 볼 수 있고, uvicorn을 활용하여 비동기 웹앱을 잘 지원하면서 성능까지 좋은 환경을 선택하였습니다. 전체적인 라이브러리 및 개발과정이 매우 실무적이고 불필요한 내용 없이 액기스만을 충분히 전달하고 있습니다.
 
총 9개의 챕터로 구성된 이 책은 얇은 분량임에도 불구하고 FastAPI를 활용한 웹 개발에 필요한 핵심적인 내용들을 충분히 다룹니다. 번역 품질이 좋고, 예제 코드와 함께 이론적인 설명이 동시에 제공되어 실습을 통해 FastAPI를 머리와 손으로 충분히 익힐 수 있도록 구성되었습니다. 파이썬의 기본 문법은 기본적으로 알고 있어야 코드를 읽을 수 있겠지만, 기본 문법을 알고 있으면서 웹 개발 지식이 부족하더라도 본 도서를 읽는데 문제가 없습니다. 이 책을 통해 웹 개발에 대한 전반적인 프로세스를 이해할 수 있으며, 경험이 있는 개발자라면 FastAPI를 사용하는데 필요한 다양한 기술들에 대한 포괄적인 안내서로 활용할 수 있습니다. 웹 개발 초보자라도 이 책은 웹 개발에 대한 기본적인 이해를 얻을 수 있는 유용한 리소스가 될 수 있습니다.
 
결과적으로 간단한 웹서비스 개발에 관심있는 개발자에게 추천할 만한 도서 입니다. 예를들어 웹개발 경험이 없으면서 최근 ChatGPT이후 LLM과 AI 모델 사용과 테스트에 광풍이 불고 있는 이 시점에 간단하게 huggingface에 공개된 AI 모델을 웹을 통해 인퍼런스하고자 할 때, 그래서 간단한 서비스를 만들고자 할 때, FastAPI는 서비스를 완성할 수 있는 가장 빠르고 유연한 방법입니다. 복잡한 웹개발은 당연히 장고나 스프링부트로 시작해야 효율적일 것입니다.
 
이 책을 통해 웹 개발에 대한 전반적인 프로세스를 이해할 수 있으며, 경험이 있는 개발자라면 FastAPI를 사용하는데 필요한 다양한 기술들에 대한 포괄적인 안내서로 활용할 수 있습니다. 처음 혹은 간단한 웹앱을 개발하고자 하는 파이썬 입문자에게 추천합니다.
 
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

파이썬 특유의 가상환경 생태계가 조금 생소했다

이런거 미리 알고 봤으면 책이 좀더 재미있었을것같다