예제로 배우는 Django 4
안토니오 멜레 지음, 김성원 옮김 / 영진.com(영진닷컴) / 2024년 3월
평점 :
장바구니담기



요즘 웹개발 분야와 취준생들 사이에 Django 4가 화제다.  그 이유는 파이썬 코딩 플랫폼의 핵심기술로 선택하고 있어서다.


Django란 무엇인가? “빠른 개발과 깔끔하고 실용적인 디자인을 장려하는 오픈 소스 파이썬 웹 프레임워크”이다. 한마디로 웹서비스를 만들고 웹사이트를 개발하는데 유용한 도구라 할 수 있다.


이 책은 Django 연습에 최적화 되어있다고 명시하고 있고, 일상에서 흔히 접하는 4개의 프로젝트를 통해 Django를 배운다는 점에서 눈길이 가지 않을 수 없다.




저자는 컴퓨터 공학과 석사학위를 취득하고, Nucoro를 CTO로서 공동 창립하였으며, 2006년부터 Django 프로젝트를 개발하며, 여러 스타트업에서 CTO 및 기술 컨설턴트로 근무하면서 스타트업 멘토링에도 힘쓰고 있다.




이 책은 총 17개 장에 걸쳐서 4가지의 웹 애플리케이션을 구축하는 과정을 알려준다.


1장 ‘블로그 애플리케이션 만들기’에서는 파이썬과 Django 설치하기라는 기초부터 시작하여 블로그 애플리케이션을 생성해서 장고 웹 프레임워크의 기본 사항을 배운다. 


2장 ‘고급기능으로 블로그 향상하기’에서는 표준 URL을 정의하는 방법과 SEO 친화적인 블로그 게시물 URL를 만들고 게시물 목록 페이징을 구현하는 법을 알려준다. 또 이메일로 게시물을 추천하는 시스템을 만들고 블로그 댓글 시스템을 만드는 방법도 배운다.


3장 ‘블로그 어플리케이션 확장하기’에서는 서드파티 애플리케이션을 프로젝트와 통합해서 태깅 시스템을 구현한다. 그리고 복잡한 QuerySet을 사용해서 게시물 추천도 만든다.


4장 ‘소셜 웹사이트 구축하기’에서는 사이트 인증 시스템을 구축하는 방법을 배운다. 사용자가 등록, 로그인, 로그아웃, 패스워드 편집 및 패스워드 재설정에 필요한 모든 뷰를 구현하는 법을 알려준다.


5장 ‘소셜 인증 구현하기’에서는 Facebook이나 Google 계정으로 사이트에 로그인할 수 있도록 도와주는 소셜 인증하는 기능을 구현하는 방법을 배운다. 또 개발 서버를 HTTPS로 제공하는 방법뿐만 아니라, 새로운 사용자에 대해 사용자 프로필을 자동으로 생성하도록 인증 파이프라인을 커스터마이징하는 방법도 배운다.


6장 ‘웹사이트에서 콘텐츠 공유하기’에서는 이미지 부마킹 시스템 만드는 방법을 알려주고, 다대다 관계를 가진 모델을 만들고 폼의 동작을 커스터마이징하는 방법을 배운다.


7장 ‘사용자 활동 추적하기’에서는 중개 모델과 다대다 관계를 사용해서 팔로우 시스템과 활동 스트림을 구축하는 방법을 배우고, generic relation, 그리고 신호 및 비정규화에 대해서도 배운다.


8장 ‘온라인 상점 구축하기’에서는 제목 그대로 온라인 상점 구축하는 방법을 배우고, 제품 카탈로그를 만들고 쇼핑 카트 구축하는 방법을 알려준다. 그리고 Celery와 Rabbit MQ를 사용해서 고객의 주문을 관리하고 비동기로 알림을 전송하는 법을 가르쳐준다.


9장 ‘결제 및 주문 관리하기’에서는 결제 게이트웨이를 온라인 스토어에 통합하고, 관리 사이트에 커스텀 액션을 추가하며 CSV 형식으로 데이터를 내보낸 후 PDF파일을 생성하는 법을 배운다.


10장 ‘온라인 상점 확장하기’에서는 Django 세션을 사용하여 쿠폰시스템을 만드는 방법과 Redis를 사용해서 제품 추천 엔진을 구축하는 법 등 온라인 상점에서 필요한 고급 기능에 대해서 배운다.


11장 ‘온라인 상점에 국제화 추가하기’에서는 Rosetta로 코드를 변환하고 변환된 코드를 어떻게 관리해야 하는지, django-parler를 사용해서 모델 변환을 구현하고 django-local flavor를 사용해 지역화된 폼 필드의 유효성을 어떻게 검사하는지를 배운다.


12장 ‘e-러닝 플랫폼 구축하기’에서는 e러닝 애플리케이션 모델을 생성하고 모델에 초기 데이터를 제공하기 위한 fixture를 생성하고 적용하는 방법을 배운다. 또한 authentication 뷰를 구축하는 법에 대해서도 알려준다.


13장 ‘콘텐츠 관리 시스템 만들기’에서는 CMS 기능을 구현하고 Django의 그룹 및 권한 시스템을 사용해서 뷰 접근을 제한하며, formsets을 사용해서 강좌내용을 편집하는 법을 배운다. 그리고 Django와 Java Script를 사용하여 강좌 모듈과 강의 콘텐츠를 drag-n-drop으로 재정렬하는 기능도 구현한다.


14장 ‘콘텐츠 렌더링과 캐시’에서는 수강생 등록 시스템을 생성하고 각각의 강좌에 대한 수강생 등록을 관리하는 법을 배운다. 또 cache 프레임워크를 사용해서 다양한 종류의 콘텐츠를 랜더링하고 캐시하는 방법을 알려준다. 


15장 ‘API 구축하기’에서는 REST 프레임워크를 사용하여 프로젝트의 RESTful API를 구축하고 파이썬 requests 라이브러리를 사용하는 법에 대해서 배운다.


16장 ‘채팅 서버 구축하기’에서는 제목 그대로 Django 채널을 사용하여 채팅 서버를 구축하는 방법을 배운다. 그리고 웹소켓 클라이언트 구현과 채널 레이어 활성화, 컨슈머를 완전한 비동기로 만드는 법 등을 알려준다.


17장 ‘실서비스화’에서는 Docker Compose를 사용해서 프로덕션 환경을 만드는 과정을 배운다. SSL/TLS를 사용하여 보안을 추가하고, 커스텀 미드웨어를 구현하고 커스텀 관리 명령을 만드는 방법을 배운다.




이 책이 좋았던 점은 우리가 일상에서 수요가 많은 블로그나 온라인 상점, e-러닝 플랫폼 등의 웹 애플리케이션 구축을 하는데 있어서 상세하고 친절하게 예제를 통해 설명하고 있어서였다.


특히 결제처리를 어떻게 코딩하고 처리해야 할 지 막막한 초보들에게 친절하게도 그림과 예제를 통해 설명한다.


또 매 장마다 추가 자료를 URL로 제공하여 언제든지 소스 코드를 포함하여 이 책을 이해하고 Django를 효과적으로 활용할 수 있도록 도움을 주는 각종 자료를 다운 받을 수 있어서 좋았다.




Django의 장점은 단순하지만 강력한 기능을 구현할 수 있고, 유연성과 안정성, 그리고 확장성을 위해 설계된 점이라 할 수 있다.


Django를 처음 접하는 사람들에게는 막연한 두려움과 어렵다라는 편견을 가질 수 있다. 그리고 어떻게 Django를 활용해야 할 지 막막할 것이다. 하지만 이 책은 4가지 웹 애플리케이션을 구축하는 과정을 상세히 설명한다.


무엇보다 책에서 설명하는데로 4개의 프로젝트를 차분하게 따라서 만들다 보면 어느 순간에 Django가 낯설지 않고 익숙해지는 점이 좋았다.  




다만 이 책을 제대로 이해하고 활용하려면 무엇보다 파이썬에 대한 지식과 경험이 있어야 한다. 그리고 HTML이나 Java Script이라는 프로그래밍 언어에 대해서도 익숙해야 한다. 


그렇기 때문에 HTML이나 Java Script 등 프로그래밍 언어를 잘 모르는 초보는 해당 언어를 배우고 익숙해져야 Djang를 제대로 활용할 수 있다.  



<출판사로부터 책을 제공받아 읽고 솔직하게 작성한 서평입니다>


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo