< 저자 소개 >
* 에이먼 호우리에 (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. 구글 앱엔진에서 소셜 북마크 애플리케이션 구현하기 찾아보기