Description
파이썬 개발자들에게 가장 인기있는 웹 프레임워크 플라스크(Flask)를 이용한 웹 앱 개발의 기본과 핵심!
간단한 앱 만들기부터 머신러닝을 앱에 적용하는 방법까지, 기초부터 실무 적용을 한 번에!
파이썬으로 간단히 웹 앱 개발을 시작하고 싶은 분, 직접 웹 앱이나 웹 API를 만들고 싶은 분, 인공지능에 관심이 있는 분, 파이썬을 데이터 분석 용도로만 사용해 온 분에게 도움이 될 것입니다!

저자

사토마사키,히라타테츠야

저자:사토마사키
Techtouch주식회사소속.SIer를거쳐AlliedArchitects에서웹광고ㆍSNS마케팅관련웹서비스를개발했고,엔지니어팀리더로다수의웹서비스구성에종사하고있다.부동산테크기업인CTO를거쳐Techtouch에입사.현재는백엔드를중심으로개발을진행중이다.공저로「React,Angular,Vue.js,ReactNative를사용해배워보는첫프론트엔드개발(React,Angular,Vue.js,ReactNativeを使ってぶはじめてのフロントエンド開)」(기술평론사,2018)이있다.

저자:히라타테츠야
Classi주식회사소속.E-learning사업회사에서대형자격학교의LMS운용보수와개발을담당했다.이후학습분석기술(LearningAnalytics)연구를위해유니버시티컬리지런던(UniversityCollegeLondon)의InstituteofEducation(IOE)KnowledgeLab대학원에서유학을했다.귀국후현재의회사에서주로파이썬플라스크,구글클라우드(GoogleCloudPlatform:GCP)를이용해AI/ML개발부터인프라구축,MLOps까지진행하고있다.PythonConferenceTaiwan,PythonConferenceUS등해외컨퍼런스에도등단한경험이있다.

역자:김은철
(주)아이티에스대표이사·데이터사이언티스트.데이터과학자로서빅데이터분석및AI모델링사업을하고있다.주요저서로는『초보자를위한C언어300제』,『예제가가득한C언어길라잡이』,『윈도우프로그래밍플러스』가있고,역서로는『구글코랩으로배우는인공지능기술』,『엑셀Ⅹ파이썬코드레시피125』,『데이터분석을위한머신러닝입문』,『유니티게임프로그래밍바이블』,『게임으로배우는파이썬』,『유니티를이용한VR앱개발』,『그림으로배우는파이썬』,『그림으로배우는C#』,『그림으로배우는SQL』,『모두의알고리즘』등30여권의번역서가있다.

역자:유세라
현재일본전문번역가로활동하고있으며,역서로는『구글코랩으로배우는인공지능기술』,『엑셀Ⅹ파이썬코드레시피125』,『모두의알고리즘』,『데이터분석을위한머신러닝입문』,『유니티게임프로그래밍바이블』,『게임으로배우는파이썬』,『유니티를몰라도만들수있는유니티2D게임제작』,『유니티교과서』,『그림으로배우는파이썬』,『그림으로배우는C#』,『그림으로배우는SQL』등30여권의번역서가있다.

감수:테라다마나부
(주)CMS커뮤니케이션즈대표.파이썬관련컨설팅,구축작업을전문으로하고있다.2010부터일본파이썬커뮤니티와적극연동하여PyConJP개최에주력했고,2013년3월부터사단법인PyConJPAssociation대표이사로역임하는등파이썬교육에매진하고있다.파이썬의매력을알리기위해초보자를위한머신러닝학습분야파이썬강사로활약중이며,파이썬을중심으로테크화제를다루는팟캐스트’terapyonchannel’을운영중이다.
저서로는「머신러닝도감(機械習鑑)」(상영사,2019,공저),「파이썬에의한새로운데이터분석의교과서(Pythonによるあたらしいデタ分析の科書)」(상영사.2018,공저),

목차

Part0파이썬플라스크소개

Chapter00플라스크의개요와환경구축
0.1간단하게쓰고다양하게만드는플라스크
0.2왜플라스크를사용할까?
0.3파이썬웹프레임워크비교
장고
보틀
FastAPI
0.4플라스크환경구축하기
파이썬설치하기
로컬환경에가상환경만들기
플라스크설치하기
플라스크명령어
VisualStudioCode설치하기
코드체커·포매터이용하기
VSCode에파이썬가상환경설정하기
.gitignore

Part1플라스크첫걸음

Chapter01최소한의기능앱만들기
1.1MVT(Model,View,Template)모델
1.2최소한의기능앱만들기
작업디렉터리만들기
애플리케이션실행하기
디버그모드란?
.env를사용해환경변수설정하기
애플리케이션루트
라우팅이용하기
템플릿엔진이용하기
url_for함수를사용해서URL생성하기
정적파일이용하기
애플리케이션컨텍스트와요청컨텍스트
1.3문의폼만들기
문의폼의사양
PRG패턴
Flash메시지
로깅
이메일보내기
1.4쿠키
1.5세션
1.6응답

Chapter02데이터베이스를이용한앱만들기
1.1디렉터리구성
2.2앱실행하기:Blueprint의이용
①CRUD앱의모듈작성하기
②환경변수FLASK_APP의경로변경하기
③엔드포인트만들기
④템플릿만들기
⑤정적파일작성하기
⑥템플릿에CSS읽어들이기
⑦동작확인하기
2.3SQLAlchemy설정하기
확장기능설치하기
flask-sqlalchemy와flask-migrate이용준비하기
2.4데이터베이스조작하기
모델정의하기
데이터베이스초기화와마이그레이션
SQLAlchemy를사용한기본적인데이터조작
2.5데이터베이스를사용한CRUD앱만들기
폼의확장기능이용하기
사용자를신규작성하기
사용자일람표시하기
사용자편집하기
사용자삭제하기
2.6템플릿의공통화와상속
공통템플릿생성하기
사용자신규작성화면과사용자편집화면의다시작성하기
2.7config설정하기
from_object를사용하는방법
config를읽어들이는다른방법

Chapter03사용자인증기능만들기
3.1작성할사용자인증기능과디렉터리구성
3.2앱에인증기능등록하기
Blueprint에서사용자인증기능등록하기
사용자인증기능엔드포인트만들기
인증기능의확인용템플릿만들기
인증페이지표시확인화면만들기
동작확인하기
3.3회원가입기능만들기
flask-login과연계하기
회원가입기능의폼클래스만들기
User모델갱신하기
회원가입기능의엔드포인트만들기
회원가입기능의템플릿만들기
crud앱을로그인필수로변경하기
동작확인하기
3.4로그인기능만들기
로그인기능의폼클래스작성하기
로그인기능의엔드포인트만들기
로그인기능의템플릿만들기
동작확인하기
3.5로그아웃기능만들기
동작확인하기
로그인상태표시하기

Part2플라스크실천①물체감지앱개발하기

Chapter04앱의사양과준비
4.1물체감지앱의사양
이미지일람화면0
인증화면
이미지업로드화면
물체감지화면
이미지검색화면
커스텀오류화면
4.2디렉터리구성
4.3물체감지앱등록하기
이미지일람화면의엔드포인트만들기
이미지일람화면의템플릿만들기
동작확인하기

Chapter05이미지일람화면만들기
5.1UserImage모델작성하기
5.2이미지일람화면의엔드포인트만들기
5.3이미지일람화면의템플릿만들기
5.4SQLAlchemy의테이블결합과릴레이션십
SQL로테이블을JOIN한다
SQL을확인하기위한사전준비
릴레이션십

Chapter06회원가입과로그인화면만들기
6.1회원가입화면의엔드포인트갱신하기
6.2공통헤더작성하기
6.3회원가입화면의템플릿갱신하기
6.4로그인화면의엔드포인트갱신하기
6.5로그인화면의템플릿갱신하기
6.6회원가입/로그인화면의동작확인하기

Chapter07이미지업로드화면만들기
7.1이미지업로드경로지정하기
7.2이미지를표시하는엔드포인트만들기
7.3이미지일람화면에이미지업로드화면링크와이미지일람추가하기
7.4이미지업로드화면의폼클래스만들기
7.5이미지업로드화면의엔드포인트만들기
7.6이미지업로드화면의템플릿만들기
7.7이미지업로드화면의동작확인하기

Chapter08물체감지기능구현하기
8.1UserImageTags모델작성하기
8.2물체감지기능의폼클래스만들기
8.3물체감지기능의라이브러리설정하기
8.4물체감지기능의엔드포인트만들기
8.5이미지일람화면에태그정보표시하기
8.6이미지일람화면에감지버튼과태그정보표시하기
8.7물체감지기능의동작확인하기
8.8이미지삭제기능만들기
이미지삭제기능의폼클래스작성하기
이미지삭제기능의엔드포인트만들기
이미지일람화면의엔드포인트에삭제폼추가하기
이미지일람화면에[삭제]버튼표시하기
이미지삭제기능의동작확인하기

Chapter09검색기능구현하기
9.1이미지검색기능의엔드포인트만들기
9.2이미지검색기능의템플릿만들기
9.3이미지검색기능의동작확인하기

Chapter10커스텀오류화면만들기
10.1커스텀오류화면의엔드포인트만들기
10.2커스텀오류화면의템플릿만들기
10.3커스텀오류화면의표시확인하기

Chapter11유닛테스트진행하기
11.1pytest사용하기
pytest설치하기
디렉터리구성과명명규칙
테스트를실행하기
실패하는테스트의동작확인하기
테스트를1개만실행하기
11.2pytest의픽스처
conftest.py를사용하여픽스처공유하기
11.3물체감지앱의테스트진행하기
테스트용이미지업로드디렉터리설정하기
테스트픽스처갱신하기
이미지일람화면테스트하기
이미지업로드화면테스트하기
물체감지와태그에의한검색기능테스트하기
이미지삭제기능테스트하기
커스텀오류화면테스트하기
테스트의커버리지출력하기
테스트의커버리지를HTML로출력하기

Part3플라스크실천②물체감지기능API만들고배포하기

Chapter12WebAPI의개요
12.1WorldWideWeb(WWW)과API의의미
클라이언트와서버
API와JSON
12.2리소스의장소를나타내는URI의역할
URL
URI
URN
12.3HTTP메서드를이용해리소스의CRUD조작하기

Chapter13물체감지API의사양
13.1물체감지API의처리흐름
13.2PyTorch설치하고학습완료모델저장하기
PyTorch설치하기
학습완료모델저장하기

Chapter14물체감지API구현하기
14.1물체감지API의디렉터리구성과모듈
__init__.py
14.2구현준비하기
14.3[구현1]API실행코드구현하기
config를읽어들이고플라스크앱만들기
공통의설정관리하기
동작확인하기
14.4[구현2]데이터준비하고전처리/후처리코드구현하기
데이터준비하기
전처리
후처리
14.5[구현3]학습완료모델의실행코드구현하기
14.6[구현4]라우팅구현하기
동작확인하기

Chapter15물체감지앱배포하기
15.1Docker의개요
가상화기술
15.2CloudRun의개요
특징
15.3Docker의이용준비
DockerDesktop설치하기
DockerDesktop구동하기
15.4CloudRun의이용준비
①GoogleCloud무료계정만들기
②GoogleCloud프로젝트작성하기
③CloudRunAPI와ContainerRegsitryAPI활성화하기
④CloudSDK설치하기
15.5[절차1]GoogleCloud의configuration초기설정하기
15.6[절차2]Dockerfile작성하기
15.7[절차3]Docker이미지빌드하기
작성한이미지확인하기
15.8[절차4]Docker이미지를GCR에푸시하기
푸시확인하기
15.9[절차5]CloudRun에배포하기

Part4머신러닝API개발하기

Chapter16머신러닝의개요
16.1머신러닝에관련된개념
16.2머신러닝에서다루는데이터
16.3머신러닝이다루는문제
통계
머신러닝
16.4수식과코드로알고리즘표현하기
16.5머신러닝에서이용하는파이썬라이브러리
라이브러리와프레임워크
16.6파이썬라이브러리로로지스틱회귀표현하기
로지스틱회귀
시그모이드함수의수식
교차엔트로피오차의수식
경사하강법의수식
NumPy를사용한로지스틱회귀
scikit-learn을사용한로지스틱회귀

Chapter17머신러닝API의개발과정과실천
17.1최적의머신러닝알고리즘/모델선정하기
17.2머신러닝알고리즘/모델구현하기
구현과정
17.3머신러닝API의사양
17.4개발준비하기
라이브러리의설치
디렉터리확인하기
17.5[구현과정1]분석코드를프로덕션코드로만들기
1.1코드리딩/코드문서화
1.2함수분할/모듈분할
1.3리팩터링
17.6[구현과정2]프로덕션코드를API로만들기
2.1라우팅:URI(엔드포인트)명명규칙의책정
2.2오류확인:오류코드와오류메시지의정의
2.3요청확인:검증코드의구현
17.7정상동작확인하기
17.8[과제]머신러닝API로부터머신러닝기반과MLOps로

Index

출판사 서평

나에게필요한기능만사용해최대한가볍고자유롭게,내가만들고싶은웹앱을만들고싶다면?
파이썬개발자들에게가장인기있는웹프레임워크
플라스크를활용하자!

플라스크(Flask)는웹서비스개발을위한파이썬웹마이크로프레임워크이다.웹개발에필요한모든기능을갖춘풀스택프레임워크와달리,마이크로프레임워크는필요기능만갖춰비교적가볍고단순한프레임워크를말한다.플라스크는2018년파이썬개발자조사에서가장인기있는웹프레임워크로선정되어지금까지도인기가많다.
플라스크는다른웹프레임워크에비해자체사양에얽매이지않고앱을개발할수있다는장점이있다.또한프레임워크안에미리구현해놓은기능이많지않아서스스로생각하며자유롭게기능을구현하거나앱개발을배우기에적합하다.

간단한앱만들기부터머신러닝을앱에적용하는방법까지,기초부터실무적용을한번에일거양득!

이책은플라스크를이용해웹앱을스스로만드는데에목적이있다.우선간단한앱부터만들어보고,문의폼과데이터베이스를이용한앱,인증기능등을단계적으로구현하면서앱개발기초를배운다.이어서이미지데이터에서물체를판별하는물체감지앱을만들고이앱을WebAPI로만드는방법까지설명한다.
실무에서는플라스크를데모용제품개발같은소규모프로젝트에알맞은프레임워크로많이활용되고,머신러닝같은데이터를활용한제품개발에도많이이용한다.머신러닝의구현코드를제품에넣거나WebAPI로범용화하여서비스를제공하기도한다.
아직은데이터를활용한제품개발의역사가짧고머신러닝을제품에적용한사례가많지않은것을고려해,이책에서는알기쉬운손글씨문자인식분석코드를다루어어떻게머신러닝을앱에적용할지에대해서도자세히설명한다.