본문 바로가기
[Review]/Book

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

by 해피빈이 2023. 6. 25.

> 진행에 앞서

클라이언트 개발을 하기 위해 대부분의 노력을 쏟는 생활을 하다보니, 그에 앞서 대부분 필요한 서버 개발에도 요즘은 눈을 돌리고 있다. 필요한 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페이지

 

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

반응형

댓글