본문 바로가기

도서소개

파이썬 플라스크 웹 앱 개발 입문

 

파이썬 개발자들에게 가장 인기있는 웹 프레임워크 플라스크(Flask).

플라스크를 이용해 간단한 앱 만들기부터 머신러닝을 앱에 적용하는 방법까지,

기초부터 실무 적용을 한 번에!

이 책은 플라스크를 이용해 웹 앱을 스스로 만드는데에 목표를 두고 있다.

먼저 간단한 앱부터 만들어 보고,

문의 폼과 데이터베이스를 이용한 앱, 인증기능 등을 단계적으로 구현하면서 앱 개발의 기초를 배운다.

이어서 이미지 데이터에서 물체를 판별하는 물체감지 앱을 만들고 이 앱을 Web API로 만드는 방법까지 설명한다.

도서구매 사이트

[ 교보문고 ] [ 알라딘 ] [ YES24 ] [ 쿠팡 ]

 



도서명  파이썬 플라스크 웹 앱 개발 입문
지은이  사토 마사키, 히라티 테츠야
옮긴이  김은철

감   수  테라다 마나부
발행일  2023-02-10

페이지  440 | 판형 188*257mm | 무선제본

ISBN   9791127459321
정   가  38,000원

키워드

파이썬, 플라스크, 인공지능, AI, 프래임워크, 머신러닝, 프로그래밍, 컴퓨터, 앱개발, 소스, 코드

 

분   야

컴퓨터/모바일 > 프로그래밍 언어 > 파이썬

컴퓨터 공학 > 자료구조 / 알고리즘

 

대상독자

-파이썬으로 간단히 웹 앱 개발을 시작하고 싶다.

-직접 웹 앱이나 웹 API를 만들고 싶다.

-인공지능에 관심이 있다.

-파이썬을 데이터 분석 용도로만 사용해왔다.


연관 사이트

 

저작권사 도서 페이지 

<Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方>


관련파일 다운로드


 

나에게 필요한 기능만 사용해 최대한 가볍고 자유롭게,

내가 만들고 싶은 웹 앱을 만들고 싶다면?

파이썬 개발자들에게 가장 인기있는 웹 프레임워크 플라스크를 활용하자!

플라스크(Flask)는 웹 서비스 개발을 위한 파이썬 웹 마이크로 프레임워크이다. 웹 개발에 필요한 모든 기능을 갖춘 풀스택 프레임워크와 달리, 마이크로 프레임워크는 필요 기능만 갖춰 비교적 가볍고 단순한 프레임워크를 말한다. 플라스크는 2018년 파이썬 개발자 조사에서 가장 인기 있는 웹 프레임워크로 선정되어 지금까지도 인기가 많다.

플라스크는 다른 웹 프레임워크에 비해 자체 사양에 얽매이지 않고 앱을 개발할 수 있다는 장점이 있다. 또한 프레임워크 안에 미리 구현해 놓은 기능이 많지 않아서 스스로 생각하며 자유롭게 기능을 구현하거나 앱 개발을 배우기에 적합하다.

 

간단한 앱 만들기부터 머신러닝을 앱에 적용하는 방법까지,

기초부터 실무 적용을 한 번에 일거양득!

이 책은 플라스크를 이용해 웹 앱을 스스로 만드는데에 목적이 있다. 우선 간단한 앱부터 만들어 보고, 문의 폼과 데이터베이스를 이용한 앱, 인증 기능 등을 단계적으로 구현하면서 앱 개발 기초를 배운다. 이어서 이미지 데이터에서 물체를 판별하는 물체 감지 앱을 만들고 이 앱을 Web API로 만드는 방법까지 설명한다.

실무에서는 플라스크를 데모용 제품 개발 같은 소규모 프로젝트에 알맞은 프레임워크로 많이 활용되고, 머신러닝 같은 데이터를 활용한 제품개발에도 많이 이용한다. 머신러닝의 구현 코드를 제품에 넣거나 Web API로 범용화하여 서비스를 제공하기도 한다.

아직은 데이터를 활용한 제품 개발의 역사가 짧고 머신러닝을 제품에 적용한 사례가 많지 않은 것을 고려해, 이 책에서는 알기 쉬운 손글씨 문자 인식 분석 코드를 다루어 어떻게 머신러닝을 앱에 적용할지에 대해서도 자세히 설명한다.

 

 

지은이 사토 마사키

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

 

지은이 히라타 테츠야

Classi 주식회사 소속. E-learning 사업회사에서 대형 자격학교의 LMS 운 용보수와 개발을 담당했다. 이후 학습 분석 기술(LearningAnalytics) 연구 를 위해 유니버시티 컬리지 런던(University College London) Institute of Education (IOE) Knowledge Lab 대학원에서 유학을 했다. 귀국 후 현재 의 회사에서 주로 파이썬 플라스크, 구글 클라우드(Google Cloud Platform GCP)를 이용해 AI/ML 개발부터 인프라 구축, MLOps까지 진행하고 있다. Python Conference Taiwan, Python Conference US 등 해외 컨퍼런스에 도 등단한 경험이 있다.

 

감수 테라다 마나부

()CMS커뮤니케이션즈 대표. 파이썬 관련 컨설팅, 구축 작업을 전문으로 하고 있다. 2010부터 일본 파이썬 커뮤니티와 적극 연동하여 PyCon JP 개최에 주력했고, 2013 3월부터 사단법인 PyCon JP Association 대표 이사로 역임하는 등 파이썬 교육에 매진하고 있다. 파이썬의 매력을 알리 기 위해 초보자를 위한 머신러닝 학습분야 파이썬 강사로 활약중이며, 파 이썬을 중심으로 테크 화제를 다루는 팟캐스트’terapyon channel’을 운영 중이다.

저서로는 <머신러닝 도감(機械鑑>(翔泳社, 2019, 공저), <파이썬에 의 한 새로운 데이터 분석의 교과서(Pythonによるあたらしいデタ分析の科書)>(翔泳社. 2018, 공저)

 

옮긴이 김은철

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

 

옮긴이 유세라

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

 


 

목차 

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 데이터베이스를 이용한 앱 만들기

1.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