저자 에이먼 호우리에 (옮긴이 : 배민효)

ISBN 978-89-6626-029-4

정가 11,000원

관련 페이지 http://www.insightbook.co.k...


쉽고 빠른 웹 개발 Django

Programming

* 에이먼 호우리에 (Ayman Hourieh)
2006년부터 웹 애플리케이션을 개발했고, 2008년 1월부터 구글에서 일한다.
모질라 재단을 포함해 여러 오픈소스 프로젝트에 기여하고 있으며, 아내와 함께
아일랜드 더블린에 거주한다.


파이썬다운 웹 프레임워크 장고(Django)와 함께 웹 애플리케이션을 개발하자!

장고는 웹 2.0 애플리케이션을 빠르고 쉽게 개발할 수 있는 파이썬용 웹 프레임워크다.
Ajax나 소셜 기능 등 최신 웹 애플리케이션이라면 갖추어야 할 기능들을 간단한 코드만으로
작성할 수 있고, 데이터베이스 연동이나 사용자 관리도 매우 쉽게 구현할 수 있다. 이 책은
딜리셔스(delicious) 같은 웹 2.0 북마크 애플리케이션을 처음부터 만들어 보면서 장고의
기능들을 설명한다.

특별히 한국어판에서는 장고용 웹호스팅 업체에 목말라 있는 한국 독자들을 위하여,
장고로 개발한 애플리케이션을 구글 앱 엔진(Google App Engine)용으로 수정하는 과정을
수록하였다.


장고를 통해 쉽고 빠르게 웹 개발을 할 수 있다. 얼마나 쉽고 빠르게 개발을 할 수 있는가
하면, 파이썬과 장고를 거의 모르는 상태에서 딱 1주일만에 간단한 웹 게임을 개발할
정도였다. 참고로 나의 주 업무는 기획이다.
- 한날 (차경묵, http://hannal.net)

이 책은 장고의 철학과 기능들을 잘 설명해 준다. SNS와 웹 2.0의 주요 기능들을 큰 줄기로
다루고, i18n을 활용하여 애플리케이션을 손쉽게 국제화하는 방법과 캐시를 이용하여 시스템
성능을 향상시키는 방법도 잘 설명해 준다. 또한 테스팅 방법까지 소개하고 있어 품질관리
부분도 놓치지 않는다.
이 책을 읽으면서 온라인에 흩어져 있는 지식들을 큰 그림으로 맞춰 보는 경험을 할 수 있었다.
- 박상엽 (http://coldblaze.pe.kr)

장고의 중요한 특징 가운데 하나는 재사용성이다. 자신이 만든 특정 기능을 장고
애플리케이션이란 단위로 컴포넌트화할 수 있으며, 이를 다른 웹사이트에도 쉽게 조합하여
사용할 수 있다. 이러한 방식으로 개발자는 자신만의 애플리케이션, 전 세계 다른 사람들의
애플리케이션 그리고 장고에 장착된 애플리케이션을 조합하여 순식간에 웹사이트를 만들어
낼 수 있다.
- 김형용 (인실리코젠 지식관리팀, BioHackers Net 운영)

약 2년 전부터 장고에 관심을 가지고 사용해 오던 터라 이 책의 소식을 들었을 때 정말로
기뻤다. 비록 이 책이 장고가 가진 모든 기능을 밑바닥까지 상세하게 다루지는 않지만,
장고 세계를 헤엄치는 데 충분한 가이드가 되어 주리라 생각한다. 장고가 얼마나 편리한지,
어떤 기능들을 제공해 주는지만 알아도 개발 작업은 이미 반쯤 끝난 것이나 다름없다.
- 김준기 (KAIST 학사과정, http://daybreaker.info)


__옮긴이의 글
__지은이의 글


1장 장고를 소개합니다

__1.1 웹 애플리케이션에서 MVC 패턴이란?
__1.2 왜 파이썬을 사용해야 하나?
__1.3 왜 장고를 사용해야 하나?
____1.3.1 구성요소들 간의 긴밀한 통합
____1.3.2 객체관계 매핑
____1.3.3 간단한 URL 주소 설계
____1.3.4 자동으로 구성되는 관리자 화면
____1.3.5 풍부한 개발 환경
____1.3.6 다국어 지원
__1.4 장고의 기원과 역사
__1.5 요약


2장 개발을 시작합니다

__2.1 필요한 소프트웨어 설치하기
____2.1.1 파이썬 설치
______윈도(Windows)에서 파이썬 설치
______유닉스/리눅스(Unix/Linux)에서 파이썬 설치
______Mac OS X에서 파이썬 설치
____2.1.2 장고 설치하기
______윈도에서 장고 설치
______Mac OS X, 유닉스/리눅스에서 장고 설치
____2.1.3 데이터베이스를 설치합니다
__2.2 장고 프로젝트를 시작합니다
____2.2.1 장고 프로젝트를 만듭니다
____2.2.2 데이터베이스를 구성합니다
____2.2.3 개발 서버를 실행합니다
__2.3 요약


3장 소셜 북마크 애플리케이션을 만들어봅니다

__3.1 장고에서 사용하는 용어들
__3.2 URL과 뷰: 메인 페이지 만들기
____3.2.1 메인 페이지의 뷰 작성
____3.2.2 메인 페이지의 URL 만들기
__3.3 모델: 데이터베이스 구조 설계
____3.3.1 Link 데이터 모델
____3.3.2 User 데이터 모델
____3.3.3 Bookmark 데이터 모델
__3.4 템플릿: 메인 페이지의 템플릿 만들기
__3.5 모두 모아서 사용자 페이지 만들기
____3.5.1 URL 만들기
____3.5.2 뷰 작성
____3.5.3 템플릿 디자인
____3.5.4 모델을 통해서 데이터 입력하기
__3.6 요약


4장 사용자를 등록하고 관리합니다

__4.1 세션 인증
____4.1.1 로그인 페이지 만들기
____4.1.2 로그아웃 기능 사용하기
__4.2 템플릿 구조 개선
__4.3 사용자 등록
____4.3.1 장고 폼
____4.3.2 사용자 등록 폼 디자인
__4.4 사용자 계정 관리
__4.5 요약


5장 태그

__5.1 태그 데이터 모델
__5.2 북마크 등록 폼 만들기
____5.2.1 로그인한 사용자만 사용하도록 제한
____5.2.2 북마크를 찾아보는 방법
____5.2.3 사용자 페이지 개선
____5.2.4 태그 페이지 만들기
____5.2.5 태그 클라우드 만들기
__5.3 보안에 대해서
____5.3.1 SQL 인젝션
____5.3.2 크로스-사이트 스크립팅
__5.4 요약


6장 Ajax로 사용자 인터페이스를 향상시켜봅니다

__6.1 Ajax를 웹 애플리케이션에서 사용하면서 얻는 장점
__6.2 장고에서 Ajax 프레임워크 사용하기
____6.2.1 jQuery 설치
__6.3 jQuery 자바스크립트 프레임워크
____6.3.1 엘리먼트 선택 기능
____6.3.2 jQuery 메서드
______엘리먼트 숨기고 드러내기
______CSS 속성과 HTML 속성에 접근하기
______HTML 문서 다루기
______문서 구조에 접근
______이벤트
______Ajax 요청
______그 다음은?
__6.4 실시간 북마크 검색 구현
____6.4.1 검색 구현
____6.4.2 실시간 검색 구현
__6.5 즉석에서 북마크 수정
____6.5.1 북마크 수정 구현
____6.5.2 북마크 즉석 수정
__6.6 태그 자동 추천
__6.7 요약


7장 평가하고 댓글 달기

__7.1 메인 페이지에서 북마크 공유
____7.1.1 SharedBookmark 데이터 모델
____7.1.2 북마크 등록 폼 변경
____7.1.3 공유한 북마크 찾아보고 평가하기
____7.1.4 ‘인기있는 북마크’ 페이지
__7.2 북마크에 댓글 달기
____7.2.1 댓글 애플리케이션 추가
____7.2.2 댓글의 뷰 작성
____7.2.3 댓글 화면과 댓글 작성 폼
____7.2.4 댓글 템플릿
__7.3 요약


8장 관리자 화면을 만들어봅니다

__8.1 관리자 화면 추가
__8.2 관리자 화면 수정
____8.2.1 목록 페이지 수정
____8.2.2 관리자 화면 템플릿 수정
__8.3 사용자, 그룹, 권한
____8.3.1 사용자 권한
____8.3.2 그룹 권한
____8.3.3 뷰에서 권한 다루기
__8.4 요약


9장 향상된 페이지 이동과 검색

__9.1 RSS 피드 추가
____9.1.1 ‘최근 등록된 북마크’ 피드 만들기
______Item 필드 수정
____9.1.2 사용자 북마크 피드 만들기
____9.1.3 HTML 페이지에 링크 걸기
__9.2 검색 개선하기
____9.2.1 데이터베이스 API로 데이터 객체 가져오기
____9.2.2 Q 객체를 사용하여 자세한 질의 만들기
____9.2.3 검색 기능 개선
__9.3 페이징 구성
__9.4 요약


10장 사용자 네트워크 구축

__10.1 친구 네트워크 구축
____10.1.1 Friendship 데이터 모델
____10.1.2 친구에 관련한 뷰 작성
______친구 목록 뷰
______친구 추가 뷰 작성
__10.2 이메일로 친구 초대
____10.2.1 Invitation 데이터 모델
____10.2.2 ‘친구 초대’ 폼과 뷰
____10.2.3 계정 확인 링크 다루기
__10.3 알림 메시지로 사용성 개선
__10.4 요약


11장 확장, 실행

__11.1 국제화(i18n)
____11.1.1 번역 가능하게 문자열 처리하기
____11.1.2 번역 파일 만들기
____11.1.3 국제화 시스템 설정하고 추가
__11.2 캐시로 성능 향상
____11.2.1 캐시 추가
______간단한 캐싱
______데이터베이스 캐시
______파일 시스템 캐시
______Memcached 캐시
____11.2.2 캐시 설정
______사이트 전체 캐시
______특정한 뷰만 캐싱하기
__11.3 단위 테스팅
____11.3.1 테스트 클라이언트
____11.3.2 사용자 등록 뷰 테스트
____11.3.3 ‘북마크 저장하기’ 뷰 테스트
__11.4 장고 실행
____11.4.1 운영 웹 서버
____11.4.2 운영 데이터베이스
____11.4.3 디버그 모드 끄기
____11.4.4 설정 바꾸기
____11.4.5 에러 페이지 설정
11.5 요약


12장 그 다음은?

__12.1 직접 만드는 템플릿 태그와 템플릿 필터
__12.2 모델 매니저와 SQL 문 바로 사용하기
__12.3 미리 정의된 뷰
__12.4 미리 제공되는 하위 프레임워크들
____12.4.1 Flatpages: HTML 바로 출력하기
____12.4.2 Sites: 사이트 관리
____12.4.3 Markup Filters: HTML 태그 외에 다른 마크업으로 페이지 구성하기
____12.4.4 Humanize: 읽기 쉽게 데이터 처리
____12.4.5 Sitemaps: 검색 엔진을 위한 사이트맵
____12.4.6 XSS 방지
__12.5 메시지 시스템
__12.6 이메일 통보 시스템
__12.7 사용자 통계와 평가
__12.8 요약


부록A. 구글 앱엔진에서 소셜 북마크 애플리케이션 구현하기


찾아보기