Life/Book Record

[서평] 백엔드 개발을 위한 핸즈온 장고

샤아이인 2024. 3. 16. 11:44

저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다.

 

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

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

www.hanbit.co.kr

 

Java, Kotlin, Spring만 줄곧 사용해 오다 이번에 기회가 되어 Django REST Framework을 공부해 볼 수 있는 기간이 생겼다.

 

<읽은 기간>

2024/03/01 ~ 2023/03/09

<리뷰 순서>

1) 책의 표지

2) 단원별 구성

3) 읽은 소감

우선 저의 글의 앞부분만 보는 분들을 위해 먼저 간단히 4가지에 대해 답해보겠습니다.

 

Q 이 책을 읽기 전에 필요한 수준/ 지식은?

=> 일단, 저자는 주니어 개발자 or 입문자를 위한 책이라 하긴 했는데... 음, 개인적으로 나처럼 (다른 진영의 서버사이드 기술을 한 번쯤 공부해 본 상태에서) DRF를 처음공부하는 주니어, 입문자인 것 같다? 진짜 쌩 초보가 이걸로 서버 기술을 처음 공부하면 ORM에서 이미 정신 못 차리고 있을 것 같다 ㅋㅋㅋ

 

Q 이 책을 읽어야 할 필요성, 어디에 도움이 될까?

=> 우선 Django 기반의 API 생산을 경험해보고 싶은 독자에 게 정말 도움이된다. 또한 Serializer나 View에 대하여 처음 입문용으로도 좋은 것 같다.

다만 DRF 내용 자체가 여러 Serializer나 View에 대한 공부가 필요한것이 사실이라, 이 책 한 권만으로는 모든 부분을 커버하기는 어려울 것 같다. 그래도 DRF 찍먹 해보기에는 적합한 책이다.

 

Q 이 책을 읽은 후 추후 공부는?

=> 우선 개인적으로 DRF가 재미있긴 했어서 인프런에서 다음 강좌 또한 구매하여 수강해보게 되었다.

책에서는 얻을 수 없었던 핵심사항과 View에 대한 시야를 넓힐 수 있었던 좋은 강좌였다!

 

아마 이 책과, DRF 강의 정도를 들으면 다른 서버사이드 개발 경험이 있다는 가정하에 DRF로 개발이 당장 진행을 가능할 수준이 될 수 있었다. (다만 잘하는 느낌은 아니다... 레퍼런스 계속 보면서 개발해야 했다)

 

1. 책의 표지

표지가 아주 깔끔하다 생각된다! 군더더기 없이 마음에 드는 디자인이다!

또한 Django(장고) 인 만큼 서부의 보안관 느낌의 표지를 선택한 디자이너의 안목이 매우 훌륭하다 생각된다!

 

2. 단원별 구성

이책의 구성은 다음과 같다.

 

내가 느끼기에 크게 3개의 part로 나눠지는데, (DB, 직렬화, Controller) 이렇게 나뉘는 것 같다.

 

DB에서는: Django의 모델링, 마이그레이션을 통하여 DB와 모델을 매핑하는 방법을 배우고, 이후 ORM 사용법을 학습하게 된다.

직렬화에서는 : DRF에서 Json과 객체 간의 직렬화, 역직렬화하는 방법에 대하여 학습한다.

Controller에서는 : url과 view, serializer를 매핑하는 방법에 대하여 배운다.

 

목차 구성 초반을 보면 알겠지만, 파이썬 문법에 대한 직접적인 언급은 없다.

거의 바로 모델링과 마이그레이션, ORM과 쿼리 셋이 나오게 된다.

즉 저자가 중요하게 생각하는 부분인 Core만 담아낸 깔끔한 책이라 생각된다.

 

여러 장들이 다 재미있었지만, 그중 4장 직렬화 파트를 중점적으로 리뷰를 남겨볼까 한다.

 

3. 직렬화

3-1) 설명에 대한 흥미 유발부터!

 

모든 쳅터가 그러하듯, 저자는 시작단계에서 해당 기술이 나오게 된 이유나, 원리를 설명해 주는 방식을 택하고 있다.

이렇게 초반에 독자의 흥미를 끄는 방식이 매우 잘 먹혀들어간 것 같다고 생각한다.

 

예를 들어 위 사진에서는 "직렬화"라는 개념 자체를 처음 들어봤을 만한 초심자를 위해서 JSON <-> 객체 간의 변환 과정을 하나하나 다 설명해주시고 있다.

 

3-2) 어려운 내용은 그림을 적극 사용!

위 사진처럼 NOTE에 간혹 DRF와는 관련 없지만 재미있는 꿀팁이나 스토리들이 있는 점 매우 좋을 것 같다.

난 책을 읽을 때 이런 NOTE에 농담이 있는 책들을 선호하는데, 읽다가 중간에 한번 쉴 수 있는 타이밍이랄까? 

여하튼 이 책은 이런 점이 있어서 좋았다!

 

또한 그림으로 직렬화를 설명해 주듯, 어려운 다른 개념들도 다 그림을 통해 직관적으로 이해시켜 주시려 노력하는 점이 느껴졌다.

 

다음 그림 또한 그 방식을 이해할 때 정말 많은 도움이 됐었다.

 

3-3) 코드와 설명이 필요할 때는 그만큼 자세하게~

본격적으로 직렬화에 대한 기술이 어떤 기술인지? 왜 나오게 되었는지를 설명해 주는 부분이다.

 

3-4) 가로로 표현한 방식! 아주 독특하다!

그리고 이 책의 가장 독특한 점이다, 다른 책에서 잘 못 보던 방식인데!! 바로!! 가로로 길게 표현하는 방식이다!!

쿼리가 동작하는 방식이나, 그림이 길어질 필요가 있는 내용을 가로로 돌려서 설명해 주는데, 이게 생각보다 좋다.

이 책은 사용자의 요청부터 응답까지의 한 사이클이 필요한 내용에 대해 90도로 돌려서 표현했다.

 

이 방법이 정말 참신하게 다가왔는데, 어떻게든 세로로 된 한 페이지에 표시할 수 있도록 노력하려 대부분의 책에서는 그렇게 하였으나, 이 책은 그냥 돌려서 보도록 하였다는 사실이다.

 

사실 모니터로 보는 것도 아니고, 조금 돌려서 보는 편이 더 잘 설명할 수 있다면, 그렇게 보면 되기 때문에 이 부분은 좋았다고 생각한다.

 

3-5) 이따금씩 등장하는 면접 질문들과 CS

 

이 책이 독특한 이유가 여러 가지 있지만, CS와 관련된 면접 질문들을 적어준 점이 정말 좋다 생각했다.

네트워크를 가볍게 공부했다면 함정에 빠질 수 있는 위와 같은 질문에 대하여 저자의 생각과 답변을 남겨주었다.

이런 부분이 많지는 않지만 쳅터당 하나 정도는 항상 있었던 것 같다.

 

이런 사소한 부분들이 책의 퀄리티를 전반적으로 올려준다 생각된다!

 

4. 읽은 소감

4-1) 장점

우선 DRF를 처음 공부하는 사람에게 매우 추천한다.

쓸데없는 내용을 거의 제거하고, 핵심적인 내용을 위주로 설명해 주시며 책을 읽을 때 레퍼런스 같은 느낌의 책은 아니라 읽는 즐거움이 있는 책이다.

 

특히, 이 책은 대상자인 주니어 개발자들을 위한 배려가 담긴 책이다.

기술면접에 대한 부분 등 주니어를 위한 지면이 많이 할당되어 있다.

 

물론 이러한 부분이 DRF 자체의 내용과 조금 떨어진 이야기 일 수 있지만, 최소한 주니어에게 설명한다는 느낌은 지속적으로 주고 있다는 것은 확실하다. 약간 DRF 주니어를 시장 자체에 보급하려는 노력이 보인달까?

 

추가적인 DRF에 대한 나의 경험기가 궁금하다면 다음 글 또한 읽어봐 주길 소망한다!

 

험난한 Django REST framework 경험기

저는 평상시에 서버개발에 주로 Java, Kotlin, Spring 조합을 사용하던 "Java 2명 타요"중 1명에 속하는 사람이었습니다. Java + Spring의 개발 직관성과 생산성은 정말 사랑할 수밖에 없다 생각하거든요!

blogshine.tistory.com

 

4-2) 단점

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

이 책은 다른 실습기반의 책처럼 코드를 작성하며 결과를 확인하고, 그것을 이어가며 프로젝트를 완성하기 좋은 책이 아니다.

 

관점을 달리하여, 하나의 프로젝트를 시작해야 하는데, 장고라는 프레임워크를 이용해서 구성하려는 중이고, 그 과정을 알려주는 책에 가깝다.

 

Github상에 코드를 제공하고 있지만, 책에서 설명하는 코드들을 어디다 작성해야 하는지? 알기 쉽지 않다.

또한 실습 예제가 나오는데, 그 예제를 어느 파일에다 생성해서 작성해야 하는지도 알기가 쉽지 않다.

 

또한 실습을 하려면 기본적으로 VENV와 같은 가상환경과 Docker 기술을 조금은? 선수적으로 알아야 할 것 같다는 단점이 있다.

나 또한 어느 순간부터 코드를 치기보다는 그냥 책의 내용만 읽게 된 것이 사실이다.

 

 

 

DRF 처음 공부하면 이 책 강 추입니다!