한빛출판네트워크

IT/모바일

백엔드 개발을 위한 핸즈온 장고

장고 모델링과 마이그레이션부터 쿼리셋, DRF까지

한빛미디어

집필서

판매중

백엔드 개발을 위한 핸즈온 장고
좋아요: 4
  • 저자 : 김성렬
  • 출간일 : 2023-05-30
  • 페이지 : 416쪽
  • ISBN : 9791169211116
  • 물류코드 :11111

합계 : 28,800

  • 그림과 코드로 이해하는 장고 코어 모듈과 DRF 활용법

     

    장고는 파이썬 웹 프레임워크이자 풀스택 프레임워크이다. 하지만 대부분의 웹 서비스는 프런트엔드와 백엔드를 분리해서 개발한다. 더욱이 리액트나 뷰 같은 훌륭한 프런트엔드 SPA 도구가 등장했고 DRF라는 강력한 장고 라이브러리가 있기 때문에 장고를 백엔드 개발 도구로 사용하는 것이 더 효과적이다. 이 책은 파이썬 백엔드 개발을 위한 장고의 핵심 개념을 다루고 있다. 실제 주니어 개발자가 궁금해하던 내용을 포함하여 백엔드 개발을 하기 위해 알아야 하는 CS 지식과 장고 코어 모듈을 입문자가 쉽게 이해할 수 있도록 설명한다. 또한 장고의 동작 원리와 구조를 정확하게 이해하는 데 도움을 주는 다양한 그림과 실무에서 활용할 수 있는 실습 코드를 수록했다.

     

    700_상세이미지_백엔드 개발을 위한 핸즈온 장고.jpg

     

  • [저자] 김성렬

    장고 컨트리뷰터이며 PYCON KOREA 2020에서 ‘장고 ORM(쿼리셋) 구조와 원리 그리고 최적화 전략’이라는 주제로 강연을 했다. 배달 음식 주문 플랫폼 요기요에서 사장님 도메인 관련 시스템을 개발했고 현재는 네이버 Biz CIC에 재직 중이다.

  • 1장. 장고에 대하여

    1.1 웹 프로그래밍과 백엔드 프로그래밍

    1.2 장고 MTV 아키텍처: 템플릿의 한계

    1.3 장고란 무엇인가

    1.4 이 책에서 사용하는 라이브러리

    1.5 프로젝트 환경 설정

    1.6 이 책의 토이 프로젝트

    Tip1 신입 또는 주니어 개발자에게 필요한 이력서

     

    2장. 모델링과 마이그레이션

    2.1 ER 모델링

    2.2 장고의 모델

    2.3 장고의 필드

    2.4 마이그레이션

    Tip2 신입, 주니어 개발자를 위한 기술 면접 팁

     

    3장. ORM과 쿼리셋

    3.1 ORM

    3.2 쿼리셋

    3.3 쿼리셋 활용하기

    3.4 지연 로딩과 즉시 로딩

    3.5 트랜잭션 관리

    3.6 매니저

    3.7 관계 매니저

    3.8 DB 라우터: 멀티 데이터베이스 관리

     

    4장 직렬화

    4.1 직렬화

    4.2 DRF Serializer

    4.3 DRF Serializer 사용 시 권장 사항

    4.4 DRF Serializer를 활용하는 방법

    4.5 DRF Serializer와 Pydantic 비교

     

    5장 뷰

    5.1 웹 프레임워크 직접 구현해보기

    5.2 URL dispatcher

    5.3 함수 기반 뷰(FBV)와 클래스 기반 뷰(CBV)

    5.4 DRF 뷰

    5.6 DRF 예외 처리

    5.7 drf-spectacular: DRF API 문서 자동화

     

    부록 배포: Uvicorn, Gunicorn

    1. 용어 정리

    2. 배포 시 사용하는 기술들

  • 주니어 개발자를 위한 장고 백엔드 개발 온보딩 가이드

    이 책은 주니어 개발자 또는 입문자를 대상으로 하며 장고를 사용한 백엔드 프로그래밍을 학습할 수 있도록 꾸며져 있다.

     

    ★ 이 책에서 다루는 주요 내용

    - 장고 모델과 마이그레이션 모듈 사용 매뉴얼

    - 장고 ORM(쿼리셋)의 내부 동작 원리

    - DRF Serializer 모듈 내부 동작과 활용 예시

    - DRF ViewSet을 활용한 RESTful API 설계

    - DRF OpenAPI 3.0 기반 문서(스웨거) 구현 및 작성법

     

    ★ 이 책의 구성

    1장 장고에 대하여

    - 장고의 개념/장고와 함께 사용하는 기술 스택

    장고가 무엇인지 그리고 장고를 왜 배워야 하는지 설명한다. 또한 장고와 같이 쓰는 도구를 살펴본다.

     

    2장 모델링과 마이그레이션

    - ER 모델링/장고 모델 옵션

    - 장고 필드/커스텀 필드

    - DB 마이그레이션 명령어

    - 커스텀 마이그레이션 파일 작성

    장고가 어떻게 데이터 테이블과 파이썬 클래스를 매핑하는지 그리고 어떻게 추가되는 모델링 이력을 관리하고 다루는지 설명한다.

     

    3장 ORM과 쿼리셋

    - ORM의 개념과 필요성

    - 쿼리셋의 특징과 활용법

    - 지연 로딩과 즉시 로딩

    - 쿼리셋 구조/트랜잭션 관리

    - 매니저의 역할과 관계 매니저

    - DB 라우터

    ORM의 개념을 익히고 장고 모델을 SQL 문으로 만들어주는 장고 ORM인 쿼리셋에 대해 살펴본다.

     

    4장 직렬화

    - 직렬화 개념

    - DRF Serializer 사용법

    - DRF Serializer와 Pydantic 비교

    직렬화가 무엇인지 살펴보고 DRF에서 제공하는 직렬화 모듈을 어떻게 다루는지 알아본다.

     

    5장 뷰

    - 웹 프레임워크 직접 구현해보기

    - URL dispatcher 모듈 사용법

    - 함수 기반 뷰와 클래스 기반 뷰 비교

    - DRF 뷰 활용법과 DRF 예외 처리

    - drf-spectacular : DRF API 문서 자동화

    뷰와 URL dispatcher 모듈을 살펴본다.

    • 1. 시작



       



      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



       



      2023년 6월달에 소개할 책은 「백엔드 개발을 위한 핸즈온 장고」입니다



       
















                                                            <표지>



       



      개발자가 아니더라도 프로그래밍에 대한 관심은 점점 더 늘어나고 있습니다.



      현재 우리는 인공지능, ChatGPT의 등장으로 놀라울만큼 빠른 기술 확산의 시대에 살고 있습니다.



      개발자가 아닌 분들이 쉽게 웹사이트를 제작할 수 있는 방법이 있으니 바로 파이썬 프로그래밍 언어로 만들어진 오픈소스 풀스택 프레임워크 ‘장고'입니다.



      풀스택이라면 ‘장고'하나로 온전한 웹사이트를 제작할 수 있다는 이야기입니다.



      하지만 이책에서는 최신 트렌드에 맞춰서 ‘장고'를 풀스택으로 사용하지 않고, 백엔드 프로그래밍을 가능하도록 가르쳐주는 책입니다.



       



      이 책은 주니어 개발자, 입문자를 대상으로 장고를 사용한 백엔드 프로그래밍을 학습할 수 있도록 쓰여진 책입니다.



       


      2.책의 내용



       



      이 책의 구성을 알아볼까요? 



       



      1장. 장고에 대하여



      2장. 모델링과 마이그레이션



      3장. ORM과 쿼리셋



      4장. 직렬화



      5장. 뷰



       



      총 5장으로 이뤄져 있습니다.



       


      1장. 장고에 대하여



      1장에서는 장고가 무엇인지? 왜 배워야 하는지? 개발 환경 구축, 사용 라이브러리, 장고 외에 사용가능한 파이썬 웹 프레임워크를 가르쳐 줍니다.


       




       



      [23 페이지]


       




       



      [31 페이지]



       


      2장. 모델링과 마이그레이션



      2장에서는 데이터 테이블과 파이썬 클래스 매핑 방법, 추가되는 모델링 이력 관리 방법을 설명합니다.



      백엔드 개발 실무 프로젝트에서 가장 먼저 하는 작업이 바로 ‘ER(Entity Relation) 모델링' 입니다.



      이것은 바로 데이터베이스를 설계하는 작업이라고 생각하시면 됩니다.



      장고에서는 모델이라는 객체를 통해서 데이터베이스 테이블 설계를 동시에 할 수 있도록 도와줍니다.



       



      웹 개발에 있어서는 데이터베이스가 필수입니다. 



      추후 고급 개발자가 되기 위해서 좀더 깊은 데이터베이스 설계에 대해서 학습을 해야합니다.


       




       



      [128, 129 페이지]







      3장. ORM과 쿼리셋



      3장에서는 ORM(Object Relational Mapping)이 무엇인지? SQL문으로 만들어주는 장고 ORM ‘쿼리셋'에 대해서 설명하고 있습니다.



       


       




       



      [178 페이지]



       


      4장. 직렬화



      4장에서는 직렬화(Serializer)의 개념과 DRF에서 제공하는 직렬화 모듈을 어떻게 사용하는지를 설명합니다.


       




       



      [274 페이지]


       




       



      [316 페이지]



       


      5장. 뷰



      마지막 5장에서는 뷰와 URL dispatcher 모듈 사용법을 설명합니다.


       




       



      [364, 365페이지]







      3. 책을 읽은 후



       



      이 책은 파이썬 백엔드 개발을 위한 장고의 핵심 개념을 다루고 있습니다.



       



      이책에서 얻을 수 있는 내용은



       



      - 장고 모델과 마이그레이션 모듈 사용 매뉴얼



      - 장고 ORM(쿼리셋)의 내부 동작 원리



      - DRF Serializer 모듈 내부 동작과 활용 예시



      - DRF ViewSet을 활용한 RESTful API 설계



      - DRF OpenAPI 3.0 기반 문서(스웨거) 구현 및 작성법



       



      장고는 파이썬으로 만들어진 풀스택(프론트엔드 + 백엔드) 프레임워크입니다.



      하지만 실무에서는 프론트엔드, 백엔드를 분리해서 개발합니다.



      장고를 백엔드 개발 도구로 사용하고, 프론트엔드는 리액트, 뷰, DRF 도구를 이용해서 효과적으로 개발 할 수 있도록 해줍니다.



       



      초급 개발자가 궁금해하는 내용, 백엔드 개발을 위해 알아야 하는 지식, 장고 코어 모듈을 알수 있습니다.



      장고 동작 원리와 구조를 쉽게 이해할 수 있도록 저자는 친절하게 그림과 실습코드를 이 책에 담았습니다. 



       



      여기서 책의 서평을 마무리 짓겠습니다.



       



      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



       



      감사합니다


    • 이 책을 보기를 추천하는 분

      : 파이썬 윕 프레임워크이 자 풀스택 프레임워크인 장고를 백엔드 개발 도구로 사용하고자 하는 분, DRF 입문자

      레고 블록처럼 동작하는 프레임워크인 DRF에 대해 더 잘 알고싶어져서 본 책을 선택하였습니다. "백엔드 개발을 위한 핸즈온 장고" 책은 DRF를 적절하게 사용해서 쉽고 빠르게 서비스 구현을 하도록 도와줍니다.

      https://m.blog.naver.com/applej424/223142232302

    • "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


      백엔드는 웹 애플리케이션에서 서버 혹은 데이터베이스를 관리하는 기술로써 프론트엔드가 우리 눈에 보이는 화면의 인터페이스를 다루는 일이라면, 백엔드는 프론트엔드에 있는 사용자들의 행동을 처리하는 것입니다.


      파이썬은 다양한 라이브러리를 통해 개발을 할 수 있다는 장점이 잇습니다. 또한 파이썬 웹 프레임워크 중 Full stack인 장고를 사용한다면, 웹 개발을 빠르게 구축할 수 있습니다. 풀스택 개발자란 GUI 프론트엔드부터 데이터베이스 백엔드에 이르는 모든 소프트웨어 스택을 이해하는 개발자입니다.


      "백엔드 개발을 위한 핸즈온 장고"는 장고의 설계 철학과 동작 원리들을 쉽게 설명하고 있어, 이해 하는데 어려움은 없었습니다.


      장고라는 것이 매우 높게 느껴지는 장벽이라 생각을 하였는데, 이 책을 읽고 그 벽이 많이 허물어지는 것 같았고, 웹 프로그래밍도 매우 생산적으로 운영을 할 수 있다고 느껴졌습니다.


      각 파트에서 예시가 있어 개념들을 이해하기 쉬웠습니다. 두고두고 꺼내보면서 복습을 하면 정말 좋은 책이라 생각합니다.


    • 



      장고를 배워야지! 마음을 먹은지 어느덧 한달이 흘러간다.



      역시 혼자는 안돼... 라며 포기하려던 찰나 읽게 된 책 백엔드 개발을 위한 핸즈온 장고.


       



      일단, 저자가 우리나라 사람이라 번역서보다 훨씬 잘 읽힌다는 장점이 있다. 그리고 일단, 정말 '초보'를 위한 책인지를 먼저 봤는데, 충분히 독학 가능 할 것 같다.


       



      먼저, 어려운 실전예제도 사용하지만 초보를 위해 쉽게 이해 가능한 예시를 사용하여 이해가 쉽다.


       



      두번째로, 현직 장고 유저로써 많이 사용하는 모듈을 알려주며 편하게 짤 수 있는 환경을 만들어준다. 파이썬에서도 기본적인 모듈이 있듯 장고에서 필수적인 모듈과 편한 모듈들을 추천해주어서 설치하고 사용한다면 금방 따라갈 것 같다.


       



      코드 시나리오 구성을 통해 코드지옥에 빠지는 것을 막아준다. 큰 그림을 먼저 그려주고 그 안의 코드를 보기 때문에 좀 더 쉽게 다가온다.


       



      다만 코드 부분이 캡쳐로 되어있어 화질이 조금 안좋고 글씨 크기가 일관되지 않은 점은 약간 아쉽다!



      하지만 어차피 예제소스는 저자님의 깃허브에 올라와있어 편하게 사용가능하긴 함! 나머지 중요한 코드 부분은 연두색 상자 안에 담겨있어 읽기에는 수월하다.


       


       



      한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


       



      


    • 다른 파이썬 백엔드 프레임 워크인 Flask, FastAPI 관련 책을 읽어 보았고 프로젝트에도 적용해 보았는데 "백엔드 개발을 위한 핸즈온 장고" 에서 설명하는 장고(Django)를 비교하면서 읽어보게 되었습니다.


       



      "백엔드 개발을 위한 핸즈온 장고" 책은 5개의 Chapter로 구성되어 있으며 장고(Django)의 핵심기능을 1개의 Chapter씩 상세히 설명하고 있습니다. 



      Chapter 1. 장고에 대하여



      Chapter 2. 모델링과 마이그레이션



      Chapter 3. ORM과 쿼리셋



      Chapter 4. 직렬화 



      Chapter 5. 뷰


       



      "백엔드 개발을 위한 핸즈온 장고" 책의 장점은 



      1. 장고 설계 철학과 필요 라이브러리를 통한 기본 학습이 가능



      2. 모델링, 커스터마이징 개념 및 풍부한 그림과 소스 설명 



      3. 데이터 베이스 설계 방식과 장고(Django)의 차이 및 모델링 방식 이해 



      4. 쿼리셋에 구조에 대한 개념과 그림을 이용한 설명



      등을 설명하면서 장고(Django)의 핵심기능을 마스터 할 수 있습니다.





       



      "백엔드 개발을 위한 핸즈온 장고" 책 전반에 풍부한 그림, 소스, 각 핵심 설명 등이 있어서 장고(Django)를 어렵지 않게 학습할 수 있게 구성되어 있습니다. 



      또한 개발을 하면서 겪게 되는 경험 이슈등이 책의 중간 중간 있어서 관련 내용을 확인 할 수 있습니다.



      UTC 시간 관련, 보안 관련, 데이터 베이스 매핑, 멀티 데이터 베이스 관리, 데이터 베이스 점유화 락 처리등등 프로젝트를 하면서 겪을 수 있는 중요한 문제들의 해결점을 학습할 수 있어서 좋았습니다. 



      스프링 프레임워크를 중심으로 개발을 하는 입장에서 장고(Django)의 개념 및 처리방식등  "백엔드 개발을 위한 핸즈온 장고" 책에서 모든 핵심이 담겨 있는것을 확인할 수 있었습니다. 


       



      "백엔드 개발을 위한 핸즈온 장고" 책의 아쉬운 점은 다른 파이썬 백엔드 프레임 워크보다 어려운 개념과 데이터 베이스, 파이썬 개발에 대한 기본 지식이 없다면 선행 학습이 조금은 필요하다고 생각합니다. 해당 선행 학습이 없다면 조금은 학습하기 어렵지 않을까 생각됩니다.  


       



      마지막으로 파이썬 백엔드 프레임 워크 중 가장 유명한 장고(Django)를 공부했는데 다른 파이썬 백엔드 프레임 워크 보다 강력한 기능, 라이브러리, 어드민 패널, 확장성등 여러 것을 확인할 수 있었습니다. 


       



      ​조금은 어렵지만 학습할 가치가 충분히 있었습니다. 



      파이썬의 가장 강력한 백엔드 프레임 워크인 장고(Django)를 추천하고 "백엔드 개발을 위한 핸즈온 장고" 책 추천 합니다. 


       



      한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


    • 파이썬의 장점이라면 빠른 생산성과 함께 정말 다양한 라이브러리들을 통해 빠르게 개발할 수 있다는 것이 큰 장점입니다. 또한 파이썬 웹 프레임워크 중 유일한 풀스택 프레임워크인 장고를 사용한다면 풀 스택 웹 개발을 빠르게 구축할 수 있습니다. 게다가 장고의 막강한 기능중 하나인 admin 기능을 이용한다면 쉽게 관리기능 또한 구축할 수 있습니다.



      또한 장고 프로젝트로 이루어진 훌륭한 기술 생태계가 있어 장고라는 이름을 단 모듈들은 서로 장고 아키텍처를 공유하고 호환 될 있도록 만들어져 있습니다. 따라서 필요한 모듈들을 이용한 손 쉽게 이용하여 개발을 할 수 있습니다.



      "백엔드 개발을 위한 핸즈온 장고"는 단순히 개발 도구로서 장고를 다루는 것이 아닌 장고의 설계 철학과 동작 원리부터 살펴보고 새로운 기능을 확장하는 장고 모듈이 어떻게 개발되었는지를 설명하고 있습니다.



      단순히 따라 하기 보다는 동작 원리와 프레임워크 아키텍처를 이해함으로써 이른바 나무가 아닌 숲(전체적인 개발 구조 및 과정)을 볼수 있는 능력을 향상 시켜 줄 것입니다.






      이 책의 구성



      1 장 _ 장고 에 대하여



      • 장고 의 개념 / 장고 와 함께 사용 하는 기술 스택 장고 가 무엇 인지 그리고 장고 를 왜 배워야 하는지 설명 한다



      또한 장고 와 같이 쓰는 도구 를 살펴 본다






      2 장 모델링 과 마이그레이션



      • ER 모델링 / 장고 모델 옵션



      • 장고 필드 / 커스텀 필드



      DB 마이그레이션 명령어



      • 커스텀 마이그레이션 파일 작성






      장고 가 어떻게 데이터 테이블 과 파이썬 클래스 를 매핑 하고 어떻게 추가 되는 모델링 이력 을 관리 하고 다루는 지 설명 한다






      3 장 _ORM 과 쿼리 셋



      • ORM 의 개념 과 필요성



      • 쿼리 셋 의 특징 과 활용법



      • 지연 로딩 과 즉시 로딩



      • 쿼리 셋 의 구조 / 트랜잭션 관리



      • 매니저 의 역할 과 관계 매니저



      • DB 라우터



      ORM 의 개념 을 익히고 장고 모델 을 SQL 문 으로 만들어 주는 장고 ORM 인 쿼리 셋 에 대해 살펴 본다






      4 장 _ 직렬화



      • 직렬화 개념



      • DRF Serializer 사용법



      • DRF Serializer Pydantic 비교



      직렬화 가 무엇 인지 살펴 보고 DRF 에서 제공 하는 직렬화 모듈 을 어떻게 다루는 지 알아 본다






      5 장 뷰 웹 프레임 워크 직접 구현해 보기



      • URL dispatcher 모듈 사용법



      • 함수 기반 뷰 와 클래스 기반 뷰 비교



      • DRF 뷰 활용법 과 DRF 예외 처리



      • drf - spectacular : DRF API 문서 자동화



      뷰 와 URL dispatcher 모듈 을 살펴 본다





    • 표지를 보면 웬 총을 든 아저씨가 서있다. 구글에서 장고를 검색 하면 관련된 영화와 책표지와 비슷한 이름의 영화가 나온다. 혹시나 해서 찾아보니 영화랑은 상관이 없고 장고의 최초 개발자 홀리바티가 좋아하던 기타리스트 장고 라인하르트에서 따온 것이라 한다.


       



      11.jpg


       


       장고란 무엇인가? 책에도 나오는 내용이지만 쉽게 설명하면 파이썬으로 만드는 무료 오픈소스 웹 프레임워크 이다. 즉 우리가 인터넷에 접속해서 아이디랑 비번을 넣고 특정 사이트를 사용할 수 있는 홈페이지를 쉽게 만들 수 있도록 미리 만들어 놓은 틀이라고 생각 하면된다. 


       


       이 책은 장고에 대한 기초를 배울 수 있는 책이다. 장고가 무엇이고 장점 등을 설명한다.


       



      22.jpg


       


      UI 부분은 github에서 제공해 주고 있어서 백엔드 부분을 집중해서 공부할 수 있다.


       



      33.jpg


       


      다른 기초 서적과 마찬가지로 설치 부터 환경 세팅까지 맥과 윈도우 두 플랫폼 모두 설명이 되어있다.


       



      44.jpg


       


      이 책의 또 다른 특징 신입과 주니어 개발자를 위한 경력 관리 및 면접 팁들이 중간 중간에 포함 되어 있어 특이하면서도 도움이 될듯 하다.


       



      55.jpg


       



      66.jpg


       


      장고의 장점 중 하나로 여러 스토리지를 지원한다는 것이다. AWS  S3, GoogleCloundSrorage 등등 많이 사용되고 있는 스토리지를 편리하게 사용 할 수 있게 해준다.


       



      77.jpg


       


      급하신 분들은 마지막 초난감 웹서버를 세팅 후 필요한 기능을 추가 하면서 공부하는 것도 하나의 방법일 듯하다.


       


       정리하자면 이 책은 장고의 설치부터 기본적인 문법 사용법 까지 초보자들이 따라 하기만 하면 되도록 잘 정리가 되어있다. 장고를 처음 부터 공부하고 싶은 분들에게 추천한다.


       



        "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

    • 백엔드 개념 + 파이썬의 개발 Tip + 장고의 다양한 개발 기능을 자세히 설명해주는 책입니다. 

       

      ---

       

      이 책은 

       

      1. 백엔드 개발자가 알아야 할 개념을 담고 있습니다.

      이 책은 장고에만 집중하지 않았습니다. 백엔드를 하기 위해 필요한 내용들을 장고와 함께 설명해줍니다. 

       

      백엔드에서 필요한 개념을 알아가며서 장고라는 프레임워크를 통해 배우는 느낌이 들었습니다. 

       

      2. 장고의 핵심 기능들까지 

      웹과 함께 장고가 추구하는 패턴을 설명하는 등 저자의 경험과 장고가 어떤 친구인지 알아 갈 수 있었습니다.

       

      읽으면서 장고의 기술적인 성숙도를 기반으로 기본기를 기르기 좋았습니다. 

       

      최근에 FastAPI를 기반으로 개발을 할 일이 많았습니다. FastAPI로 짤 때의 느낌과 장고는 너무 달랐습니다. 서로 스타일이 다른 프레임워크를 비교해보며 정말 많은 것을 느낄 수 있었습니다.

       

      3. 저자의 경험

      어떤 기능을 설명할 때 그 이유와 구체적인 문제가되는 상황을 제시해가며 설명해줍니다. 

       

      아주 구체적인 경험이 들어가서 저한테 많은 도움이 됐습니다. 

       

      4. 실습에 관한 배려

      인터넷에 올라와 있는 블로그 개발 글로 공부할 때는 파이썬 버전 때문에 약간의 수정이 필요한 경우가 종종 있습니다.

       

      이전에 파이썬 생태계에 입문할 때, 파이썬 프로젝트에 너무 다양한 스타일이 있어서 가상 환경을 어떻게 구성할지도 고민한 적이 있습니다. 

       

      이 책은 실질적으로 따라하기만 해도 개발 환경에 관한 큰 고민없이 실습할 수 있을 정도로 설명해줘서 좋았습니다. 저도 파이썬 환경을 세팅할 때 익숙해진 것만 쓰다가 이번에 저자 분의 설명을 기반으로 몇 가지 좋은 팁을 알게 됐습니다.

       

      뉴비 때 이런 것으로 삽질한 경험이 많은데 저자 분의 배려심이 보였습니다. ㅎㅎ

       

      코드에 주석이 엄청 친절하게 달려있습니다. 때로는 이런 코드 주석이 책을 읽는 흐름을 깨지 않아서 편했습니다.

       

      ---

       

      추천 독자

      초보자가 대상이라고 적혀있기는 하지만 아무래도 완전 쌩초보면 어려울 것 같습니다.

       

      백엔드 개발에 어느정도 간단한 지식과 경험이 있는 분이면 재밌게 읽으실 것 같습니다!

       

      ---

       

      한빛미디어 "나는 리뷰어다" 활동을 위해서 책을 제공받아 작성된 서평입니다.

       

       

    • 옛날에는 SSI를 만들기 위해서, ASP, PHP, JSP의 세가지 방법 중에서 하나를 골라야 했더라면, 지금은


      JSP - Spring / Spring Boot


      NodeJS - Express 


      Python - Flaks / Django


      이런 식으로 대충 구분되는 것 같습니다. 


       


      저는 옛날에 PHP를 사용했었는데, 요즘, php 관련 책을 찾는 것은 별로 쉽지 않은 것 같네요. 


       


      아무튼, 자바나 자바스크립트를 사용한다면, 쓸 수 있는 프레임워크는 정해진 것이지만, 파이썬을 사용하는 경우, Flask와 Django 둘 중에 하나를 고를 수 있습니다. 


       


      개인적으로는 Flask를 선호하는데, 다른 것들 신경 안쓰고, 만들려고 하는 기능만 만들어서 돌리기에는 flask 만한 것이 없기 때문이었는데, 최근, 다른 기능들을 만들어야 하는 경우가 생기게 되었고, Flask를 기반으로 계속 하나씩 만들 것인지, 아니면, Django를 쓸 것인지를 고민하는 와중에 우연히 이 책을 접할 수 있는 기회가 생겼습니다. 


       


      이런 식의 프레임워크 입문서의 경우, 몇개의 패턴이 존재합니다. 


       


      1) "Do it! 장고+부트스트랩 파이썬 웹 개발의 정석" 같이 사이트 하나를 책에서 제시하는 방법으로 따라하면서, 만들어볼 수 있는 책이 있고, 


      2) "파이썬 웹 프로그래밍: 장고로 배우는 쉽고 빠른 웹 개발" 처럼 개별 기능에 대한 설명을 하는 책이 있습니다. 


       


      이 책은, 이러한 두 입문서들의 패턴을 적절하게 조합한 형태를 갖고 있습니다. 


       


      기능에 대한 설명과 함께, 그 기능을 활용해서, 어떻게 구현 및 활용을 할 수 있을지를 보여주고 있습니다. 


       


      분량상, 모든 기능에 대한 설명을 하지는 못하지만, (어차피 그런 "바이블 시리즈" 레퍼런스가 필요하다면, 이런 책을 봐야 하는 단계는 아니라고 해야 겠지요), 기본으로 알아야 하는 기능들에 대한 설명과 활용법이 같이 나와있다는 점에서는, 입문서로서 가장 좋은 형태가 아닐까 싶긴 했습니다. 


       


      기존에 이런 저런 책으로 장고를 배워보려고 하다가, 포기하고, "아 그냥 쓰던 Flask나 계속 써야지.." 하고, 다시 Flask로 되돌아갔었지만, 이 책으로는, Flask 말고 , 진짜 장고를 대안으로서 활용해 볼 수 있을 것 같다는 생각이 들었습니다. 


       


      처음 python 기반의 웹 프레임워크로 장고를 사용하는 사람 뿐만 아니라, Flask에 익숙해져서 Django로 넘어가기 힘들어했던 사람들에게도 그 시작점으로 좋은 책이었습니다. 


       


      -----


      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


      -----




    •  


       


          오랜만에 파이썬의 백엔드 개발과 관련된 책을 리뷰하게 되었습니다. 저는 파이썬을 이용해서 백엔드 개발을 해 본 적이 많이 없기도 하고, 하더라도 주로 가벼운 기능들을 개발해봤었기 때문에 장고보다는 플라스크를 많이 이용했었습니다. 자바의 스프링 프레임워크에 대응하는 파이썬의 웹 프레임워크가 장고라고 생각하니 굳이 이렇게 무거운 프레임워크를 써야하나 싶은 생각이 들 정도였기 때문이죠. 그렇지만 이 책을 보고 다시 장고가 더 많이 궁금해지게 되었어요.


       



       


      GitHub - KimSoungRyoul/django-backend-starter: [한빛미디어] 백엔드 개발을 위한 핸즈온 장고


      [한빛미디어] 백엔드 개발을 위한 핸즈온 장고. Contribute to KimSoungRyoul/django-backend-starter development by creating an account on GitHub.


      github.com




       



          제목 『백엔드 개발을 위한 핸즈온 장고』 에서 보시다시피 이 책은 백엔드 프로그래밍에 집중해서 서술되어 있습니다. 책 전반에서 이용되는 토이 프로젝트는 프론트엔드도 포함하고 있는데, 이 부분은 이미 개발된 소스코드를 가져와서 사용할 수 있습니다. 책에 첨부된 깃허브 주소로 가시면 바로 사용할 수 있어요. 


       


       




       


       



          처음 프로그래밍을 배울 때는 잘 신경쓰지 못했었던 부분 중 하나가 바로 프로그래밍 언어 그리고 프레임워크의 설계 철학입니다. 어서 코드를 작성해보고 싶은 마음에 대충 술술 읽고 넘어가다보면 나중에, 꽤 나중에 내 프로젝트가 얼마나 산으로 가고 있는지를 느끼게 되는 시점이 꼭 왔어요. 그렇지만 처음 코딩을 배우는 꼬꼬마 단계에선 여전히 공감하기 힘든 부분이라고 생각합니다. 봐도 잘 이해도 안되고.


       


       




       


       



          토이 프로젝트를 진행하거나 새로운 개념을 배우게 될 때는 이해하기 쉽도록 다이어그램을 첨부해서 설명하고 있습니다. 아무래도 코드와 글만 보고 이해하는 것보다 그림을 함께 보는 것이 훨씬 학습하기가 편하고 쉽습니다. 직접 따라 개발해가면서 공부하면 더 좋겠지만 이미 파이썬에 익숙하거나 사용한 경험이 있는 사람이라면 그냥 눈으로 혹은 손코딩을 하면서 따라가도 재미있게 책을 읽을 수 있었습니다.


       


       




       


       



          토이프로젝트를 따라가면서 이렇게 구조를 잡는 방법을 배우고 직접 API 를 설계하고 구현하면 정말 많은 것을 배울 수 있게 됩니다. 그리고 조금만 응용하면 꽤나 그럴듯한 자신만의 프로젝트도 개발할 수 있어요. 수 년 전에 학부생 때 자바 스프링 프레임워크를 처음 배웠을 때가 생각나네요. 요즘은 이렇게 좋은 책들이 많이 나와서 조금은 쉽고 재밌게 배울 수 있게 된 것 같아서 정말 좋습니다. 이젠 정말 의지만 장착하면 되겠어요.


       


       




       


       



          새로운 언어, 프레임워크를 배우는 것은 항상 재밌네요. 다른 것을 공부하다보면 기존의 하는 일에도 의외의 포인트에서 많은 아이디어를 제공받는 것 같습니다. 재밌는 아이디어가 생각나면 장고를 한 번 꼭 써봐야겠습니다. 


       



      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

    • 이번에 리뷰할 서적은 한빛미디어에서 출판된


      "백엔드 개발을 위한 핸즈온 장고" 입니다.


       


      주니어 개발자를 위한 장고 백엔드 개발 온보딩 가이드라는 표지의 문구가 이 책의 전반적인 내용을 함축해 주는 설명이였습니다.


      책 표지는 서부영화에 나오는 총잡이 장고를 이미지화 해서 파이썬 장고를 표현한것이 재미있게 느껴졌습니다.


      416페이지의 책으로 책의 재질도 반질반질하니 느낌이 좋았습니다. 


      도서를 내용으로 봐야 하는게 맞지만, 그래도 표지나 재질도 중요하다 생각되기에 느낌을 적어봤습니다.


       


      내용 또한 알차게 잘 설명하고 있어서 초급 개발자를 대상으로 하는 저자의 의도가 잘 반영된거 같아서 좋았습니다.


       


      목차와 간략히 설명한 내용은 다음과 같습니다.


       


       


      1장. 장고에 대하여


       


      1.1 웹 프로그래밍과 백엔드 프로그래밍


       


      1.2 장고 MTV 아키텍처: 템플릿의 한계


       


      1.3 장고란 무엇인가


       


      1.4 이 책에서 사용하는 라이브러리


       


      1.5 프로젝트 환경 설정


       


      1.6 이 책의 토이 프로젝트


       


      Tip1 신입 또는 주니어 개발자에게 필요한 이력서


       


      - 1장에서는 장고가 무엇이고, 어떤것을 알아야 하는지 왜 장고를 배워야 하는지 살펴보고 또한 장고와 함께 사용되는 기술 스택에 대해 알아보고 있습니다.


      기본적으로 장고에 대해 설명해주고 파이썬의 다른 백엔드 프레임워크들과 차이는 무엇인지, 함께 사용하는 라이브러리들은 어떤것이있고 어떻게 사용하는지에 대해 자세히 설명해주고 있습니다.


      개발하려면 개발환경을 구축해야 하는데, 이책에서 함께 할 토이 프로젝트의 환경설정에 대해서도 윈도우즈와 MacOS로 구분해서 설명해줘서 좋았습니다.


      Tip1 신입과 주니어 개발자를 위한 이력서 컨설팅도 현실적이고 시작하는 초급자들에게 많은 도움이 되리라 생각되었습니다.


       


      2장. 모델링과 마이그레이션


       


      2.1 ER 모델링


       


      2.2 장고의 모델


       


      2.3 장고의 필드


       


      2.4 마이그레이션


       


      Tip2 신입, 주니어 개발자를 위한 기술 면접 팁


       


      - 2장에서는 백엔드 개발의 시작인 모델링과 장고가 어떻게 데이터 테이블과 파이썬 클래스를 매핑하는지 그리고 어떻게 추가되는 모델링 이력을 관리하고 다루는지에 대해 설명하고 있습니다.


      중간의 다양한 옵션을 설명하는 부분에서는 각각의 옵션들을 하나씩 나열해서 세부적으로 설명하고 있는데, 상세한 설명과 이해하기 쉬운 예시로 장고의 모델과 필드에 대해서 배울수 있어서 좋았습니다.


      장고에서의 마이그레이션에 대해서도 각각의 명령어와 객체의 역활을 설명하고 있는데, 장고만의 특별한 모듈에 대해 배우게 되어서 좋았습니다.


       


       


       


      3장. ORM과 쿼리셋


       


      3.1 ORM


       


      3.2 쿼리셋


       


      3.3 쿼리셋 활용하기


       


      3.4 지연 로딩과 즉시 로딩


       


      3.5 트랜잭션 관리


       


      3.6 매니저


       


      3.7 관계 매니저


       


      3.8 DB 라우터: 멀티 데이터베이스 관리


       


      - 3장에서는 ORM의 개념을 익히고 장고 모델을 SQL문으로 만들어주는 장고의 ORM인 쿼리셋에 대해 설명하고 있는데, 장고만의 깊이있는 ORM과 쿼리셋이라는 객체를 활용한 데이터베이스와의 매핑과


      트랜젝션 관리 및 멀티 데이터베이스의 관리까지 배울 수 있어서 좋았습니다.


       


       


      4장 직렬화


       


      4.1 직렬화


       


      4.2 DRF Serializer


       


      4.3 DRF Serializer 사용 시 권장 사항


       


      4.4 DRF Serializer를 활용하는 방법


       


      4.5 DRF Serializer와 Pydantic 비교


       


      - 4장에서는 직렬화의 개념과 빈약한 직렬화 모듈을 보완하고 장고를 더 확장시킨 프레임워크인 DRF Serializer 모듈에 대해 설명하고 있습니다.


      DRF Serializer사용시 권장 사항과 활용하는 방법 Pydantic과의 비교를 통해 다양한 방법의 데이터 직렬화를 배울 수 있어서 좋았습니다.


       


      5장 뷰


       


      5.1 웹 프레임워크 직접 구현해보기


       


      5.2 URL dispatcher


       


      5.3 함수 기반 뷰(FBV)와 클래스 기반 뷰(CBV)


       


      5.4 DRF 뷰


       


      5.5 함수 기반 뷰(장고 닌자)와 클래스 기반 뷰(DRF)


       


      5.6 DRF 예외 처리


       


      5.7 drf-spectacular: DRF API 문서 자동화


       


      - 5장에서는 API 개발을 위한 뷰 구현체를 설명하고 있는데, 클래스 기반인 뷰 구현체(CBV)와 함수 기반의 뷰 구현체(FBV)의 비교 설명과 DRF의 구현체에 대해 설명하고 있습니다.


      함수기반 뷰와 클래스 기반 뷰의 개념에 대해 배울 수 있고, 두 모듈의 활용 방안에 대해 알게 되어서 좋았습니다.


       


       


      부록 배포: Uvicorn, Gunicorn


       


      1. 용어 정리


       


      2. 배포 시 사용하는 기술들


       


      - 부록에서는 배포시 사용하는 Uvicorn, Gunicorn에 대해 알게 되서어 추후 유용하게 사용할 수 있으리라 생각되어 좋았습니다.


       


       


      전반적으로 백엔드 개발을 위한 장고 프레임워크의 설명과 주요 웹 어플리케이션을 개발하는데 있어서 주요한 활용 방안을 자세하고 깊이있게 잘 설명해주고 있는 책이였습니다.


      초심자들이 보기에도 좋을듯하고, 장고를 많이 접해보지 못했던 자바 개발자인 저에게도 많은 도움이 되었던 서적이였습니다.


      장고 프레임워크가 실무에서도 많이 활용되는 시대가 오기를 바라며, 이책으로 미래를 준비한다면 다가올 파이썬의 시대를 선점하는 개발자가 되지 않을까 하는 생각도 했습니다.


      지금의 시대는 많은 언어와 프레임워크가 존재하고 실무에서는 많이 활용하는 언어가 있긴 하지만, 기술은 빠르게 변화하고 그 변화를 따라가려면 항상 준비해야 하는 시간이 있어야 한다고 생각합니다.


      파이썬은 앞으로의 변화의 시대에 새로운 중심이 될 수있는 가능성이 있기에 지금부터 중심이 될 수 있는 기술들을 익히는게 중요하다 생각합니다. 


      이 책을 통해서 그 준비를 시작한다면 다가올 미래의 변화를 두려움 없이 맞이 하는데 큰 도움이 될 수 있으리라 확신합니다.


       


      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

    • 책의 특징 및 비평


      해당 책은 독자 설정과 해당 서적에서 설명하고자하는 범주에 대한 정확한 설정을 진행한다. 이를 통해 필요한 지식만 적극적으로 습득이 가능하다.


      추천 대상


      주니어 개발자 또는 입문자를 대상으로하며 장고를 사용한 백엔드 프로그래밍을 학습하기 위한 독자 대상


      한줄평


      풀스택 프레임워크 장고, 백엔드의 개념을 설립할 수 있기에 접근성이 좋다.


      별점


      • 몰입도(책이 잘 읽히는가?): ⭐⭐⭐⭐

      • 난이도(타겟팅한 독자에게 맞을까?): ⭐⭐⭐⭐⭐

      • 주제의 신선함(다른 책과의 차별성이 있는가?): ⭐⭐⭐⭐

      • 편집 상태(읽기에 편집이 잘 되었는가?): ⭐⭐⭐⭐



      <총점>: ⭐⭐⭐⭐



    • 1.jpg


       



      장고는 자체 ORM을 가지는 몇 안되는 파이썬 웹 프레임워크로 필수 모듈 중 하나인 django REST framework를 붙이면 풀스택 웹 프레임워크로 손색이 없으며 복잡한 시스템을 분리하는 아키텍처를 제공하기 때문에 개발자는 별다른 고민 없이 장고가 제공하는 패턴을 지키면서 개발할 수 있고 다른 프레임워크보다 접근성이 좋을 뿐만 아니라 기술적인 성숙도도 가장 높습니다. 또한 구현하는 서비스가 복잡하여 비즈니스 로직에 대응하는 API 개수가 많을 때 그리고 비즈니스 로직을 구현하기 위해 다양한 종류의 인프라를 사용해야 할 때에 장고를 사용하면 적절하게 대처할 수 있을것입니다.






      제가 이 책을 선택한 이유는 이 책이 시중에 널리 퍼져있는 장고 템플릿에 대한 내용 대신에 URL-Resolver, DRF-라우터, 쿼리셋, 미들웨어, Request/Response, DRF-Serializer 등과 같이 실무에서 사용 빈도가 높은 모듈에 대한 내용을 중점적으로 다루기 때문입니다.






      이 책의 특성은 장고의 넓은 활용성과 깊이 있는 내용을 쉽게 설명하고 저자가 DRF 기반의 마이크로 서비스로 대규모 시스템 내부 서비스를 구현해본 경험이 있기 때문에 DRF 입문자가 실무에서 맞드릴 다양한 문제를 해결하는 데 많은 도움이 된다는 점입니다.







      구성



      Chapter 1: 장고에 대하여



      Chapter 2: 모델링과 마이그레이션



      Chapter 3: ORM과 쿼리셋



      Chapter 4: 직렬화



      Chapter 5: 뷰



      Appendix: [부록] 배포: Uvicorn, Gunicorn







      파트별로 나누어 봤을때 1장은 장고가 무엇인지 그리고 장고를 왜 배워야 하는지와 장고와 같이 쓰는 도구에 대해 설명하고 있고, 2장은 장고가 어떻게 데이터 테이블과 파이썬 클래스를 매핑하고 어떻게 추가되는 모델링 이력을 관리하고 다루는지에 대해, 3장은 ORM의 개념을 익히고 장고 모델을 SQL문으로 만들어 주는 장고ORM인 쿼리셋에 대해, 4장은 직렬화가 무엇인지 살펴보고 DRF에서 제공하는 직렬화 모듈을 어떻게 다루는지에 대해, 5장은 뷰와 URL dispatcher 모듈에 대해 설명하고 있습니다.







      개인적인 생각으로 학습은 주니어 개발자 또는 장고를 사용하여 프로그래밍을 하시려는 분들께서는 1장부터 시작하시면 좋을 것 같고 어느정도 경험이 있으신 분들(2년차~)부터는 1장까지는 쭉 훓으시면서 장고에 대한 내용과 같이 쓰는 도구에 대해 파악한다는 방식으로 보시고 2장부터 학습하시는 것이 좋을것 같습니다.







      개인적으로 약간의 단점이 어쩌면 욕심일수도 있는게 좀더 많은 실습 예제 및 비즈니스 케이스가 담겨있으면 더 좋았지 않았을까라는 아쉬움이 있습니다.







      저의 리뷰를 읽어주셔서 감사합니다. 다음에는 좀더 유용하고 좋은 책으로 더 나은 리뷰를 통해 여러분께 책을 소개시켜드릴 수 있도록 더 노력하겠습니다.







      감사합니다.







      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."



    • 이 책은 장고에 대한 설명과 함께 활용법과 응용법까지 자세히 설명한 온보딩 가이드가 가장 적절하다.



      대상 독자는 주니어 개발자나 프로그래밍 경험이 있는 장고 입문자로 백엔드에 경험이 있으면 쉽게 이해할 수 있다.



       



      본인은 간단한 Flask(플라스크) 경험만 있었고, 장고와 FastAPI에 대해서는 경험이 전혀 없었지만, 장고의 개념을 알 수 있었으며, 장고와 함께 사용하는 기술 스택과 도구도 알 수 있어서 확실히 지식이 업그레이드된 느낌이다.



      특히, 장고의 진화와 함께 백엔드 프로그래밍의 발전 방향도 자세히 설명한다.



      MTV(Model, Template, View), DRF(Django REST Framework)를 설명하면서 SPA(Single Page Application), REST API에 대한 추가 설명(원칙, 관습)도 덧붙인다.



      ORM을 설명할 때는 하이버네이트를 언급하는데, 자바 진형의 스프링부트, JPA와도 통하는 면이 있어 내용이 더욱 쉽게 다가왔다.



       



      책은 400페이지 분량으로 5개의 장으로 구분하고 있는데, 한 장의 페이지 수가 많지만, 적절하게 나눈 것 같다.



      장별로 설명하면 아래와 같다.



      CHAPTER 1에서는 백엔드 프로그래밍의 동향와 장고(풀스택 프레임워크) 소개, 장고의 특징과 한계점을 설명하고, 함께 설치하면 효과적인 라이브러리 설치법과 함께 개발 환경 설정까지 진행한다.



      CHAPTER 2는 장고의 모델과 필드 소개, 마이그레이션 활용법을 설명한다.



      CHAPTER 3은 먼저 ORM과 쿼리셋을 설명하고, 쿼리셋 활용법과 지연 로딩 및 즉시 로딩, 트랜잭션 관리 방법, 멀티 데이터베이스 관리 방법을 주제로 설명한다.



      CHAPTER 4는 장고의 직렬화 방법과 DRF에서의 직렬화 방법과 권장 사항, 직렬화 활용법, Pydantic(파이단틱)과의 차이점을 비교 설명하고



      CHAPTER 5는 파이썬 기반으로 웹 서버를 직접 구현하고, 장고와의 차이점을 설명한다. 또한, 장고 DRF에서의 클래스 기반 뷰와 장고 닌자의 함수 기반 뷰를 비교 설명한다. 클래스 기반 뷰와 함수 기반 뷰의 장단점을 설명하고, 예외 처리 방법에 관해서 설명한다. 마지막으로 DRF API 문서 자동화(스웨거)까지 설명한다.



      끝의 부록에는 WSGI(위스기), ASGI(아스기) 설명과 배포 시 사용하는 Uvicorn, Gunicorn 라이브러리에 대한 장단점, 설치 방법과 주의점으로 마무리한다.



       



      각 장은 장고의 해당 주제를 설명하기 전에 설명하는 주제에 관한 일반적인 프로그래밍 지식을 먼저 다룬다. 운영체제, 네트워크, 데이터베이스, 인터넷, REST API, DOCS, 라이브러리, 유틸리티 등등 장르를 가리지 않고 필요하다고 판단되면 일반적인 지식을 먼저 설명하고 이어서 장고의 해당 부문을 설명한다. 그래서 서두의 '온보딩 가이드'가 적절하다고 한 것이다. 장의 설명 방식은 각 장의 주제를 가장 잘 설명하는 방향으로 되어 있다. 공통되는 규칙이 따로 있는 것이 아니고 해당 주제를 잘 설명하는 방식으로 자유롭다.



       



      이 책은 기본적으로 장고에 대해서 다루지만, 프로그래밍에 대한 저자의 경험과 노하우를 많이 담고 있어, 더욱 흥미롭다. 프레임워크의 동작 원리와 장고의 세세한 설정뿐만 아니라 일반적인 책과 공식 문서에는 없는 프로그래밍에서 발생할 수 있는 저자의 여러 가지 고민과 관습적인 처리 방법 등을 고스란히 담고 있다. 진심으로 개발을 좋아하는 것은 확신하는데, 수다쟁이가 아닐까? ㅎㅎ



       



      1장, 2장 후반부에는 부록처럼 신입 또는 주니어 개발자에게 필요한 이력서와 기술 면접에 대한 저자의 솔직한 생각을 전하는 부분이 있는데, 지면의 제약이 있었겠지만 3장~5장에도 추가해 줬으면 어떨까? 하는 아쉬움이 있다.



       



      책 중간마다 NOTE와 전구설명에서는 생소할 수 있는 IT 용어에 대한 자세한 설명과 본문에 대한 추가 보충 설명이나 관용적인 사례를 설명하기 때문에 꼭 읽도록 한다.



       



      그리고 중간마다 책 한 페이지씩을 차지하는 그림은 이해하기 쉽도록 구성되어 있어 자세히 챙겨 보자. 특히, 말풍선으로 설명하는 부분은 재미뿐만 아니라 지문으로 설명하는 것보다 더욱 쉽게 이해가 되었다.



       



      책 커버는 영화 '장고'를 형상화하였는데, 영화감독과 장고 개발자 모두 좋아하는 기타리스트 '장고 라인하르트'에서 명칭을 가져왔다고 한다. ('D'가 묵음인 건 모두 알고 있죠? ^^)



       



      핸즈온 도서답게 코드 블록이 매우 많다. 따라 하거나 읽기에 부담이 없고, 잘 읽힌다. 다만 1장의 개발 환경 설정에서는 설명의 순서를 조정하면 좋을 것 같다. 에러에 관한 내용이 뒤에 나오는 바람에 괜한 구글링을 하였다. 나만 그런가? ㅎㅎ



       



      저자가 많이 사용하는 문구 중에서 개인적으로 공감하는 '인간 친화적인'이란 표현이 있다. 마지막은 그중 한 부분을 인용하며 마무리하고자 한다.

      

       




      개발자는 유지 보수가 가능한 코드를 작성해야 한다. 인간 친화적인 표현을 코드에 녹이는 것은 유지 보수가 가능한 코드를 만드는 첫 시작과도 같다.



      CHAPTER 3 ORM과 쿼리셋, p247



       



      "한빛미디어<나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


       


       


    • > 진행에 앞서


      클라이언트 개발을 하기 위해 대부분의 노력을 쏟는 생활을 하다보니, 그에 앞서 대부분 필요한 서버 개발에도 요즘은 눈을 돌리고 있다. 필요한 RESTful API 서버 개발을 하기 위해 대중적인 스프링도 공부해보고, 파이썬을 이용해 하려다보면 lightweight의 대표격인 플라스크를 보게 되기도 한다. 하지만 어쩐지 django는 손이 쉽게 가지는 않는다. 아무래도 알아야 할 사전 지식이 많기 때문이라고 생각한다. 그래서 실제 업무에서 부딪히기 전까지는 쉽게 접하지 못하는 프레임워크라고 생각한다.


      이 책을 보기 시작한 것은 그런 마음이었다고 생각한다. 그래도 사전지식을 좀 더 쌓아볼 수 있다면 좋겠다는 생각과, 이 프레임워크는 절대 다루지 못할 것이 아니라는 생각을 갖기 위함이다. 과연 이 책은 그 생각을 전환시켜줄 수 있을까.


       



      > 책에 대한 간단한 정보


      책 표지


      장고는 역시 총잡이가 어울리지. 넷플릭스로 나온 장고까지 생각보다 많은 시리즈가 있지만, 역시 떠올릴 수 있는 이미지는 서부의 총잡이 이미지이다. 프레임워크 장고도 그걸 노리고 네이밍을 하지 않았을까 싶은데, 이런 책 표지를 수록한 책이 없었기 때문에 좋았다고 생각한다. 내가 해결하고싶은 문제를 바로 타게팅하고, 잡아버리는 그런 노련함이 있는 프레임워크의 이미지를 가져갈 수 있지 않을까 하는.


      출처: https://movie.daum.net/moviedb/main?movieId=13569


       



      > 인상깊은 부분들


      이 책의 대상 독자


      이 책은 초급을 대상으로 하고 있다고 이야기 한다. 하지만 정확하게 어떤 기본 지식이 필요한지 나타내고 있지 않아서 그건 아쉬웠다. 그래도 주니어개발자를 대상으로 하는만큼 그리 어려운 내용만을 다루지 않을 것이라는 기대가 있었고, 실제로 어느정도는 충족했다고 생각한다.(전부는 아니라고 생각한다.)


      목차 구성 초반을 보면 알겠지만, 놀랍게도 파이썬에 대한 직접적인 언급은 없다. 모델링과 마이그레이션, ORM과 쿼리셋이다. 물론 이 뒤에도 별반 차이는 없었다. 즉 저자가 중요하게 생각하는 부분이 어떤 것인지 짐작할 수 있다.


      이 책을 통해 프로젝트를 빌드하기 위해 거치는 과정 순서대로 담고 싶었다는 것으로 보인다. 그리고 파이썬에 대한 문법과 기본적인 프레임워크 구조를 습득하고, 웹과 서버의 기본을 알려주는 것에 집중하고 있지는 않는 것으로 보아, 어느정도는 그에대한 기본지식이 필요하다고 말하고 있는 것으로 보인다. 실제로 그런 부분이 없는 경우 이 책을 보면 당황스러울 수 있다고 생각한다.


       


      FastAPI 및 Flask에 비해 django가 갖는 이미지


      Python을 이용한 백엔드 개발 프레임워크로 유명한 FastAPI 및 Flask에 비해 django가 갖는 불편한 인식에 대해 말하고 있다. 이에 대한 이유를 말해주고 있다. django는 풀스택 웹 프레임워크이며, 이는 마이크로 프레임워크인 FastAPI, Flask와는 다르다. 풀스택 프레임워크는 높은 복잡도를 가지는 프로젝트의 각 도메인과 모듈 간 계층이 높은 응집도와 낮은 결합도를 가질 수 있도록 시스템 아키텍처를 분리할 수 있는가에 대한 것이다. 장고는 장고 앱이라는 단위의 분리 방식으로 적용할 것을 제안하고 있다고 답하고 있다.


      중간 설명이 더 필요하지만, 결론은 비싸고 좋은 도구(여기는서는 django를 의미)가 이것을 해결해 주지는 않는다는 사실이다. 결국 개발자의 역량이 중요하며, 단지 동일한 수준의 이해도를 가지고 있다면 풀스택 프레임워크가 마이크로 프레임워크에 비해 상대적으로 코드의 복잡도가 덜 증가한다는 것을 의미한다고 한다.


       


      책 지면을 90도로 돌려 활용


      가끔 효과적인 설명을 위해서는 가로로 길게 표현하는 편이 나을 때가 있는데, 이 책은 그런 내용에 대해 90도로 돌려서 표현했다. 의외로 이런 방법은 참신하게 다가왔는데, 어떻게든 세로로된 한 페이지에 표시할 수 있도록 노력하려 대부분의 책에서는 그렇게 하였으나, 이 책은 그냥 돌려서 보도록 하였다는 사실이다. 사실 모니터로 보는 것도 아니고, 조금 돌려서 보는 편이 더 잘 설명할 수 있다면, 그렇게 보면 되기 때문에 이 부분은 좋았다고 생각한다. 괜히 linebreak를 발생시키면 우리가 갖고있는 사고의 흐름도 끊기는 편이라고 생각하기 때문이다.


       


      HTTP와 TCP에 대한 짤막한 설명을 면접에 기대어 설명한다.


      이 책의 특징으로는 뜬금없이 면접관이 등장한다는 사실이다. 갑자가 면접을 본다면 이렇게 하라는 부분과, 면접에서는 이렇게 나올 수 있다는 등의 의문을 할 경우가 있다. 이 부분도 동일한데, 프로토콜에 대한 이해를 하고있는지 설명하기 위해 도입한 내용이다. 주니어 개발자라도 요즘은 많이들 이해하고 있을 수 는 있지만, 별 생각없이 보고 있었다면 제대로 이해하지 못하고 있을지도 모른다. OSI 7계층까지 굳이 들어가지 않더라도, 우리가 개발할 때 HTTP는 어떤 목적에서 사용하며, TCP는 어떤 목적에서 사용하는지 안다면 당연히 각 프로토콜의 단계가 다르다는 것을 알 것이고, 그렇다면 저 질문은 바보같은 질문이라는 사실을 알게된다는 것이다. 그래도 확실히 주니어를 목표로 잘 알려주려 했다는 사실을 알 수 있는 부분이었기에 좋았다.


       


      뒷 표지


      장고에 대한 모든 것을 알려주는 느낌을 주는 책의 뒷표지는 아니다. 그래서 다른 책의 참고가 반드시 필요할 것을 알려주는 듯 하지만, 대신 DRF의 데이터 중심 처리를 하는 방법과 ORM 등에 대해 집중적으로 알려준다고 표현하고 있다.


       



      > 괜찮은 부분


      1. 실습에 갚서 갖춰야 할 기본지식을 잘 알려주고 있다.


      실습에 들어가기 전 웹 개발과 백엔드 지식 전반, 파이썬 환경구성을 위한 설명이 충분하다고 생각한다. 다만 완전 컴퓨터 지식이 전무한 사람을 대상으로 하는 것이 아니기 때문에 그정도의 지식을 가진 사람이라면 만족할 것으로 보였다. 특히 모델링으로부터 시작하는 독특한 순서를 가지고 있기 때문에 데이터를 모델링하는 방법도 지식으로 제공한다. 이렇듯 이 책으로 모든 것을 알려주지 않음을 확실히 함과 동시에 알려주기로 한 부분에 대해서는 반드시 제대로 알 수 있도록 노력한다.


       


      2. 풀스택 프레임워크인 장고를 사용하고 있지만, 책의 제목과 같이 백엔드 개발에 충실하고 있다.


      장고 및 플라스크를 비롯한 스프링까지 많은 책들은 하나 혹은 둘 이상의 프로젝트를 만들어가면서 각 요소를 설명하는 방식을 취하고 있다. 그렇게 하다보니 자연스레 백엔드의 영역을 다루긴 하지만, 프론트엔드의 영역도 적지않은 분량을 차지하게 된다. 그래서 일부 리소스는 저자가 관리하는 곳에서 가져오면서 프론트엔드에 대한 지식도 같이 쌓는다. 물론 이것이 나쁘지는 않지만, 백엔드 개발을 위한 목적으로 공부를 하고 있고, 그 도구로서 장고를 선택했다면, 이렇게 선택과 집중을 하는 편이 낫다고 생각한다. 이 책은 그것을 잘 지키도록 도와준다.


       


      3. 대상자인 주니어를 위한 배려가 담긴 책이다.


      기술면접에 대한 부분 등 주니어를 위한 지면이 많이 할당되어 있다. 주니어를 위한 것을 강조하기 때문에 그에 걸맞는 내용으로 구성하려고 애쓴 흔적이 보인다. 이것이 책이 친절하다는 것을 의미하지는 않지만, 최소한 주니어에게 설명한다는 느낌은 지속적으로 주고있다는 것은 확실하다. 그래서 한편으로는 굳이 왜 이런 내용이 여기에 있을까 하는 생각이 들기도 하지만, 이렇게까지 주니어에게 집중하고 있다고 생각한다면 이해가 간다.


       



      > 아쉬운 부분


      1. 실습 순서가 순차적이지 않아서 어렵다.


      가령 pyenv 설치시 설치에 대한 부분이 없어서 따로 인터넷을 활용하여 방법을 찾아서 설치했는데, 몇 장 뒤에 이에대한 설치를 알려주고 있는 것을 발견했다. 왜 이렇게 배치했을까 아쉬웠다. 이 책만의 특징이 선택과 집중으로 보이지만, 그 순서는 일반적인 편이 나았을 것 같다. 독자의 시간을 조금 아껴주길 원한다면 말이다.


       


      2. 일반적으로 실습하며 따라하기에 좋은 책은 아니다.


      이 책은 실습을 작성하며 결과를 확인하고, 그것을 이어가며 프로젝트를 완성하기 좋은 책이 아니다. 관점을 달리하여, 하나의 프로젝트를 시작해야 하는데, 장고라는 프레임워크를 이용해서 구성하려는 중이고, 그 과정을 알려주는 책에 가깝다. 그래서 데이터를 구성하는 부분부터 시작해서 프로젝트를 진행한다. 또한 실습 예제가 나오는데, 그 예제를 어느 파일로 생성해서 작성해야 하는지도 알기가 쉽지 않다. 깃헙에 올라온 자료를 비교해가며 보아야 하는데 이 또한 쉽지는 않다. 그래서 그냥 책을 읽는 편이 오히려 낫다고 생각되기도 한다.


       



      > 추천 독자


      - 파이썬에 대해 알고 있으며, 백엔드 개발에 대해 배우고 싶은 개발자


      - 아직 백엔드 개발이 익숙하지 않은 주니어 개발자


       



      > 개인적인 평점



      - 가격: 7 / 10



      - 내용: 7 / 10



      - 디자인: 8 / 10



      - 구성: 5 / 10


       


      독특한 구성이 개인적으로 임팩트가 있었다. 하지만 익숙하지는 않았고, 그 점이 이 책을 다소 난해하게 만들었다고 생각한다.


       



      > 정보



      저자: 김성렬



      출판사: 한빛미디어



      가격: 32,000원



      전체 페이지: 415페이지


       



      ** 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


    •  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


      일반적으로 엔터프라이즈급 백엔드 개발 프레임워크는 Java 언어를 이용한 Spring 또는 Spring Boot를 많이 사용한다. 아직 한국에서 엔터프라이즈급 프로젝트에 .NET을 그다지 많이 사용하지 않기 때문에 거의 Java는 독보적인 것 같다. 포스트 Java에 여러 언어들이 후보로 생각할 수 있는데, 요새 가장 많이 관심이 가는 언어가 바로 Python일 것이다. 데이터분석 혹은 인공지능 분야의 발전에 Python 언어가 많이 사용하게 되는데, 그에 발맞춰 일반 웹개발에도 Python이 많이 사용하게 된 것 같다. Python언어로 백엔드 개발에 많이 사용하는 프레임워크가 바로 Django이기 때문에 이 책을 보면서 새로운 시각으로 접근하고 싶었다. 


      Java Spring은 MVC 아키텍처를 사용한다. Model은 데이터를 View는 프론트엔드단을 마지막으로 Controller는 이 두가지를 연결하는 컨트롤러 역할을 맡는다. Django는 특별히 MVC 아키텍처를 MTV 아키텍처를 사용하는데, 이 두가지 아케텍처는 매우 유사하다. 동일하게 Model은 데이터를, Template은 프론트에 데이터를 렌더링하는 역할을 하며, 마지막으로 View는 컨트롤러처럼 데이터와 템플릿을 연결하는 역할을 하게 된다. 또한 Django는 DRM 모델을 사용하여 데이터처리를 보다 아키텍처적으로 처리한다. 다시 말해 Django를 학습하는데 MTV와 DRM은 모르면 Django가 아닌 것이다. 이 2가지 핵심 아키텍처를 얼마나 책에서 자세히 잘 설명하느냐가 중요한데, 이 책은 이 2 가지를 잘 다루고 있다. 아무래도 저자가 Django 컨트리뷰터이기 때문에 초급 Django 개발자가 중급이상으로 점프하기 위해 반드시 아키텍처를 이해하고 잘 다룰 수 있어야 하는데, 가장 적합한 저자가 아닌가 싶다. 따라서 이 책은 Django를 처음 접하는 비기너보다는 적어도 주니어개발자라면 더 맞을 듯 한 이유이다. 이 책을 통해 보다 심도있는 MTV와 ORM의 세계에 빠져보자.


       



       



       


    • [서론]


       


      장고는 Python을 기반으로 널리 사용되는 웹 프레임워크이다. 다양한 기능과 강력한 생태계를 갖추고 있어 전세계적으로 많이 사용되고 있다.


       


      장고는 개발자들이 웹 애플리케이션을 빠르게 개발할 수 있는 강력한 도구와 기능을 제공한다. 장고는 ORM, 보안, 데이터베이스 관리, URL 라우팅, 세션 관리 등의 기본 기능을 내장하고 있어 개발자가 이를 일일이 구현할 필요가 없다. 또한 재사용 가능한 컴포넌트와 다양한 라이브러리를 활용하여 개발 시간과 노력을 절약할 수 있다. 또한 장고는 활발하고 열린 커뮤니티를 가지고 있으며, 다양한 문서와 튜토리얼이 제공된다. 이를 통해 문제 해결을 위한 리소스를 쉽게 얻을 수 있다.


       


      이러한 이유로 이 책을 통해 Python 장고 프레임워크에 입문하는 것은 효율적이고 생산적인 웹 애플리케이션 개발을 위한 좋은 시작이다.


       


       



      [1장 장고에 대하여]


       


      장고 프레임워크를 이용하면 웹 애플리케이션을 빠르고 효율적으로 개발할 수 있다. 1장에서는 장고를 왜 배워야 하는지와 장고와 함께 사용되는 도구와 기초적인 환경 설정에 대해서 살펴본다.


       


       



      [2장 모델링과 마이그레이션]


       


      2장은 장고의 DB에 대한 내용이다. ER 모델링, 필드, 마이그레이션 순서로 장고에서 제공하는 다양한 DB 관련 기능에 대해 설명한다. DB 마이그레이션 명령어는 데이터베이스 스키마를 변경할 때 사용되는 명령어다. 마이그레이션 명령어를 사용하면 새로운 모델이나 필드를 추가하거나 변경된 내용을 데이터베이스에 적용할 수 있다. 이 장에서는 장고에서 데이터 테이블과 파이썬 클래스를 매핑하는 방법과 모델링 이력을 관리하는 방법을 설명하고 있다.


       


       



      [3장 ORM과 쿼리셋]


       


      ORM은 객체와 데이터베이스 간의 상호작용을 관리하는 개념이다. 장고의 쿼리셋은 데이터베이스로부터 데이터를 조회하고 조작하는데 사용된다. 따라서 실무 개발에서 가장 많이 사용하게 되는 객체이다. 3장에서는 쿼리셋의 특징과 활용법, 데이터 로딩 방식, 트랜잭션 관리, 매니저와 관계 매니저의 역할, 그리고 데이터베이스 라우팅에 대해서 배운다.


       


       



      [4장 직렬화]


       


      직렬화는 객체를 다른 형식으로 변환하는 과정을 말한다. 장고 REST Framework에서 제공하는 Serializer를 사용하여 데이터를 직렬화하는 방법을 학습한다. 또한 DRF Serializer와 Pydantic의 특징과 차이점에 대해 비교하여 각 상황에서 어떻게 사용하는지 이해할 수 있다.


       


       



      [5장 뷰]


       


      뷰는 클라이언트 요청에 대한 응답을 생성하는 로직을 담당한다. 이 장에서는 웹 프레임워크를 직접 구현하면서 뷰의 역할과 동작 방식을 이해한다. 또한 URL dispatcher 모듈을 사용하여 URL과 뷰를 매핑하는 방법을 학습한다. 함수 기반 뷰와 클래스 기반 뷰의 차이점과 각각의 장단점, 사용 방법에 대해 비교한다. DRF를 활용하여 RESTful API를 작성하는 방법과 예외 처리에 대해 알아본다.


       


       



      [결론]


       


      프레임워크는 재사용 가능한 모듈의 집합이며, 개발자는 프레임워크에 많은 부분을 맡기므로 비즈니스 로직 구현에 더 많은 시간을 확보할 수 있다. 장고는 풀스택 웹 프레임워크로, 데이터 테이블과 파이썬 클래스의 매핑 방법과 아키텍처를 편리하게 제어한다. 『벡엔드 개발을 위한 핸즈온 장고』는 장고의 원리와 활용법을 다루는 책으로, 단순한 초급 수준의 결과물이 아닌 복잡한 시스템을 개발하려는 경우에도 큰 도움이 될 것이다. 장고의 활용성과 깊이 있는 내용을 쉽게 설명하며, 입문자부터 시니어 개발자까지 많은 인사이트를 제공하는 책이다.


       


       



      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


       




    •  



      총평


      - 책의 난이도 : ★★☆☆☆


      - 추천 별점     : ★★★★★


      - 추천 독자     : 파이썬을 주력 언어로 하면서 장고를 사용하는 백앤드 주니어 개발자 (예비 개발자도 기본서로 충분하다)


      - 지은이         : 김성렬


      - 출판사         : 한빛미디어



      - 예제소스 : https://github.com/KimSoungRyoul/django-backend-starter




       


       


       


      이 책은 파이썬 백엔드 개발로 Django를 다루고 있다. 책 표지부터 취향저격수 처럼 예쁘게 잘 되어있는데 요즘은 진짜 책 표지 잘 뽑는것 같다.


       


      아무튼 내가 요즘 많은 책들을 보면서 중요시 생각되는 것들이 몇 가지 있는데, 이 책은 그런 요소들을 정말 잘 모아서 제작되었다는 생각이 들었다.


       



      첫째는 한국 저자의 책이라는 것이다. 앞서 테라폼 책의 리뷰에서도 적긴했는데 한국 저자의 책은 아무래도 읽기가 편안하다. 


       


      표현에 대해서 한국인의 입장에서 이해하기 쉽도록 아주 쉽게 설명해준다.


       


       


      그리고 한국 개발자들이 궁금해하는 부분이나 팁들에 대해서 공감대 형성이 좋다. 그래서 한국 저자의 책이라는 것 자체가 요즘은 하나의 무기가 되는 것 같다. 책의 중간 중간 있는 팁부터 흔히 하는 착각이나 실수하는 사례들을 꼼꼼히 설명해주고 있다.


       


      괄호에 좀 더 쉬운 설명이 써져있는게 보이는가?


       


       



      두번째는 주니어를 위한 장고 책이다. 책 표지에도 적혀있지만 타겟으로 한 독자를 명확하게 이해하고 설명해준다고 생각한다. 나도 파이썬은 알고 있지만 Django에 대해서는 들어만 보았다. 그런데도 읽는데 전혀 무리가 없었다. 그림도 너무 친절하게 설명되어 있고, 아래 설명도 매우 자세했다. 그리고 이 책의 범위를 너무 벗어나는 내용에 대해서는 언급만 하고 복잡하게 다루지 않았다. (주니어에게는 이게 훨씬 도움이 되는 선택과 집중을 했다고 본다)


       


      쉬운 설명과 쉬운 예제가 많아 직관적으로 이해된다.


       


      또한 주니어 대상이기 때문에 가끔 주는 팁 중에서 취업에 대한 팁이나 취업 후 개발자로써의 팁들도 많이 들어있다.


       


      면접 / 이력서 팁들이 곳곳에 숨어있다.


       


       


      뿐만 아니라 앞으로 발전가능한 시각을 위해서 단순히 주니어가 실수할 수 있는 부분에 대해 보충해야할 부분도 명확하게 알려준다.


       


      주니어가 고려할 만한 부분은 잘 집어준다.


       


       



      세번째는 그림으로 배우는 장고라고 해도 될 정도로 그림이 많다. 그림이라고 오히려 날로 먹는거 아니냐는 오해가 없었으면 좋겠는데, 보통 개발을 하게 되면 추상화되는 개념들이 많은데 이것을 도식화하기가 어렵다. (개발을 많이 해본 사람들이야 별 대수롭지 않겠지만, 개발이 익숙하지 않은 사람들에게는 상당히 힘들다.) 그리고 하다보면 자연스러워지겠지만 그림이 있어 이해도가 확 올라가는 점은 누구든 부정할 수 없을 것이다.


       


      딱 봐도 직관적으로 이해된다.


      가로로 크게 그림이 있는 페이지들도 많다.


       


       


       


      이런 특징들만 나열해도 충분히 구매해서 책장에 두고두고 여러번 읽을 가치가 있는 책이라는 생각이 들었다. 만약에 장고를 사용한 백엔드 개발자 혹은 개발자를 준비하는 사람들은 이 책을 꼭 읽어보길 추천한다. 책이 강의식처럼 잘되어있고, 읽기 편하게 되어있기 때문에 강의를 보지 않아도 이 책만 여러번 읽어도 충분하다고 생각이든다.


       


       


        "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."




    • "<한빛미디어 나는 리뷰어다>" 활동을 위해서 전자책을 제공받아 작성된 서평입니다.





      제목 : 백엔드 개발을 위한 핸즈온 장고




      - 한 줄 평가


      그저 코드를 쓰고 설명하는 책이 아닌, 장고가 어떻게 동작하는지 학습시켜주는 알짜배기 내용을 꾹꾹 눌러담은 책.


       


      - 대상 독자


      장고를 활용하고자 하는 주니어 개발자 및 입문자


       


      - 책의 내용 및 구성


      1. 5개의 챕터, 412p로 구성



      2. 활용되는 파이썬 버전은 3.11로 명시되어 있으나 3.10 이상이면 책에서 설명하는 예시를 보는 데 문제가 없다고 함


      3. 장고는 4.2 버전을 사용


      4. 백엔드 프로그래밍에 집중하고 있기 때문에 장고를 중점적으로 설명하며 프런트엔드 부분에 대한 언급은 최소화 했다고 함, 책에서 사용 될 토이 프로젝트에서는 이미 완성된 프런트엔드 개발 결과물을 제공


      5. 신입 또는 주니어 개발자를 대상 독자로 하고 있기 때문인지 Tip이라는 별도의 공간을 마련해 개발자에게 필요한 이력서나 기술 면접 팁과 같은 가벼운 쉬어가기 페이지가 존재


       


      - 책에서 눈에 띄는 점


      1. '이 책의 실습 예시를 따라 하고 이해하기 어려운 부분만 다시 찾아보는 방식으로도 백엔드 개발에 대해 배울 수 있을 것이다. 하지만 나는 순서대로 한 장 한 장씩 확실히 이해하며 학습하는 것을 추천한다.' 라는 저자의 말에서 알 수 있듯이 프로젝트 결과물을 위한 코드 나열이 아닌 어째서, 왜 이렇게 동작하는지를 설명


      2. 난이도를 낮게 설정한 만큼, 독자가 궁금할만한 내용이나 글로는 충분하게 이해하지 못할 내용들은 이미지화를 통해 이해를 돕고 있음




       


      3. 'a 보단 b,c 를 쓰는 것이 더 좋다. 그 이유는~' 이런식으로 그저 더 좋은 기술을 쓰라고 궁금증을 남기는 말이 아닌, 어째서 다른 기술보다 이 기술을 써야 하는가에 대해 설명하고, 현재 사용하려고 하는 기술은 왜 사용하는지를 설명해주면서 기술을 어떻게 사용해야 하는지 감을 잡도록 도와주고 어떤 결과를 얻게 될 것인지 알려줌.




       


      - 총평


       웹 쪽 개발을 좀 해왔던(3~4년 이상) 사람들에게, '파이썬 프레임워크!' 라고 하면 반사적으로 '쟝고!' 하고 말할 것 이다. 왜냐면 내가 그랬기 때문이다.


       새로운 기술들이 등장하면서 기존 것 보다 빠르고, 더 좋은 기능이 많다고 홍보하지만 자바 하면 스프링이라고 생각하듯이 파이썬 하면 장고가 가장 먼저 떠오른다. 다른 기술들을 무시하는 것이 아니라 가장 대표되는 기술이자 대명사라는 인식이 강하기 때문일 것 같다.


       예전 학교에서 안드로이드를 배우며 교수님이 해주셨던 말 중에 가장 기억에 남는 것은 '라이프 사이클을 알아야 기술을 제대로 써먹을 수 있다' 는 것 이었다. 유명하거나 많이 쓰이는 기술들은 분명 단점을 상쇄하거나 뛰어넘는 장점들이 존재 하기 때문이고, 그것은 그 기술을 지탱하는 토대, 즉 '어떻게 동작하는가'에서 시작하는 것이기 때문이다.


       이 책이 그런 느낌을 준다. 교수님의 강의처럼 딱딱한 느낌이 아닌 성적 좋은 선배가 이론적으로, 예를 잘 들어가면서 설명해주는 느낌과 함께 왜 이 기술을 써야 하는지, 어째서 다른 기술보다 이 기술을 선택해야 하는지 등을 알려준다.


       대부분의 it 서적이 그러하듯이 간단한 토이 프로젝트와 함께 진행하지만 요즘 트렌드에 맞는 '친절함'과 '쉬움'을 포인트로 잡고 어린양들을 끌어준다. 독자는 그 손을 잘 잡고 따라가기만 하면 된다.


       장고를 써 본지도 꽤나 오래되었다. 학생 때와 사회생활 초창기에 토이 프로젝트를 한다고 사용했었는데, 그 때마다 간단하게 구현되지만 쉽다고는 생각되지 않았었는데, 이 책을 읽고 다시 차근차근 배워본다면 그때보단 조금이나마 쉽다는 생각이 들지 않을까 싶다(연차도 어느정도 쌓였으니?).



    • 백엔드 개발을 위한 핸즈온 장고

       

       

      제목 그대로 백엔드 개발에 필요한 기초 부터 장고의 설계 철학이 나와있다.






       



      장고 풀스택(Template은 bootstrap)을 조금 이나마 공부를 하긴 했지만, 이론적인 지식이 부족한 탓에 



      이번 책은 많은 도움이 되었다.


       


       


       


       


       



      장고의 핵심적인 기능이었던 MTV(Model, Template, View)아키텍쳐는 확실히 편리하긴 하지만 , 현업에서는 프런트엔드와 백엔드가 나눠져서 분업하는 방식이 대부분이다. 자바스크립트가 전부 대체 가능해진 상황에서 Template의 역할이 점점 줄어들고 있기도 하고 장고 백엔드 주니어들을 위해 만들어진 책이라 그런지 템플릿 기능은 거의 나오지 않는다.


       


       



      대신 이 책에선 실무에서 사용 빈도가 높은 모듈을 중점적으로 다루기에 오히려 나에겐 공부하기 좋은 책이었다.


       


       







      · 장고의 설계 철학






       



      1. 낮은 결합도(Loose coupling)



      '결합도는 낮게, 응집도는 높게' -장고 프레임워크의 각 계층 모듈은 서로 모르게 설계 되어있다.



      장고의 인증 모듈은 여러 방식이 있지만, 장고에서 처음 프로젝트를 생성하면 기본 인증 방식으로 cookie & session 인증 모듈을 제공한다.



      하지만 이는 절대적이지 않다. 내가 원하는 인증 모듈이 있다면 그것을 직접 구현 할 수도 있지만,



      이미 만들어진 인증 모듈을 제공하는 장고 라이브러리도 존재한다.


       


       



      2. 암시적인 것보다 명시적인 것이 낫다.



      장고는 개발자가 예상하지 못하는 마법과 같은 동작을 일으키지 않아야 한다. 암시적인 동작을 만들기 보다는 차라리 커스텀한



      메소드를 새로 만드는 게 낫다는 것이 장고의 원칙이자 철학이다.


       


       



      3. 장고의 시그널



      암시적인 수행이 바람직하지 않다는 내용과는 별개로 save() 메서드를 오버라이딩해야 하는 상황이 불가피 하다면 장고의 시그널(django signals)을 사용하는 것이 좋다. post_save 시그널을 받아서 수행할 로직을 작성한다.


       


       


       



      4. 모델 모듈이 도메인 로직을 캡슐화 하도록 작성한다.



      장고에는 Fat Model 패턴이 있다. 특정 모델과 관련된 데이터 조작 메서드를 모델 내부에 구현하여 모델을 사용하는 외부 모듈이 가벼워지게 하는 방식이다.


       


       



      5. 효울적인 SQL 수행



      장고의 쿼리셋(QuerySet)은 내부적으로 최적화 된 SQL수행을 한다는 철학을 따르고 있다.


       


       



      무언가를 배울 때 그 교육에 대한 철학이 있다는건 멋진 일이다. chapter1 에서는 이렇듯 장고에 대한 철학과 신입/주니어 개발자를 위한 이력서 작성하는 팁이 있어서 참조하면 유용할 것이다.


       


       


       


       


       



      · 모델링과 마이그레이션


       



      ER(Entity Relation) - 백엔드 개발 실무 프로젝트를 진행할 때 가장 먼저 하게 되는 작업이다. db관점에서는 테이블을 정의하고 테이블 간의 관계를



      매핑하는 것이며, 장고에서는 이 테이블 간의 관계를 어떻게 모델로 가져올 것인지를 고민하는 작업을 의미한다.  뒤로 갈 수록 실습 위주의 코드와 분석한 내용을 쉽게 풀어서 써져 있다.



      장고 모델링을 정말 라이트하게 사용해본 나로써는 이 부분을 책 한권으로 자세하게 배울 수 있다는 점이 크게 다가왔다.


       


       



      모델링에 대한 어렴풋이 알았던 개념들을 또렷하게 정리 할 수 있었다.


       


       


       



      각 파트의 마지막 장엔 전체적인 내용을 한페이지에 정리해주는 정리 부분이 있어서 굉장히 유용했다.


       


       


       


       


       



      [ 마이그레이션 관련 명령어 ]



      . makemigrations : 마이그레이션 생성



      . sqlmigrate : 특정 마이그레이션 파일에서 수행되는 SQL(DDL) 조회



      . migrate : 마이그레이션 파일을 데이터베이스에 반영



      . showmigration : 지금까지의 마이그레이션 수행 이력 조회



      . squashmigrations : N 개의 마이그레이션 파일을 1개로 통합



      . makemigrations --empty : 커스텀 마이그레이션 파일 생성, 주로 데이터 마이그레이션에 사용한다.


       


       



      · ORM과 쿼리셋



      ORM이란



      먼저 데이터베이스(관계 지향형)와 파이썬(객체 지향형)과 같은 언어 사이에 ORM(Object Relational Mapping)이라는 기술이 생겨난 이유는 관계 지향형 패러다임은 데이터를 중심으로 실세계를 바라보며 객체 지향형 패러다임은 객체를 기준으로 실세계를 바라본다.


       


       



      · ORM의 장점



      ORM은 객체 지향형과 관계 지향형 패러다임 간 차이 때문에 복잡해진 수 있는 로직을 객체 지향적인 코드로 작성할 수 있도록 보조해준다. 이렇게 OMR 으로 만들어진 로직은 더 직관적이며 개발자가 비즈니스 로직에만 집중할 수 있도록 도와준다.


       


       


       



      · 직렬화



      컴퓨터 과학에서 직렬화(Serializer)란 데이터의 구조와 상태를 해치지 않고 다른 컴퓨팅 환경에 저장하고 재구성이 가능한 포맷으로 변환하는 과정을 의미한다.


       


       



      각 파트의 소스 예시들은 정말 저자에게 감사할 정도로 잘 나와있다. 솔직히 한 번 읽고 실습 해본다고 해서 저 모든 노하우들이 한번에 남진 않겠지만, 두고두고 헷갈리는게 있을 때마다 책을 참고하면 공부할때 유용할 것같다.


       














       













       






      

    • ## 핸즈온 장고 리뷰


       


      장고란 파이썬 풀스택 프레임워크로 MTV(Model Template View) 패턴 아키텍처이다. 파이썬 개발자 설문조사에서도 2번째로 가장 인기있는 파이썬 프레임워크로 꼽힐 만큼 많은 프로젝트에서 사용하고 있다.


       


      파이썬으로 웹 개발을 할 때에는 나도 주로 장고를 사용한다. 소규모로 작업을 하다보니 여러 기능을 개발해야 할 때 도움을 주는 라이브러리도 많고 개발 커뮤니티 자체가 크다 보니 해결책을 찾기가 수월하다.


       


      그런 면에서 “백엔드 개발을 위한 핸즈 온 장고”는 초보 백엔드 개발자에게 도움이 되는 라이브러리 사용방법과 개발 팁을 꽉꽉 채워 담은 교과서인 것 같다.


       


      이 책을 접하고 현재 만들고 있는 프로젝트에서 SQL과 뷰의 최적화 과정에서 큰 도움을 받았다. 장고를 처음 접하거나 한번 봤더라도 실무에 써먹고 싶을 만큼 다루기를 원한다면 이 책은 많은 도움을 줄 수 있을 것이다.


       


      ## 배울 수 있는 것


       


      ### 장고의 핵심 기능의 구현과 응용


       


      이 책에서는 템플릿에 집중한 다른 책과 다르게 좀 더 실무에서 사용 빈도가 높은 모듈을 중점적으로 다룬다는 점에서 차이가 있다. 


       


      목차를 보면 저자는 백엔드 개발에 입문하는 개발자를 위해  중요한 항목들을 차례로 소개해주고 있다. 모델링과 마이그레이션, ORM과 쿼리셋, 직렬화, 뷰 구현과 응용 등 장고에서 가장 핵심적이면서도 소홀히 하기 쉬운 부분을 정확히 짚어 예제와 함께 가르쳐 준다.


       


      실제로 코드를 작성하고 결과를 테스트할 때 저자의 깃허브에서 공유해주는 소스들을 이용하면 혼자서도 프론트엔드 단과 같이 작업하는 느낌을 받으면서 공부해볼 수 있다.


       


      ### 모델링과 마이그레이션


          


      모델은 장고를 유명하게 만든 핵심 기능이다. 모델을 사용하지 않고 장고를 쓰는 것은 팔 하나 없이 노를 젓는 것과 같다. 


          


      이 책에서는 모델을 작성하는 방법과 다양한 필드들의 종류, 그리고 모델이 실제 데이터 베이스와 연결되는 마이그레이션 과정을 직접 구현해 봄으로써 모델의 구현과 응용 방법을 습득하는 데 도움을 준다.


          


      특히 커스터마이징은 해본 적이 없었는데, 이번에 암복호화 필드를 구성해보며 장고 모델의 높은 활용성을 다시금 깨닫게 되었다.


          


      ### ORM과 쿼리셋


          


      ORM이란 객체 지향형과 관계 지향형 패러다임 간의 차이 때문에 복잡해질 수 있는 로직을 객체 지향적인 코드로 작성할 수 있도록 보조해주는 역할을 수행한다. 개발자는 코드의 편의성을 위해 ORM을 사용하지만 이것에 의존해서는 안된다. 


          


      이 책에서는 장고 모델에서 ORM이 어떻게 사용되는지, 쿼리셋을 어떻게 커스터마이징 해야 하는지 가르쳐 준다. 쿼리셋과 대응되는 SQL을 같이 보여주기 때문에 SQL에 대해 잘 모르더라도 예제를 따라가면서 하나씩 익힐 수 있다.


          


      ### 직렬화


          


      직렬화란 데이터의 구조와 상태를 해치지 않고 다른 컴퓨팅 환경에 저장하고 재구성이 가능한 포맷으로 변환하는 과정을 의미한다. 


          


      이 책에서는 DRF Serializer를 이용하여 다양한 모델에서 데이터 직렬화를 구현하는 방법을 소개하고 있다. 


          


      ### 뷰


          


      뷰는 장고에서 MTV 아키텍처 기반으로 개발하기 위한 템플릿 구현체이다. 다만, 현재 시장에서는 MTV 아키텍처가 뜨지 못하고 있기 때문에 API 개발에 필요한 뷰 구현체를 위해 보통은 다른 장고 라이브러리를 사용한다. 


       


      이 책에서는 함수 기반뷰와 클래스 기반 뷰에 대한 라이브러리들과 함께 API 문서 작성을 손쉽게 해줄 수 있는 패키지의 사용법도 함께 소개해 주고 있다.


          


       


      ### 개발자에게 도움이 될 만한 상식들


       


      초보 개발자라면 전공 단어에 대한 기본 지식이 부족할 수 있다. 저자는 이를 위해 중간중간 자세한 설명을 덧붙여 주었고, 또한 저자의 경험이 녹아든 설명은 개념을 이해하는 데 많은 도움이 되었다.


       


      개발자로서 이력서를 작성하는 방법이나 면접 팁 등은 신입 개발자, 쥬니어 개발자에게 큰 도움이 되는 것 같다. 


       


      처음 개발을 시작하는 개발자, 혹은 장고로 프로젝트를 진행해보고 싶은 백엔드 개발자에게 이 책은 하나의 보물처럼 쓰일 수 있을 것 같다.


       


      ### 아쉬운 점


       


      이 책은 쥬니어 개발자를 위한 책으로 소개된 만큼, 파이썬 자체를 처음 접하거나 개발을 처음 시작하는 입문자에게는 추천하기 어려운 책인 것 같다.


       


      컴퓨터 전반적인 지식을 갖추고 이제 개발을 시작하려고 하는 사람에게는 최고의 책이 될 수 있지만, 아직 갖춰지지 못했다면 살짝 어려움이 따를 수 있는 책이 아닌가 싶다.


       


      #### 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.


    • 대규모 API 서버 고급 개발자로 도약할 수 있도록 도와주는 최고의 책 입니다.


       



      기존의 도서 또는 강의들이 파이썬 초보자를 위한 개인 블로그 개발에 목표를 두고 있다보니 대부분 학습내용 및 마무리 부분이 대부분 비슷 했었습니다.


       



      하지만 이 책은 `Naver Biz` 에 근무하면서 축적된 Django ORM 과 Django Rest Frame 관련 개념 및 고급 기술의 설명 그리고 실무자의 조언까지 꽉꽉 담겨져 있는 책입니다. 


       


      그리고 취준생 분들에게 인터뷰 및 포트폴리오 관련하여 도움이 되는 설명까지 담겨 있습니다.


       


      ※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.


    •   장고는  비교적 쉽게 접근할 수 있는 파이썬을 기반으로 하고 있는 풀스택 프레임워크이지만 백핸드 개발에 많이 사용된다. 프레임워크란 재사용이 가능한 모듈의 집합체로 S/W 엔지니어가 구현하고자 하는 것을 프레임 워크에 맡김으로써 개발 시간을 절약할 수 있다. 반대로 간단하게 만들어낼 수 있기 때문에 내부 동작에 신경 쓰지 않게 된다. 하지만 제대로 사용하기 위해서는 이를 알아둘 필요가 있는데 이 책은 그런 면에서 도움이 된다.



        프레임워크는 개발자를 보조해 두는 하나의 도구일 뿐이다. 그래서 프레임워크의 선택은 각자의 상황과 취향에 의해 선택된다. 플라스크나 FastAPI처럼 빠르게 동작하는 마이크로 프레임워크가 인기를 얻어가고 있다. 하지만 입문자나 아직 초급 개발자라면 장고를 배우는 것은 괜찮은 선택이다. 왜냐하면 접근성이 좋을 뿐 아니라 기술적인 성숙도도 가장 높기 때문이다. 마이크로 프레임워크들이 기능 추가에 소극적인 이유도 기능을 탑재할수록 자신들만의 강점이 사라지고 장고와 비슷해질 뿐이기 때문이다. 같은 것이라면 성숙도가 높은 것을 선택할 건 뻔하다.



        책은 장고를 사용하기 위한 여러 OS 환경에서의 설치부터 시작하여 여러 가지 기능을 설명하고 있다. 장고가 가지고 있는 여러 기능과 그것을 효과적으로 사용하는 방법을 자세하게 설명하고 있다. 여러 기능들에 대해 꼼꼼한 예시를 보여주며 입문자들도 쉽게 따라올 수 있도록 구성하고 있다. 어떤 면이 실무적으로 유용한지 설명하기도 하고 단점과 더 나은 대안을 제시하기도 했다.



        책과 함께 진행한 토이 프로젝트는 따라 하며 익힐 수 있게 해 주었다. 프로젝트를 따라가다 보면 자연스레 필요한 기능과 사용법을 익히게 된다. 기능을 배우는 과정에서 따라 할 수 있다는 점은 꽤 큰 장점이다. 장고를 처음 접하는 나로서도 어렵지 않게 따라가고 있다. (아직은 그저 따라 해 보는 수준이지만)



        재밌는 것은 IT업계에 이력서를 제안하는 방법이 담겨 있었다. 분명 독자는 IT업계로 진출하려는 신입 개발자가 많다고 판단했기 때문일 것 같다. 나는 오히려 어떻게 이력서를 살펴야 하는지 알게 되었다. 기술 수준은 크게 다르지 않다. 열정을 표현하는 것이 중요하다. 그 점은 나도 동의하는 부분이었다.



        백엔드 개발자는 아니지만 이 책을 통해서 말로만 듣던 백엔드의 맛을 느낄 수 있어 좋았다.


       



      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

    • django는 흔히들 장고라고 말하며 우리나라에서 주로 스타트업이 많이 쓰고 있는 것으로 알고 있다. 


      대기업에서는 보통 Spring을 쓰고 있지만, 


      파이썬 백엔드 프레임워크 중에 가장 유사한 것을 뽑으라면 django이지 않을까 싶다. 


      (더 밀접한 프레임워크가 있어 알려주신다면 매우 환영입니다.)


      왜냐하면 fastapi, Flask보다 도메인 주도 개발이 될 수 있도록 설계가 되어 있기 때문이다. 


      흔히들 말하는 모듈 간 계층이 높은 응집도(High Cohesion)와 낮은 결합도(Low Coupling)을 가질 수 있기 때문이다. 


      구체적으로 장고는 URL, 모델, 직렬화, 뷰 계층으로 분리되어 있다. 


      이런 장고의 분리된 계층으로 인해 마이크로 프레임워크보다 api 기능을 복잡하게 개발해야 하는 점이 있다.


      (마이크로 프레임워크인 fastapi와 Flask는 단 몇 줄이면 api 기능을 구현할 수 있는 장점이 있다.)


      상황에 따라 잘 구분하여 선택하는 것이 좋을 것이다. 


       


      이 책을 읽을 때 좋았던 점은 django를 실무에 도입했을 때 어떤 점이 좋을지에 대해 서술한 점이다. 


      가령, 주니어 개발자가 장고를 선택해야 하는 이유와 시니어 개발자 또는 테크 리더가 장고를 선택해야 하는 이유 등을 다루었고 편협한 시각을 갖지 않게 다른 선택지도 다루었다. 


       


      또한, 원론적인 것이 아닌 실무적인 관점에서 빠르게 학습하기 위해 토이 프로젝트 내용을 다루고 있다. 


      하나씩 따라하면서 어떤 것에 도움이 될 수 있을지 판단이 될 것이다. 그 과정에서 어떤 기능들이 있는지 다루게 되는데 ORM, 직렬화, 뷰 그리고 배포까지 다룬다. 이 전 과정을 다루면서 가볍게 넘어가기 보다 최대한 개념들을 짚어 넘어가며 설명을 풀어내고 있다.


       


      만약, 철저히 django에 대해 빠르게 학습하고 내재화를 하고 싶다면


      이 책이 도움이 될 것으로 생각한다.


       나는 별도 백엔드 개발로써 django가 필요할 때 다시 책을 펼쳐 빠르게 개발할 예정이다.


       



      "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


    • 백엔드 개발을 위한 핸즈온 장고 


       



      - 1:1 과외를 받는 듯한 체계적이고 친절한 백엔드 개발서 -


       


       



      KakaoTalk_20230618_142354414.jpg


       


       



      1. 누구를 위한 책인가요?



      백엔드 개발을 위한 핸즈온 장고는 장고를 처음 배우는 사람이 아니라 이미 장고로 개발을 해 본 경험이 있지만 자세히는 알지 못하는 초보 백엔드 개발자를 위한 책입니다. 장고를 한번도 사용해 본 적이 없는 사람이라면 책을 읽어도 이해하기 어려우니 미리 Django라는 프레임워크를 미리 학습해서 간단한 웹사이트라도 만들어 본 후 이 책을 읽으면 좋습니다. 







      ​2. 1:1 과외를 받는 것 같은 친절하고 자세한 내용



      저는 데이터 분석가로 일을 하면서 교육을 하고 있어서 웹 개발은 기본적인 내용만 알고 있습니다. 그래서 백엔드 개발을 위한 핸즈온 장고는 사실 제게 아주 낮설고 어려운 책이었습니다. 그런데 책을 천천히 읽어보면서 알게된 사실은 정말 내용이 친절하고 자세하다는 점이었습니다. 


       


       






      KakaoTalk_20230618_142356549.jpg


       



      KakaoTalk_20230618_142357022.jpg


       



      예를 들어 장고에서 model과 field를 사용하는 부분을 설명할 때 그냥 어떻게 사용하면 된다라고 기술하는 것이 아니라 왜 그것을 사용해야 하는지 그리고 그것을 사용하면 얼마나 작업이 쉬워지는지를 상세하게 설명해 줍니다.


       


       


       



      기본적으로 백엔드 개발을 위한 핸즈온 장고의 내용은 







      1. 각 챕터 시작에서 장고의 기능에 대한 간단한 개념 설명을 하고 



      2. 왜?(why) 그것을 사용해야 하는지 알려줍니다. 



      3. 그리고 그 기능을 사용하지 않았을 때와 사용했을 때 어떻게 달라지는지 보여주고



      4. 그 기능을 이용해 구현할 때 주의 할 점에 대해서 알려줍니다. 


       



      그리고 그 설명 하나하나에 실무에서 터득한 노우하우가 가득 담긴 백엔드 개발 팁이 듬뿍 담겨있습니다. 







      그래서 백엔드 개발에 대해서 잘 모르는 제가 읽어도 백엔드 개발자가 이 책을 읽는 다면 정말 많이 배우겠구나 하는 생각을 했습니다. 그리고 데이터 분석을 강의하는 사람으로서 강의 할 때 이렇게 알려주면 더 좋겠구나 하며 많이 배웠습니다. 


       


       


       



      4. 백엔드 개발을 위한 핸즈온 장고의 내용 구성


       



      백엔드 개발을 위한 핸즈온 장고의 내용은 크게 6파트로 구성되어 있습니다. 


       



      1장. 장고에 대하여



      1장은 웹프로그래밍과 백엔드 프로그래밍의 차이, 장고 프레임워크에 대한 설명, 책에서 사용하는 라이브러리, 그리고 환경 설정에 대해서 설명하고 있습니다. 







      특히, 기존 책들이 장고의 탬플릿 위주로 설명하고 있는 것에 반해 이 책에서는 최근 웹 개발 트랜드에 맞게 프론트 엔드와 백엔드가 분리된 환경에서 백엔드 개발에 집중하면서 장고를 활용하는 방법을 소개합니다. 







      그리고 2장부터 설명할 내용에 필요한 파이썬 환경 설정, 그리고 추가 패키지 설치법에 대해서 설명하고 있습니다.


       



      2장. 모델링과 마이그레이션



      2장에서는 데이터베이스 설계와 데이터 마이그레이션에 대해서 자세히 설명합니다. 



      장고의 module과 field를 이용해서 데이터베이스를 어떻게 설계할 수 있는지 그리고 파이썬과 SQL을 이용하는 방법과 비교해 어떤 장점이 있는지 상세하게 설명합니다. 







      마이그레이션 부분에서는 장고를 이용해 DDL을 만들어 마이그레이션 할 때 주의 해야 하는 점에 대해서 상세하게 설명하고 있습니다. 그리고 여러가지 개발시 마주칠 수 있는 문제를 제시하고 그것을 어떻게 해결해야 하는지도 아주 자세히 설명해 줍니다. 


       



      3장. ORM과 쿼리셋



      3장에서는 ORM(Object Relational Mapping)이라는 기술이 왜 생겨났는지를 설명하고 ORM의 장점을 일반 SQL문법으로 작업할 때와 ORM을 이용해 작업할 때의 차이점을 보여주며 자세히 설명 합니다. 







      그리고 쿼리셋을 SQL 문장과 1:1 매칭하며 어떤 기능을 구현한 것인지 알려주고 있습니다. 


       



      4장 직렬화



      4장에서는 데이터 직렬화에 대한 개념설명, 그리고 DRF 라이브러리를 사용한 직렬화 방법을 자세히 소개합니다.


       



      5장 뷰



      5장에서는 클래스 기반 뷰를 구현하는 DRF 라이브러리를 자세히 소개합니다. 특히 DRF를 활용해 RESTful API를 설계하는 방법에 대해 중점적으로 설명하고 있습니다. 


       



      부록: 배포 Uvicorn, Gunicorn



      부록에서는 배포시 사용하게 되는 Uvicon과 Gunicorn을 설명하면서 그 둘을 함께 사용할 때 얼마만큼의 성능 향상이 이루어지는지 보여줍니다.


       



      5. 마무리



      1) 백엔드 개발을 위한 핸즈온 장고는 장고를 처음 배우는 사람이 아니라 이미 장고로 개발을 해 본 경험이 있지만 자세히는 알지 못하는 초보 백엔드 개발자를 위한 책입니다. 



      2) 1:1 과외를 받는 것 같은 친절하고 자세한 내용과 취업 준비시 또는 실무에서 활용할 수 있는 생생한 팁과 노하우가 가득 담겨 있습니다. 



      3) 단순히 장고라는 웹 프레임워크를 어떻게 사용하는지를 설명하는 책이 아니라 왜 장고가 그렇게 개발되었는지, 그리고 실무에서 장고의 기능을 어떻게 활용해 구현해야 하는지 원리와 차이를 자세히 설명하고 있는 책입니다. 



      4) 장고를 이용해 백엔드 개발을 하려고 하는 초급 백엔드 개발자라면 책 속에 담긴 자세한 설명과 노우하우로 많은 성장을 할 수 있을 것 같습니다. 


       


       



       "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."


       


       


       


       

  • 내용이 없습니다.
  • 내용이 없습니다.
닫기

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?