책소개
파이썬 개발자들에게 가장 인기있는 웹 프레임워크 플라스크(Flask)를
이용한 웹 앱 개발의 기본과 핵심!
간단한 앱 만들기부터 머신러닝을 앱에 적용하는 방법까지,
기초부터 실무 적용을 한 번에!
이런 분께 추천!
-파이썬으로 간단히 웹 앱 개발을 시작하고 싶다.
-직접 웹 앱이나 웹 API를 만들고 싶다.
-인공지능에 관심이 있다.
-파이썬을 데이터 분석 용도로만 사용해왔다.
저자소개
Techtouch 주식회사 소속. SIer를 거쳐 Allied Architects에서 웹 광고?SNS 마케팅 관련 웹 서비스를 개발했고, 엔지니어팀 리더로 다수의 웹 서비 스 구성에 종사하고 있다. 부동산 테크 기업인 CTO를 거쳐 Techtouch 에 입사. 현재는 백엔드를 중심으로 개발을 진행중이다. 공저로 「React, Angular, Vue.js, React Native를 사용해 배워보는 첫 프론트 엔드 개발 (React,Angular,Vue.js,React Nativeを使って?ぶ はじめてのフロントエンド開?)」(기 술평론사, 2018)이 있다.
목차
Part0 파이썬 플라스크 소개
Chapter00 플라스크의 개요와 환경 구축
0.1 간단하게 쓰고 다양하게 만드는 플라스크
0.2 왜 플라스크를 사용할까?
0.3 파이썬 웹 프레임워크 비교
장고
보틀
FastAPI
0.4 플라스크 환경 구축하기
파이썬 설치하기
로컬 환경에 가상 환경 만들기
플라스크 설치하기
플라스크 명령어
Visual Studio Code 설치하기
코드 체커·포매터 이용하기
VSCode에 파이썬 가상 환경 설정하기
.gitignore
Part1 플라스크 첫걸음
Chapter01 최소한의 기능 앱 만들기
1.1 MVT(Model, View, Template) 모델
1.2 최소한의 기능 앱 만들기
작업 디렉터리 만들기
애플리케이션 실행하기
디버그 모드란?
.env를 사용해 환경 변수 설정하기
애플리케이션 루트
라우팅 이용하기
템플릿 엔진 이용하기
url_for 함수를 사용해서 URL 생성하기
정적 파일 이용하기
애플리케이션 컨텍스트와 요청 컨텍스트
1.3 문의 폼 만들기
문의 폼의 사양
PRG 패턴
Flash 메시지
로깅
이메일 보내기
1.4 쿠키
1.5 세션
1.6 응답
Chapter02 데이터베이스를 이용한 앱 만들기
2.1 디렉터리 구성
2.2 앱 실행하기: Blueprint의 이용
① CRUD 앱의 모듈 작성하기
② 환경 변수 FLASK_APP의 경로 변경하기
③ 엔드포인트 만들기
④ 템플릿 만들기
⑤ 정적 파일 작성하기
⑥ 템플릿에 CSS 읽어 들이기
⑦ 동작 확인하기
2.3 SQLAlchemy 설정하기
확장 기능 설치하기
flask-sqlalchemy와 flask-migrate 이용 준비하기
2.4 데이터베이스 조작하기
모델 정의하기
데이터베이스 초기화와 마이그레이션
SQLAlchemy를 사용한 기본적인 데이터 조작
2.5 데이터베이스를 사용한 CRUD 앱 만들기
폼의 확장 기능 이용하기
사용자를 신규 작성하기
사용자 일람 표시하기
사용자 편집하기
사용자 삭제하기
2.6 템플릿의 공통화와 상속
공통 템플릿 생성하기
사용자 신규 작성 화면과 사용자 편집 화면의 다시 작성하기
2.7 config 설정하기
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.1 UserImage 모델 작성하기
5.2 이미지 일람 화면의 엔드포인트 만들기
5.3 이미지 일람 화면의 템플릿 만들기
5.4 SQLAlchemy의 테이블 결합과 릴레이션십
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.1 UserImageTags 모델 작성하기
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.1 pytest 사용하기
pytest 설치하기
디렉터리 구성과 명명 규칙
테스트를 실행하기
실패하는 테스트의 동작 확인하기
테스트를 1개만 실행하기
11.2 pytest의 픽스처
conftest.py를 사용하여 픽스처 공유하기
11.3 물체 감지 앱의 테스트 진행하기
테스트용 이미지 업로드 디렉터리 설정하기
테스트 픽스처 갱신하기
이미지 일람 화면 테스트하기
이미지 업로드 화면 테스트하기
물체 감지와 태그에 의한 검색 기능 테스트하기
이미지 삭제 기능 테스트하기
커스텀 오류 화면 테스트하기
테스트의 커버리지 출력하기
테스트의 커버리지를 HTML로 출력하기
Part3 플라스크 실천② 물체 감지 기능 API 만들고 배포하기
Chapter12 Web API의 개요
12.1 World Wide Web(WWW)과 API의 의미
클라이언트와 서버
API와 JSON
12.2 리소스의 장소를 나타내는 URI의 역할
URL
URI
URN
12.3 HTTP 메서드를 이용해 리소스의 CRUD 조작하기
Chapter13 물체 감지 API의 사양
13.1 물체 감지 API의 처리 흐름
13.2 PyTorch 설치하고 학습 완료 모델 저장하기
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.1 Docker의 개요
가상화 기술
15.2 Cloud Run의 개요
특징
15.3 Docker의 이용 준비
Docker Desktop 설치하기
Docker Desktop 구동하기
15.4 Cloud Run의 이용 준비
① Google Cloud 무료 계정 만들기
② Google Cloud 프로젝트 작성하기
③ Cloud Run API와 Container Regsitry API 활성화하기
④ Cloud SDK 설치하기
15.5 [절차 1] Google Cloud의 configuration 초기 설정하기
15.6 [절차 2] Dockerfile 작성하기
15.7 [절차 3] Docker 이미지 빌드하기
작성한 이미지 확인하기
15.8 [절차 4] Docker 이미지를 GCR에 푸시하기
푸시 확인하기
15.9 [절차 5] Cloud Run에 배포하기
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