Top

장고 마스터하기 [장고 전문가가 되기 위한 핵심 가이드]

  • 원서명Mastering Django: Core: Delivers absolutely everything you will ever need to know to become a master Django programmer (ISBN 9781787281141)
  • 지은이나이젤 조지(Nigel George)
  • 옮긴이정사범
  • ISBN : 9791161750781
  • 45,000원
  • 2017년 11월 17일 펴냄
  • 페이퍼백 | 860쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

이 책의 주요 목표는 여러분이 장고 전문가가 되는 것이다. 이 책을 통해 체계적인 코드를 작성해 유지하기 쉽고 강력한 웹 사이트를 신속하게 개발할 수 있다. 이 책은 다음과 같은 내용을 담고 있다.

이 책에서 다루는 내용

█ 장고를 사용해 사용자가 제출한 데이터에 액세스하고 유효성을 검사하고 작업하는 방법
█ 고급 URLconf 팁 및 유용한 정보를 얻는 방법
█ 장고의 템플릿 시스템을 커스텀 코드로 확장하는 방법
█ 모델을 정의하고 데이터베이스 API를 사용해 레코드를 생성, 검색, 업데이트 및 삭제하는 방법
█ 프로젝트의 필요에 따라 기본 구현을 완전히 확장하고 사용자 정의하는 방법
█ 장고 응용 프로그램 테스트 및 배포 방법
█ 장고의 세션, 캐시 프레임 워크 및 미들웨어에 대해 더 자세히 알아보기

이 책의 대상 독자

이 책은 여러분이 인터넷과 프로그래밍에 대한 기본적인 지식이 있다고 가정한다. 파이썬이나 장고에 관련된 경험은 장점이라고 말할 수 있지만, 반드시 필요한 것은 아니다.
PHP, 자바(Java) 및 닷넷(.NET)을 기반으로 하는 빠르고, 안전하며, 확장 가능하고, 유지보수가 쉬운 대체 웹 개발 플랫폼을 찾는 초급 및 중급 프로그래머에게 이상적이다.

저자/역자 소개

지은이의 말

이 책의 독자는 프로시저 및 객체지향 프로그래밍의 기본 사항(if, while 또는 for와 같은), 데이터 구조(목록, 해시/사전), 변수, 클래스 및 객체와 같은 구조를 이해할 수 있어야 한다. 웹 개발 경험은 매우 유용하지만 이 책을 이해하는 데 필요하지는 않다. 이 책에서는 경험이 부족한 독자들을 위해 웹 개발의 모범 사례를 소개하려고 한다.

지은이 소개

나이젤 조지(Nigel George)

일반적인 비즈니스 문제를 해결하기 위해 오픈소스 기술을 전문으로 활용하는 비즈니스 시스템 개발자다. 중소기업을 위한 데이터베이스 응용 프로그램 작성부터 호주 뉴캐슬대학교(University of Newcastle)의 분산 센서 네트워크에 대한 백엔드 및 UI 개발에 이르기까지 소 프트웨어 개발 분야에서 광범위한 경험을 보유하고 있다.
또한 15년 넘게 비즈니스 목적을 가진 기술 분야의 글을 써왔다. 기업 및 호주 정부 부처를 위해 여러 가지 교육 매뉴얼과 수백 가지 기술 절차서를 작성했다. 버전 0.96부터 장고(Django)를 사용하고 있으며 C, C#, C++, VB, VBA, HTML, 자바스크립트(JavaScript), 파이썬(Python) 및 PHP로 응용 프로그램을 작성했다.
장고에 관련된 『Beginning Django CMS』(Apress, 2015)를 저술했다. 현재 호주 뉴사우스 웨일스 주 뉴캐슬에 거주한다.

옮긴이의 말

파이썬이 이 세상에 나온 이후 여러 사람의 헌신적인 노력으로 다양한 분야에 활용되고 있다. 예를 들어, 파이썬 웹 프레임워크에는 장고가 있고, 데이터 분석 도구에는 판다스가 있으며, 이외에도 수많은 유용한 도구들이 파이썬 사용자를 지원하고 있다.
이 책은 파이썬 웹 개발 프레임워크인 장고를 배우려는 사람들을 위한 기본서다. 장고는 파이썬 언어로 작성된 빠른 응용 프로그램 개발 프레임워크로, 웹 프로그램 개발자가 신속하게 웹 애플리케이션을 만드는 데 도움을 준다. 따라서 이 책의 내용을 학습하면 웹 프로그램을 좀 더 효율적이고 효과적으로 개발할 수 있을 것이다.
프로그램을 개발하는 과정에 있어 기존에 이미 누군가가 개발했던 내용을 그대로 가져와서 재활용하거나 좀 더 개선하기를 희망한다. 그 이유는 소프트웨어 개발 측면에서 효율성과 신뢰성을 확보할 수 있기 때문일 것이다. 특히 웹 프로그램을 개발하는 경우에는 좀 더 절실하다. 이러한 목적을 갖고 나오게 된 것이 웹 프레임워크이고, 이것은 다양한 웹 프로그램들을 손쉽게 만드는 기반인 플랫폼이 되는 것이다. 따라서 이러한 도구를 활용한다면 복잡한 웹 프로그램을 상대적으로 적은 노력을 들여 빠르게 만들 수 있다. 무엇보다 장고가 배우기 쉬운 파이썬 언어에 기반을 두고 있다는 점이 초보 개발자의 입장에서 볼 때 큰 장점으로 보인다.
웹 개발 경험은 다양한 측면에서 많은 도움이 된다고 생각한다. 대용량의 웹 데이터 분석, 해킹, 웹 보안과 같은 업무를 수행하는 데 있어 웹 개발 경험은 필수라고 생각한다. 따라서 다른 언어에 비해 진입 장벽이 상대적으로 낮은 파이썬을 기반으로 하는 장고를 학습해 좀 더 다양한 경험을 할 수 있는 기반을 마련하길 바란다.

옮긴이 소개

정사범

데이터를 이용한 의사 결정과 최적화 방법론에 관심이 많다. 세상에 존재하는 다양한 데이터를 이용해 여러 가지 문제를 해결하는 일을 하고 있다. 또한 다양한 책과 현장 경험을 통해 데이터 수집, 정제, 분석, 보고 방법에 대한 지식을 얻는 것에 감사하고 있다. 에이콘출판에서 출간한 『RStudio 따라잡기』(2013), 『The R book(Second Edition) 한국어판』(2014), 『예측 분석 모델링 실무 기법』(2014), 『데이터 마이닝 개념과 기법』(2015), 『파이썬으로 풀어보는 수학』(2016), 『데이터 스토리텔링』(2016), 『R에서 객체지향 프로그래밍 사용하기』(2016), 『파이썬 프로그래밍 개론』(2016), 『산업인터넷(IIOT)과 함께하는 인더스트리 4.0』(2017)을 번역했다.

목차

목차
  • 1장. 장고 소개 및 시작하기
  • 2장. 템플릿
  • 3장. 모델
  • 4장. 장고 관리자 웹 사이트
  • 5장. 폼
  • 6장. 고급 뷰와 URLconfs
  • 7장. 고급 템플릿
  • 8장. 고급 모델
  • 9장. 일반 뷰
  • 10장. 장고에서 사용자 인증
  • 11장. 장고에서 테스트하기
  • 12장. 장고 배포
  • 13장. 비HTML 컨텐츠 생성
  • 14장. 장고 세션
  • 15장. 장고 캐시 프레임워크
  • 16장. 장고 미들웨어
  • 17장. 국제화
  • 18장. 장고 보안
  • 19장. 장고 설치에 대한 추가 정보
  • 20장. 고급 데이터베이스 관리
  • 부록 A. 모델 정의 참조
  • 부록 B. 데이터베이스 API 참조
  • 부록 C. 일반 뷰 참조
  • 부록 D. 설정
  • 부록 E. 내장 템플릿 태그와 필터
  • 부록 F. 요청 및 응답 객체

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.68 : 아래에서 7행]
각 뷰 함수는 규칙에 의한 요청(request by convention)이라는 매개변수를 하나 이상 사용한다.
->
각 뷰 함수는 규칙에 의해 request라는 매개변수를 하나 이상 사용한다.

[p.69 : 6행]
첫 번째 매개변수로 HttpResponse을 취한 후 HttpResponse 인스턴스를 반환한다.
->
첫 번째 매개변수로 HttpRequest을 취한 후 HttpResponse 인스턴스를 반환한다.

[p.72]
URL/hello/
->
URL /hello/

[p.72 : 아래에서 9행]
URL/hello
->
URL /hello/

[p.73 : 3행]
/ hello/로 시작하는 모든 URL(/hello/foo와 /hello/bar)이 되지만, /hello/는 아니다.
->
hello/는 물론 /hello/로 시작하는 모든 URL(/hello/foo와 /hello/bar)도 가능하다.

[p.73 : 6행]
foo/bar/ hello/
->
foo/bar/hello/

[p.73 : 7행]
/foo/hello/ bar
->
foo/hello/bar

[p.73 : 9행]
따라서 우리는 캐럿과 달러 기호를 모두 사용해 URL/hello/matches만을 일치하는 것으로 판단한다.
->
캐럿(^)과 달러 기호($)를 모두 사용하여 URL이 단지 /hello/만 일치하는 것으로 판단한다.

[p.100 : 1, 2, 11, 12행]
python manage.py 셀
->
python manage.py shell

[p.107 : 코드 수정]

[p.132 : 16행]
첫 번째 인수는 요청이고
->
첫 번째 인수는 request이고

[p.161 : 4행]
ython manage.py 셀
->
python manage.py shell

[p.216 : 코드 들여쓰기]

->

[p.219]

->

[p.227 : 2행]
POST 양식(데이터 수정의 영향을 미칠 수 있다)을 작성하기 때문에 Cross Site Request Forgeies에 대해 걱정할 필요가 있다.
->
교차사이트 요청위조(Cross Site Request Foregies, SCRF)에 대해 주의할 필요가 있다.

[p.240 : 주의사항]
슬래시(/)는 모든 URL에 있기 때문에 추가할 필요가 없다. 예를 들어, ^reviews는 ^/reviews가 아니다.
->
가장 앞의 슬래시(/)는 모든 URL에 있기 때문에 추가할 필요가 없다. 예를 들어, ^reviews이지 ^/reviews가 아니다.

[p.241 : 3행]
주문을 활용해도 무방하다.
->
정렬을 활용해도 무방하다.

[p.243 : 1행]
일치하기만 하더라도
->
일치 하더라도

[p.243 : 3행]
쉬운 트릭은
->
쉬운 방법은

[p.243 : 아래에서 4행]
동일한 view-views.page를 가리키고 있지만,
->
뷰-views.page-를 가리키고 있지만,

[p.244 : 노트 첫 번째 코드]

[p.244 : 두번째 코드 1행]
equivalent:sell(item='Socks', price='$2.50', quantity=6)
->
sell(item='Socks', price='$2.50', quantity=6)

[p.253 : 아래에서 7행]
다른 회사의 앱이 항상 네임 스페이스 URL을 사용하도록 하는 것이 좋다.
->
서드파티 앱이 항상 네임 스페이스 URL을 사용하도록 하는 것이 좋다.

[p.260 : 8행]
템프릿 태그는 { % and % }으로 둘러싸여 있다.
->
템플릿 태그는 {% 와 %}로 둘러싸여 있다.

[p.260 : 아래에서 7행]
변수 태그는 {%와 %}로 둘러싸여 있다.
->
변수 태그는 {% 와 %}로 둘러싸여 있다.

[p.260 : 아래에서 5행]
템플릿은 변수 “holes”을 콘텍스트의 값으로 바꾸고,
->
템플릿은 {{ }} 내에 있는 내용을 콘텐스트의 값으로 바꾸고,