가장 빠른 풀스택을 위한 Flask & FastAPI (한 권으로 정리하는 파이썬 백엔드)

가장 빠른 풀스택을 위한 Flask & FastAPI (한 권으로 정리하는 파이썬 백엔드)

$34.75
Description
가장 빠른 웹 개발과 풀스택을 위한 Flask와 FastAPI
파이썬 기반 웹 프레임워크는 자바(Java)로의 복잡한 구현에 버금가는 좋은 성능의 결과물을 도출하면서도 개발 기간을 획기적으로 단축시킬 수 있습니다. 따라서 세계적으로 인기를 누린 지는 이미 오래되었고 국내에서의 니즈도 점차 활발해지고 있습니다. 또한 파이썬 자체가 꾸준히 개선되며 생산성과 성능, 두 마리 토끼를 잡을 수 있는 기술로 대두되고 있습니다.
플라스크(Flask), FastAPI와 함께라면 이전보다 빠르고, 가볍고, 세련된 웹과 풀스택을 기대해도 좋습니다. 이 책을 통해 방대한 예시와 실전에서 바로 활용할 수 있는 프로젝트를 직접 경험해보고, 배우기 쉽고 현대적인 웹에 적합한 파이썬 기반 웹 프레임워크 기술을 자신만의 무기로 갖춰보세요.
저자

DaveLee

잔재미코딩DaveLee
외국어고등학교를졸업하고일어일문학을전공한비전공자로서열정을가지고IT분야에몰두해좌충우돌경험을쌓은후연세대학교컴퓨터공학과석사과정을마쳤습니다.데이터관련분야를포함해여러기술을접하며쿠팡검색서비스,삼성페이등개발프로젝트에참여했고기획과비즈니스를이해하고자프로덕트매니저로도경험을쌓았습니다.
비전공자로서다양한IT분야를접하다보니실질적으로관련기술을신속하게익히기에는자료가부족하다고느꼈고,쉽고빠르게학습할수있는온라인강의를직접제작하게되었습니다.현재는현업과병행하며'잔재미코딩DaveLee'라는이름으로강의활동을하고있습니다.

現)노이먼스&튜링스CTO
前)쿠팡수석개발매니저&프로덕트매니저
삼성전자개발매니저

잔재미코딩fun-coding.org

목차

제1장플라스크와FastAPI이해하기
_1.1웹서비스의역사와동향
_1.2마이크로프레임워크란?
_1.3플라스크란무엇인가?
_1.4FastAPI란무엇인가?

제2장플라스크시작하기
_2.1개발환경구축
__2.1.1아나콘다
__2.1.2비주얼스튜디오코드
__2.1.3curl명령어
_2.2안녕,플라스크!
__2.2.1Hello,World!애플리케이션만들기
__2.2.2flaskrun상세사용법
__2.2.3flaskrun의추가옵션
__2.2.4플라스크애플리케이션접속주소
_2.3라우팅
__2.3.1플라스크에서의라우팅
__2.3.2URL변수
__2.3.3HTTP메서드
__2.3.4URL빌더
__2.3.5타입힌트를활용한라우팅
_2.4요청과응답
__2.4.1플라스크에서의요청처리
__2.4.2플라스크에서의응답처리
__2.4.3JSON이란무엇인가?
__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.2Flask-Migrate
_3.2인증과세션
__3.2.1인증과세션이란?
__3.2.2플라스크에서의인증과세션
__3.2.3Flask-Login을사용한인증
__3.2.4예제로이해하는인증
__3.2.5세션을이용한상태관리
__3.2.6예제로이해하는세션
_3.3RESTfulAPI
__3.3.1HTTP메서드이해하기
__3.3.2RESTfulAPI구현하기
_3.4캐싱
__3.4.1캐싱이란무엇인가?
__3.4.2캐싱구현하기
_3.5배포
__3.5.1웹서버와SGI
__3.5.2WSGI를지원하는플라스크
__3.5.3Gunicorn으로플라스크애플리케이션배포하기
_3.6테스팅
__3.6.1플라스크에서의테스팅
__3.6.2테스트실행하기
__3.6.3unittest의다양한기능
_3.7플라스크성능개선팁
__3.7.1데이터베이스쿼리최적화
__3.7.2정적파일최적화및캐싱의진화된전략
__3.7.3로깅을활용한효과적인디버깅
__3.7.4고도화된코드최적화기법

제4장플라스크프로젝트
_4.1첫번째코드:플라스크애플리케이션생성
__4.1.1플라스크애플리케이션생성및flaskrun설정
__4.1.2flaskrun을사용한애플리케이션실행
_4.2두번째코드:템플릿사용과라우팅확장
__4.2.1HTML템플릿생성
__4.2.2플라스크애플리케이션에서템플릿렌더링
__4.2.3추가적인라우팅설정
__4.2.4애플리케이션실행및테스트
_4.3세번째코드:데이터베이스연동및CRUD구현
__4.3.1데이터베이스연동및모델정의
__4.3.2CRUD기능구현
__4.3.3CRUD기능테스트
_4.4네번째코드:사용자인증
__4.4.1Flask-Login을활용한사용자인증구현
__4.4.2사용자인증테스트
_4.5다섯번째코드:사용자별메모관리
__4.5.1사용자별메모관리구현
__4.5.2memos.html작성
__4.5.3메모관리기능테스트
_4.6여섯번째코드:웹페이지개선
__4.6.1home.html작성
__4.6.2memos.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.2MVC패턴적용
플라스크를마치며

제5장FastAPI시작하기
_5.1안녕,FastAPI!
__5.1.1Hello,World!API만들기
__5.1.2자동문서화
_5.2라우팅
__5.2.1기본라우팅
__5.2.2경로매개변수
__5.2.3쿼리매개변수
__5.2.4curl을사용한테스트
_5.3타입힌트
__5.3.1기본타입힌트
__5.3.2고급타입힌트
__5.3.3타입힌트로사용가능한데이터타입
_5.4HTTP메서드
__5.4.1FastAPI코드작성
__5.4.2curl을사용한테스트
_5.5Pydantic
__5.5.1Pydantic모델적용
__5.5.2Pydantic기본문법
__5.5.3중첩된모델
__5.5.4List와Union
_5.6FastAPI응답모델
__5.6.1기본응답모델
__5.6.2Generic응답모델
__5.6.3Union응답모델
__5.6.4List응답모델
_5.7FastAPI응답클래스
__5.7.1HTMLResponse예제코드
__5.7.2PlainTextResponse예제코드
__5.7.3RedirectResponse예제코드
_5.8요청
__5.8.1FastAPI에서쿼리매개변수다루기
__5.8.2Query클래스의주요옵션
__5.8.3요청바디
_5.9예외처리
__5.9.1기본예외처리
__5.9.2HTTPException클래스
__5.9.3HTTP헤더

제6장FastAPI와풀스택
_6.1템플릿
__6.1.1FastAPI설정
__6.1.2템플릿렌더링
__6.1.3username을요청에서받기
__6.1.4FastAPI와Jinja2의기본문법
__6.1.5FastAPI와Jinja2의고급문법
_6.2정적파일
__6.2.1FastAPI에서정적파일다루기
__6.2.2정적파일과웹페이지구현
__6.2.3기존웹페이지통합
_6.3APIRouter
__6.3.1다양한사용법
__6.3.2미들웨어설정
__6.3.3APIRouter와의존성함수
__6.3.4APIRouter와라우트설정의상속
__6.3.5APIRouter와플라스크블루프린트의비교
_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.1FastAPI와MySQL연동
__7.1.2SQLAlchemy와CRUD
_7.2인증과세션
__7.2.1기본인증메커니즘이해하기
__7.2.2고급인증1:JWT
__7.2.3고급인증2:세션
_7.3비동기처리
_7.4파일업로드
_7.5캐싱과미들웨어
__7.5.1FastAPI캐싱
__7.5.2FastAPI주요미들웨어
_7.6배포
__7.6.1Uvicorn설치및실행
__7.6.2도커로FastAPI애플리케이션배포하기
_7.7FastAPI성능개선팁
__7.7.1비동기프로그래밍활용
__7.7.2캐싱활용
__7.7.3데이터베이스커넥션풀링

제8장플라스크와FastAPI문법비교
_8.1라우팅
__8.1.1플라스크의라우팅
__8.1.2FastAPI의라우팅
_8.2타입힌팅
__8.2.1플라스크의타입힌팅
__8.2.2FastAPI의타입힌팅
__8.2.3주요차이점
_8.3요청과응답
__8.3.1플라스크의요청과응답
__8.3.2FastAPI의요청과응답
__8.3.3주요차이점
_8.4데이터베이스
__8.4.1플라스크의PyMySQL과SQLAlchemy
__8.4.2FastAPI의PyMySQL과SQLAlchemy
__8.4.3주요차이점
_8.5세션관리
__8.5.1플라스크의세션관리
__8.5.2FastAPI의세션관리
__8.5.3주요차이점
_8.6비동기처리
__8.6.1플라스크의비동기처리
__8.6.2FastAPI의비동기처리

제9장FastAPI프로젝트
_9.1첫번째코드:FastAPI애플리케이션생성
__9.1.1FastAPI설치및프로젝트구조설정
__9.1.2FastAPI애플리케이션생성및Uvicorn설정
__9.1.3Uvicorn을사용한애플리케이션실행
_9.2두번째코드:Jinja2템플릿사용과라우팅확장
__9.2.1HTML템플릿생성및Jinja2설치
__9.2.2FastAPI애플리케이션에서템플릿렌더링
__9.2.3추가적인라우팅설정
__9.2.4애플리케이션실행및테스트
_9.3세번째코드:데이터베이스연동및CRUD구현
__9.3.1데이터베이스연동및모델정의
__9.3.2CRUD기능구현
__9.3.3CRUD기능테스트
_9.4네번째코드:사용자인증
__9.4.1MySQL을연동한사용자인증구현
__9.4.2사용자인증테스트
_9.5다섯번째코드:사용자별메모관리
__9.5.1사용자별메모관리구현
__9.5.2memos.html작성
__9.5.3메모관리기능테스트
_9.6여섯번째코드:웹페이지개선
__9.6.1home.html작성
__9.6.2memos.html작

출판사 서평

잔재미코딩과함께하는
파이썬웹개발과풀스택의대단한즐거움

벨저크(Werkzeug)툴킷과진자2(Jinja2)템플릿엔진기반의웹프레임워크플라스크는파이썬기반웹프레임워크중장고(Django)와양대산맥을이룹니다.플라스크는장고보다도직관적이며단순하고자유도가높아파이썬이친숙하다면쉽게학습할수있고,한번익숙해지면빠른속도로좋은퀄리티의서비스를개발할수있습니다.
스타레테(Starlette)를기반으로웹요청을처리하며파이단틱(Pydantic)라이브러리로데이터검증과설정을하는FastAPI는비동기처리에최적화되어있는파이썬기반웹프레임워크입니다.플라스크나장고보다빠르고심지어Go언어와유사한속도를자랑하는FastAPI는특히I/O바운드작업에서뛰어난성능을보이며타입제약기능을제공해보안성도좋습니다.
다양한기술실무및주니어양성경험으로충분한실력과노하우를쌓은저자와함께현대적인웹에적합한파이썬기반웹프레임워크기술을차곡차곡쌓아보세요.

이책이필요한독자
-파이썬을활용한백엔드에관심있는분
-웹애플리케이션개발을위해빠르게기술을습득해야하는분
-파이썬기반웹개발의다양한실전프로젝트를접해보고싶은주니어
-다른프레임워크에서플라스크나FastAPI로의전환을고려하는개발자