상세 컨텐츠

본문 제목

가장 빠른 풀스택을 위한 Flask & FastAPI

새로 나온 책

by 비제이퍼블릭 2024. 5. 21. 14:05

본문

제목 가장 빠른 풀스택을 위한 Flask & FastAPI

 

부제 한 권으로 정리하는 파이썬 백엔드

저자 Dave Lee

출판사 비제이퍼블릭

출간/배본가능일 20240521

정가 33,000

페이지 544

판형 173*230

ISBN 979-11-6592-278-8 (93000)

 

 

관련분류카테고리 분류

 

  • 국내도서 > IT 모바일 > 프로그래밍 언어 > 파이썬
  • 국내도서 > IT 모바일 > 컴퓨터 공학 > 자료구조/알고리즘
  • 국내도서 > IT 모바일 > 웹사이트 > HTML/JavaScript/CSS/jQuery
  • 국내도서 > IT 모바일 > 웹사이트 > 블로그/홈페이지 만들기
  • 국내도서 > IT 모바일 > 프로그래밍 언어 > 프로그래밍 교육
  • 국내도서 > 컴퓨터/모바일 > 웹디자인/홈페이지 > HTML/JavaScript
  • 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 파이썬
  • 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 자료구조/알고리즘
  • 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 프로그래밍 기초/개발 방법론
  • 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 프로그래밍 언어 기타
  • 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 웹 서비스/웹 프로그래밍
  • 국내도서 > 컴퓨터/IT > 프로그래밍 언어 > Python(파이썬)
  • 국내도서 > 컴퓨터/IT > 웹프로그래밍 > 웹프로그래밍일반
  • 국내도서 > 컴퓨터/IT > 대학교재
  • 국내도서 > 대학교재 > 컴퓨터

 

책 소개

 

가장 빠른 웹 개발과 풀스택을 위한 Flask FastAPI

파이썬 기반 웹 프레임워크는 자바(Java)로의 복잡한 구현에 버금가는 좋은 성능의 결과물을 도출하면서도 개발 기간을 획기적으로 단축시킬 수 있습니다. 따라서 세계적으로 인기를 누린 지는 이미 오래되었고 국내에서의 니즈도 점차 활발해지고 있습니다. 또한 파이썬 자체가 꾸준히 개선되며 생산성과 성능, 두 마리 토끼를 잡을 수 있는 기술로 대두되고 있습니다.

플라스크(Flask), FastAPI와 함께라면 이전보다 빠르고, 가볍고, 세련된 웹과 풀스택을 기대해도 좋습니다. 이 책을 통해 방대한 예시와 실전에서 바로 활용할 수 있는 프로젝트를 직접 경험해보고, 배우기 쉽고 현대적인 웹에 적합한 파이썬 기반 웹 프레임워크 기술을 자신만의 무기로 갖춰보세요.

 

목차

1장 플라스크와 FastAPI 이해하기

_1.1 웹 서비스의 역사와 동향

_1.2 마이크로 프레임워크란?

_1.3 플라스크란 무엇인가?

_1.4 FastAPI란 무엇인가?

          

2장 플라스크 시작하기

_2.1 개발 환경 구축

__2.1.1 아나콘다

__2.1.2 비주얼 스튜디오 코드

__2.1.3 curl 명령어

_2.2 안녕, 플라스크!

__2.2.1 Hello, World! 애플리케이션 만들기

__2.2.2 flask run 상세 사용법

__2.2.3 flask run의 추가 옵션

__2.2.4 플라스크 애플리케이션 접속 주소

_2.3 라우팅

__2.3.1 플라스크에서의 라우팅

__2.3.2 URL 변수

__2.3.3 HTTP 메서드

__2.3.4 URL 빌더

__2.3.5 타입 힌트를 활용한 라우팅

_2.4 요청과 응답

__2.4.1 플라스크에서의 요청 처리

__2.4.2 플라스크에서의 응답 처리

__2.4.3 JSON이란 무엇인가?

__2.4.4 상태 코드와 헤더 설정

_2.5 템플릿

__2.5.1 템플릿 기본 사용법

__2.5.2 변수와 제어문

__2.5.3 필터

__2.5.4 반복문

__2.5.5 매크로

__2.5.6 템플릿 상속

_2.6 정적 파일

__2.6.1 플라스크에서 정적 파일 다루기

__2.6.2 정적 파일과 웹페이지 구현

__2.6.3 기존 웹페이지 통합

_2.7 블루프린트

__2.7.1 왜 블루프린트가 필요한가?

__2.7.2 블루프린트 기본 사용법

__2.7.3 애플리케이션 구조 모듈화하기

_2.8 세션과 쿠키

__2.8.1 세션과 쿠키의 필요성

__2.8.2 플라스크에서의 세션 사용법

__2.8.3 플라스크에서의 쿠키 사용법

_2.9 로깅

__2.9.1 왜 로깅이 필요한가?

__2.9.2 로깅 기본 사용법

          

3장 플라스크 확장과 성능 개선

_3.1 데이터베이스

__3.1.1 플라스크와 MySQL 연동

__3.1.2 Flask-Migrate

_3.2 인증과 세션

__3.2.1 인증과 세션이란?

__3.2.2 플라스크에서의 인증과 세션

__3.2.3 Flask-Login을 사용한 인증

__3.2.4 예제로 이해하는 인증

__3.2.5 세션을 이용한 상태 관리

__3.2.6 예제로 이해하는 세션

_3.3 RESTful API

__3.3.1 HTTP 메서드 이해하기

__3.3.2 RESTful API 구현하기

_3.4 캐싱

__3.4.1 캐싱이란 무엇인가?

__3.4.2 캐싱 구현하기

_3.5 배포

__3.5.1 웹 서버와 SGI

__3.5.2 WSGI를 지원하는 플라스크

__3.5.3 Gunicorn으로 플라스크 애플리케이션 배포하기

_3.6 테스팅

__3.6.1 플라스크에서의 테스팅

__3.6.2 테스트 실행하기

__3.6.3 unittest의 다양한 기능

_3.7 플라스크 성능 개선 팁

__3.7.1 데이터베이스 쿼리 최적화

__3.7.2 정적 파일 최적화 및 캐싱의 진화된 전략

__3.7.3 로깅을 활용한 효과적인 디버깅

__3.7.4 고도화된 코드 최적화 기법

          

4장 플라스크 프로젝트

_4.1 첫 번째 코드: 플라스크 애플리케이션 생성

__4.1.1 플라스크 애플리케이션 생성 및 flask run 설정

__4.1.2 flask run을 사용한 애플리케이션 실행

_4.2 두 번째 코드: 템플릿 사용과 라우팅 확장

__4.2.1 HTML 템플릿 생성

__4.2.2 플라스크 애플리케이션에서 템플릿 렌더링

__4.2.3 추가적인 라우팅 설정

__4.2.4 애플리케이션 실행 및 테스트

_4.3 세 번째 코드: 데이터베이스 연동 및 CRUD 구현

__4.3.1 데이터베이스 연동 및 모델 정의

__4.3.2 CRUD 기능 구현

__4.3.3 CRUD 기능 테스트

_4.4 네 번째 코드: 사용자 인증

__4.4.1 Flask-Login을 활용한 사용자 인증 구현

__4.4.2 사용자 인증 테스트

_4.5 다섯 번째 코드: 사용자별 메모 관리

__4.5.1 사용자별 메모 관리 구현

__4.5.2 memos.html 작성

__4.5.3 메모 관리 기능 테스트

_4.6 여섯 번째 코드: 웹페이지 개선

__4.6.1 home.html 작성

__4.6.2 memos.html 작성

__4.6.3 테스트

_4.7 일곱 번째 코드: 사용자 편의성 향상

__4.7.1 로그인 기능 개선

__4.7.2 회원가입 기능 개선

__4.7.3 프런트엔드 페이지 수정

__4.7.4 로그아웃 기능 개선

__4.7.5 테스트

_4.8 여덟 번째 코드: MVC 패턴 적용

__4.8.1 현재 app.py 파일 구조

__4.8.2 MVC 패턴 적용

플라스크를 마치며

 

5 FastAPI 시작하기

_5.1 안녕, FastAPI!

__5.1.1 Hello, World! API 만들기

__5.1.2 자동 문서화

_5.2 라우팅

__5.2.1 기본 라우팅

__5.2.2 경로 매개변수

__5.2.3 쿼리 매개변수

__5.2.4 curl을 사용한 테스트

_5.3 타입 힌트

__5.3.1 기본 타입 힌트

__5.3.2 고급 타입 힌트

__5.3.3 타입 힌트로 사용 가능한 데이터 타입

_5.4 HTTP 메서드

__5.4.1 FastAPI 코드 작성

__5.4.2 curl을 사용한 테스트

_5.5 Pydantic

__5.5.1 Pydantic 모델 적용

__5.5.2 Pydantic 기본 문법

__5.5.3 중첩된 모델

__5.5.4 List Union

_5.6 FastAPI 응답 모델

__5.6.1 기본 응답 모델

__5.6.2 Generic 응답 모델

__5.6.3 Union 응답 모델

__5.6.4 List 응답 모델

_5.7 FastAPI 응답 클래스

__5.7.1 HTMLResponse 예제 코드

__5.7.2 PlainTextResponse 예제 코드

__5.7.3 RedirectResponse 예제 코드

_5.8 요청

__5.8.1 FastAPI에서 쿼리 매개변수 다루기

__5.8.2 Query 클래스의 주요 옵션

__5.8.3 요청 바디

_5.9 예외 처리

__5.9.1 기본 예외 처리

__5.9.2 HTTPException 클래스

__5.9.3 HTTP 헤더

          

6 FastAPI와 풀스택

_6.1 템플릿

__6.1.1 FastAPI 설정

__6.1.2 템플릿 렌더링

__6.1.3 username을 요청에서 받기

__6.1.4 FastAPI Jinja2의 기본 문법

__6.1.5 FastAPI Jinja2의 고급 문법

_6.2 정적 파일

__6.2.1 FastAPI에서 정적 파일 다루기

__6.2.2 정적 파일과 웹페이지 구현

__6.2.3 기존 웹페이지 통합

_6.3 APIRouter

__6.3.1 다양한 사용법

__6.3.2 미들웨어 설정

__6.3.3 APIRouter와 의존성 함수

__6.3.4 APIRouter와 라우트 설정의 상속

__6.3.5 APIRouter와 플라스크 블루프린트의 비교

_6.4 쿼리 매개변수와 경로 매개변수

__6.4.1 쿼리 매개변수

__6.4.2 경로 매개변수

__6.4.3 타입 지정과 경로 매개변수 연산자

_6.5 백그라운드 태스크

_6.6 스트리밍 응답

_6.7 웹소켓

__6.7.1 웹소켓 기본 사용법

__6.7.2 웹소켓 주요 메서드

          

7 FastAPI 확장과 성능 개선

_7.1 데이터베이스와 ORM

__7.1.1 FastAPI MySQL 연동

__7.1.2 SQLAlchemy CRUD

_7.2 인증과 세션

__7.2.1 기본 인증 메커니즘 이해하기

__7.2.2 고급 인증1: JWT

__7.2.3 고급 인증2: 세션

_7.3 비동기 처리

_7.4 파일 업로드

_7.5 캐싱과 미들웨어

__7.5.1 FastAPI 캐싱

__7.5.2 FastAPI 주요 미들웨어

_7.6 배포

__7.6.1 Uvicorn 설치 및 실행

__7.6.2 도커로 FastAPI 애플리케이션 배포하기

_7.7 FastAPI 성능 개선 팁

__7.7.1 비동기 프로그래밍 활용

__7.7.2 캐싱 활용

__7.7.3 데이터베이스 커넥션 풀링

          

8장 플라스크와 FastAPI 문법 비교

_8.1 라우팅

__8.1.1 플라스크의 라우팅

__8.1.2 FastAPI의 라우팅

_8.2 타입 힌팅

__8.2.1 플라스크의 타입 힌팅

__8.2.2 FastAPI의 타입 힌팅

__8.2.3 주요 차이점

_8.3 요청과 응답

__8.3.1 플라스크의 요청과 응답

__8.3.2 FastAPI의 요청과 응답

__8.3.3 주요 차이점

_8.4 데이터베이스

__8.4.1 플라스크의 PyMySQL SQLAlchemy

__8.4.2 FastAPI PyMySQL SQLAlchemy

__8.4.3 주요 차이점

_8.5 세션 관리

__8.5.1 플라스크의 세션 관리

__8.5.2 FastAPI의 세션 관리

__8.5.3 주요 차이점

_8.6 비동기 처리

__8.6.1 플라스크의 비동기 처리

__8.6.2 FastAPI의 비동기 처리

          

9 FastAPI 프로젝트

_9.1 첫 번째 코드: FastAPI 애플리케이션 생성

__9.1.1 FastAPI 설치 및 프로젝트 구조 설정

__9.1.2 FastAPI 애플리케이션 생성 및 Uvicorn 설정

__9.1.3 Uvicorn을 사용한 애플리케이션 실행

_9.2 두 번째 코드: Jinja2 템플릿 사용과 라우팅 확장

__9.2.1 HTML 템플릿 생성 및 Jinja2 설치

__9.2.2 FastAPI 애플리케이션에서 템플릿 렌더링

__9.2.3 추가적인 라우팅 설정

__9.2.4 애플리케이션 실행 및 테스트

_9.3 세 번째 코드: 데이터베이스 연동 및 CRUD 구현

__9.3.1 데이터베이스 연동 및 모델 정의

__9.3.2 CRUD 기능 구현

__9.3.3 CRUD 기능 테스트

_9.4 네 번째 코드: 사용자 인증

__9.4.1 MySQL을 연동한 사용자 인증 구현

__9.4.2 사용자 인증 테스트

_9.5 다섯 번째 코드: 사용자별 메모 관리

__9.5.1 사용자별 메모 관리 구현

__9.5.2 memos.html 작성

__9.5.3 메모 관리 기능 테스트

_9.6 여섯 번째 코드: 웹페이지 개선

__9.6.1 home.html 작성

__9.6.2 memos.html 작성

__9.6.3 테스트

_9.7 일곱 번째 코드: 마무리

__9.7.1 프런트엔드 페이지 개선

__9.7.2 예외 케이스 보완

__9.7.3 테스트

_9.8 여덟 번째 코드: MVC 패턴 적용

__9.8.1 MVC 패턴에 따른 파일 구조 및 역할

__9.8.2 MVC 패턴 적용

FastAPI를 마치며

 

 

저자 소개

잔재미코딩 Dave Lee

외국어고등학교를 졸업하고 일어일문학을 전공한 비전공자로서 열정을 가지고 IT 분야에 몰두해 좌충우돌 경험을 쌓은 후 연세대학교 컴퓨터공학과 석사 과정을 마쳤습니다. 데이터 관련 분야를 포함해 여러 기술을 접하며 쿠팡 검색 서비스, 삼성페이 등 개발 프로젝트에 참여했고 기획과 비즈니스를 이해하고자 프로덕트 매니저로도 경험을 쌓았습니다.

비전공자로서 다양한 IT 분야를 접하다 보니 실질적으로 관련 기술을 신속하게 익히기에는 자료가 부족하다고 느꼈고, 쉽고 빠르게 학습할 수 있는 온라인 강의를 직접 제작하게 되었습니다. 현재는 현업과 병행하며 '잔재미코딩 Dave Lee'라는 이름으로 강의 활동을 하고 있습니다.

 

잔재미코딩 fun-coding.org

)  노이먼스&튜링스 CTO

)  쿠팡 수석 개발 매니저&프로덕트 매니저

       삼성전자 개발 매니저

 

 

출판사 리뷰

잔재미코딩과 함께 하는

파이썬 웹 개발과 풀스택의 대단한 즐거움

벨저크(Werkzeug) 툴킷과 진자2(Jinja2) 템플릿 엔진 기반의 웹 프레임워크 플라스크는 파이썬 기반 웹 프레임워크 중 장고(Django)와 양대 산맥을 이룹니다. 플라스크는 장고보다도 직관적이며 단순하고 자유도가 높아 파이썬이 친숙하다면 쉽게 학습할 수 있고, 한 번 익숙해지면 빠른 속도로 좋은 퀄리티의 서비스를 개발할 수 있습니다.

스타레테(Starlette)를 기반으로 웹 요청을 처리하며 파이단틱(Pydantic) 라이브러리로 데이터 검증과 설정을 하는 FastAPI는 비동기 처리에 최적화되어 있는 파이썬 기반 웹 프레임워크입니다. 플라스크나 장고보다 빠르고 심지어 Go 언어와 유사한 속도를 자랑하는 FastAPI는 특히 I/O 바운드 작업에서 뛰어난 성능을 보이며 타입 제약 기능을 제공해 보안성도 좋습니다.

다양한 기술 실무 및 주니어 양성 경험으로 충분한 실력과 노하우를 쌓은 저자와 함께 현대적인 웹에 적합한 파이썬 기반 웹 프레임워크 기술을 차곡차곡 쌓아보세요.

 

이 책이 필요한 독자

- 파이썬을 활용한 백엔드에 관심 있는 분

- 웹 애플리케이션 개발을 위해 빠르게 기술을 습득해야 하는 분

- 파이썬 기반 웹 개발의 다양한 실전 프로젝트를 접해보고 싶은 주니어

- 다른 프레임워크에서 플라스크나 FastAPI로의 전환을 고려하는 개발자

 

 

 

 

'새로 나온 책' 카테고리의 다른 글

최고의 프로덕트는 무엇이 다른가  (4) 2024.05.28
줄리아 프로그래밍  (0) 2024.04.30
창작자를 위한 옵시디언 마스터북  (2) 2024.04.17

관련글 더보기

댓글 영역