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

한빛출판네트워크

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

처음 시작하는 FastAPI

모던 파이썬 개념부터 실전 프로젝트까지, 따라 하며 배우는 웹 백엔드 개발

한빛미디어

번역서

판매중

  • 저자 : 빌 루바노빅
  • 번역 : 한용재 , 한바름
  • 출간 : 2024-06-30
  • 페이지 : 324 쪽
  • ISBN : 9791169212649
  • 물류코드 :11264
  • 초급 초중급 중급 중고급 고급
4.7점 (29명)
좋아요 : 16

더 빠른, 더 쉬운 웹 서비스 구축을 위한
FastAPI 핵심 안내서!
 

FastAPI는 깔끔한 디자인으로 최신 파이썬 기능을 활용하는 견고한 웹 프레임워크로 플라스크나 장고와 유사한 구조를 갖춰 쉽게 시작할 수 있습니다. 이 책은 파이썬에 익숙한 개발자가 적은 코드로 짧은 시간에 많은 작업을 수행하는 방법을 소개합니다. 폼, 데이터베이스, 그래픽, 지도 등 다양한 주제를 예시로 들어 FastAPI 개발의 기본을 뛰어넘는 핵심을 다룹니다. 또한 RESTful API, 데이터 유효성 검사, 권한 부여 등 여러 주제를 쉽고 빠르게 익히는 실습도 진행합니다.

 

빌 루바노빅 저자

빌 루바노빅

리눅스와 웹, 파이썬 전문 개발자로 40여 년 활동했으며 『처음 시작하는 파이썬』(한빛미디어, 2020)과 『Linux System Administration』(O’Reilly, 2007)을 집필했습니다. 몇 년 전 FastAPI를 발견해 대규모 생물의학 연구 API를 재작성하는 데 적용했습니다. 이 같은 긍정적인 경험을 바탕으로 FastAPI를 새로운 프로젝트에 적극 도입했습니다. 현재 미네소타의 상그레 데 사스콰치 산맥에서 가족과 세 마리의 고양이와 함께 살고 있습니다.

 

한용재 역자

한용재

오랜 기간 휴대폰에 탑재되는 소프트웨어를 만들었고, 현재는 백엔드 엔지니어로 활동 중입니다. 매년 새로운 언어나 프레임워크를 배우려고 노력합니다. 『NestJS로 배우는 백엔드 프로그래밍』(제이펍, 2022)을 집필하였고, 『이펙티브 소프트웨어 테스팅』(제이펍, 2023)을 번역했습니다.

한바름 역자

한바름

2019년부터 개발자 커리어를 시작했습니다. 파이썬의 간결함과 직관성에 반하고 파이썬 생태계의 다양성에 심취해 프로젝트에 파이썬을 주 언어로 사용합니다. ‘나를 위한 업무관리 서비스’ SLASH를 개발하는 SIG에서 백엔드 엔지니어로 중입니다. FastAPI를 통해 말 그대로 빠른 API를 개발하고 있습니다.

[PART 1 모던 웹과 파이썬]

 

CHAPTER 1 모던 웹
_1.1 서비스와 API
_1.2 동시성
_1.3 계층
_1.4 데이터
_1.5 정리

 

CHAPTER 2 모던 파이썬
_2.1 도구
_2.2 시작하기
_2.3 API 및 서비스
_2.4 변수
_2.5 타입 힌트
_2.6 데이터 구조
_2.7 웹 프레임워크
_2.8 정리

 

[PART 2 빠르게 보는 FastAPI]

 

CHAPTER 3 FastAPI 둘러보기
_3.1 FastAPI 소개
_3.2 FastAPI 애플리케이션
_3.3 HTTP 요청
_3.4 HTTP 응답
_3.5 자동 문서화
_3.6 정리

 

CHAPTER 4 Starlette과 비동기, 동시성
_4.1 Starlette
_4.2 동시성 유형
_4.3 FastAPI와 Async
_4.4 직접 사용하기
_4.5 쉬는 시간: 클루 저택 청소
_4.6 정리

 

CHAPTER 5 Pydantic과 타입 힌트, 모델
_5.1 타입 힌트
_5.2 데이터 그룹화
_5.3 대안
_5.4 간단한 예
_5.5 타입 유효성 검사
_5.6 값 유효성 검사
_5.7 정리

 

CHAPTER 6 의존성
_6.1 의존성이란?
_6.2 의존성 관련 문제
_6.3 의존성 주입
_6.4 FastAPI 의존성
_6.5 의존성 작성
_6.6 의존성 스코프
_6.7 정리

 

CHAPTER 7 프레임워크 비교
_7.1 Flask
_7.2 Django
_7.3 기타 웹 프레임워크 기능
_7.4 데이터베이스
_7.5 추천
_7.6 기타 파이썬 웹 프레임워크
_7.7 정리


[PART 3 웹사이트 만들기]

 

CHAPTER 8 웹 계층
_8.1 쉬는 시간: 상향식, 하향식, 양방향?
_8.2 RESTful API 설계
_8.3 파일 및 디렉터리 구조
_8.4 첫 번째 웹사이트 코드
_8.5 요청
_8.6 다중 라우터
_8.7 웹 계층 구축
_8.8 데이터 모델 정의
_8.9 스텁과 가짜 데이터
_8.10 단계별로 구현하는 공통 기능
_8.11 가짜 데이터 생성
_8.12 테스트!
_8.13 FastAPI가 자동 생성한 테스트 양식
_8.14 서비스 계층과 데이터 계층의 대화
_8.15 페이징과 정렬
_8.16 정리

 

CHAPTER 9 서비스 계층
_9.1 서비스 정의
_9.2 레이아웃
_9.3 보호
_9.4 기능
_9.5 테스트!
_9.6 웹 계층 수정
_9.7 기타 서비스 수준 고려 사항
_9.8 정리

 

CHAPTER 10 데이터 계층
_10.1 DB-API
_10.2 SQLite
_10.3 레이아웃
_10.4 데이터베이스 초기화
_10.5 서비스 계층 연결
_10.6 테스트!
_10.7 정리

 

CHAPTER 11 인증 및 인가
_11.1 인증의 필요성
_11.2 인증 방법
_11.3 글로벌 인증: 공유 비밀번호
_11.4 간단한 개인 인증
_11.5 더 멋진 개인 인증
_11.6 인가
_11.7 미들웨어
_11.8 정리

 

CHAPTER 12 테스트
_12.1 웹 API 테스트
_12.2 테스트의 종류
_12.3 테스트 대상
_12.4 pytest
_12.5 레이아웃
_12.6 단위 테스트 자동화
_12.7 통합 테스트 자동화
_12.8 리포지터리 패턴
_12.9 전체 테스트 자동화
_12.10 보안 테스트
_12.11 부하 테스트
_12.12 정리

 

CHAPTER 13 프로덕션
_13.1 배포
_13.2 HTTPS
_13.3 성능
_13.4 트러블슈팅
_13.5 정리

 

[PART 4 갤러리]

 

CHAPTER 14 데이터베이스와 데이터 과학, AI
_14.1 데이터 저장소
_14.2 관계형 데이터베이스와 SQL
_14.3 비관계형 데이터베이스
_14.4 SQL 데이터베이스의 NoSQL 기능
_14.5 데이터베이스 부하 테스트
_14.6 데이터 과학과 AI
_14.7 정리

 

CHAPTER 15 파일
_15.1 Multipart 지원
_15.2 파일 업로드
_15.3 파일 다운로드
_15.4 정적 파일 서비스
_15.5 정리

 

CHAPTER 16 양식과 템플릿
_16.1 양식
_16.2 템플릿
_16.3 정리

 

CHAPTER 17 데이터 탐색 및 시각화
_17.1 파이썬과 데이터
_17.2 PSV 텍스트 출력
_17.3 SQLite 데이터 소스 및 웹 출력
_17.4 정리

 

CHAPTER 18 게임
_18.1 파이썬 게임 패키지
_18.2 게임 로직 분리
_18.3 게임 설계
_18.4 웹 계층 1: 게임 초기화
_18.5 웹 계층 2: 게임 단계
_18.6 서비스 계층 1: 초기화
_18.7 서비스 계층 2: 점수 계산
_18.8 즐거운 테스트!
_18.9 데이터 계층: 초기화
_18.10 크립토나미콘 실행
_18.11 정리

 

APPENDIX A 더 읽을거리
_A.1 파이썬
_A.2 FastAPI
_A.3 Starlette
_A.4 Pydantic

 

APPENDIX B 생명체와 탐험가
_B.1 생명체 목록
_B.2 탐험가
_B.3 탐험가 저서
_B.4 기타 자료

모두 원한 모던한 파이썬 웹 프레임워크의 등장!
빠르게 배우는 FastAPI


FastAPI는 간단한 문법으로 빠른 웹 서비스를 만드는 프레임워크를 표방하며 등장한 후, 파이썬 웹 프레임워크의 선두주자인 Django와 Flask를 따라 빠르게 성장했다. 그리고 등장한 지 5년 째인 2023년 말, 깃허브 스타 수를 기준으로 Flask를 앞지르면서 두 번째로 인기가 많은 파이썬 웹 프레임워크가 됐다.
 

이 책은 FastAPI를 사용해 미지의 생물과 연구원 정보를 관리하는 간단한 웹 서비스를 만들어보며 FastAPI의 사용법을 소개한다. 또한 FastAPI를 사용해 AI 서비스, 게임 등 다양한 프로젝트를 소개하며 원하는 프로젝트에 FastAPI를 응용하는 방법도 살펴본다.
 

1부_ 모던 웹과 파이썬
웹과 파이썬 분야에서 떠오르는 주제들에 대해 논한다. 서비스와 API, 동시성, 계층화된 아키텍처, 거대한 빅 데이터를 살펴본다.
 

2부_ 빠르게 보는 FastAPI
FastAPI의 큰 그림을 살펴본다. 하지만 숲이 아닌 나무를 살펴본다. 기본기를 재빨리 훑되, 디테일에 너무 매몰되지 않도록 수면 위로 시선을 고정한다. 각 장은 비교적 짧게 구성해, 3부에서 깊은 내용을 살펴볼 배경지식을 제공한다.
 

3부_ 웹사이트 만들기
FastAPI가 제공하는 도구를 자세히 살펴본다. FastAPI로 상용 소프트웨어를 개발할 때 필요한 팁을 담았다.
 

4부_ 갤러리
FastAPI의 여러 예시를 모았다. 이들 예시는 일반적인 데이터 소스로 만든 가상의 생명체를 사용해서 무작위로 만든 예시보다 양식, 파일, 데이터베이스, 차트와 그래픽, 지도, 게임 등 일반적인 웹의 기능을 소개해 조금 더 흥미롭다. 4부에 소개한 예시를 새로운 프로젝트의 시작점으로 삼아도 좋다.
 

대상 독자

  • 파이썬으로 처음 웹 개발을 시작하려는 초보 개발자
  • FastAPI가 궁금한 백엔드 개발자
  • 웹 백엔드 개발 과정을 빠르게 훑어보고 싶은 학생
     

배우는 내용

  • FastAPI로 웹 애플리케이션을 구축하는 방법
  • FastAPI, 스탈렛, 파이단틱 차이점
  • FastAPI의 비동기 함수와 데이터 유형 검사 및 유효성 검사
  • 동기 및 비동기 파이썬의 차이점
  • 외부 API 및 서비스와 연결하는 법
     

지은이의 말
FastAPI의 공식 문서를 읽으며 개발자인 세바스티안 라미레즈의 설계와 사고방식에 깊은 인상을 받았습니다. 특히, 타 프레임워크를 평가한 글에서 그가 쏟은 노력을 엿볼 수 있었습니다.
FastAPI는 자만으로 가득 찬 프로젝트나 호기심을 끄는 실험이 아니라, 실제 개발을 위한 진지한 프레임워크입니다. 이번에는 FastAPI가 크게 성공할 것이라는 감이 옵니다.

빌 루바노빅

 

옮긴이의 말
웹 프레임워크 전성시대입니다. 파이썬 생태계에도 수많은 프레임워크가 등장했다 사라집니다. 개발자에게 있어 프레임워크는 커리어를 쌓기 위해 언어만큼 중요한 기술입니다. FastAPI는 몇 년 전부터 파이썬 진영에서 인기를 얻는 프레임워크입니다. 이름 그대로 빠르게 웹 서버를 구축하는 환경을 갖췄으며 배우기 쉽고, 안전한 API를 만들 수 있습니다. 이 책을 통해 FastAPI의 기본 개념부터 아키텍처 설계까지 실무 프로젝트에 적용할 수 있는 지식을 쌓아보세요.

한용재

 

개발자로서 저의 첫 번역 작업이 끝났습니다. 함께 해주신 공역자 용재 님, 한빛미디어 편집팀의 도움에 힘입어 잘 마쳤습니다. 작업을 도와주신 분들께 감사드립니다. FastAPI는 공식 문서 내용에 배울 것이 많습니다. 공식 문서는 FastAPI 자체를 설명하지만, 이 책은 웹 개발을 포괄한 FastAPI를 활용하는 방법을 설명합니다. 공식 문서로는 채워지지 않는 부분을 메꿔주는 책이란 생각이 듭니다.
이 책이 빠른 서비스를 빠르게 구축하는 데 도움이 되었으면 좋겠습니다.

한바름

불과 1년 전만 해도 FastAPI 학습 서적이 한빛미디어에서 발간된 책 1권 정도 밖에 없었다. <FastAPI를 사용한 파이썬 웹 개발> 이 책이 바로 그 책인데 당시에 나는 베타리더로 참여했었다. 거의 최초로 발간된 FastAPI 책이라 발간되고 나서 의미가 남달랐다. 그 이후로 FastAPI를 다룬 책이 몇권 더 늘었다. 그리고 동 출판사에서 FastAPI 서적이 또 발간되었다. 이 책은 사실 나와 에피소드가 있는 책이다. FastAPI는 현재 생성형 인공지능 모델 붐으로 학습 곡선이 짧고 프레임워크의 가볍다는 이점 때문에 인공지능과 관련된 웹 개발에서 많이 채택이 되고 있었다. 그래서 Amazon에서 찾아보다가 이 책의 원서가 발간된 것을 알았고 여러 출판사에 번역 제안을 했는데 아쉽게도 이미 번역 판권 계약이 되어있는 책이라는 회신을 받았다. 그래서 이 책의 원서가 한국어로 번역이 될 것이라는 것을 미리 알았고 기다리면서 많이 기대를 했다.

이 책은 처음부터 끝까지 하나하나 꼼꼼히 코딩을 하면서 리뷰를 했다. 내 관심 분야이기도 하고 내가 역량을 높여야 하는 분야이기 때문이기도 했다. 이 책의 차별성이라고 하면 FastAPI의 핵심이기도 한 Starlette와 Pydantic을 좀 더 자세하고 Cryptid라는 가상의 주제로 애플리케이션을 만들었다는데에 있다. Creature(생명체), Explorer(탐험가)라는 가상의 이야기를 만들고 이를 통해 FastAPI로 프로그램을 구축해나간다. 그러다보니 흥미도 자아내고 웹 프레임워크를 재미있고 친숙하게 받아들이게 만든다. 컬러풀한 디자인과 캐릭터로 구성되어 있는 책은 아니지만 본연의 목적인 웹 프레임워크를 익숙하게 하는데에 최적의 구성이라고 생각한다.

그리고 이 책의 가장 강력한 점은 디자인 패턴으로 세 개의 계층으로 나누어 서비스를 설계했다는 점이다. 세 개의 계층은 외부에서 시작하여 웹 - 서비스 - 데이터로 이루어져 있다. 이런 식으로 디자인 패턴을 사용해 웹 프레임워크를 설명하는 것은 거의 보지 못한 것 같다. 그렇다보니 큰 차별성이 엿보였다. 그리고 보통의 파이썬 웹 프레임워크는 뷰, 그러니까 프런트엔드에 해당하는 부분에 꽤 많은 분량을 할애한다. 보통 템플릿이라고 부르고 Django 외에서는 Jinja라는 것을 많이 쓴다. 웹 프레임워크를 진짜 제대로 만드는 곳에서는 이 템플릿 부분을 파이썬으로 작성하는 경우는 정말 드물다. 그렇기 때문에 과감히 템플릿 부분을 제외하고 DB, 인증 및 인가, 디자인 패턴, API 설계 부분에 집중한 것은 정말 다른 책에서도 배워야 하는 부분이라 생각한다.

 

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
해서, 최대한 책을 펼쳐놓는 형태로 리뷰를 작성해 보려고 합니다.
그 중에 자신에게 맞는 부분이 있다면 책을 선택해 보시면 될 것 같습니다. ^^

 

1️⃣ 이 책이 다루는 내용 
- 웹기술 
- 파이썬
- FastAPI

 

2️⃣ 책 구성 
CHAPTER1 모던 웹 
CHAPTER2 모던 파이썬
CHAPTER3 FastAPI 둘러보기 
CHAPTER4 Starlette 비동기,동시성
CHAPTER5 Pydantic과 타입 힌트,모델
CHAPTER6 의존성
CHAPTER7 프레임워크 비교
CHAPTER8 웹 계층 
CHAPTER9 서비스 계층 
CHAPTER10 데이터 계층
CHAPTER11 인증 및 인가 
CHAPTER12 테스트 
CHAPTER13 프로덕션
CHAPTER14 데이터베이스와 데이터 과학,AI 
CHAPTER15 파일 
CHAPTER16 양식과 템플릿 
CHAPTER17 데이터 탐색 및 시각화 
CHAPTER18 게임


3️⃣ FastAPI
2018년에 세바스티안 라미레즈가 발표한 파이썬 기반 웹프레임워크 
파이썬 3에 추가된 기능을 활용해 대부분의 파이썬 웹프레임워크보다 여러면에서 현대적인 프레임워크다.

. 파이썬 타입 힌트
. 비동기 지원을 포함한 웹 머신용 Starlette
. 데이터 정의 및 유효성 검사를 위한 Pydantic
. 다른 기능을 활용하고 확장할 수 있는 특별한 통합 기능 
위 기능을 조합해 웹 애플리케이션, 특히 RESTful 웹 서비스를 위한 쾌적한 개발 환경을 제공한다.

 

4️⃣ 저자 읽고 배운 도서 소개 
. Building Data Science Application with FastAPI(Packt, 2021)
. Building Python Microservices with FastAPI(Packt, 2022)
. Microservice APIs(Manning, 2023)

 

5️⃣ 소감 
. FastAPI에 대해 알고 싶거나 현재 경향이나 사용빈도등을 참고해 볼 수 있는 자료가 정리되어 있다.
. FastAPI에 대한 소개 및 빠르게 실습해 볼 수 있는 책이다.
. FastAPI를 사용하기 위한 개념들에 대한 정리와 FastAPI에서 제공하는 도구에 대한 사용법이 정리되어 있어 전반적으로 웹의동작원리와 구조를 알수 있어서 좋은 것 같다.
. 마지막 4부에서는 양식, 파일, 데이터베이스, 차트와 그래픽, 지도, 게임 등 일반적인 웹이 기능에 FastAPI를 적용하는등 실질적으로 써먹을 수 있는 내용도 실습해 볼 수 있다. 
. FastAPI에 대해 전반적으로 개념을 잡고, 실습위주의 책을 원하면 그에 적합한 책인 것 같다.

 

6️⃣ 한줄소감 
. FastAPI 개념잡고 실습하며 빠르게 훑어보기 

FastAPI는 Python으로 만든 웹 프레임워크인데 주로 API를 만들 때 많이 사용해서 그렇게 이름이 작명된 것 같다. 속도가 빠르고 사용하기 쉬워서 인기가 많다. ASGI(Asynchronous Server Gateway Interface) 기반으로 만들어서 비동기 처리를 지원하기에 많은 요청을 빠르게 처리할 수 있는 장점이 있다.

 

처음 시작하는 FastAPI 도서는 FastAPI를 이용한 웹 애플리케이션 개발을 다루고 있다. 1부에서는 모던 웹과 파이썬의 기초를 설명하며, 2부에서는 FastAPI의 주요 기능과 비동기 처리 방법을 소개한다. 3부에서는 실제 웹사이트 개발을 위한 단계별 가이드를 제공하고, 4부에서는 데이터베이스, 파일 처리, 데이터 시각화 등의 고급 주제를 다룬다. 부록에서는 추가적인 참고 자료와 관련 정보를 제공하여 독자의 이해를 돕는다.

 

이 책의 2장에서 최신 웹 프레임워크 중 하나인 FastAPI에 대해 설명하고 있다. Flask와 Django가 장단점이 명확히 있는 반면, FastAPI는 속도와 생산성에서 강점을 보인다. 특히 비동기 지원과 Pydantic을 활용한 데이터 검증 기능이 매우 인상적이다. 이로 인해 RESTful API 개발이 훨씬 효율적으로 가능해진다.

 

3장에서 다룬 자동 문서화는 FastAPI의 독특한 기능 중 하나인 Swagger UI를 활용한 문서화 방법을 설명하고 있다. 이를 통해 API의 상태를 실시간으로 확인하고 테스트할 수 있는 점이 매우 유용했다.

 

5장에서 다룬 Pydantic은 Python 데이터 검증 및 설정 관리 라이브러리로, 데이터 모델을 정의하고 그 모델의 데이터 유효성을 검사하는 데 사용한다. FastAPI와 같은 웹 프레임워크와 함께 사용되면 데이터 검증 및 직렬화 작업을 간편하게 처리할 수 있는데 Pydantic은 타입 힌팅을 기반으로 하여 데이터 모델을 정의하고, 데이터가 올바른 형식인지 자동으로 검증한다. 처음 접해본 나도 예제를 따라 하는 과정을 통해 쉽게 학습할 수 있었다.

 

7장에서 다룬 데이터베이스 연동은 SQLAlchemy와의 통합 예제를 통해 실제 데이터베이스 연동 작업을 쉽게 따라 할 수 있었다. 이러한 세심한 설명 덕분에, FastAPI를 사용한 전체적인 웹 애플리케이션 개발 과정이 명확하게 이해되었다.

 

11장은 API 인증과 권한 부여에 대해 다루고 있다. 이 장에서는 FastAPI를 활용하여 안전한 API를 구축하는 방법을 구체적으로 설명하고 있다. 특히, HTTP 기본 인증, OAuth2, JWT(JSON Web Tokens)와 같은 다양한 인증 방식을 다루고 있어, 실제 프로젝트에서 필요에 따라 다양한 방식으로 적용할 수 있다. 예제 코드를 통해 이해를 돕고 있으며, 보안이 중요한 웹 애플리케이션 개발에 있어 매우 유용한 자료가 되었다. FastAPI의 보안 기능을 통해 안전한 API를 구현하는 방법을 배울 수 있었으며, 특히 JWT를 이용한 토큰 기반 인증 방식은 매우 실용적이었다.

 

14장에서 FastAPI와 SQLAlchemy를 사용하여 데이터베이스와 연동하는 방법을 설명하고 있다. 이 부분은 특히 실용적인 예제를 통해 실제 프로젝트에서 쉽게 활용할 수 있도록 도와준다. SQLAlchemy는 Python의 ORM 라이브러리로, 데이터베이스와의 상호작용을 매우 편리하게 해준다. 책에서는 이러한 장점을 잘 설명하고 있으며, 초보자도 이해하기 쉽게 상세히 다루고 있다.

 

17장에서는 SQLite 연동을 다룬다. 차트를 사용한 시각화 외에도 FastAPI와 Pandas, Matplotlib, Plotly 등 데이터 분석 라이브러리를 활용하여 데이터를 처리하고 시각화하는 방법을 알아두어야 한다. 특히, 데이터베이스에서 데이터를 가져와서 처리하고, 이를 시각적으로 표현하는 과정을 상세히 다루고 있어, 데이터 분석을 위한 기본적인 도구 사용법을 익힐 수 있었다. 예제에서는 실제 데이터를 사용하여 분석하고, 이를 통해 실무에서의 활용 방안을 제시하고 있다. 데이터 시각화 도구를 활용하여 분석 결과를 효과적으로 전달하는 방법을 배울 수 있어 유익했다.

 

책을 읽으며 느낀 점은, FastAPI의 등장으로 인해 웹 개발의 패러다임이 크게 변하고 있다는 것이다. 빠른 응답 속도와 자동화된 문서화 기능은 개발자에게 큰 매력으로 다가온다. 또한, 실습 예제가 잘 구성되어 있어, 실제 프로젝트에 쉽게 적용해 볼 수 있다. 이는 초보자뿐만 아니라 숙련된 개발자에게도 유용한 자료가 될 것이다.

 

종합적으로, 이 책은 FastAPI를 학습하고자 하는 이들에게 최고의 가이드가 될 것이다. 실용적인 예제와 상세한 설명이 돋보이며, 최신 기술 트렌드를 잘 반영하고 있다. 이 책을 통해 FastAPI의 강력한 기능을 제대로 활용할 수 있게 되었고, 앞으로의 프로젝트에 큰 도움이 될 것이라고 확신한다.

 

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

이 책은 모던 파이썬 웹 프레임워크인 FastAPI를 소개한 입문서입니다. 이 책에서 다루는 내용은 웹기술, 파이썬, FastAPI 총 세가지로 나눌 수 있습니다. 특히 1부에서는 웹과 파이썬 분야에서 떠오르는 주제에 대해 설명하고, 서비스와 API, 동시성 그리고 계층화된 아키텍처 등을 살펴볼 수 있습니다. 2부에서는 FastAPI를 고수준에서 소개합니다. 3부에서는 FastAPI가 제공하는 도구를 자세히 살펴보게 되는데, 상용 소프트웨어를 개발할 때 필요한 팁을 담고 있어서 현업에서는 3부 내용이 가장 많은 도움이 되었습니다. 마지막으로 4부에서는 FastAPI의 여러 예시를 모아두었습니다. 마지막 파이널 프로젝트 느낌이라고 보시면 될 것 같습니다. 

 

API는 프로토콜과 형식을 정의하게 되는데요, 이 때 FastAPI는 표준 파이썬 타입 힌트를 기반으로 파이썬 3.6 이상에서 API를 구축하는 현대적이고 빠른 웹 프레임워크라고 보시면 됩니다. 여느 웹 프레임워크 처럼 웹 어플리케이션 구축을 할 수 있도록 해주는 역할입니다. FastAPI의 장점으로는 특정한 경우에서 Node.js, Go에 견줄만한 성능을 가지고 있다는 점, 이해하기 쉽다는 점, 타입 힌트와 pydantic 모델은 버그를 줄이는데 유용하다는 점, 그리고 OpenAPI 설명을 직접 편집하는 것 보다 더 쉽도록 자동 생성된 문서 및 테스트 페이지를 제공한다는 장점을 가지고 있습니다. 

 

엔드포인트가 하나 있는 웹 서비스인 아주 작은 FastAPI를 작성하기 위해 필요한 파이썬 패키지는 fastapi, uvicorn, httpie, requests, https 등이 있습니다. FastAPI 자체에는 웹 서버가 포함되지 않지만, Uvicorn 사용을 권장한다고 해요. 작동법도 굉장히 간결하고, 쉬워서 초보자 입장에게 딱인 웹 프레임워크입니다. 이렇듯 한빛미디어에서 나온 처음시작하는 FastAPI책은 초보자가 FastAPI를 처음 접할 때 입문서로 딱인 책이였어요. FastAPI에 대한 개념을 0부터 100까지 채우기를 원하시는 분들께 추천드리고 싶은 책입니다. 

 

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

파이썬 생태계에서 무섭게 빠른 속도로 위용을 과시하고 있는 웹 프레임워크가 어느덧 우리 곁에 성큼 다가오고 있다. 바로 그 주인공은 FastAPI다. FastAPI는 기존에 Django와 Flask로 양분화되어 있던 구도를 변화시키고 풍부한 기능과 다채로운 특성을 자랑하며 끊임없이 발전에 발전을 거듭하고 있는 양상을 보이고 있다. 오늘은 FastAPI를 다루고 있는 도서인, '처음 시작하는 FastAPI'로 이야기를 풀어 보려고 한다.  

 

 

본 도서는 4개의 파트로 크게 구성되어 있고, 첫 번째 파트에서는 모던 웹과 모던 파이썬에 대한 주제로 이야기를 시작한다. 현대 웹 서비스를 구성하는 요소와 이를 지탱하는 구조 그리고 레거시 파이썬의 모습이 아닌 보다 강건한 형태의 모던 파이썬의 특징을 살펴보게 되며 본격적으로 두 번째 파트로 논의가 전개된다. FastAPI의 대략적인 모습을 훑어보는 과정에 이어서 실제 웹 서비스의 백엔드에서 중요하게 다뤄지고 있는 비동기와 동시성의 특성에 대해 학습하게 된다. 그리고 동적 언어로서 내재적 한계를 안고 있는 타입과 관련한 문제를 극복하기 위한 방안, 이른바 타입 힌트에 대해 배우게 되고 막상 쉽게 다가오지 않는 의존성의 개념에 관해서도 세부적으로 학습하는 계기를 갖게된다. 이윽고 Django 및 Flask 등의 여타 웹 프레임워크 등에 대한 다양한 특성과 비교를 통해 두 번째 파트가 마무리된다. 세 번째 파트에서는 본격적으로 웹 서비스를 만들기 위해 반드시 이해하고 있어야 할 다양한 내용이 전개되는데, 웹 계층/서비스 계층/데이터 계층 등의 3-Tier 구조 기반하에 각 계층별 주요하게 다뤄지고 고려되어야할 여러 요소와 개별 특징을 적용하며 인증 및 인가 등에 대한 보안 요소 및 테스트 방식과 유형, 마지막으로 운영(프로덕션) 환경에 애플리케이션을 배포하는 부분과 관련된 제반 사항이 논의된다. 마지막 파트에서는 데이터베이스를 위시하여 파일 업로드/다운로드와 템플릿 등에 대한 기능 그리고 데이터 탐색과 시각화에 대해 가볍게 다루며, 끝으로 파이썬 게임 패키지를 기반으로 지금껏 학습하고 익히게 된 지식과 기능을 응축하여 웹 서비스를 만들게 되며 FastAPI를 향한 여정은 마무리된다. 

 

저자의 친절한 설명을 토대로 FastAPI의 다양한 기능을 직접 다뤄 보고, 가상의 웹 서비스를 만들어 가며 FastAPI에 대해 한층 익숙해지고 친숙해질 수 있는 계기를 이 책을 통해 얻을 수 있었다. 이뿐만 아니라 소프트웨어 엔지니어링에 대한 중요한 개념과 더불어 베스트 프랙티스가 더해진 일련의 세세한 가이드와 여러 유용한 팁을 통해, 이 책은 이제 막 파이썬에 대한 기본본 문법을 학습하고 본격적으로 웹 서비스 개발에 뛰어들 초보 개발자에게 더없이 훌륭한 FastAPI 안내서가 되리라 생각한다. FastAPI의 세계를 처음 맛보고자 하는 이들, 파이썬 기반의 웹 프레임워크를 처음 접해 보는 이들에게 이 책과 함께 FastAPI로 향하는 여정을 시작할 것을 적극 권고한다. 

 

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

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

 

이 책은 FastAPI에 처음 입문하는 개발자들에게 완벽한 가이드입니다. 파이썬을 잘 다루는 사람이라면, 이 책을 통해 간단한 코드로도 강력한 웹 백엔드 프로젝트를 빠르게 완성할 수 있습니다. FastAPI의 기본 개념부터 RESTful API, 데이터 유효성 검사, 권한 부여 등 실무에서 필요한 다양한 주제를 다루고 있어, 실전 프로젝트를 따라 하며 배우기 좋습니다.

파이썬과 웹 개발에 익숙하지만 FastAPI는 처음인 분들께 이 책을 추천합니다. 이 책을 통해 최신 파이썬 기능을 활용한 견고한 웹 프레임워크를 쉽고 재미있게 익혀보세요!

오늘 리뷰하는 책은 '처음 시작하는 FastAPI'이다. 처음 파이썬을 배울 때 쓰던 웹 프레임워크는 'Django'와 'Flask'였는데 양식(용량)이 크거나 기본 제공 기능이 적어서 구현하는데 많은 시간이 필요하다는 단점이 명확히 있었다. 뭔가 이 단점들을 개선한 웹 프레임워크가 있나하고 조사해보았는데 'FastAPI'가 있었다. 하지만 새로 생긴지 얼마 안되어서 그런지 커뮤니티와 리소스가 많지 않아서 나중에 배워야겠다 생각했는데 좋은 기회로 책을 볼 수 있게 되서 이렇게 리뷰하게 되었다.

총 4파트가 있다. 1파트는 API,동시성,데이터 구조 등 웹개발의 기초 부분이 있고 2파트에는 FastAPI의 기본 구조, HTTP 요청 및 응답 처리, 비동기 프로그래밍, Pydantic을 이용하는 데이터 유효성 검사, 의존성, 세 프레임워크 비교가 들어가있다. 3파트에서는 RESTful API 설계를 통해 알아보는 웹 계층, 여러 서비스 수준 고려사항을 통한 서비스 계층, DB-API/SQLite 연결 및 테스트를 통한 데이터 계층, 인증 및 인가, 테스트, 프로덕션을 알아본다. 마지막 4파트에서는 데이터 과학, AI, 파일 관리, 템플릿, 데이터 탐색과 시각화, 이전에 배웠던 지식을 활용한 게임 예시를 알아본다.

각 챕터마다 간결하지만 이해하기 쉽게 짧은 구성으로 이루어져 있다. 그리고 독자들을 위한 노하우 NOTE와 사이트 목록이 상세하게 기술되어 있어서 심화 공부를 하는데 많은 도움이 되었다.

그리고 코드 또한 상세히 기술되어 있어서 따로 예제 자료를 찾아보는 수고를 덜 수 있다. 개인적으로 아쉬운 점은 REST API 부분에 연결 검증하는 플랫폼을 쓰는 과정이 없는 것이다. (POSTMAN,insomnia) 현업에 자주 쓰이는 플랫폼을 예시로 이용해보는게 많은 도움이 될 것 같아 나중에 추가되면 좋겠다.

마지막엔 python, FastAPI, Starlette, Pydantic을 공부할 때 참고하면 좋은 책과 사이트 리스트가 있어서 더 공부하고 싶은 부분이 있다면 많은 도움이 될 것이다. 파이썬 비동기 프로그래밍을 하는 웹 프레임워크를 알아보시는 모든 분들에게 깊이 있는 이해가 필요하다면 이 책을 추천하고 싶다.

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

#한빛미디어 #python #API #프레임워크 #FastAPI #pydantic

[BOOK] 처음 시작하는 FastAPI - 빌 루바노빅 지음 / 한용재, 한바름 옮김

 

 

다양한 분야에서 활용되고 있는 파이썬의 강점은 웹 서비스 개발에서도 드러나고 있습니다. 파이썬으로 만들어진 다양한 애플리케이션을 플라스크(Flask), 장고(Django), FastAPI 등의 웹 프레임워크를 활용하여 쉽게 웹 애플리케이션으로 서비스 할 수 있습니다.

 

이 책 "처음 시작하는 FastAPI"는 웹 서비스와 파이썬 그리고 FastAPI의 개념을 빠르게 살펴보고, 웹 서비스를 만들어 보는 방식으로 구성되어 있습니다. 다른 프레임워크를 다루는 책에 비해 분량이 많지 않은 책이지만 웹 서비스에 대한 기본적인 내용을 다루면서 FastAPI에 대해 배울 수 있습니다. 깊이 있는 내용은 다른 책이나 자료의 도움을 받아야겠지만 '처음 시작하기'에 딱 좋은 분량을 다루고 있습니다.

쉽고 빠르게 웹 어플리케이션을 구축하는 방법, FastAPI가 파이썬 생태계에서 빠르게 자리를 잡아가는 이유를 알 것 같습니다.

 

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

 

저도 처음에 사용한 웹 프레임워크가 FastAPI였습니다. 이 프레임워크는 사용하면 할 수록 너무 쉽고 편하게 사용할 수 있었습니다! 개인적으로도 매우 추천하는 웹 프레임워크입니다. 특히, 자신이 사용할 수 있는 언어가 Python뿐이고, 웹 개발에 대한 지식이 많이 없다면 아주 탁월한 선택이 될 것입니다!

처음 시작하는 FastAPI

이 책은 웹 개발과 파이썬을 통합하여 최신 기술을 활용하는 방법을 체계적으로 설명한다. "모던 웹과 파이썬"에서 시작하여 FastAPI를 중심으로 웹 애플리케이션 개발을 다루고, 실제 웹사이트 구현, 데이터 처리, 인증, 테스트, 배포 등의 주제를 포괄적으로 다룬다.

PART 1: 모던 웹과 파이썬

CHAPTER 1: 모던 웹

이 장에서는 현대 웹의 기본 개념을 소개한다. 서비스와 API, 동시성, 계층, 데이터 등 웹 개발의 핵심 요소를 다룬다. 각 개념을 구체적으로 설명한다.

CHAPTER 2: 모던 파이썬

파이썬의 도구와 시작 방법, API 및 서비스, 변수, 타입 힌트, 데이터 구조, 웹 프레임워크 등을 설명한다. 파이썬의 최신 기능과 이를 활용하는 방법에 대해 구체적인 예제와 함께 설명하여 실무에서 바로 적용할 수 있게 돕는다. FastAPI의 타입 힌트 기능은 파이썬의 타입 힌트 시스템을 기반으로 작동하며, 이를 통해 코드의 가독성, 유지보수성, 그리고 API의 자동화된 검증 및 문서화를 제공한다.

PART 2: 빠르게 보는 FastAPI

CHAPTER 3: FastAPI 둘러보기

FastAPI의 기본 개념과 애플리케이션 생성, HTTP 요청과 응답, 자동 문서화 기능을 소개한다. FastAPI의 장점을 명확히 설명하며, 이를 통해 빠르고 효율적인 웹 개발이 가능함을 보여준다.

CHAPTER 4: Starlette과 비동기, 동시성

FastAPI의 기반인 Starlette 프레임워크와 비동기 프로그래밍, 동시성 처리 방법을 다룬다. 직접적인 예제를 통해 비동기 처리의 효율성을 체감할 수 있다. 비동기 프로그래밍은 동시에 여러 작업을 수행할 수 있어, HTTP 요청을 빠르게 처리하는 데 유리하다. 예를 들어, 두 개의 외부 API에 비동기 요청을 보내고 그 결과를 결합하여 반환하는 경우, 각 요청을 순차적으로 처리하는 것보다 훨씬 빠르게 결과를 얻을 수 있다. 이는 네트워크 I/O를 효율적으로 처리하여 사용자에게 빠른 응답을 제공한다.

CHAPTER 5: Pydantic과 타입 힌트, 모델

데이터 검증과 관리에 사용되는 Pydantic 라이브러리와 타입 힌트를 설명한다. 데이터 유효성 검사와 모델 정의의 중요성을 강조하며, 이를 활용한 코드 예제를 제공한다. Pydantic은 데이터를 자동으로 검증하고, 타입 힌트를 사용하여 입력 데이터를 정의할 수 있다. 이는 데이터가 정의된 스키마를 따르는지 확인하여, 잘못된 데이터 입력을 방지한다. 예를 들어, API 엔드포인트에 전달된 JSON 데이터가 예상한 형태와 일치하지 않으면, Pydantic은 이를 자동으로 감지하고 유효성 검사 오류를 발생시킨다.

CHAPTER 6: 의존성

의존성 관리의 중요성과 FastAPI에서의 의존성 주입 방법을 다룬다. 의존성 관련 문제와 해결 방법을 구체적으로 설명한다. 의존성 관리의 장점은 의존성 주입을 통해 코드를 모듈화하고 재사용성을 높일 수 있다. 특정 기능을 독립적인 모듈로 분리하여, 다른 부분에서도 쉽게 사용할 수 있게 된다. 이는 중복 코드를 줄이고 유지보수를 용이하게 만든다.

CHAPTER 7: 프레임워크 비교

FastAPI와 Flask, Django 등의 다른 파이썬 웹 프레임워크를 비교한다. 각 프레임워크의 장단점을 분석하여, 상황에 맞는 적절한 선택을 도와준다. FastAPI를 사용해야 하는 상황은 높은 성능과 빠른 개발 속도가 필요한 경우이다. 비동기 기능을 기본 제공하여 많은 동시 요청을 효율적으로 처리할 수 있으며, 자동 문서화 기능으로 API 문서를 자동 생성해 개발과 유지보수를 용이하게 한다. 파이썬의 타입 힌트를 활용해 코드의 가독성과 유지보수성을 높이고, 직관적인 코드 작성이 가능해 개발 속도를 빠르게 할 수 있다. 이러한 특징 덕분에, 고성능 API 서버 구축이나 빠른 프로토타이핑이 필요한 프로젝트에서 FastAPI는 매우 적합한 선택이다. 상대적으로 작은 커뮤니티와 학습 곡선이 있지만, 높은 성능과 생산성 향상을 통해 충분히 보완할 수 있다.

PART 3: 웹사이트 만들기

CHAPTER 8: 웹 계층

RESTful API 설계, 파일 및 디렉터리 구조, 첫 번째 웹사이트 코드 작성 등을 다룬다. 실제 웹 애플리케이션의 기초를 다지며, 단계별로 구현하는 방법을 설명한다.

CHAPTER 9: 서비스 계층

서비스 계층의 정의와 레이아웃, 보호, 기능 구현 등을 설명한다. 서비스 계층의 역할과 이를 구현하는 방법을 구체적으로 다룬다. 서비스 계층은 비즈니스 로직을 캡슐화하여 애플리케이션의 다른 계층과 분리하는 역할을 한다. 이 계층은 데이터 처리, 검증, 변환 등의 기능을 담당하며, 데이터 계층과 웹 계층 간의 중간 다리 역할을 한다. 서비스 계층의 레이아웃은 모듈화되어 있어 유지보수와 테스트가 용이하다. 각 서비스는 독립적으로 구현되어 특정 기능을 수행하며, 이로 인해 코드의 재사용성과 가독성이 높아진다. 보호 측면에서는 인증 및 인가 로직을 포함하여 안전한 데이터 접근을 보장한다. 서비스 계층을 구현하는 방법으로는 먼저, 주요 비즈니스 로직을 식별하고 이를 개별 서비스로 나눈다. 각 서비스는 데이터베이스와 통신하여 필요한 데이터를 가져오고, 필요한 처리를 수행한 후 결과를 반환한다. 이를 통해 애플리케이션의 비즈니스 로직을 명확하게 분리하고, 코드의 일관성과 유지보수성을 높일 수 있다. FastAPI를 활용하면 의존성 주입과 같은 기능을 통해 서비스 계층의 구현이 더욱 간편하고 효율적이다.

CHAPTER 10: 데이터 계층

데이터베이스 연동과 초기화, 서비스 계층과의 연결, 테스트 등을 설명한다. 데이터베이스의 중요성과 이를 효과적으로 관리하는 방법을 제시한다. 데이터 계층은 애플리케이션의 데이터를 저장하고 관리하는 역할을 한다. 데이터베이스 초기화는 테이블 생성, 스키마 정의 등을 포함하며, 마이그레이션 도구를 사용해 데이터베이스 변경 사항을 관리한다. 서비스 계층과 데이터 계층은 의존성 주입을 통해 연결되며, 서비스 계층은 데이터 계층을 통해 데이터베이스와 상호작용한다. 데이터 계층의 테스트는 단위 테스트와 통합 테스트를 포함하여, 데이터 처리 로직의 정확성을 검증한다.

CHAPTER 11: 인증 및 인가

인증과 인가의 필요성, 다양한 인증 방법, 미들웨어 등을 다룬다. 보안이 중요한 웹 애플리케이션에서의 필수 요소들을 구체적으로 설명한다.

인증과 인가는 보안이 중요한 웹 애플리케이션에서 필수적이다. 인증은 사용자의 신원을 확인하는 과정이고, 인가는 인증된 사용자가 특정 자원에 접근할 권한이 있는지 확인하는 과정이다. JWT(토큰 기반 인증)는 널리 사용되는 방법으로, 사용자가 로그인하면 서버는 서명된 JWT를 발급하고, 클라이언트는 이를 저장하여 요청 시 포함시킨다. 서버는 JWT를 검증하여 사용자를 인증하고, 토큰 내 정보로 사용자의 권한을 확인한다. 미들웨어는 이러한 JWT 검증 로직을 처리하여, 모든 요청에 대해 인증 및 인가를 수행한다. FastAPI에서는 Depends와 함께 JWT 검증 미들웨어를 쉽게 통합할 수 있다.

CHAPTER 12: 테스트

웹 API 테스트, pytest를 이용한 테스트 자동화, 보안 테스트, 부하 테스트 등을 다룬다. 테스트의 중요성을 강조하며, 다양한 테스트 기법을 소개한다.

CHAPTER 13: 프로덕션

애플리케이션 배포, HTTPS 설정, 성능 최적화, 트러블슈팅 등을 설명한다. 실제 프로덕션 환경에서 발생할 수 있는 문제와 이를 해결하는 방법을 제시한다.

PART 4: 갤러리

CHAPTER 14: 데이터베이스와 데이터 과학, AI

데이터 저장소, 관계형 및 비관계형 데이터베이스, 데이터 과학과 AI의 활용을 다룬다. 데이터베이스와 데이터 과학의 융합을 통해 AI 프로젝트를 구현하는 방법을 설명한다.

CHAPTER 15: 파일

파일 업로드와 다운로드, 정적 파일 서비스 등을 다룬다. 파일 처리의 중요성과 이를 효율적으로 관리하는 방법을 제시한다.

CHAPTER 16: 양식과 템플릿

양식과 템플릿의 사용 방법을 설명한다. 사용자 인터페이스를 효율적으로 구축하는 방법을 소개한다.

CHAPTER 17: 데이터 탐색 및 시각화

데이터 탐색과 시각화 방법을 다룬다. 파이썬을 이용한 데이터 분석과 시각화 기법을 구체적으로 설명한다. 데이터과학과 연계해서 웹개발에 관심이 많은 편이라 직접 만든 결과를 웹으로 보여줄 수 있는 대시보드 등을 개발할 때 유용할만한 팁이 있다.

CHAPTER 18: 게임

파이썬 게임 개발을 다룬다. 게임 로직 분리, 웹 계층과 서비스 계층의 구현, 테스트 방법 등을 설명한다. 게임 개발을 통해 파이썬의 다양한 활용 방법을 제시한다. 웹을 통해 단순한 게시판 등의 예제가 아닌 다양한 활용법을 제시하는 점이 인상적이었다.

"처음 시작하는 FastAPI"는 웹 개발과 파이썬을 통합하여 최신 기술을 활용하는 방법을 체계적으로 설명하는 책이다. 모던 웹과 파이썬의 기본 개념을 다루며, FastAPI를 중심으로 웹 애플리케이션 개발을 단계별로 안내한다. RESTful API 설계, 파일 및 디렉터리 구조 설정, 데이터베이스 연동과 초기화, 인증과 인가, 서비스 계층의 구현 등을 포괄적으로 설명한다. 특히, FastAPI의 비동기 처리와 자동 문서화, Pydantic을 활용한 데이터 검증, JWT를 이용한 인증 방법 등을 자세히 다룬다. 이 책은 높은 성능과 빠른 개발 속도를 요구하는 프로젝트에 FastAPI가 적합하다는 점을 강조하며, 초보자부터 숙련자까지 모두에게 실무에서 바로 적용할 수 있는 유용한 내용을 제공한다. 단계별 설명과 다양한 예제로 구성된 이 책은 FastAPI를 통한 웹 개발의 모든 측면을 포괄적으로 다룬 훌륭한 참고서이다.

다음은 "지은이의 말"이다.

이 리뷰는 한빛미디어의 나는 리뷰어다 이벤트를 통해 책을 제공받아 작성했습니다.

이 책은 FastAPI에 대해 알려주는 안내서로 파이썬 기능을 활용한 웹 프레임워크로써 손쉽게 웹 서비스를 
구축하고자 하는 사람들에게 도움을 줄 수 있는 도서입니다. 
기본부터 여러 주제를 통해 예시로 다양한 정보를 제공하기 때문에 웹 프레임워크에 관심이 있다면 한번 정도 읽어볼 만한 거 같습니다. 
최근 빅데이터를 넘어 AI 개발자들이 점점 늘어나는 세상에서 파이썬 웹 프레임워크가 매력적인거 같습니다. 
아무쪼록 기술의 속도에 맞춰 다양한 정보를 얻는 것은 개발자에게는 필수적입니다.

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

FastApi는 공식문서가 잘 정리되어 있음에도 초보자의 경우 이해하기 힘든 부분이 있고 어디서부터 공부를 해나가야할 지 난감할 수 있는데 이 책은 그런 부분을 처음부터 간단하지만 잘 정리해서 알려준다.

FastApi의 가장 큰 장점인 비동기처리에 대해서도 잘 설명을 해준다.

개인적으로 FastApi에 관심을 가졌던 이유가 요청의 비동기 처리였다. 

FastApi는 starlette에 기반을 두었다. starlette은 ASGI(async gateway interface) 로 Fastapi의 기술적인 근본은 Starlette이다.

그럼에도 Starlette가 아닌 FastApi가 유명한 이유는 FastApi의 다양한 기능들이다.

가장 맘에 드는 기능은 자동문서화 기능이다.

이 책에서도 자동문서화에 대한 내용을 언급하기는 하지만 자세한 내용을 공식문서를 뒤져봐야할 것이다.

orm에 대한 내용도 역시 마찬가지로 공식문서를 뒤져봐야하고 sqlAlchemy에 대해서 공부를 해야할 것이다.

django과 같이 자체적 orm이 아닌 sqlAlchemy와 같이 third part library를 사용해야하는데 sqlAlchemy의 내용이 간단하지 않기 때문에 많은 내용을 다루지는 않는 것 같다.

책의 지면의 한계로 뺄 내용은 과감히 빼면서 FastApi로 웹개발 프로세스의 전체적인 뼈대를 설명한다.

FastApi는 python웹 프레임웍인 만큼 Ai와 데이터분석과 함께 많이 사용되는 편이다. 그런 내용도 적절하게 지면에 할애되었다.

초보자나 FastApi로 개발을 시도하려는 개발자가 이 책으로 감을 잡는 것이 좋다는 생각이 든다.

단, 고급개발자에게는 부족한 부분이 있을 것 같다.

 

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

최근들어 FastAPI라는 프레임워크를 언급하는 이야기를 여러 차례 듣게 되었습니다. 일하는 분야가 프론트엔드 쪽이고, 지금 다니는 회사도 스프링 쪽을 백엔드로 사용하고 있기 때문에, FastAPI라는 프레임워크를 접할 기회가 전혀 없었는데 말이죠.

저는 파이썬도 파이썬 백엔드도 사용하지는 않지만, 그동안 읽었던 책을 통해서 Django와 Flask가 이 분야를 양분하고 있다는 것 정도는 알고 있었습니다. 개발자로서 당장은 사용하지는 않아도 언젠가 쓸지도 모를 기술이라면 어떤 기술이 있고, 어디부터 시작해야 하는지 정도는 계속 모니터링하고 있어야 한다는게 개인적인 지론이라, 파이썬과 파이썬 백엔드 쪽에도 드문 드문 책을 봐 왔거든요. 그런데 최근 FastAPI라는 새로운 프레임워크에 대해서 언급되는 걸 건네 듣다보니 FastAPI가 뭔지 궁금하게 되었습니다. FastAPI에 대한 호기심이 생기던 찰라, 이 책에 대한 리뷰를 할 기회가 생겼네요.

그럼 현재 상황 부터 짚어봐야 하는데요. 저자는 본문 47쪽에서 github의 '스타' 수를 가지고 파이썬 프레임워크의 추세를 설명합니다. 2023년말 FastAPI는 Flask의 스타 수를 앞질렀다는 걸, 그래프로 보여주거든요. 그렇다면, 지금이 FastAPI를 공부할 적기 일지도 모르겠네요. FastAPI가 급부상한 이유가 뭘까요?

제가 느끼기에는 "의존성 주입"과 "비동기성"인것 같습니다. 의존성 주입은 상당히 일반적인 소프트웨어 아키텍처 개념인데요. A라는 기능을 가진 함수(또는 모듈, 서비스...)를 사용하는 B라는 함수는 A라는 함수의 구현 방식, 상태등을 의존할 수 밖에 없습니다. 호출하니까요. 하지만 이걸 역전시켜서 의존하지 않게 만든 다음 마치 부품처럼 끼워 넣어서 쓰겠다는 개념입니다. 이건, 스프링 프레임워크에서도 기본적으로 사용하고 있고, 앵귤라 쪽 프론트엔드 프레임워크에서도 사용하고 있습니다. 이렇게 '의존성 주입'이라는 개념을 프레임워크가 깔끔하게 제공해주면, 구현 코드는 유지보수가 쉬운 코드가 되거든요.

또한 "비동기성"은 서버의 구현방식의 문제인데요. 서버에 대한 클라이언트의 요청을 단순히 이벤트를 발생시켜서 대응하느냐 또는 쓰레드 같은 리소스를 할당해서 대응하느냐의 기술적인 차이입니다. node.js같은 서버는 이걸 이벤트 발생 방식으로 해서 크게 이목을 집중시켰거든요. 이 책을 보면서 처음 알았는데요. 파이썬 백엔드 분야에서도 이미 이런 방식으로 구현할 수 있는 스팩도 만들어져 있었더군요. (ASGI)

책을 읽으면서 저자가 책을 맞갈나게 쓴다는 생각을 하게 되었습니다. 마치 큰형에게 설명을 듣는 것 같더군요. 이 분야에 대해서 흥미로운것들도 간간이 언급해주고, 더 공부하려면 어디로 가야 할지를 메모해주거든요.

책 제목에 "처음 시작하는"이라는 말이 들어간 이유가 여기 있겠다 싶었습니다. 개념이 필요한 부분에 대해서는 조금 원초적인 이야기 부터 시작해서 FastAPI가진 개념까지 설명하고, 구현하고 응용해보는 설명에 대해서는 저자의 예제에서만 머무르지 않고, 어디로 공부해 나가야 할지 참고할 URL을 정말 많이도 나열했더군요. 게다가 예제들은 너무 쉬운 내용들이라서, 파이썬을 처음 배우고 이 책을 바로 읽기 시작했다고 하더라도 무리 없이 따라갈 수도 있겠다 싶었습니다.

요즘 저는 BFF(Backend For Frontend)라는 개념에 관심을 가지고 있습니다. 즉 프론트엔드를 위한 백엔드 서버죠. 여러 이유가 있는데요. 중복되는 UI 컴포넌트를 백엔드 API에 데이터를 받아서 보여줄 때마다 일일이 그리게 만들게 아니라 BFF에서 한번 만들어서 그 결과만 던져주고 빠르게 그려줄 수 있고요. 여러 API 서버들과 통신하는 번거로움이나 프론트엔드 보안적인 측면, 그리고 AI 서비스들을 가져다가 새로운 서비스를 만들려면 BFF가 절실하겠다 싶거든요.

그런 상황에서 이 책처럼 가벼운 백엔드 서비스 프레임워크의 개념과 방향성을 설명하는 책은 많은 도움이 되었습니다. 아니 이번 기회에 개인적인 프로젝트를 FastAPI로 시작해보는 것도 재미있을 것 같네요.

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

 

이상하게 들리겠지만 FastAPI가 주인공입니다.
다양한 파이썬 프로젝트 자료나 샘플에서 FastAPI를 사용하는 걸 볼 수 있었습니다.
주로 접근하기 쉽고 간단한 데다 빠른 반응 속도 때문에 사용한다는 설명이었습니다. 해당 자료나 샘플에서 보여주고자 하는 건 따로 있었고 FastAPI는 API를 위한 도구 정도였습니다.
저처럼 FastAPI를 제대로 알고 싶은 분들에게 도움이 되리라 생각합니다.


웹 API 개발에 집중합니다

웹 프레임워크니 당연하다고 생각할 수 있습니다. 하지만 생각만큼 쉽지 않은 경우를 많이 봤습니다.
뭐가 어떻게 돌아가는지 기능들을 얘기하다 보면 깔끔하고 멋진 기능에 쏠릴 수 있습니다. 필요한 내용이고 알아야 하기에 그것만으로는 별 문제가 없습니다.
정작 서비스를 개발하려면 문제가 드러나기 시작합니다. 뭔가 많은 내용을 보기는 했는데, 어디에서 어떻게 구현해야 하는지 방황하기 쉽습니다.
서비스 개발을 목표로 하여 내용을 풀어나갑니다. 서비스를 제공하기 위해서 필요한 역할과 구성, 각 구성에 있어야 할 기능들을 알려줍니다. FastAPI 프레임워크 자체뿐만 아니라 FastAPI로 웹 서비스를 어떻게 만드는지 전체를 볼 수 있습니다.


코드 차이를 짚어줍니다

파이썬 버전이 자주(?) 업그레이드됩니다. 저도 궁금해서 파이썬 사이트에서 확인해 보니 최근 5년 동안 1년 주기로 버전 업데이트가 있었습니다.
뜬금없이 버전 얘기를 하는 이유는 FastAPI도 파이썬 버전 업그레이드를 적극적으로 받아들이며 업그레이드하는 것으로 보이기 때문입니다. FastAPI 사이트에서도 같은 코드를 적어도 3가지 이상의 파이썬 버전으로 알려주고 있습니다.
이 부분 때문에 발목 잡히는 경우가 있습니다. 제가 그랬으니까요.
검색해서 찾은 페이지들이 설명하는 내용은 같은데 풀어놓은 코드 구문이 다르니, 이건 또 뭔가 해서 다시 찾아야 했던 경우가 많았었습니다. 페이지마다 작성된 시점의 파이썬 버전이 다르니 구문에 차이가 있을 수밖에요.
얘기가 길어졌습니다. 책에서는 코드 곳곳에 이런 상황이 발생하면, 왜 그런지 꼼꼼히 짚어줍니다.
엉뚱한 부분에서 헤매지 않고 내용에 집중하는데 큰 도움이 됩니다.


필요한 것들을 챙겨놓았습니다

웹 API 개발에 신경 쓰다 보면 소홀히 할 수 있는 부분들이 있습니다.
파일 업로드, 다운로드, 정적 파일, 템플릿 적용 같은 것들입니다.
FastAPI 가 다른 프레임워크에 비해 상대적으로 최근에 발표된 프레임워크라 검색 결과 자료가 적은 게 사실입니다.
그런 자료들은 강점인 API 개발 쪽을 강조하다 보니 웹프레임워크로서 지원하는 부분에 대한 설명이 아쉬운 경우를 종종 봤습니다.
책에서는 이런 부분을 빠트리지 않고 설명합니다.
프레임워크에서 어떻게 해야 하는지 알려줍니다. 응용하고 확장하는 부분은 독자몫으로 남겨두었더군요.

 


FastAPI 서적 자체가 몇 권 없습니다. 프레임워크가 계속 릴리즈 되고 있기 때문이라는 생각도 듭니다.
사이트와 함께 FastAPI를 이해하고 활용하는데 좋은 가이드/기준이 될 수 있겠다는 생각입니다.

 


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

FastAPI는 작년 해커톤에 빠르게 활용하기 위해 1시간 이내로 간단히 학습했었는데 내부 동작이나 기능의 지원여부 그리고 Django, Flask와의 차이점에 대해 정리된 글을 보고 싶다는 생각을 했었다. 이 책에서는 궁금한 점들을 잘 표현하고 있다. 주니어 개발자들을 위한 서비스, API, HTTP, Restful, 동시성등 개념적인 설명과 더불어 어느정도 웹개발에 대한 경험이 있는 독자들을 대상으로 글을 쓴 것 같은 인상 또한 받았다. 

 

책의 장점이자 단점인데, "단순히 API 서버는 이렇게 만들면 됩니다"가 아니라 API 서버를 개발하는데 필요한 개념들부터, 테스트를 위한 도구(pytest), 코드 포맷팅, ORM, 의존성 주입, 로깅, 인증/인가등 다양한 범위로 설명을 한다. Cython, pypy등의 언급까지 정말 많은 영역을 다루다 보니 특정 부분은 설명이 적거나 개론적인 부분만 적혀있는 것도 있어 단점이라고도 볼 수 있다. 하지만 API에 대한 큰 틀을 한번 정리해준다는 점은 장점으로 생각된다.

 

데이터 계층에 대한 설명은 로우레벨인 쿼리부터 시작한다는 점은 인상적이지만 최근 ORM을 거의 다 사용하는 추세인데 너무 적게 내용을 할당해 아쉬움이 좀 있었다.

 

Python을 시작해서 FastAPI로 처음 개발을 시작한다면 추천하기 좀 어렵다. 하나하나 집어주는 부분은 참 좋았지만 기술적 단어나 배경에 대한 이해가 부족할 수 있어 맥락을 이해하기 어려울 것으로 본다. 하지만 Django/Flask 개발 경험이 있는 사람이 FastAPI를 도입하거나 사용하기 위해 이 책을 읽어본다면 빠르게 어느정도 퀄리티가 보장된 서버를 만들 수 있는 가이드가 될 것이라고 생각한다.

 

현존하는 몇 안되는 FastAPI 서적이기도 하여 그 관점에서도 가치가 있는 책이다.

 

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

'간결한 코드로 빠른 프로토를 만들어내고 싶을 때는 이에 맞는 도구를 사용해야 한다.'

 

필자는 평소 파이썬과 같은 스크립트 언어는 단순한 테스트를 구성하거나 (API 용 테스트아니면 shell 기반으로 자동화된 처리 프로세스를 구성할 때 애용하는 편이였다.

 

그런데이번에 리뷰하게 된 FastAPI는 파이썬 기반의 'dJango'와는 다른 훨씬 단순화되었지만 강력한 기능들을 제공해 주는 백엔드용 프레임 워크였다.

 

무엇보다 프로젝트 멘토링을 진행하고 있는 상황에서 해당 팀에서 위의 기술을 사용한다고 하여 상당히 반가운 마음이 큰 책이었다.

 

【책의 구성】 "처음 시작하는 FastAPI"의 구성은?

 

위 책은 총 4개의 파트로 구성되어 있으며 각각의 파트는 총 18개의 챕터로 구성되어 있다이외로 2개의 읽어볼 거리를 추가로 제공해 주고 있어서독자로 하여금 FastAPI와 관련된 자료를 보다 효과적으로 찾을 수 있는 팁을 제공하고 있다. (관련 사이트에 대해서 열거하고 있음)

 

이 책은 여느 IT 전문서와 비슷하게 개념에 대해서 정리하여 소개한 후최종에는 해당 내용을 정리하는 순으로 구성되어 있다

 


 

챕터 7 : 프레임워크 비교

이 장에서는 Flask Django와 같은 python 기반의 웹 프레임워크와 FastAPI의 차이점을 비교한 내용이 정리되어 있다.

본문의 예시로 든 코드로 보건대 같은 기능을 구현하더라도 확실히 Flask보다 FastAPI의 코드가 훨씬 간결하였고 가독력 면에서도 뛰어났다.

 

그만큼 FastAPI를 사용하는 개발자에게 공개된 interface가 상당히 추상화되고 간결화됨을 의미했으며많은 면에서 개발자가 몰라도 될 부분들은 철저히 캡슐화 혹은 하이딩 하였음을 알 수 있었다.

 


 

챕터 11 : 인증 및 인가

 

이 장에서는 인증 (oauth)에 관한 구현 법이 설명되어 있다.

 

FastAPI를 사용하여 인증 기능을 도입하기 위해 필요한 최소한의 모델 설계 법과 인증 정보 관리를 위한 DB 설계 법 등이 수록되어 있으므로 인증 관련 구현에 대해서는 이 부분만 어느 정도 들여다보아도 그 Flow를 충분히 이해할 수 있을 것이라 보였다.

 


 

챕터 18 : 게임

 

지금까지 학습한 내용을 기반으로 간단한 게임을 만드는 방법을 소개한 챕터이다. 책의 전반과 중반에 소개하였던 내용들을 심도 있게 학습하였다면 위 실습을 따라 하기에 어려움이 없으므로 꼭 이 책을 전부 학습하였다면 꼭 살펴보길 권장하는 챕터이다.

 

【 처음 시작하는 FastAPI를 읽고 나서 】

 

시대가 시대인 만큼 개발에 필요한 코드의 양이 점점 간추려지는 것이 요즘의 개발 트렌드인듯하다예전에는 몇십 줄에 달해 구현해야 했던 기능들이 이제는 단 몇 줄이면 이전과 같은 기능을 수행하거나 혹은 그 이상의 기능을 수행하고 있기 때문이다.

 

그렇다고 마냥 이러한 기술 트렌드가 좋다고만은 할 수 없다내부에서 관련 기능들이 어떻게 처리되는지 캡슐 화가 되었을 뿐개발자가 관련 내용을 전혀 몰라서는 안 되기 때문이다.

 

따라서 시대의 흐름이 아무리 편한 것을 추구할지라도 훌륭한 개발자로 거듭나길 희망한다면 스스로 CS 학의 내부를 들여다볼 적극적인 의지를 가져야 할 시대가 온듯하다.



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



#️⃣ 파이썬으로 웹개발을 해보지 않아도 괜찮은 친절한 설명
원서는 'FastAPI' 이지만, 번역본에서는 '처음 시작하는'이라는 수식어가 있다. 300여 페이지의 구성이지만 파이썬으로 웹 개발을 하지 않은 사람이나 웹 개발에 대해 이해도 높지 않은 사람들도 이해할 수 있도록 비교적 설명이 친절했다.

특히, Part 1에서는 개략적인 모던 웹을 훑고 가면서 기존 파이썬 웹프레임워크인 Flask, django 그리고 이 책의 제목이 FastAPI까지 소개한다.

마지막 부분에서는 더 읽으면 좋은 책이나 추가 자료 목록을 제공한다. 파이썬 관련 책부터 github 링크, 그 외 읽을 거리가 있다. 더 깊은 지식을 원하는 사람들이라면 유용하겠다.

#️⃣ 프레임워크를 소개하는 책 다운 예제코드 삽입
기술서적답게 그리고 프레임워크를 소개하는 책 답게 예제 코드를 다양하게 담고 있다.


일단 패키지부터 설치하고 직접 실습까지 해보았다.
이참에 평소에 해보고 싶었던 공공API를 이용해 FastAPI로 배포까지 했다.

#️⃣ 웹사이트 구축을 위한 계층, 테스트, 배포 그리고 데이터 시각화까지!
웹사이트 구축에 필요한 웹 계층, 서비스 계층, 데이터 계층에 대한 간단한 설명하고 테스트부터 배포까지 다루고 있다. 이부분은 사실 FastAPI 한정된 내용은 아니고 다른 프레임워크에서도 통용되는 코드이다.

웹 어플리케이션의 전반적인 이해를 돕기 위한 파트이지만, 일반적인 내용이라 기존 파이썬으로 웹 개발을 알고 있는 사람들에게는 크게 도움이 되지 않을 것 같다.

다만 마지막 챕터에 파이썬의 데이터 분석과 시각화에 대한 내용을 담고 있다. Plotly 라이브러리에 대해서 짧게 설명하는 데 matplotlib, seaborn보다 좀 더 인터렉티브한 시각효과를 줄 수 있음을 알게 되었다. 이 쪽 파트로 심화된 내용을 다루는 책이 나오면 좋겠다는 생각이 들었다.

추천독자
추천 독자는 앞서 써둔 것처럼 FastAPI로 웹 개발을 시작하려는 개발자이다.

다만, 나처럼 웹 개발에 대한 지식이 많지 않아도 이 책을 따라가다보면 충분히 배포까지 해볼 수 있을 정도로 친절하게 전반적인 웹 개발에 대한 내용을 서술하고 있다.

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

빌 루바노빅 지음 / 한용재, 한바름 옮김

 최근 회사 내에서 내부 데이터를 잘 수집하고 활용하기 위해 제조 데이터로 작은 서비스를 구축하고 있습니다. 아무리 작은 서비스라고 하더라도 전부를 구축하기엔 데이터베이스부터 백엔드개발, 웹개발 등 다양한 분야에 대한 공부가 필요한 시점이었습니다. 아무래도 파이썬 기반으로 제가 직접 구축해볼 수 있다면, 좀 더 빠르게 이해할 수 있을 거라 생각해서 파이썬 기반 웹프레임워크인 Django, Flask에 이어 최근 부상하고 있는 FastAPI를 배워보고자 이 책을 공부하게 되었습니다. 

1. 대상 독자

 이 책은 파이썬은 어느 정도 사용할 줄 알고, 이제 웹개발을 FastAPI로 처음 해보고 싶은 분에게 추천할 만한 책입니다. 무엇보다 기반지식이 없어도 각 계층은 어떠한 역할을 하고, 인증과정은 어떻게 구성하는 지 등을 배울 수 있는 책입니다. 차근차근 책을 따라가다보면, 어느덧 웹사이트 하나가 완성되는 것을 경험해볼 수 있습니다. 이 책을 참고하여 본인이 원하는 방향으로 만들어낼 수 있습니다. 아무래도 얇은 책에 FastAPI에 대한 내용을 담아내다보니, 원하는 만큼 내용이 깊진 않을 수 있으나, 적절히 필요한 내용들을 위주로 다루고 있습니다.

2. 이 책의 특징

1) 처음부터 끝까지 동일한 코드에 살을 붙여나가는 방식

 전체 내용을 하나의 웹사이트를 구축하는 시점에서 점점 살을 붙여나가는 방식으로 전개해나가고 있는 점이 특징입니다. 그래서 내용을 잘 모르더라도, 각 계층에는 어떠한 내용이 들어가야 하는 지 등을 이해하기 좋습니다. 주어진 틀 안에서 뒤로 갈 수록 새로운 내용들을 우리의 프로젝트에 조금씩 넣는 방식으로 결국 책을 끝까지 읽어내도록 도와줍니다. 단계를 밟아나가다보면 코드 내용이 조금씩 달라지는데, 이 부분에 대해서는 추가되는 코드가 무엇인지, 어디 부분이 변경되어야 하는지를 별도로 표시해줬으면 더 좋았을 것 같습니다.

 

2) 적절한 폴더 구조, 위치 등을 언급하는 점

 사실 라이브러리를 만들거나 웹사이트를 구성하고자 할 때, 처음 구성해보는 입장에서는 각 파일이 어느 위치에 들어가야되는 지 헷갈릴 때가 많이 있습니다. 중간 중간 어떤 파일을 수정하는지, 추가하는 파일의 위치는 어디에 위치해야 되는 지 등을 친절하게 설명해주고 있습니다. 

 

3)  웹 서비스 구축의 처음부터 끝까지 구성해볼 수 있음

 웹에 대해서 아무것도 모르는 상황에서 공부했음에도, 어떤식으로 폴더 구조를 설정해야 하고, 각 파일의 역할은 무엇인지, 테스트하는 방법, 인증은 어떻게 구현해야 되는 지, 배포과정 등 까지 경험해볼 수 있다는 점, 실제로 구축 완료된 프로덕트를 확인해볼 수 있는 점에서 굉장히 흥미롭게 책을 공부해나갈 수 있었습니다. 사실 저도 이 책을 받아보고 3주라는 시간동안 다른 공부보다 이 책에 빠져서 실제로 구현해보게 되었습니다.  

 

3. 이 책의 아쉬운 점

1) 책을 따라 공부하다보면 간혹 발생하는 오류 존재

 책을 따라 하다보면, 간혹 발생하는 오류들이 존재합니다.  순차적으로 책을 따라갔음에도 디테일한 부분을 놓쳐서 발생하는 문제 등이 일부 있습니다. 이런 경우 그렇게 어렵지 않게 해결할 수는 있는 것들이 대부분입니다. 필자의 경우에는 직접 문제를 마주친 뒤, 스스로 해결해 나갔으나, 이 부분은 추후 인쇄 시에는 이상없는 코드가 제공될 수 있도록 한빛미디어로 요청할 예정입니다.

4. 총평

 FastAPI를 통해, 웹 서비스를 구축하고 싶다면 이 책을 읽어보시는 것을 추천합니다. 책 내에서 Django와 Flask의 차이 등도 설명하고 있고, 대략 300페이지로 다른 개발서적에 비해(?) 두툼하진 않습니다. 그리고 내용은 생각보다 딥하지 않지만, 추가자료를 링크 형태로 제공하고 있으니, 조금 더 깊은 공부를 원하시는 분들은 링크까지 공부해보신다면 더욱 좋을 것 같습니다.



Flask로 REST API를 개발하다가 우연찮게 구글에서 FastAPI와 관련된 문서를 읽게 되었다.

 

신세계였다. 엄청 더 단순하고 간결하고 빠른!!!! ^^

 

그래서 시중에 책이 없을까 했는데 마침 나의 상황과 적합한 책이 발간되어 있어서 참 좋았다!

 

이 책을 읽고 파이썬 웹 개발의 새로운 세계를 경험하며 많은 것을 배우게 되었다.

 

 

 

이 책은 FastAPI의 기본 개념부터 실제 프로젝트에 적용할 수 있는 다양한 기능까지 폭넓게 다루고 있어, 파이썬 초보 개발자에게도 친절하게 다가왔습니다.

 

책은 처음 FastAPI를 접하는 사람들을 위해 쉽고 명확하게 설명되어 있다. 복잡한 개념은 간단한 예시와 함께 제시되어 이해를 도왔고, 각 장마다 연습 문제가 있어 학습 내용을 직접 적용해볼 수 있었다.

 

하지만 포스트맨이나 인썸니아 같은 API Platform을 쓰지 않아서 참 난감하다.

 

이 부분이 이 책에 대해서 가장 아쉽고 씁쓸한 부분....

 

REST API Platform을 썼다면 초보 개발자든 입문자든간에 더 쉽고 빠르고 재밌게 익혔을 것이라 생각이 드는데 그러지 못 하는 한계에 당착하게 되어 이 책을 소화할 수 있는 초보자나 입문자는 많이 당황스러울 것이다.

 

이 부분이 외국 IT 기술이나 외국 IT 서적들이 한국 IT 트렌드와 합일점을 이루지 못 하는 부분이다.

 

많이 아쉽다.

 

특히, RESTful API 구축, 데이터베이스 연동, 테스트 작성 등 실제 개발에서 필요한 핵심 기능들을 상세하게 다루고 있어 실무에 바로 적용할 수 있다는 점이 좋았다.

(실제로 업무에 적용하려면 챕터07을 깃헙에서 다운로드 받고 시작하면 좋다.)

 

 

 

FastAPI의 가장 큰 매력은 빠른 개발 속도와 생산성이라고 생각한다. 타입힌팅을 기반으로 한 강력한 코드 자동 완성 기능과 직관적인 API 설계는 개발 시간을 단축시켜주고, 오류를 줄이는 데 큰 도움이 되었다. 또한, ASGI 기반으로 비동기 처리를 지원하여 성능적인 측면에서도 우수한 모습을 보여주었다.

 

 

 

 

이 책을 통해 FastAPI의 기본적인 사용법을 익혔지만, 아직 부족한 부분도 많다.

 

특히, 대규모 프로젝트에서 FastAPI를 활용하기 위한 아키텍처 설계나, 더욱 심화된 성능 최적화 기법에 대해서는 추가적인 학습이 필요하다고 느꼈다.

 

또한, 실제 서비스에 적용하기 위한 보안 설정이나 배포 방법에 대한 이해도 더욱 깊어져야 할 것이다.

 

 

앞으로는 FastAPI 공식 문서를 꼼꼼하게 읽고, 다양한 예제 프로젝트를 직접 구현해보면서 실력을 향상시켜 나갈 계획이다.

 

또한, 다른 개발자들과 함께 스터디를 진행하거나 오픈소스 프로젝트에 참여하여 실무 경험을 쌓고 싶다.



다양한 프레임 워크 중 FastAPI에 대해 이해하기 쉽도록 자세하게 설명하고 있는 책입니다.

앞서 언급한 내용 외에도 차트, 그래프 패키지에서 오픈 소스 파이썬 라이브러리인 Plotly, 지도 패키지에 대해서 간단하게 다루고 있습니다. 이번 방학에 지도 시각화를 해야 할 일이 있을 것 같은데 Plotly를 사용하는 지도 예시가 있어서 좋았습니다.

​이미 파이썬을 알고, 파이썬 웹 프레임워크에 관심이 많은 분들께 추천드리는 책입니다.

 

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

개인적으로 십 수년전까지만 해도 홈페이지를 만들 때, 백엔드는 당연히 자바 또는 PHP로 만드는 것이 일반적이라고 생각했습니다. 그래서 파이썬으로 웹 백엔드를 만든다고 하면 "아니 왜 파이썬이지?" 라는 의문이 먼저 들었던 때가 있었습니다. 하지만 시간이 흘러 파이썬으로 좀 더 많은 것을 짧은 시간 동안 할 수 있다는 것을 깨달았고(생산성), 특히 다른 시스템과 연동하는데 큰 도움이 될 때, 파이썬은 선택이 아닌 필수가 되어버리고 말았습니다. 
그때 당시만 해도 파이썬 백엔드의 양대 산맥은 Django와  Flask 였습니다. 
복잡한 프로젝트는 django로, 간단한 API는 Flask로  대충 개념이 정립되고, 한동안 관련된 도서도 보고 있었지만 사실 어느 하나 깊게 파고들어가지는 못했던 것 같고, 그리고 그 순간 나타난 것이 바로 FastAPI 였습니다.
사실 그 동안 FastAPI 에 대해서 책이 많이 나온 것도 아니고, 커뮤니티가 활성화 된 것도 아니지만, 그 이름에 들어간 "Fast" 덕분에 상당히 많은 속도로 발전 하고 있습니다. 개인적으로 국내에 이런 커뮤니티가 있었으면 하는 바람인데, 아직 생기지 못한 것인지, 내가 찾지 못한 것인지 아쉬운 마음이 큽니다.

이 책은 위에서 설명한 것 처럼 "최신" 웹기술에 대한 전반적인 내용과 파이썬+FastAPI 에 대한 내용을 알기 쉽게 다루고 있습니다. 특히 FastAPI를 쓰는 누구라도 가장 좋아하는 것이 바로 pydantic으로  데이터 모델링 및 검증에 유리하다는 것 일 것이다. 
물론 FastAPI는 말 그대로 API를 위주로 만들기 때문에 별도로 클라이언트 단 까지 하나로 개발하고 싶은 사람들에게 추천하지는 않습니다. 하지만 짜임새 있는 모던 웹을 개발하고 싶은 사람이라면 FastAPI+React/Vue/Svelte 처럼 무궁무진한 조합으로 자신만의 멋진 웹 개발자 커리어를 쌓을 수 있을 것이라 생각합니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
#한빛미디어 #오레일리 #파이썬  #FastAPI  #모던웹개발

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

 


웹 서비스를 구성하는 요소 중에 비즈니스 요구사항을 처리하고, 데이터의 가공과 저장을 하고, 보안의 위협에서 적절한 조치를 해야하는 백엔드 어플리케이션은 없어서는 안되는 요소다. 웹 어플리케이션은 원래 정적 페이지로부터 시작되어 자바스크립트로 시작된 동적 처리에서 마침내 대용량 처리와 영속성을 위해 프로그래밍 언어를 도입해 PHP에서 RoR에서 스프링 프레임워크 까지 그 기세가 그칠줄을 모른다. 허나 과도한 레이어링과 결과물에 도달하기까지 필요한 어마무시한 보일러플레이트를 보고있자면 생산성 면에서는 점점 역행하고 있는것이 사실이다. 이러한 상황에 힘입어 자바스크립트의 node.js, 파이썬의 flask 같은 '빨리 시작하기 좋은' 웹 프레임워크가 각광받게 된 것도 꽤 오래된 이야기다.

오늘은 그중에서도 파이썬의 FastAPI를 이야기하는 좋은 책이 있어 소개해보려고 한다. 책은 320페이지 내외로 기술서적 치고는 부담없이 읽을 수 있다. 다만 이 책이 다른 웹 프레임워크 서적과 달리 괜찮았던 점은 입문자를 생각해 백엔드 어플리케이션을 개발 할 때 꼭 알아야하는 지식과 고려해야 할 점에 대해서 이해하기 쉽게 설명하고 있는 점이다. 단순히 웹 프레임워크을 기술하는 책은 많다. 첫장부터 사상과 역사가 어떻게 됐는지 한참을 설명한다. 이런 무거운 내용들은 초심자가 보기에 어렵다. 대신 이 책은 모던 웹이라는 가벼운 주제로 백엔드 어플리케이션에 필요한 RESTful, 어플리케이션 계층 구조에 대해 짧게 설명하고 바로 FastAPI 이야기로 들어가는게 아니라 주변의 상황이 어떤지 설명하며 FastAPI가 가진 입지에 대해서 이야기한다.

이 책은 초심자를 위하기도 하지만 마치 타 프레임워크 개발자들을 위해 "우린 이런 입장이고 더 세력을 확장하고 있는데 관심있어?" 라고 하듯 FastAPI가 빠른 개발을 위해 얼마나 합리적인지 차근차근 설명한다. 이 책은 FastAPI에 관해 다루기 때문에 파이썬의 기본 문법에 대해서 다루지는 않는다. 그러나 타 언어 개발자라면 개발시 사용하는 스킬이 되는 비동기, 스레딩, 타입힌팅, 영속성, 인증, 인가는 빼놓을 수 없는데 이것을 파이썬으로 어떻게 녹여내고, FastAPI로 구현하는지 저자는 설명한다. 파이썬이라는 언어의 컨셉만큼 스팩으로 갖춰져있진 않지만 라이브러리를 통해 이것들을 구현하는 점은 흥미로웠다.

더불어 백엔드 개발 초심자를 위한 내용도 풍부하다. 앞서 타 언어 개발자들이 관심있어하는 키워드 외에도 HTTP, RESTful, 데이터베이스 기초, 파일 IO, 심지어 모킹, 스텁, 페이크가 포함된 테스트 구현에 대해서도 설명하고 있다. 그래서 처음에 이야기했던 것 처럼 이 책은 단순히 FastAPI라는 웹 프레임워크를 소개하는 책이 아니라 백엔드 어플리케이션을 개발하기 위한 전반 지식에 대해 소개하는 책이라고 했던 것이다.

책에서 소개하는 FastAPI를 구성하는 도구 또는 라이브러리를 몇개 적어본다.

- Uvicorn : 비동기 웹 서버
- Requests: 동기식 웹 클라이언트
- HTTPX: 동기/비동기식 웹클라이언트
- async, await, asyncio : 파이썬 비동기 처리
- Pydantic : 모델, 타입힌팅
- pytest: 테스트

파이썬은 인터프리터라는 특성으로 별도의 빌드나 기동시간 없이 즉시 시작 가능하다는 장점이 있다. 강타입 언어에 비해 자유로운 자료구조로 빠른 개발이 가능하다. 그러면서도 타입힌팅을 통해 설계의도와 유지보수의 용이성을 같이 가져갈 수 있다고 생각한다. 만약 백엔드 개발을 고민하고 있는 초심자가 있다면 '백엔드 개발의 개요' 정도로 강력 추천하고 싶은 책이다.


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

이번에 리뷰할 서적은 한빛미디어에서 출판된 "처음 시작하는 FastAPI" 입니다.


이책은 FastAPI를 통한 웹 애플리케이션 개발을 체계적으로 안내하는 책입니다. 
FastAPI는 파이썬 기반의 현대적인 웹 프레임워크로, 이 책은 FastAPI의 기본부터 고급 주제까지 폭넓게 다룹니다.

책의 장점:
기초부터 심화까지 포괄적인 설명: 모던 웹과 파이썬의 기초 개념부터 시작해 FastAPI의 비동기 프로그래밍, 데이터 처리, 테스트, 배포 등의 심화 주제를 체계적으로 설명합니다.
실용적인 예제: 각 장에서 제공하는 예제와 실습 문제를 통해 독자가 직접 실습하며 배운 내용을 적용할 수 있습니다.
다양한 주제: 인증 및 인가, 데이터베이스 처리, 성능 최적화 등 웹 애플리케이션 개발의 다양한 측면을 다룹니다.
비교 분석: 다른 주요 파이썬 웹 프레임워크와 FastAPI를 비교해 각 프레임워크의 장단점을 명확히 이해할 수 있습니다.

요약 : 
이 책은 크게 네 부분으로 구성되어 있습니다.

PART 1 모던 웹과 파이썬에서는 웹 서비스와 API, 동시성, 데이터 구조 등 모던 웹 개발과 파이썬의 기초 개념을 다룹니다.

PART 2 빠르게 보는 FastAPI에서는 FastAPI의 기본 구조, HTTP 요청 및 응답 처리, 비동기 프로그래밍, Pydantic을 통한 데이터 유효성 검사, 의존성 주입 등을 설명합니다.

PART 3 웹사이트 만들기에서는 실제 웹 애플리케이션을 개발하며 RESTful API 설계, 서비스 계층 구현, 데이터베이스 연결, 인증 및 인가, 테스트 등의 주제를 실습합니다.

PART 4 갤러리에서는 데이터 과학, AI, 파일 처리, 데이터 시각화, 게임 개발 등 FastAPI를 활용한 다양한 응용 분야를 소개합니다.

결론
이 책은 FastAPI를 처음 접하는 초보자부터 더 나은 웹 애플리케이션을 만들고자 하는 중급 개발자까지 폭넓은 독자층에게 유용할 것입니다. 
FastAPI를 통해 웹 애플리케이션을 빠르고 효율적으로 개발하는 방법을 배우고, 다양한 실전 예제와 실습 문제를 통해 실력을 향상시킬 수 있습니다. 
FastAPI를 처음 접하는 사람부터 고급 사용자를 위한 깊이 있는 내용을 제공하며, 특히 파이썬으로 고성능, 현대적인 웹 API를 개발하고자 하는 개발자에게 매우 유익한 자료가 될 것입니다.
전반적으로 FastAPI와 현대적인 파이썬 웹 개발에 대한 깊이 있는 이해를 제공하는 우수한 참고서라고 평가할 수 있습니다.

 

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

 

 

오래전에 프로젝트를 할 때 인터페이스 팀이 있었다. 보통은 고객에게 요청받은 화면을 분석하고 설계하고 화면 이벤트에 따른 데이터를 처리하는 웹 개발하는 팀이 대다수였지만 뭔가 형태가 조금 다른 개발을 한다고 느껴졌고 궁금하긴 했는데 나중에 인터페이스와 API 가 무엇인지 알기까지 인터페이스 개발에 대한 막연한 궁금증을 가졌었던 때가 있었다. 

 

다양한 웹 개발을 프로젝트를 하다 보니 어느 순간 인터페이스와 API의 필요성을 느끼게 되었는데. 회사 내부에서만 데이터 처리가 필요하다면 할 필요가 없었겠지만 외부 거래처나 협력회사에서 요청을 받고 데이터를 보내야 하는 경우가 생기다 보니 자연스럽게 인터페이스 개발이 필요하게 되었다. 꼭 외부와 협업이 아니더라도 내부 시스템 간에 데이터 연동이 필요한 경우도 생각보다 빈번했다. 

 

 예를 들면 협력 회사에서 제조한 제품을 가져다 판매하는 경우 AS와 설치 판매를 위해 고객 정보나 설치나 배송 상태 정보를 연동해야 하는 경우에도 효과 적일 수 있다는 생각이 들었다. 데이터를 전부 공유할 필요는 없지만 일부 핵심적인 내용에 한 해 통신이 필요한 경우 적합한 기술이라고 생각했다. 서비스 포인트 조회라든지 상태 값 업데이트 등 활용할 곳은 무궁무진한 것 같다. 

 

과거에 개인적으로 접했던 기술은 아파치 톰켓과 자바 JSP 오라클, MSSQL 환경의 인터페이스 였다면 여기서 소개하는 방식은 오픈소스 기반인 SQLite 와 리눅스 그리고 FastAPI 위주였고 불과 몇 년 안되는 시간 동안 기술의 변화가 정말 급격하구나라는 생각이 들었다. 왠지 과거의 길고 긴 소스들에 비해 코드도 짧아진 것 같고 머리를 아프게 했던 인증과 암호화 파트도 간단한 패키지를 통해 구현돼 있었다. 시간이 지날수록 코딩 환경은 간편해지고 편리해 지지만 성능은 또 개선되고 있었다. 

 

 

책을 읽다 보니 FastAPI에 대한 소개 부분에서도 급격하게 대두된 배경과 성장세를 그래프로 표현한 그림이 있었는데 얼마나 빠르게 성장하였는지 한눈에 알 수 있었다. 아무래도 다른 언어보다 성능이 느리다는 이야기가 왕왕 들리던 파이선이다 보니 Fast라는 이름이 크게 어필 한 모양이다. (아마도 우리나라 사람들은 분명 혹 할만한 이름인 것 같다. 나부터도 그랬으니까)

 

 

 

사실 웹 개발은 인증 부분과 암호화 디비 연동 부분이 핵심적인 부분인 것 같다. 그밖에 데이터 연동에 필수적이고 필요한 파일 전송이나 그래프 형태로 결과를 전송하는 방법 등 다양하게 소개되어 있었는데 전체적으로 장황하고 비대해질만한 콘텐츠를 정말 핵심적인 부분만 축약하고 간결한 소스 예제를 활용하여 빠르게 FastAPI가 무엇인지 소개했다는 인상을 받았다. 

 

 

 

지루할 수도 있는 내용이지만 중간중간 이스터에 그(https://www.google.com/teapot) 같은 재미 요소도 소개되어 있었다. 404 Not found는 유명하지만 418 나는 찻 주전자는 이 책을 통해 처음 알았다. 

 

 

 

 

그리고 마지막 생명체와 탐험가 부록을 보며 상상의 동물들은 예제를 뛰어넘은 진심이었다는 생각이 들었고 미소와 함께 책을 덮을 수 있었다. 

 

 

 

 

 

 

 

 

 

 

 

[PART 1 모던 웹과 파이썬]

 

 

 

CHAPTER 1 모던 웹

 1.1 서비스와 API

 1.2 동시성

 1.3 계층

 1.4 데이터

 1.5 정리

 

 

 

CHAPTER 2 모던 파이썬

 2.1 도구

 2.2 시작하기

 2.3 API 및 서비스

 2.4 변수

 2.5 타입 힌트

 2.6 데이터 구조

 2.7 웹 프레임워크

 2.8 정리

 

 

 

[PART 2 빠르게 보는 FastAPI]

 

 

 

CHAPTER 3 FastAPI 둘러보기

 3.1 FastAPI 소개

 3.2 FastAPI 애플리케이션

 3.3 HTTP 요청

 3.4 HTTP 응답

 3.5 자동 문서화

 3.6 정리

 

 

 

CHAPTER 4 Starlette과 비동기, 동시성

 4.1 Starlette

 4.2 동시성 유형

 4.3 FastAPI와 Async

 4.4 직접 사용하기

 4.5 쉬는 시간: 클루 저택 청소

 4.6 정리

 

 

 

CHAPTER 5 Pydantic과 타입 힌트, 모델

 5.1 타입 힌트

 5.2 데이터 그룹화

 5.3 대안

 5.4 간단한 예

 5.5 타입 유효성 검사

 5.6 값 유효성 검사

 5.7 정리

 

 

 

CHAPTER 6 의존성

 6.1 의존성이란?

 6.2 의존성 관련 문제

 6.3 의존성 주입

 6.4 FastAPI 의존성

 6.5 의존성 작성

 6.6 의존성 스코프

 6.7 정리

 

 

 

CHAPTER 7 프레임워크 비교

 7.1 Flask

 7.2 Django

 7.3 기타 웹 프레임워크 기능

 7.4 데이터베이스

 7.5 추천

 7.6 기타 파이썬 웹 프레임워크

 7.7 정리

 

 

[PART 3 웹사이트 만들기]

 

 

 

CHAPTER 8 웹 계층

 8.1 쉬는 시간: 상향식, 하향식, 양방향?

 8.2 RESTful API 설계

 8.3 파일 및 디렉터리 구조

 8.4 첫 번째 웹사이트 코드

 8.5 요청

 8.6 다중 라우터

 8.7 웹 계층 구축

 8.8 데이터 모델 정의

 8.9 스텁과 가짜 데이터

 8.10 단계별로 구현하는 공통 기능

 8.11 가짜 데이터 생성

 8.12 테스트!

 8.13 FastAPI가 자동 생성한 테스트 양식

 8.14 서비스 계층과 데이터 계층의 대화

 8.15 페이징과 정렬

 8.16 정리

 

 

 

CHAPTER 9 서비스 계층

 9.1 서비스 정의

 9.2 레이아웃

 9.3 보호

 9.4 기능

 9.5 테스트!

 9.6 웹 계층 수정

 9.7 기타 서비스 수준 고려 사항

 9.8 정리

 

 

 

CHAPTER 10 데이터 계층

 10.1 DB-API

 10.2 SQLite

 10.3 레이아웃

 10.4 데이터베이스 초기화

 10.5 서비스 계층 연결

 10.6 테스트!

 10.7 정리

 

 

 

CHAPTER 11 인증 및 인가

 11.1 인증의 필요성

 11.2 인증 방법

 11.3 글로벌 인증: 공유 비밀번호

 11.4 간단한 개인 인증

 11.5 더 멋진 개인 인증

 11.6 인가

 11.7 미들웨어

 11.8 정리

 

 

 

CHAPTER 12 테스트

 12.1 웹 API 테스트

 12.2 테스트의 종류

 12.3 테스트 대상

 12.4 pytest

 12.5 레이아웃

 12.6 단위 테스트 자동화

 12.7 통합 테스트 자동화

 12.8 리포지터리 패턴

 12.9 전체 테스트 자동화

 12.10 보안 테스트

 12.11 부하 테스트

 12.12 정리

 

 

 

CHAPTER 13 프로덕션

 13.1 배포

 13.2 HTTPS

 13.3 성능

 13.4 트러블슈팅

 13.5 정리

 

 

 

[PART 4 갤러리]

 

 

 

CHAPTER 14 데이터베이스와 데이터 과학, AI

 14.1 데이터 저장소

 14.2 관계형 데이터베이스와 SQL

 14.3 비관계형 데이터베이스

 14.4 SQL 데이터베이스의 NoSQL 기능

 14.5 데이터베이스 부하 테스트

 14.6 데이터 과학과 AI

 14.7 정리

 

 

 

CHAPTER 15 파일

 15.1 Multipart 지원

 15.2 파일 업로드

 15.3 파일 다운로드

 15.4 정적 파일 서비스

 15.5 정리

 

 

 

CHAPTER 16 양식과 템플릿

 16.1 양식

 16.2 템플릿

 16.3 정리

 

 

 

CHAPTER 17 데이터 탐색 및 시각화

 17.1 파이썬과 데이터

 17.2 PSV 텍스트 출력

 17.3 SQLite 데이터 소스 및 웹 출력

 17.4 정리

 

 

 

CHAPTER 18 게임

 18.1 파이썬 게임 패키지

 18.2 게임 로직 분리

 18.3 게임 설계

 18.4 웹 계층 1: 게임 초기화

 18.5 웹 계층 2: 게임 단계

 18.6 서비스 계층 1: 초기화

 18.7 서비스 계층 2: 점수 계산

 18.8 즐거운 테스트!

 18.9 데이터 계층: 초기화

 18.10 크립토나미콘 실행

 18.11 정리

 

 

 

APPENDIX A 더 읽을거리

 A.1 파이썬

 A.2 FastAPI

 A.3 Starlette

 A.4 Pydantic

 

 

 

APPENDIX B 생명체와 탐험가

 B.1 생명체 목록

 B.2 탐험가

 B.3 탐험가 저서

 B.4 기타 자료

 

 

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

 

 

 

저자 :빌 루바노빅

역자 :한용재 , 한바름

출간일 :2024-06-30

페이지 :324쪽

ISBN :9791169212649

물류코드 :11264

출처: https://swtraveler.tistory.com/66 [My little travel:티스토리]

python에서 API를 빌드하기 위해 웹 프레임워크가 필요합니다.
오늘은 대표적인 API 프레임워크인 FastAPI를 처음 접하시는 분들께
바이블 같은 도서를 소개하고자 본 책을 가져왔습니다!

FastAPI는 Node.js, Go와 비슷한 정도로 매우 높은 성능을 자랑하고,
사람에 의한 에러를 방지하는 동시에 직관적인 편집기로
디버깅 시간이 적다는 장점 덕분에 API 프레임워크의 선두 주자를 달리고 있습니다.

저 역시도 파이썬에서 API 호출한 경험이 많지 않아,
본 책 "처음 시작하는 FastAPI"로 학습하고자 했습니다!

한빛미디어의 다른 도서와 비슷하게, 본 책 역시
github과 도서에서 소스코드를 제공하고 있어
처음부터 끝까지 코드의 실행을 따라할 수 있습니다.

책은 크게 4부로 나뉘어져 있습니다.
사진 설명을 입력하세요.
1부는 웹과 파이썬에서 떠오르는 주제를,
2부에서는 FastAPI에 대한 소개를 자세하게 다루며,
3부에서는 FastAPI가 제공하는 도구를.
4부에서는 FastAPI가 사용되는 여러 예시를 다루고 있습니다.

사실 모던 웹과 파이썬을 다루는 1부는 FastAPI를 배우고자 하시는 분들께
직접적인 도움이 되지 않으실 수도 있습니다.

다만 API의 종류, HTTP, REST, JSON, GraphQL 등
다양한 API 형식이 익숙치 않으신 분들께서는 챕터 1의 모던 웹을,
파이썬의 환경, 서빗, 변수, 구조, 웹 프레임워크 등에 대해 알고 싶으신 분께서는
챕터 2의 모던 파이썬을 읽어보시면 전반적인 개념 이해에 도움이 되실 것 같아요.


2부에서는 FastAPI를 둘러보는 것에서부터 시작됩니다.
HTTP 기반의 API요청을 다루는 챕터 3에서는
HTTP 요청, HTTP 응답, 자동 문서화를 학습합니다.


챕터 4는 경량 프레임 워크/툴킷으로,
파이썬으로 비동기 웹 서비스를 구축할 때 사용되는
Starlette에 대해 다루고 있습니다.
이 챕터에서는 API의 동시성을 높이는 방법을 전반적으로 살핀 후,
Starlette이 함수를 처리하는 방법까지 진행됩니다.
챕터 5에서는 파이썬 패키지 Pydantic과,
타입 힌트를 사용한 데이터의 유효성 검사,
설정 관리, 모델 등을 다루고 있습니다.
특히 변수 타입 별 특징을 나타내기 위해 소스코드로 실습하는 것이
필수적인 구간이었던 것 같습니다!

챕터 6에서는 API와 의존성의 관계에 대해 학습합니다.
웹 서비스를 만들다 보면 정보가 필요한 시점에 바로 가져오지 않으면
문제가 발생하는 경우가 있는데,
이 과정에서 문제가 발생하지 않기 위하여
FastAPI는 '의존성 주입'이라는 훌륭한 기능을 지원하고 있습니다.

파이썬 웹 프레임워크에서는 Flask, Django가 인기있는 건
누구나 부정할 수 없는 이야기입니다.
챕터 7에서는 이외 프레임워크와 FastAPI와의 비교를통해
장단점을 학습할 수 있었습니다.
결론적으로, API 기반 서비스의 경우
현재 최선의 선택은 FastAPI라는 의견이..!!

3부에 들어서면서, 웹사이트 제작 단계로 넘어가게 됩니다.

웹 계층을 구축하는 내용을 다루는 챕터 8,
서비스 계층을 쌓는 챕터 9,
데이터 계층을 쌓는 챕터 10으로 이어지고 있으며
세 챕터에서는 모두 각 계층별 작성 및 수정, 테스트 단계에
대한 가이드를 담고 있습니다.

챕터 11에서는 인증 및 인가에 대해 다루고 있습니다.
프론트엔드 직무에서
무조건적으로 한 번씩 다루게 되는
인증과 인가의차이, 그리고 실제 개인 인증과의 접목,
서드파티 인증 등을 통해 보안에 대한 학습도 놓치지 않고 있습니다.

챕터 12는 제작한 웹 사이트에 대한 테스트를 다루고 있습니다.
pytest는 물론, 앞서 8~10챕터에서 진행했던
웹, 서비스, 데이터 계층 테스트를 자동화하여 단위 테스트 규모로,
나아가 통합테스트 자동화, 전체 테스트 자동화로 진행함으로써
품질을 관리하는 항목입니다.


파트 4는 IT 종사자를 위한 다양한 인포메이션을 담고 있습니다.
챕터 14는 데이터베이스와 데이터 과학, 그리고 AI를,
챕터 15는 파일 업로드 및 다운로드, 정적 파일 서비스를,


챕터 16은 양식과 템플릿,
챕터 17은 데이터 탐색 및 시각화,
챕터 18은 파이썬을 통한 게임 제작을 다루고 있는데
최근 읽어본 다양한 프레임워크 개념서를 포함하여,
IT 관련 서적의 이모저모를 다룬 챕터에서
평소 잘 다루지 않는 주제에 대한 정보를 담고 있는 것이 인상적이었습니다.
특히 파일 관련한 챕터 15, 양식과 템플릿에 관련한 챕터 16은
실무에서 필수적으로 알아야 하지만,
실제로 맞닥뜨렸을 때 찾는 것 이외에는
쉽게 정보를 얻지 못했던 것 같아 이 부분이 기억에 많이 남습니다.

파이썬의 개념부터 응용, 실전 프로젝트까지
소스코드를 통해 직접 실습으로 따라하며 배울 수 있던
웹 백엔드 개발 서적!
처음 시작하는 FastAPI였습니다~

2020 ~ 2021년 즈음에 Python 기반 Django가 거론되어 한두번 사용했었는데 비동기 처리 미지원으로 아쉬웠던 경험이 있었다. 비동기와 관련된 아쉬웠던 경험을 보완할 수 있는 프레임워크가 FastAPI라는 이야기를 들었었지만, Nest.Js와 Spring Boot를 주로 사용하다보니 따로 접할 기회가 없었는데 해당 책을 통해 FastAPI에 대해 알아볼 수 있었다. 이 책은 웹, FastAPI를 처음 접해보는 백엔드 개발자들을 위한 책이다.

이 책을 통해 파이썬, FastAPI 뿐만 아니라 기본적인 백엔드와 웹에 대해 이해할 수 있을 것이다.


이 책은 크게 3개의 파트로 나눠서 모던 웹과 파이썬 기초, FastAPI, 실제 프로젝트 구현 순으로 책 내용을 진행한다. API는 무엇인지, HTTP, Restful, GraphQL등 기본적인 키워드로 모던 웹에 대해 설명하고, 이어서 파이썬 환경에 대해서 설명하기 때문에 웹을 처음 접하는 사람들도 이해하기 쉽다. FastAPI에 대해서도 기본적인 개념부터 설명하고, 동시성, 비동기, 의존성등 중요한 포인트들을 잡아서 이해하기 쉽게 설명해준다. 마지막으로 실제 프로젝트를 구현하는 부분에서는 서비스 계층별로 챕터를 다루기 때문에 실제 프로젝트를 구현하면서 필요한 기술/이론등을 접해볼 수 있다.

기본 개념부터 차근차근 설명해주고, 마지막 파트에서 실습하는 방식으로 진행하기 때문에 이해하기 쉬운 대신, 개념에 대해 더 깊게 이해하고 싶다면 추가적인 학습이 필요하다.


한줄평 : 기초부터 하나씩 차근차근 배우는 FastAPI

이런 분들께 추천 :

  • 웹 개발을 처음 접하시는 분
  • FastAPI에 대해 알아보고 싶으신 분
  • 파이썬으로 간단하게 뭔가 해보고 싶은데 무엇을 해야할지 모르겠는 분

  예전의 api는 지금에 비해 훨씬 간단했다. 기술이 발달함에 따라 점점 더 복잡해졌고 그에 따른 업무도 분류되어 갔다. 장고(Djanggo)처럼 모든 것을 다 담은 종합선물세트 같은 프레임워크도 있지만 여전히 속도는 중요한 요소다. FastAPI는 간단한 문법으로 빠른 웹서비스를 만들기 위해 나타났다. 현재 Flask를 넘는 인기를 구가하고 있다.

  FastAPI는 최근 가장 핫하다고 할 수 있는 파이썬의 웹 프레임워크다. 간단한 문법 체계 덕분일까. 책 또한 다른 책들에 비해 얇다고 할 수 있다. 책이 파이썬 문법에 대해 다루지 않기 때문에 더 그런 면도 있지만 본격적으로 프레임 워크를 한다면 파이썬은 기본적으로 다룰 수 있다는 전제가 맞는 것 같다.

  책은 코드로 가득 차 있기 때문에 따라 해 볼 수 있다. FastAPI를 처음 접하는 사람들도 충분히 접근이 가능할 것 같다. 생각보다 간단하게 착착 만들어진다는 것이 좋았다. FastAPI를 다루는 것도 좋았지만 실제로 여러 가지를 만들어 볼 수 있는 것도 좋았다. 더불어 마지막에는 다른 프레임워크에 대해서 설명해 준다. (독특한 것은 게임에 사용되는 이름 같은 것까지 제공해 주는 것이 재밌었다).

  웹 서비스에 대해 관심이 있고 뭔가 빠르게 한번 만들어 보고 싶다면 꽤 즐거운 시간이 될 것 같다. 

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

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

 

개발 업무가 소강상태? 에 있다.

바꿔말하면 잡무? 가 늘어났다...진득하게 코드좀 보고 싶은데...

 

조만간 웹 프론트 개발 업무를 좀 해야 할거 같아 웹쪽 책을 신청 하고 싶었는데 무조건 두 권 이상 선택하도록 변경된듯 하다.

 

각설하고...또 파이썬이다.

여러 대학에서도 교양이나 프로그래밍 기초로 파이썬을 가르치고 있고...다양한 분야에서 많이 사용되고 있어 확실히 주류로 자리 잡은 듯 하다.

처음 접했던 2005년 즈음에는 이걸 누가 쓸까? 싶었는데....ㅎㅎ

 

책은 4개 파트 18개 챕터로 나누어져 있고 파이썬의 문법 같은 내용은 전혀 다루고 있지 않다.

어느정도 프로그래밍 경험이 있고 파이썬을 알고 있는 개발자를 위한 책이다.

 

파트1은 모던 웹과 파이썬에 관한 내용으로 현재 웹 서비스와 API에서 많이 다루는 것들, 모던 파이썬에 관한 얘기와 기존의 파이썬 웹프레임 워크, FastAPI 프레임워크 등에 대한 내용을 다루고 있다.

전반적으로 현재의 추세? 에 관한 내용이라 할 수 있을 것 같다.

 

파트2는 FastAPI에 대해서 본격적으로 다루기 시작 한다.

FastAPI소개를 시작으로 Starlette, 비동기, 동시성, Pydantic과 타입 힌트, 모델, 의존성에 대한 내용으로 이어지며,

마지막엔 파이썬 기반 다른 웹 프레임워크와 비교하는 내용을 다루고 있다.

 

파트3 부터 본격적인 웹사이트 만들기가 시작 된다.

웹 계층, 서비스 계층, 데이터 계층을 구현하기 위한 내용을 각각의 챕터에서 설명하고 있다.

이후에는 인증, 인가에 관련한 내용을 다루는데 예전 스프링 부트에서 인증관련하여 조금 애를 먹은 적이 있어 이 챕터는 후에 다시 천천히 내용을 보면 좋을 것 같다는 생각이 든다.

 

그 뒤로는 다양한 테스트에 관한 내용과 배포에 관한 내용으로 파트3을 마무리 하고 있다.

 

파트4는 주로 데이터에 관한 내용으로 이루어져 있는듯 하다.

데이터베이스를 이용하는 방법, 파일을 처리 하는 방법, 양식과 템플릿(폼) 등을 다루는 방법을 설명하고 있다.

이어서 데이터의 탐색, 시각화에 관한 내용을 다루는데 시각화 관련하여 좀 더 많은 내용이 있었으면 좋았을것 같다.

(개인적으로 시각화관련 구현 할 일은 없지만 팀 내에서 많이 하는 업무중에 하나라...)

마지막 챕터는 게임을 통한 웹 엔드포인트에서 사용자와 상호 작용하는 내용을 다루고 있다.

 

책이 컬러풀하게 화려하지 않지만 설명과 코드가 명확하게 구분되고 눈에 잘 들어오는 편집 형태라 좋았다.

(개인적으로 흑백, 회색 만을 이용한 깔끔한 편집 상태가 보기가 가장 좋은듯 하다.)

 

개인적으로 웹기반 API 서비스를 개발할 때는 자바/스프링 기반으로 해 왔는데, 현재는 대부분 주변 개발자들은 자바스크립트 기반으로 개발을 가장 많이 하고 있지 않나 하는 생각이 든다.

개인적으로 자바스크립트를 좋아하지 않아서 꺼리는 부분이 있었는데 파이썬의 FastAPI는 나에게 자바/스프링 기반 개발에서 변화를 줄 수 있는 좋은 대안이 되는듯 하다.

그리고 이 책은 이런 나와 같은 개발자들에게 많은 도움을 줄 수 있는 책이 분명 한듯 하다.

 

오랜만에 기술서적이라...내가 공부가 된걸 빼고나니 뭔가 할 말이 많지 않은 책인듯도 하다.

본 서적은 파이썬의 강점인 데이터 처리 및 머신러닝 생태계와 웹 개발의 유연한 통합을 강조합니다. FastAPI를 통해 로컬에서 개발된 애플리케이션을 글로벌 스케일로 배포하는 과정을 상세히 다룹니다. 초보자부터 경험 있는 개발자까지, 이 책은 FastAPI를 활용한 웹 서비스 개발의 전 과정을 다루며, 실제 서비스 런칭을 위한 실용적인 가이드를 제공합니다. 다양한 예제와 실전 팁을 통해 독자들은 현대적인 웹 개발 기술을 효과적으로 습득할 수 있기에 추천합니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
처음 시작하는 FastAPI
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
처음 시작하는 FastAPI
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
처음 시작하는 FastAPI
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1