파이썬으로 쉽고 재미있게 웹 프로그래밍을 시작하세요!
『파이썬 웹 프로그래밍: 플라스크를 이용한 쉽고 빠른 웹 개발 (개정증보판)』은 많은 개발자에게 인기를 얻고 있는 언어인 파이썬과 마이크로 웹 프레임워크인 플라스크를 활용해 쉽고 재미있게 웹 애플리케이션을 개발하는 방법을 안내합니다. 파이썬이나 웹 프로그래밍을 잘 모르더라도 프로그래밍에 관한 약간의 경험만 있다면 이 책에서 제시하는 예제와 설명을 통해 자연스럽게 웹 프로그래밍의 재미을 느낄 수 있을 것입니다.
이번 개정증보판에서는 독자분들의 피드백을 반영하여 일부 내용을 수정 및 보강하였고, 기존의 파이썬 2 기반 설명과 예제를 파이썬 3로 변경했으며, 예제에 사용된 라이브러들의 사용법 및 트위터 연동, 구글 앱엔진 사용 등에 관한 내용을 현재 시점에 맞게 다시 작성했습니다. 추가로 책에 수록된 예제를 아마존 웹 서비스(AWS)의 Elastic Beanstalk에 배포하는 방법이 새로운 챕터로 추가됐습니다.
★ 이 책에서 다루는 내용 ★
- 파이썬 기반 마이크로 웹 프레임워크인 플라스크 활용
- 웹 애플리케이션 개발을 위한 다양한 라이브러리(SQLAlchemy, Pillow, Bootstrap3, GMaps.js 등)
- 대표적인 SNS서비스인 트위터와 웹 애플리케이션 연동
- 아파치와 엔진엑스 웹 서버에 플라스크 애플리케이션 실행
- AWS Elastic Beanstalk에 플라스크 애플리케이션 배포
- 레디스를 이용한 세션 관리
- 구글 앱 엔진에서의 플라스크 활용
기존 웹 개발에 대한 대안으로 파이썬과 플라스크는 굉장히 매력적이다. 기존 웹 개발을 경험해 본 개발자에게는 개발 도메인에 따라 좀 더 유연한 개발 환경을 적용할 필요가 있을 때 사용할 대안으로 사용하기에 좋다. 또한, 웹 개발 경험이 없는 개발자라도 단지 몇 시간만 투자하여도 간단한 웹 애플리케이션을 개발할 수 있을 정도로 이해하기 쉽고 사용하기 편리하다.
이 책은 기본적인 파이썬 문법을 아는 초보자를 대상으로 하고 있다. 하지만 파이썬을 모르는 독자라도 파이썬 기본서나 인터넷에 있는 간단한 강좌를 한번 살펴본다면 쉽게 이해할 수 있을 만한 내용을 담고 있다.
이 책은 총 3부로 다음과 같이 구성돼 있다.
- 1부는 ‘파이썬 웹 프로그래밍’을 시작하는 내용으로 파이썬 및 플라스크의 개요와 플라스크의 기본 기능에 대한 내용과 간단한 예제 프로그램인 ‘미니 트윗’을 설명한다.
- 2부에서는 1부에서 다룬 플라스크를 이용한 웹 프로그래밍 내용에 실제 웹 애플리케이션 개발에서 자주 사용하는 여러 개발 도구를 더하여 ‘포토로그’라는 예제 프로젝트를 이용해 실전에서 사용할 수 있는 기능을 다룬다.
- 3부에서는 2부에서 개발한 ‘포토로그’ 애플리케이션을 아파치 및 엔진엑스 웹 서버와 AWS Elastic Beanstalk에 배포하고 실행해본다.
주성식
새로운 것을 찾아내고 가까운 곳에 적용해 보기를 좋아하는 탐구자. 늘 배우는 것에 주저하지 않고 배움 앞에 겸손한 학생이 되고 싶다. 위키북스의 『데브옵스: 개발자, QA, 관리자가 함께 보는 리눅스 서버 트러블슈팅 기법』을 번역했다.
홍성민
외모에서 풍기는 이미지와 달리 서울 토박이로 컴퓨터를 전공했으며 담배도 피우지 않는다. 2000년 초반부터 웹메일을 시작으로 SSO/EAM과 모바일 단일 관리(MDM) 솔루션을 개발했으며, 여러 SI/SM 프로젝트에서 소프트웨어 아키텍트 및 성능/문제해결 전문가로 일했다.
또한 다양한 오픈소스 미들웨어의 기술 검증과 이를 활용한 아키텍처 설계에 참여했으며, 현재는 기존 인프라와 애플리케이션을 클라우드 환경으로 이전하고 클라우드를 잘 활용하는 방법을 대중에게 알리고 설명하는 일에 관심이 많다.
- [01부] 파이썬 웹 애플리케이션 시작하기
- ▣ 1장: 파이썬과 웹 애플리케이션
- 1.1 파이썬
- 인터프리터 기반의 객체 지향(Object-oriented) 프로그래밍 언어
- 플랫폼 독립적인 언어 (Platform Independent)
- 유연한 확장(Extendible)
- 동적 타이핑(Dynamic Typing)
- 리플렉션(Reflection)
- 1.2 웹 애플리케이션 개발 동향
- 1.3 풀 스택 프레임워크 vs. 마이크로 프레임워크
- 1.4 대표적인 마이크로 프레임워크
- 시나트라(루비)
- 스칼라트라(Scalatra, Scala)
- 보틀(Bottle, 파이썬)
- 1.5 플라스크(Flask)
- 플라스크의 특징
- 플라스크 웹 애플리케이션 살펴보기
- 1.1 파이썬
- ▣ 2장: 개발 환경 설정
- 2.1 설치 개요
- 2.2 파이썬 설치
- 2.3 플라스크 설치
- 2.4 통합개발 환경(IDE) 설치
- 이클립스 설치
- PyDev 설치
- 2.5 깃허브(Github) 저장소 연결
- 깃(Git)
- 깃허브(Gitbub)
- 로컬로 예제 소스 가져오기
- 2.6 플라스크 애플리케이션 실행
- 2.7 기타 개발 도구들
- 파이참(PyCharm)
- 압타나 스튜디오(Aptana Studio)
- IPython + 노트북(Notebook)
- Vim을 파이썬 IDE처럼 사용하기
- ▣ 3장: 플라스크 시작하기
- 3.1 첫 플라스크 애플리케이션, “Hello Flask!”
- 3.2 라우팅
- 3.3 요청과 응답
- 3.4 쿠키와 세션
- 3.5 정적 파일과 템플릿
- 주석
- 공백
- 이스케이핑
- for
- if
- macro
- import
- extends
- include
- 3.6 에러와 로깅
- 3.7 로컬 서버 실행
- ▣ 4장: 작은 트위터, 미니 트윗(minitwit)
- 4.1 미니 트윗 개요
- 4.2 데이터베이스 처리
- 4.3 뷰 함수 구현
- 사용자 등록
- 로그인/로그아웃
- 트윗 등록
- 팔로우/언팔로우
- 타임라인
- 4.4 정적 파일과 템플릿
- ▣ 1장: 파이썬과 웹 애플리케이션
- [02부] 파이썬 웹 애플리케이션 만들기
- ▣ 5장: 추억을 기록한다, 포토로그(Photolog)
- 5.1 포토로그 개요
- 5.2 클라이언트 측 구조
- 부트스트랩(bootstrap)
- 폰트 어썸(Font Awesome)
- jQuery 자바스크립트 라이브러리
- exif.js와 binaryajax.js
- gmaps.js
- 5.3 애플리케이션 레이아웃
- 5.4 서버 측 구조
- MVC(Model-View-Controller)
- 패키지 초기화
- 로깅
- SQLAlchemy
- 블루프린트
- 세션
- WTForms
- 5.5 필요한 패키지 설치
- ▣ 6장: 사용자 관리와 로그인
- 6.1 사용자 등록
- 6.2 사용자 정보 변경
- 6.3 사용자 탈퇴
- 6.4 로그인/로그아웃
- ▣ 7장: EXIF 분석과 사진 업로드
- 7.1 EXIF 분석과 입력값 처리
- 7.2 지도에 위치 정보 표시
- 7.3 사진 및 데이터 저장
- ▣ 8장: 포토로그 사진 보여주기
- 8.1 사진 목록 출력
- 8.2 페이징
- 8.3 수정/삭제
- 8.4 검색
- 8.5 지도에 위치 출력
- ▣ 9장: SNS 연동
- 9.1 트위터 애플리케이션 등록
- Application Details
- OAuth Settings.
- 9.2 간단한 트위터 클라이언트 만들기
- 9.3 트위터 연동 모듈 개발
- 9.4 트윗 결과 메시지 출력
- 9.5 트위터 연동 확인
- 9.1 트위터 애플리케이션 등록
- ▣ 5장: 추억을 기록한다, 포토로그(Photolog)
- [03부] 파이썬 웹 애플리케이션 서비스하기
-
- ▣ 10장: 아파치로 포토로그 서비스하기
- 10.1 아파치 웹 서버(Apache HTTP Server)
- 10.2 mod_wsgi 확장 모듈
- 10.3 아파치와 mod_wsgi 설치
- 10.4 아파치와 mod_wsgi 설정
- 10.5 아파치로 포토로그 실행
- ▣ 11장: 엔진엑스로 포토로그 서비스하기
- 11.1 엔진엑스 웹 서버(Nginx Web Server)
- 11.2 uWSGI 애플리케이션 서버.
- 11.3 엔진엑스와 uWSGI 설치
- 11.4 엔진엑스와 uWSGI 설정
- 11.5 엔진엑스로 포토로그 실행
- ▣ 12장: AWS Elastic Beanstalk로 포토로그 서비스하기
- 12.1 AWS Elastic Beanstalk.
- 12.2 Elastic Beanstalk의 특징
- 빠르고 간편한 시작
- 개발자 생산성
- 적절한 규모 유지
- 완벽한 리소스 제어
- 12.3 Elastic Beanstalk에 파이썬 환경 구성
- 12.4 Beanstalk로 포토로그 실행
- Elastic Beanstalk 환경 구성(Environment Configuration).
- 포토로그 업로드
- ▣ 부록01: 레디스(Redis) 살펴보기
- 1.1 개요
- 1.2 특징
- 다양한 데이터형(Data Type)
- 영속성(Persistence)
- 복제(Replication)
- 분할(Partitioning).
- 만료(Expiration)
- 1.3 OS별 설치
- 윈도
- 맥 OS/리눅스
- 1.4 포토로그 애플리케이션에 적용하기
- ▣ 부록02: 구글 앱 엔진 사용하기
- 2.1 개요
- 2.2 구글 앱 엔진 개발 환경
- 2.3 앱 엔진을 위한 플라스크 프로젝트 구성
- 2.4 구글 앱 엔진에 배포하기
- ▣ 10장: 아파치로 포토로그 서비스하기
예제코드 관련 GitHub 페이지
- GitHub 페이지: https://github.com/wikibook/flask/tree/python3
- ZIP 형식으로 다운로드: https://github.com/wikibook/flask/archive/python3.zip
77쪽, 소스코드의 마지막 두 줄
print url_for('hello') print url_for('get_profile', username='flask')
==>
print (url_for('hello')) print (url_for('get_profile', username='flask'))