파이썬으로 쉽고 재미있게 웹 프로그래밍을 시작하세요!

『파이썬 웹 프로그래밍: 플라스크를 이용한 쉽고 빠른 웹 개발 (개정증보판)』은 많은 개발자에게 인기를 얻고 있는 언어인 파이썬과 마이크로 웹 프레임워크인 플라스크를 활용해 쉽고 재미있게 웹 애플리케이션을 개발하는 방법을 안내합니다. 파이썬이나 웹 프로그래밍을 잘 모르더라도 프로그래밍에 관한 약간의 경험만 있다면 이 책에서 제시하는 예제와 설명을 통해 자연스럽게 웹 프로그래밍의 재미을 느낄 수 있을 것입니다.

이번 개정증보판에서는 독자분들의 피드백을 반영하여 일부 내용을 수정 및 보강하였고, 기존의 파이썬 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)
        • 플라스크의 특징
        • 플라스크 웹 애플리케이션 살펴보기
      •  
    • ▣ 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 정적 파일과 템플릿
      •  
  • [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 트위터 연동 확인
      •  
  • [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 구글 앱 엔진에 배포하기

예제코드 관련 GitHub 페이지

관련 글


엮인 글

엮인 글 주소: http://wikibook.co.kr/flask-revised/trackback/